Skip to main content

Wrapper around rasterio to query points on a Digital Elevation Model

Project description

demquery

Pypi Downloads Supported Python Versions

Wrapper around rasterio to query points on a Digital Elevation Model.

Features

  • Use multiple raster files without having to merge them into a new file
  • Query many points at once
  • Optional 2D interpolation (linear, cubic, or quintic)
  • Reasonably performant by reading the minimal data required from raster

Install

I recommend first installing dependencies with Conda, then installing demquery itself with pip.

conda install gdal rasterio numpy scipy -c conda-forge
pip install demquery

CLI Script

> demquery --help
Usage: demquery [OPTIONS] FEATURES...

  Assign elevations to GeoJSON

Options:
  -d, --dem PATH          Paths to DEM files.  [required]
  -g, --dem-glob TEXT     Glob expression for DEM paths if folder is provided.
  -b, --band INTEGER      Band of rasters to use  [default: 1]
  -i, --interp-kind TEXT  either None, "linear", "cubic", or "quintic". None
                          will do no interpolation and choose the value in the
                          DEM closest to the provided point. linear creates a
                          3x3 grid and runs linear interpolation; cubic
                          creates a 5x5 grid and runs cubic interpolation;
                          quintic creates a 7x7 grid and runs quintic
                          interpolation.
  --help                  Show this message and exit.
echo \
    '{"type":"Feature","properties":{"name": "Glacier Peak"},"geometry":{"type":"Point","coordinates":[-121.2436843,48.0163834]}}' \
    | demquery -d /path/to/dem/files

Outputs:

{"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "coordinates": [-121.243684, 48.016383, 1431.5755615234375]}, "properties": {"name": "Glacier Peak"}}]}

Documentation

from demquery import Query

dem_paths = ['dem1.tif', 'dem2.tif']
query = Query(dem_paths)

# Points must be in longitude, latitude order!
# These points are in Manhattan, not Antarctica
points = [(-73.985564, 40.757965), (-73.968520, 40.778912)]
elevations = query.query_points(points, interp_kind='linear')

Data Download

For a great visual tool to download worldwide SRTM data, check out these sites:

Releasing

To upload a new release to PyPI

python setup.py sdist
twine upload dist/demquery-0.3.0.tar.gz

Changelog

[0.3.1] - 2020-08-19

  • No changes: try to get conda-forge package to work correctly

[0.3.0] - 2020-01-28

  • Add CLI script

[0.2.1] - 2019-12-04

  • Include requirements.txt and requirements_dev.txt in manifest bundle

[0.2.0] - 2019-12-02

  • Fix virtual raster issues.

[0.1.0] - 2019-11-27

  • Initial release on PyPI

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

demquery-0.3.1.tar.gz (11.4 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page