Skip to main content

Basic tool for downloading and merging mapzen terrain tile geotiffs from AWS

Project description

terraincache

A (yet another) basic Python script for downloading and accessing Mapzen Terrain Tiles geotiffs from AWS. Designed to integrate with rasterio and to provide a familiar command line tool for quick reprojection of downloads.

Installation

pip install terraincache

Set the TERRAINCACHE environment variable to save typing:

export TERRAINCACHE=/users/snorris/Data/terrain-tiles

Usage

Python module

from matplotlib import pyplot as plt
import rasterio

from terraincache import TerrainTiles

bounds =[-125.2714, 51.3706, -125.2547, 51.3768]

# Initialize with bounds and zoom of interest
tt = TerrainTiles(bounds, 11)

# load to numpy array
array = tt.load()

# plot the array directly
plt.imshow(array, cmap='terrain', extent=bounds)

alt text

Dump to file and plot the array using rasterio.plot.show() (for correct axis labels):

tt.save(out_file="dem.tif")
with rasterio.open("dem.tif", "r") as src:
    fig, ax = plt.subplots()
    rasterio.plot.show(src, ax=ax, title='terrain-tiles', cmap="terrain")

alt text

CLI

$ terraincache --help
Usage: terraincache [OPTIONS]

  Write terrain tiles to geotiff

Options:
  -o, --out_file, --out-file PATH
                                  Output file name/path
  --bounds TEXT                   Bounds: "left bottom right top" or "[left,
                                  bottom, right, top]".  [required]
  -z, --zoom INTEGER              Web map zoom level  [required]
  -p, --cache-dir, --cache_dir TEXT
                                  Path to cache folder
  -tr, --resolution FLOAT         Output dataset target resolution in meters
                                  (square pixels)
  --bounds-crs, --bounds_crs TEXT
                                  CRS of provided bounds
  --dst-crs, --dst_crs TEXT       Target coordinate reference system.
  -r, --resampling_algorithm [bilinear|nearest|cubic|cubicspline|lanczos|average|mode]
                                  GDAL resampling algorithm
  -v, --verbose                   Increase verbosity.
  -q, --quiet                     Decrease verbosity.
  --help                          Show this message and exit.

For example, create a geotiff around the summit of Mt Fairweather (at BC / AK border) that aligns with the BC TRIM DEM. Note that this is almost certainly upsampling the data available, see below link to review source resolutions.

terraincache \
  --bounds "336637.5, 1597112.5, 346637.5, 1607112.5" \
  --bounds-crs EPSG:3005 \
  --zoom 11 \
  -tr 25 \
  -r bilinear \
  -o dem.tif

Data sources

See the data sources reference document

Credits / other implementations

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terraincache-0.0.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

terraincache-0.0.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file terraincache-0.0.1.tar.gz.

File metadata

  • Download URL: terraincache-0.0.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.4

File hashes

Hashes for terraincache-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a46365dd9640c095564a2a21e104a70938dc07c451601ece9837658559ef69c6
MD5 c8c05b733620ff6f03eda3b50f6ed795
BLAKE2b-256 2e6fe2b68d99f47f3f0026d9716ff515ae201b0d394e377885b346a4f63622c6

See more details on using hashes here.

File details

Details for the file terraincache-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: terraincache-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.4

File hashes

Hashes for terraincache-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e57559087771875127bafee0d9078af161ffd24725203bfe466850efcf05bfe7
MD5 20923752f65553de36b3c25691aefe74
BLAKE2b-256 93c4e63e3d51fbbcee761d2ba7173c0e779cbc915c584643c5cc3f42b6a5c0ca

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page