Vector surfaces creation routines
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

makesurface cool-tools

Raster --> vector surface creation tools in python


From GitHub:

pip install -e

From PyPI

pip install makesurface --pre


  1. Install dependencies:

'click>=3.0', 'fiona', 'numpy', 'rasterio', 'shapely', 'scipy', 'mercantile', 'pyproj'

  1. Clone this repo:

:console:git clone

  1. cd into :console:make-surface then pip install -e .

Usage - Vectorize

makesurface vectorize [OPTIONS] INFILE

Takes an input raster, and converts into a stacked shapefile. Sort of like gdal polygonize with more control, optimized for vector tiles. Also can print out a CartoCSS template for stylizing (one style for each class).



  --outfile TEXT           Write to GeoJSON
  -b, --bidx INTEGER       Input band to vectorize. [default = 1]
  -cl, --classes TEXT      Number of output classes, OR "all" for rounded
                           input values (ignored if class file specified)
                           [default = 10]
  -cf, --classfile TEXT    One-line CSV of break values [default = None]
  -w, --weight FLOAT       Weighting between equal interval and quantile
                           breaks [default = 1 / equal interval]
  -s, --smoothing INTEGER  Value by which to zoom and smooth the data [default
                           = None]
  -n, --nodata TEXT        Manually defined nodata value - can be any number
                           or "min" [default = None]
  -ov, --outvar TEXT       Name of output variable [Default = value]
  -set, --setnodata FLOAT  Value to set nodata to (eg, if nodata / masked, set
                           pixel to this value) [default = None]
  -c, --carto
  -ni, --nibble            Expand mask by 1 pixel
  --axonometrize FLOAT     EXPERIMENTAL
  -ns, --nosimple
  --help                   Show this message and exit.

Usage - Triangulate

makesurface triangulate [OPTIONS] ZOOM

Creates an empty triangular lattice:

  --bounds FLOAT...  Bounding Box ("w s e n") to create lattice in
  --tile INTEGER...  Tile ("x y z") to create lattice in
  --output TEXT      File to write to (.geojson)
  --tableid TEXT     static id for databases
  --help             Show this message and exit.

Usage - fillfacets

makesurface fillfacets [OPTIONS] SAMPLERASTER [INFILE]

Use GeoJSON-like triangle geometry to get average regional raster value for that geometry



  --output TEXT           Write output to .json [default - print to stdout]
  -b, --bidxs TEXT...     Band to sample [default=1]
  --zooming INTEGER       Manual upsampling of raster for sampling [Default =
                          upsampling by estimated polygon density]
  -np, --noproject        Do not project data
  -ogjs, --outputgeojson  Output updated GeoJSON
  -bp, --batchprint TEXT
  -cl, --color
  --help                  Show this message and exit.