geojson-shave reduces the size of GeoJSON files by:
- Reducing the precision of latitude/longitude coordinates to the specified decimal places.
- Eliminating unnecessary whitespace.
- (Optionally) replacing the properties key's value with null/empty dictionary.
This tool assumes that your GeoJSON file conforms to the RFC 7946.
Please be aware that when you use fewer decimal places you can lose some accuracy. "The fifth decimal place is worth up to 1.1 m: it distinguish trees from each other" - read more here.
$ pip install geojson-shave
Simply pass the file path of your GeoJSON file and it will truncuate the coordinates to 5 decimal places, outputing to the current working directory:
$ geojson-shave roads.geoson
Alternatively you can specify the number of decimal points you want the coordinates truncuated to:
$ geojson-shave roads.geojson -d 3
You can also specify if you only want certain Geometry object types in the file to be processed:
$ geojson-shave roads.geojson -g LineString Polygon
Note that the -g option doesn't apply to objects nested within Geometry Collection.
And to reduce the file size even further you can nullify the property value of Feature objects:
$ geojson-shave roads.geojson -p
Or select a positive list of properties to keep:
$ geojson-shave roads.geojson -kp id,name,level
Output to a directory other than the current working directory:
$ geojson-shave roads.geojson -o ../data/output.geojson