   #^{:doc "Default set of data for FORMA processing."}
   *forma-subsets*
   #{:ndvi :evi :qual :reli})
+
+(def
+  #^{:doc "Arbitrary number of pixels in a chunk of MODIS data."}
+  *chunk-size*
+  24000)
 
 ;; ##Helper Functions
 ;; These are organized fairly well... more docs later.

  (let [path (.toString hdf-file)]
    (metadata (gdal/Open path) "SUBDATASETS")))

;; ##Cascalog Custom Functions
;; These guys actually get called by the queries inside of core.

(defmapop
  #^{:doc "Generates metadata values for a given unpacked MODIS Dataset and a seq of keys."}
  [meta-values [meta-keys]] [modis]
  (let [metadata (metadata modis "")]
    (map #(.get metadata %) meta-keys)))

(defmapcatop
  #^{:doc "Stateful approach to unpacking HDF files. Registers all gdal formats,
Creates a temp directory, then saves the byte array to disk. This byte
array is processed with gdal, and then the temp directory is destroyed.
Function returns the decompressed MODIS file as a 1-tuple."}
  unpack {:stateful true}
  ([]
     (do

;; ##Constants

(def
  #^{:doc "Map between symbols and chosen substrings of
MODIS subdataset keys."}
  *modis-subsets*
  {:evi "monthly EVI"
   :qual "VI Quality"
