https://github.com/mapbox/make-surface
Vector surfaces creation routines
https://github.com/mapbox/make-surface
imagery satellite
Last synced: 6 days ago
JSON representation
Vector surfaces creation routines
- Host: GitHub
- URL: https://github.com/mapbox/make-surface
- Owner: mapbox
- License: mit
- Created: 2014-08-05T14:14:46.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-06-13T10:11:06.000Z (almost 8 years ago)
- Last Synced: 2026-03-11T19:36:11.323Z (12 days ago)
- Topics: imagery, satellite
- Language: Python
- Homepage:
- Size: 487 KB
- Stars: 89
- Watchers: 126
- Forks: 17
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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'
2. Clone this repo:
:console:`git clone git@github.com:mapbox/make-surface.git`
3. 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).

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

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