lightningtrace

Quickly contour a digital elevation model using rasterio and matplotlib


License
Other
Install
pip install lightningtrace==0.1.2

Documentation

lightningtrace

Quickly contour a digital elevation model (DEM) using rasterio and matplotlib.

Install

Just use pip. pip install lightningtrace

Example

The following example generates contours from the DEM at specified elevations. The extract_contours() function is a generator that yields GeoJSON features.

import rasterio
import geopandas as gp
import lightningtrace


with rasterio.open('data/dem.img', 'r') as rast:
    # Generate the contours
    contours_to_create = [1080, 1070, 1060, 1050, 1040, 1030, 1020, 1010]
    contours = lightningtrace.contour.extract_contours(rast.read(1), rast.affine, contours_to_create)

    # Create a Geopandas DataFrame from our contours
    df = gp.GeoDataFrame.from_features(contours, rast.crs)
    print df.head()
    df.to_file('contours.shp')

The library also has a few utility functions that make subsetting the raster easier and provide easy transformations between world and pixel coordinates. The result is a numpy array of (column, row) for each of the input coordinates.

import rasterio
from lightningtrace.transformations import world_to_pixel_coords

with rasterio.open('data/dem.img', 'r') as rast:
  print world_to_pixel_coords(rast.affine, [(299721.936102, 129035.644049),])  
  # returns [(545.4898088852788, 516.4572418773387),]

See the examples folder for more information.

License

MIT

Author

Michael Ewald, https://GeomaticsResearch.com