     (?- (stdout)
         (sample-ascii \"1000\" 0.1 \"/path/to/ascii.csv\" [[8 6] [12 10]]))"
   [m-res ll-res ascii-path tile-seq]
+  {:pre [()]}
   (let [tile-source (memory-source-tap tile-seq)
         ascii-source (grid-source (hfs-textline ascii-path))]
     (<- [?mod-h ?mod-v ?sample ?line ?val]

  [source]
  (<- [?row-idx ?col-idx ?val]
      (source ?line)
      (liberate ?line :> ?row-idx ?row-array)
      (free-cols ?row-array :> ?col-idx ?val)))

(defmapcatop
  ^{:doc "Returns tuples containing modis coordinates, plus the

(ns forma.source.fire
  (:use cascalog.api
        [forma.date-time :only (periodize)]
        [forma.matrix.utils :only (idx->colrow)]
        [forma.reproject :only (wgs84-index
                                dimensions-at-res)]
        [forma.source.modis :only (latlon->modis
                                   pixels-at-res)]
        [clojure.string :only (split)])
  (:require [cascalog.ops :as c]))

