The ArcGIS API for Python will have a minor release to version 2.1.0 on January 9, 2023. A primary focus of this release will be bug fixes and enhancements, but we’ve also added several new pieces of functionality. These include support for new data types and services, support for additional ArcGIS products, more secure authentication options, and an improved user experience when working with the map widget. Here are some other highlights organized into common workflows and major themes.
To ensure a secure login experience for our users, we’ve continued to develop the API’s authentication schemes. For example, we’ve added bug fixes to improve the Windows authentication process and provide a more seamless integration between Windows OS and web GIS. There were also overall improvements made to how the API authenticates and accesses services.
Web GIS administrators are always looking for new ways to automate their workflows and make their lives easier, and several new capabilities have been introduced to help them do so. For example, we’ve completely revamped the UX class to enable greater flexibility when editing organizational settings. In other words, you can now programmatically edit nearly all of your web GIS organizational settings as you can through the UI. This includes things like setting the banner, changing the language, setting administration contacts, setting logos, and much more!
With respect to automation, the API is now fully aligned with all the capabilities of ArcGIS Online feature service webhooks via a new enumeration called “WebhookEvents”. This allows users to receive direct communication when events occur at the service-level.
Content management—publishing, updating, overwriting, moving, and copying maps, layers, and other web GIS items—is a primary task for many ArcGIS API for Python users. As such, we’ve made several improvements and bug fixes to the ContentManager class, particularly focusing on increasing performance when cloning content via the clone_items() function.
Additionally, we continue to make it a priority to support the entire ArcGIS product suite as it expands with new apps, services, and data types. For example, in the 2.1.0 release, a new class was added to support ArcGIS Marketplace, allowing users to list and unlist Marketplace items and manage marketplace settings and properties for their organization. We’ve also refactored and enhanced several arcgis.apps including Hub, Survey123, StoryMap. One such example is the ability to now work with map tours in the StoryMap module. Additionally, we have increased functionality to work with different services (e.g., Parcel Fabric, Utility Network, Knowledge Graph), allowing more options for automation via the ArcGIS API for Python.
Analysis and Data Science
The Spatially Enabled DataFrame (SeDF) makes it easy for our users to get their ArcGIS data (feature layers, geodatabase feature classes, GeoJSON, shapefiles, etc.) into pandas DataFrames, a massively popular format for data science and analysis within Python. In this release, we have made several quality-of-life improvements to the SeDF, such as adding the ability to overwrite when publishing a feature layer from a SeDF, as well as the ability to publish a standalone table from a SeDF. These new options will be helpful in workflows where new data is consistently collected, pandas is used to manipulate and wrangle it, and the new cleaned data is subsequently used to update content in the web GIS. We’ve also listened to your feedback for improving the SeDF by adding the ability to enable z- and m-coordinates on the from_xy() method within the GeoAccessor class.
As our users’ datasets continue to grow in volume, velocity, and variety, we want to make sure the API can work with the latest and greatest in big data formats. As such, we’ve made it easier to convert between SeDF and data formats such Parquet and Arrow, and added support for Dask DataFrames, which parallelize DataFrame operations and enable more “big data” workflows.
Lastly, we have continued to innovate in the areas of deep learning and machine learning in the arcgis.learn module. While the full list of new capabilities is far too long to include here, here are a few quick highlights:
- New models (RandLANet, SQNSeg) for classification of 3D point clouds
- A new model (PSETAE) for classifying a time series of satellite imagery
- Added options for detecting and dealing with class imbalance for classification models
- Improved model explainability and interpretability for AutoML
Map Widget (Rendering)
In this release, our team has also enhanced the experience of data visualization and mapping in the map widget. A primary focus has been on adding new coloring options and improving the ease of use for renderers, and you can read this blog article for a much more detailed discussion. Several new functions were also added to make it easier for users to manage map layers, including: update_layer(), update_drawing_info(), move_to_basemap(), move_from_basemap()).
Documentation, guides, and samples
- Added hyperlinks to return values in API Reference documentation, making it easier for users to get more detailed information on classes, methods, functions, properties, etc.
- New guides and samples for advanced machine learning, object detection, feature extraction, generative models, and tabular data forecasting.
We want to remind you to check out the ArcGIS API for Python Esri Community page, where you can ask questions, suggest ideas for enhancements and improvements, connect with other users, and read recent blogs. The team really does monitor these pages very closely, and we use your feedback and suggestions to help us prioritize what we build into the API going forward. So please use it!