Day 2 of the 2023 Esri DevSummit was just as chock-full of information as Day 1. We continue our day-by-day recap and bring you the key takeaways and insights from our awesome team of developers. Read on, and catch the Day 1 recap here.
Wednesday, March 8th Recaps
Geospatial Developer, Axim Geospatial
Like Ryan, this is my first Developer Summit, and it’s truly hard to condense all the amazing things going on here into a paragraph or two. Out of all of them, however, I would say the two biggest takeaways for me are the new capabilities in 3D geospatial, and Esri explaining the tools and processes they use in creating their software and showing us how to use them.
As a developer, one of my key priorities is eliminating bugs and ensuring that everything works before we ship. Mike Dandini from Esri showed me several tools I hadn’t heard of, especially Puppeteer. Using Chrome DevTools to record some actions, you can replay those actions – but then also export them as a Puppeteer script so they can be run over and over. This allows me to test more consistently, and find bugs faster. He also gave me a one-on-one session explaining a neat library called node-config. Esri uses this to create flexible, adaptable configurations for different networks and environments, with minimal maintenance and less chance for “fat-fingering” errors as you deploy. For my team, this would be great with Experience Builder, as it is a very config heavy system.
I was also blown away by the capabilities and new functionality added to 3D WebScenes. New analysis tools to calculate solar incidence on a building, shadow casting, and line of sight open up so many opportunities to better plan and develop real-world projects. Using the new scene modification tools, users now have the power to edit and analyze 3D scenes on their own. As an example, you can cut out of a piece of ground, see what’s under the surface, find a pipe or other underground feature, run a query on the geometry and that feature, and you get back bounding boxes on all pipes in the map. It’s fast, quick, easy, and most importantly, it gives the user powerful information that just isn’t apparent at the surface level.
Solutions Architect, Axim Geospatial
The day started out with a continuation of the plenary, where some important announcements were made. First, there is much improved Arcade editing within the web map editor. There were many Python announcements that got people in the crowd excited. In the past when you upgrade Pro, any cloned Python environments you had would be basically ruined, and there was no good way to upgrade them – they’d have to be completely rebuilt. Now, the Package Manager in Pro can update/upgrade cloned Python environments so you don’t have to rebuild them. This will save Pro Python users hours every time a software update is performed. A few more tokens have been added to arcpy cursors, including tokens for dealing with Editor Tracking fields. Notebooks within Pro can now utilize GP tools a little easier, since you can now drag and drop GP tools from the Geoprocessing pane, and when you drop them into a Notebook cell the proper code snippet is inserted.
One development that is of great interest to me, the ArcGIS API for Python has been extended to include the ability to author, clone, and edit Story Maps via code. This is pretty significant, and there are things you can do with Story Maps and the ArcGIS API for Python that simply cannot be done any other way. You can copy existing Story Maps or even just portions of an existing Story Map and insert the copied portion(s) into another or a new Story Map. You can easily update Web Map item IDs. You can reorder nodes in Story Maps. These capabilities for working with Story Maps will be extremely helpful to several clients I work with right now, so these improvements will have an immediate positive impact on our clients. Finally, the new arcpy-basic package has been released, allowing more lightweight cloned Conda environments to run geoprocessing scripts with lower system overhead. Python is everywhere in ArcGIS!
Senior Geospatial Developer, Axim Geospatial
I got really excited by the Data Definition Language for the ArcGIS Pro SDK session today. This allows developers to have direct access to geodatabase objects to affect the schema of a geodatabase down to the field level. Since so many of my projects involve creating a geodatabase per client specifications, the ability to move away from geoprocessing tools and work directly in C# is a very welcome addition to the API.
By far the most meaningful part of the Dev Summit so far has been shaking hands with the Esri developers. They really do care about the developer community and will sit down to listen and help each person who comes to the booth. Whether it was discussing an API support ticket, a new feature from ArcGIS Ideas, or a client issue I couldn’t reproduce, they all gave their undivided attention and provided direct guidance to resolve whatever I needed help with. Truly a special group of people.
Senior Geospatial Analyst, Axim Geospatial
Morning Plenary – Some New Features
- Additional cursor tokens for streamlined reading and working with database-managed fields, as well as a more efficient and portable method of handling subtypes
- Introduction of da.Search and da.Update cursor tokens, including GlobalID@, Creator@, Created@, Editor@, and Edited@
- Subtype@ token is available for the cursors above, in addition to da.Insert cursor
- Richer display of “Describe” objects within ArcGIS Pro Jupyter Notebooks; additional drag and drop options from the file system and Catalog panes
- Robust geometry creation and modification capabilities using Arcade and Calculation Attribute Rules (ex: automated digitization of laterals to target houses from a manually digitized main line)
- ArcGIS Pro, ArcPy, and several open-source packages offer a variety of data frames, some of which are spatially enabled, to provide vastly improved processing times in some circumstances
- Open-source Arrow tables, Pandas data frames, Geopandas dataframes, and Numpy arrays
- Spatially-enabled data frames (SEDF) via the ArcGIS API for Python
Python Toolboxes for Developers and Novice Users
- For setup simplicity and ArcGIS version compatibility, .TBX may be the preferred toolbox
- In some cases, .ATBX may offer faster opening and parameter validation, and will be supported by Esri moving forward, but lacks backwards compatibility with users still on ArcMap
- .PYT may offer more portability and customizability, at the cost of design complexity
Using Python/ArcPy to Overcome ModelBuilder’s Limitations in ArcGIS Pro 3.1
- CIO of Coleman Group, Inc. offered counterpoints to Python’s assumed universal superiority over ModelBuilder
- ModelBuilder may be potentially preferential for: workflow mockups in brainstorming sessions; low/no-code for simple (but repeated) geoprocessing operations; and demos to non-technical staff, busy clients, or leadership
ArcGIS Field Maps: Advanced Workflows with Arcade
- Arcade provides capability to conditionally present end-users with fields (or groups of fields) based on various criteria (polygon has geometry, point has been places, related field contains value)
- Fields can conditionally be required, enabled, and editable, based on inputs from the user to other fields, including a feature’s geometry
- Pop-up formatting, title display, charts, and other elements can be added or removed dynamically during field use
Feature labels and formatting can also be manipulated using Arcade—recent releases allow in-line variables in strings.
Geospatial Software Developer, Axim Geospatial
ArcGIS Pro SDK for .NET API Enhancements
Notable enhancements/additions to the Pro SDK in 3.1
- Editing - Extend and customize the Editor Attribute pane (e.g. custom tabs)
- Content - New Start page UI controls for Configurations
- Geodatabase - DDL (Data Definition Language) updates to enhance Domains, Subtypes, and Relates
- Layout - API additions for map frame activation, graphic factory, and element factory; Tray button enhancements
- Map Authoring - Create catalog layer to store references for multiple different data types; Layer API for Time
- Map Exploration - Table View and Table Control enhancements
ArcGIS Pro Package Manager
- Conda is (and has previously been) used to manage python environments in Pro. This allows multiple, independent environments (with their own packages) to co-exist
- The Active Environment Manager now has an “upgrade” button to repair environments from previous versions so they work with new installations of Pro
- New Task Queue allows for things like package additions, upgrades, and repairs to run and display in queue
- Rich Representation
- arcpy.Describe() will now display as a table (previously displayed as json dictionary)
- Visualize geometry from SHAPE@ token in Notebook output
- Drag and drop existing python scripts from windows file explorer
- Drag and drop items from catalog pane
ArcPy Mapping Capabilities
- <aprx>.createMap() - add new map to catalog pane
- <aprx>.updateFolderConnections() - add new folder connection to catalog pane
- Editor tracking
- Creator@ - the editor tracking creator field
- Created@ - the editor tracking created at field
- Editor@ - the editor tracking last editor field
- Edited@ - the editor tracking last edited field
- Raster@ - the name of the raster field
- Subtype@ - the subtype field
- GlobalID@ - the globalID field
- Arcade is an expression language that can perform mathematical calculations, format text, and evaluate logical statements. It also supports multi-statement expressions, variables, and flow control statements. Arcade is unique when compared to other expression languages because of its inclusion of feature and geometry data types.
- Esri is investing more in Arcade extensibility (initial investment started about 8 years ago)
- Portable (e.g. Enterprise, Pro, Field Maps, AGOL, etc)
- About 195 functions available to date
- Attribute Rules profile
- In the Attribute Rules profile, Arcade scripts are stored in geodatabase; they are executed when you make edits to geodatabase
- Can be used to automatically populate attributes, restrict invalid edits during edit operations, and perform quality assurance checks on existing features
- Attribute rules are complementary to existing rules used in the geodatabase, such as domains and subtypes
- Part of schema
Data Frames (Python)
- Data frames can be extremely beneficial when working with large amounts of tabular data
- Pandas, geopandas, numpy, pySpark, Spatially Enabled Dataframe (SEDF), ArrowTable
- You might observe significant improvement in processing time if you convert data to a dataframe before processing
- Apache Spark
- Built into Pro
- GeoAnalytics Desktop Tools and GeoAnalytics Server Tools
- If new to constructing URLs and interpreting results, Postman and Hoppscotch (open source) are available to help
- Postman can generate code in various languages
- Hoppscotch can import files generated in Postman
We hope this DevSummit recap has provided some value to you! If you ever need development help, don't hesitate to reach out to the Axim team.