Ingest remote sensing products (e.g., Landsat Climate Data Record (CDR) by USGS) into tiled datasets in a common projection suitable for large scale analysis beyond traditional WRS-2 path and row or UTM zone boundaries. Input images can be reprojected into a suitable projection and grid to mimic pre-existing products (e.g., National Land Cover Database (NLCD)) or users can define their own projection and grid. Timeseries assembled from such tiles can easily incorporate observations from multiple viewing geometries by taking advantage of "sidelap" areas in adjacent WRS-2 paths.
As a demonstration of this project's output, I tiled a layer stacked Landsat 5 image over Boston:
$ tilez -C sandbox/demo_ingest.yaml ingest -pe process -j 4 tests/data/L*tar.gz
11:44:39:INFO:* Ingesting 5 products
11:44:39:ceholden-ldesk:4762:INFO:* Decompressing: LT40130301987146-SC20151019150137.tar.gz
11:44:39:ceholden-ldesk:4760:INFO:* Decompressing: LE70130301999195-SC20151019134154.tar.gz
11:44:39:ceholden-ldesk:4763:INFO:* Decompressing: LT50120312002300-SC20151009172149.tar.gz
11:44:39:ceholden-ldesk:4761:INFO:* Decompressing: LE70130312015175-SC20151019173810.tar.gz
11:44:39:ceholden-ldesk:4761:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dbaabbc18>
11:44:39:ceholden-ldesk:4763:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dbaa55400>
11:44:39:ceholden-ldesk:4760:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dbaabbcf8>
11:44:39:ceholden-ldesk:4762:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dbaab9b00>
11:44:39:ceholden-ldesk:4760:INFO:==> Tiling: band 1 surface reflectance
11:44:39:ceholden-ldesk:4763:INFO:==> Tiling: band 1 surface reflectance
11:44:39:ceholden-ldesk:4761:INFO:==> Tiling: band 1 surface reflectance
11:44:39:ceholden-ldesk:4762:INFO:==> Tiling: band 1 surface reflectance
11:44:40:ceholden-ldesk:4760:INFO:- Tiled band for tile h0029v0005
11:44:40:ceholden-ldesk:4763:INFO:- Tiled band for tile h0029v0006
11:44:40:ceholden-ldesk:4760:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dbaabbe10>
11:44:40:ceholden-ldesk:4762:INFO:- Tiled band for tile h0029v0005
11:44:40:ceholden-ldesk:4761:INFO:- Tiled band for tile h0029v0006
...
11:44:52:ceholden-ldesk:4760:INFO:* Reprojecting band: <tilezilla.core.Band object at 0x7f7dba9d29e8>
11:44:52:ceholden-ldesk:4760:INFO:==> Tiling: cfmask_band
11:44:52:ceholden-ldesk:4760:INFO:- Tiled band for tile h0029v0005
11:44:52:INFO:- Ingested: /home/ceholden/Documents/tilezilla/tests/data/LT50130301994205-SC20151019145346.tar.gz (product IDs: [6])
11:44:52:INFO:==> Indexed 5 products to 6 tiles of 48 bands
I opened the original image, the image tiles, and vector files that show the outline of the tiles created in QGIS as a demonstration:
The easiest way to install tilezilla
is to use the conda package manager from the Anaconda project by Continuum Analytics. You can grab conda
either through the full Anaconda
installer or using the miniconda
installer from their downloads page.
With conda
installed, you can install all dependendies of tilezilla
into an isolated environment using the conda env
subcommand:
# Create environment
$ conda env create -f environment.yaml
# Activate environment
$ source activate tilezilla
# Install tilezilla
$ pip install .
If you are interested in developing tilezilla
, I suggest installing via pip
with the -e
flag to create an editable installation. For installation instructions for developing tilezilla
using the click command line interface library, see click's setuptools installation instructions.