GeospatialPython / pyshp

This library reads and writes ESRI Shapefiles in pure Python.
MIT License
1.09k stars 259 forks source link

Add read geojson capability #246

Open ncgl-syngenta opened 2 years ago

ncgl-syngenta commented 2 years ago

Describe the feature request

Looking for the ability to easily read a geojson file into the Reader.

Contributions

karimbahgat commented 1 year ago

Directly reading the contents of a geojson file is a bit outside the scope of this library, but there are convenience methods for writing shapes from geojson dicts, which can then be opened with a Reader. Perhaps something like this:

import shapefile
import json

geoj = json.loads(open('fromfile.geojson').read())
w = shapefile.Writer('tofile.shp')
for feat in geoj['features']:
    w.shape(feat['geometry'])
w.close()

r = shapefile.Reader('tofile.shp')

Some more work required to add fields and records, and detecting the correct field types, depending on your use-case.