   "Saves all bands in dir referenced by path."
   ([scene-dir source]
    (let [band-xf   (comp (map +spec)
+                         (filter conforms?)
                          (map +fill)
                          (map +locate)
-                         (map (fn [band] (assoc band :source (:id source))))
-                         (filter conforms?))]
+                         (map (fn [band] (assoc band :source (:id source)))))]
      (dorun (map #(process-band % source) (scene->bands scene-dir band-xf)))
      :done)))
 

  [tile]
  (let [data (:data tile)
        fill (:fill tile)]
    (and (some? fill) (some? data) (zero? (.compareTo data fill)))))

(defn locate-fn
  "Build projection coordinate point calculator for GDAL dataset."

(defn +spec
  "Retrieve a spec (for the given UBID) and add it to the band. This assumes
   only one tile-spec will be found. If multiple tile-specs exists, behavior
   is undefined.

   If a tile-spec is not found, then this function returns nil. The band should
   not be ingested."
  [band]
  (log/debugf "looking for tile-spec for %s" (:ubid band))
  (let [spec (first (tile-spec/query {:ubid (:ubid band)}))]
    (if (some? spec)
      ;; then add the spec properties to the band
      (merge band spec)
      ;; this returns nil, the band will be filtered out
      ;; by `conforms?`
      (log/warnf "no tile-spec present, skipping %s"))))

(defn int16-fill
  "Produce a buffer used to detect INT16 type buffers containing all fill data."
