             ascending-crossing
             start-lat (convert-direction start-direction)
             end-lat (convert-direction end-direction))))
+
+(defn- coerce-float
+  "Coerce's string to float, catches exceptions and produces error message."
+  [field value]
+  (try
+    (Float. value)
+    (catch Exception e
+      (error e (format "For orbit field [%s] the value [%s] is not a number." field value)))))
 
 (defmethod gmd/encode cmr.umm.umm_granule.Orbit
   [orbit]

                           ascending-crossing
                           (or start-lat start-direction end-lat end-direction
                               (count orbit-str)))]
           (Float. (str/trim (subs asc-c (inc (.indexOf asc-c ":")))))))
       (when start-lat
         (let [sl (subs orbit-str
                        start-lat
                        (or start-direction end-lat end-direction
                            (count orbit-str)))]
           (Float. (str/trim (subs sl (inc (.indexOf sl ":")))))))
       (when start-direction
         (let [sd (subs orbit-str
                        start-direction

                        end-lat
                        (or end-direction
                            (count orbit-str)))]
           (coerce-float :end-lat (str/trim (subs el (inc (.indexOf el ":")))))))
       (when end-direction
         (let [ed (subs orbit-str
                        end-direction)]
