What's New in GeoJSON Text Sequences

A year and a half ago, I blogged about the publication of RFC 8142 and some of the small complications using sequences of GeoJSON texts delimited by ASCII record separators (RS, or \x1e). At the time there weren't any implementations other than Fiona, Tippecanoe, jq, and GNU parallel.

The situation is dramatically better this week, largely due to a blog post about non-standard GeoJSON sequences. Even Rouault has added a GeoJSONSeq driver for GDAL 2.4. This makes RFC 8142 a real thing for the open source GIS community. Once this version gets deployed widely, gigantic and unweildly GeoJSON feature collection blobs will be passé.

I've also written a new Python decoder and encoder for JSON text sequences based on my experiences in developing this feature for the Fiona library: https://pypi.org/project/jsonseq. I'm using language features only available in Python 3.5 or newer, type annotations in particular. It's been refreshing to not even think about Python 2 compatibility. If you wanted to use these classes in an older Python application, please vendor it. It's only a few lines of code and is pretty much complete. I learned a little more about the Python standard library's JSON decoder and encoder, too.

I tweeted a link to this post, which makes me feel like a tool, but it's a small price to pay towards burying multi-GB GeoJSON file sharing.