Vector surfaces creation routines
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
makesurface
tests
.gitignore
LICENSE
README.md
README.rst
requirements.txt
setup.cfg
setup.py

README.md

makesurface cool-tools

Raster --> vector surface creation tools in python

Installation

From GitHub:

pip install -e git+git@github.com:mapbox/make-surface.git#egg=makesurface

From PyPI

pip install makesurface --pre

Manual

  1. Install dependencies:

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

  1. Clone this repo:

:console:git clone git@github.com:mapbox/make-surface.git

  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).

image

Options:

  --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:

Options:
  --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

image

Options:

  --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.