Skip to content

Instantly share code, notes, and snippets.

@worace
Created October 7, 2018 16:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save worace/4d7db600403bbb281b9845c54d7ed1b8 to your computer and use it in GitHub Desktop.
Save worace/4d7db600403bbb281b9845c54d7ed1b8 to your computer and use it in GitHub Desktop.

Geoq - (yet another) GIS command line tool

  • Problem - ad-hoc manipulation + inspection of piles of textual GIS data
  • Replacing copy-paste workflows
  • Most work is already in the terminal, so unix tools are a plus
    • integrate with other tools
    • streaming enables processing large datasets
    • fast startup + executable binaries are nice
    • Easy, cross-platform install (rust)
  • README - https://github.com/worace/geoq
  • Formats -- "DWIM" - lat/lon, geohash, wkt, geojson
  • Installing -- cargo -- https://crates.io/crates/geoq (similar to NPM, Ruby Gems, etc)
  • Commands - https://github.com/worace/geoq#commands
    • geoq --help
  • Demo
    • detroit lat/lon 42.3314,-83.0458 Gh: dpsby4
    • Viewing a point on a map echo 42.3314,-83.0458 | geoq map -- geojson.io
    • Getting a geohash echo 42.3314,-83.0458 | geoq gh point 5
    • Viewing polygons head -n 200 mi_features.geojson | geoq map
    • Filtering and mapping
      • time cat mi_features.geojson | geoq filter intersects dpsby4 | geoq map
      • Parallelized
    • Geohash tiling
      • cat /tmp/mi_dpbsby4.geojson | geoq gh covering -o 8 | geoq map
    • large mapping on geojson.io
      • cat 9q5.json | geoq filter intersects 9q5cs | geoq map
  • Future Goals
    • more commands!
    • Support more formats -- h3? shapefiles? kml?
  • "Not-Goals"
    • Replacing more sophisticated visualization tools like QGIS, etc
    • Replacing more powerful tools like gdal, et al -- many formats, customizations etc; geoq is more focused on interface
    • Replacing production tools like PostGIS, etc -- more for ad-hoc, quick scripting and analysis
    • Handle every single operation in the Simple Features Access spec -- this sounds hard and lots of them probably don't fit very easily into a CLI anyway

Thanks!

@worace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment