Tim Witt, a 911 GIS analyst in Brevard County, Florida, continues to find new ways to work smarter while maintaining the accuracy of the GIS data that the county’s public safety staff depends on.
Brevard County has had an active GIS program since 1988. Located on Florida’s east coast, the county covers 1,557 square miles and has a population estimated at more than 544,000.
Witt began working as a 911 GIS analyst for the Board of County Commissioners in 2008. Previously, Witt had worked for the University of South Alabama, where he had also obtained a bachelor’s degree in geography.
Witt initially thought he would be mostly concerned with the accuracy of addresses and street data. However, his perspective began evolving as his knowledge of GIS and its use in 911 systems grew.
“I learned that there was more to it,” said Witt. “My data was used to route emergency vehicles, and it made sure that the right agency responded to a 911 call. With Next-Generation 911 shifting more towards GIS data, it was crucial that my data was close to perfect.”
When reading GIS articles about Next-Generation 911 data, he kept encountering the word topology. He researched this term and learned that it is a collection of rules that work with ArcGIS software to more accurately model the geometric relationships of features and ensure data integrity. Although currently implemented for geodatabases, topology has long been a key GIS requirement for data management and analyzing spatial relationships. To maintain data integrity, topology must be validated after features have been edited.
For Witt, topology was more than an abstract concept—it had a real impact on his job. “In 911 terms, this meant to me, all your street segments need to be snapped, and your response zones can’t have gaps or overlaps.”
Doing It All by Hand
Armed with the knowledge of the importance of topology, he began building his first topology in ArcCatalog. “I was happy to see that Esri had a good help section that explained how to create a topology with my own data, how to add topology checks, and how to validate the topology. Even though this process was very time-consuming, it gave me the results I needed.”
Witt fixed a lot of unsnapped street segments and made his response zones seamless, but he had to work to keep them that way. Witt’s 911 data is updated every day with new streets or changes in response zones due to annexations. To stay on top of these changes, he planned to run topology checks once a week. However, performing these checks manually was time-consuming, and soon, Witt was looking for a way to automate and speed up the process.
Speeding It Up with ModelBuilder
He found that ModelBuilder was a good way to automate his topology validation processes. ModelBuilder is an application that works in ArcMap and ArcGIS Pro that lets users create, edit, and manage models. It functions as a visual programming language that replicates workflows and links geoprocessing tools so that outputs from one operation can be input into the next.
“I ended up using ModelBuilder to streamline my processes. This meant I needed to build a model for each of my layers, run each model, and eventually add the topologies to an MXD [ArcMap document] to fix found issues.”
Creating a Python Add-In
Witt used the ModelBuilder models he had developed for a long time. Along the way, he decided to add Python programming to his GIS skill set. Python is the standard scripting language for ArcGIS, which is integrated with the platform, and can be used for automating tasks and extending functionality.
While he was learning Python, Witt came across an instructional video by Esri that showed how to create Python add-ins for ArcGIS Desktop. He realized that an add-in could streamline his topology checks even more. After about a week of programming, he shared a rough version of his add-in with GIS colleagues on the GeoNet forum. Members of this online Esri community tested his add-in and gave him feedback that led him to adjust the interface and improve the functionality. In return, he shared the finished add-in with the GeoNet community.
Witt’s Topology Check Python Add-In checks polygon layers for gaps and overlaps and line layers for unsnapped and overlapping features. It will automatically add the errors to the MXD. “The beauty of a Python add-in is that you can easily share it with everybody. No programming skills are necessary to use it. The Python add-in can also be used with non-911 data. For example, if you want to check if your pipeline network has any unsnapped segments or if your ZIP code layer has gaps, there is now a tool for that.”
To get Witt’s add-in, go to geonet.esri.com/docs/DOC-9983-topology-check-python-addin. Contact him at firstname.lastname@example.org.