Some thoughts on the ArcGIS API for Python 1.3

Satellite image basemap of San Francisco

My last blog dates from awhile back. The reason for this is that I´ve been working on a book that is going to be published in the new year by Packt Publishing. The title will be “Geospatial for Python 3” and will cover a wide range of geospatial code libraries, APIs, software and database tools for working with geospatial data.

I will contribute five chapters and just finished the fourth chapter on the ArcGIS API for Python. Just when I started working on it, I found out Esri released a new version of the API, a major update with version number 1.3. Some time after that, Esri published a blog post, covering some of the new features.

One feature that caught my attention is the ability to save map widgets as web maps. With a minimum amount of code you can now save a map and publish it right away. Another great new feature is the ability to read and write GeoJSON.

When reading the documentation of the API, I noticed the API offers way more functionality for raster data than vector data. I tried in vain for one some time to clip vector features using the API. The only clipping functionality the API currently has for vector features is to be found in the Geometry module, but requires an arcpy extent (according to the docs).

This brings me to an interesting point: where does the functionality of the API end and how is it supposed to work with arcpy? I know Esri sees ArcGIS Pro as an entry point to Portal for ArcGIS/ArcGIS Online, but I´m not sure it´s recommended or even required to use both the API and the ArcPy site package in one environment. I´m curious to know if the geoprocessing functions of the API will be extended in later releases, or if you will need ArcPy (and ArcGIS Pro) to do this.

If you work with raster imagery, the API is a real treat. The API offers some geoprocessing functions for raster data that look really nice and are easy to use. Using panda dataframes, you can quickly display attribute data and properties of the data files you´re working with.

Available raster functions from the API’s raster module