Superpowered GIS: ESRI’s ArcGIS + Open Source Spatial Analysis Tools.

The 2020 Esri User Conference is happening next week.  It’s virtual this year due to COVID-19, but I’m sure the event will be full of great presentations and announcements.

The UC is a great time to expand the depth and breadth of your GIS toolkit.  I’ve always found the technical tracks great, but there are some topics that are too hot for the UC.

Let’s talk about one of those too hot for UC topics…Esri + Open Source.

This topic isn’t actually as hot as you’d think:

  1. Esri has done a great job at integrating open source tools and standards directly into their proprietary products. Some of these tools include:
    1. Python
    2. GeoJSON
    3. OGC Services
    4. NetCDF
    5. Conda
    6. Numpy
    7. Jupyter Notebook

These integrations make it much easier to interoperate with 3rd-party analysis tools outside of ArcGIS. With additional tools, it’s possible to expand the breadth and depth of analysis questions.

  1. Esri has open-sourced many of its internal projects which gives the larger open source ecosystem a huge boost. Some example include:
    1. Shapefile spec
    2. Java geometry toolkit
    3. Multiple Web APIs (Esri JS API, Esri-Leaflet, not to mention Flex and Silverlight APIs which were awesome…shout out to the Flex Team circa 2010…Adobe Flash will never die…)
    4. Beautiful map books and cartography guides
    5. Great algorithm documentation
  1. Esri is a major sponsor and contributor to FOSS4G, PyData, and a number of meetups which help promote geoscience and open source software.

But it wouldn’t be 2020 if we didn’t get a little spicier…

Let’s talk about how you can keep the Esri stack, while adding some non-Esri open source projects to round out your toolkit.

File Geodatabases are handy within ArcGIS, but are rarely supported outside of the Esri ecosystem.  QGIS is an open source desktop GIS capable of reading and writing to Esri’s File Geodatabase format. QGIS also has over 400 unique geoprocessing tools and can export data in interesting formats like geopackages and cloud-optimized GeoTIFFs.

ArcGIS Online and ArcGIS Server allow you to interact with feature services via their REST APIs. 

You can start by constructing a query url to feature services which returns GeoJSON (`service/query?f=geojson`). 

Geopanda’s `read_file()` method can use this url directly to query the service and return a Geopandas GeoDataFrame. Geopandas wraps shapely, pyproj, and rtree, which are keystone tools for geospatial vector analysis in Python.

One of the superpowers within ArcGIS is Arcpy’s RasterToNumpyArray and NumpyArrayToRaster.  This IO function enables you to convert between ArcGIS rasters and NumPy arrays.  Many other libraries speak “NumPy array” because NumPy is a foundational library for the Scientific Python and serves as a connector library to an entire ecosystem of tools like  Scikit-Learn, Datashader, Xarray-Spatial, TensorFlow, Pandas, Rasterio!

Examples of using ArcGIS with Xarray-Spatial + Datashader

Do you want Superpowered GIS? Open source projects can expand your toolbox as an Esri user. If you want to get started, here is a resource with some open source spatial analysis tools for Python.

At makepath, we sponsor and contribute to Xarray-Spatial to extend your raster analysis capabilities while still using the powerful Esri toolset.

Do you have your own ways to supercharge your GIS analysis? We’d love to hear from you in the comments or at contact@makepath.com.

Leave a Reply

Your email address will not be published. Required fields are marked *