Skip to content

A command-line tool for reducing the size of GeoJSON files.

License

Notifications You must be signed in to change notification settings

ben-nour/geojson-shave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoJSON-shave

Testing License versions awesome list badge


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.

Installation

$ pip install geojson-shave

Usage

GeoJSON-shave-demo

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