Esri APR Implementation, Tracking and Traceability, GIS Pipeline Practice

Pole Inspections on Your iPad via ArcGIS Online

July 6, 2012 — Skye Perry

Last month I wrote about the new ArcGIS Online functionality at 10.1 and why you should care. We were excited to see that there was a lot of interest in the topic which hopefully means you are already digging into the technology! This month I wanted to provide you with a look at our first utility demo implementation which focuses on the very common task of pole inspections.

In the past, we’ve worked with many, many electric utilities on this topic creating custom software, data import/export tasks, and various reporting and visualization routines. Today we’ll look at how we can accomplish the collection of pole inspection records via an iPad using ArcGIS Online to broker the data to the back office. We’ll then also tackle the additional challenge of getting that pole inspection data into our existing Telvent ArcFM™ data model.

Before delving into the exciting details of ArcGIS Online and iPad, I want to start with our existing Telvent ArcFM™ data model. Here we have the standard data model including our Pole feature class with a related PoleInspection object class:


Yours may vary slightly but I bet it’s pretty similar. Both of these classes are versioned within an SDE geodatabase and both are ArcFM™ Objects, meaning they are using Esri custom class extensions to provide specific Telvent ArcFM™ functionality. You can see this by viewing the properties of the Pole feature class within ArcCatalog on the general tab:


This is the norm for a Telvent ArcFM™ geodatabase, and using versioned ArcFM™ features does indeed add a ton of value to your system. The reason I mention it here is it throws an interesting wrinkle into your ArcGIS Online implementation, because we can’t natively use ArcGIS Online to edit ArcFM™ objects. Never fear… read on.

Our approach begins with creating a new pole inspection SDE feature class that is a standard Esri point feature class. This feature class can exist in the same geodatabase as our Telvent data or it could be added to a standalone geodatabase to keep it separate from the rest of the data for performance reasons.

This feature class will remain unversioned and will contain a subset of the fields that we have on the Telvent PoleInspection object class. We will call this feature class AGOLPoleInspection since it will be dedicated to ArcGIS Online.

Next, we will use ArcGIS Server to serve the back office data to ArcGIS Online. This data will include the base mapping data – electric wire, devices, poles, etc., as well as the new AGOLPoleInspection feature class. The base utility data is ArcFM™ data and will be served using a mapping service, whereas we will serve the AGOLPoleInspection feature class using a feature service. You can read more about the different types of Esri ArcGIS Server services here.

As a reminder, there are a number of ways we can secure our ArcGIS Server services – if we publish the services to the internet we can use authentication on our web server OR we can even leave them available only our VPN. You can choose the method most appropriate to meet your own IT corporate policy.

Alright! We are now ready to discuss our ArcGIS Online strategy. We will create a new WebMap containing an Esri streets basemap, the utility ArcFM™ facility data using one or more ArcGIS Server mapping services, and the AGOLPoleInspection feature class using an ArcGIS Server feature service. Our architecture looks something like this:


A key point to make about this architecture is that we are not hosting any of our back office utility data within ArcGIS Online. We are simply using ArcGIS Online to broker the data within a WebMap. This is important because you are not sucking up bandwidth within your ArcGIS Online account which would potentially use up your purchased credits.

In fact, in this scenario, your bandwidth usage is very low because the back office data is served directly off your back office ArcGIS Server environment. I am a big fan of this approach because it leverages your existing investment in ArcGIS Server which also provides many other major benefits in the back office.

Within ArcGIS Online we set up our new WebMap per the above architecture, give it an intelligent name and save it into our account:


Now we can share the WebMap with groups of authenticated ArcGIS Online users. In most cases, we will only be sharing an inspection WebMap with users inside our organization but we could also add users from outside our organization (such as contractors) as long as they can get to our ArcGIS Server data. We can create as many ArcGIS Online groups as needed and can specify the status of the group:


I then shared my WebMap with this new group so that users within my organization can easily use the WebMap from their devices:


And now we’re ready to check out our data from any supported device. For this example I am using an iPad but you could just as easily use an iPhone, Android, Windows, or any other device that has an Esri application.

I start by launching my Esri ArcGIS app which I downloaded from the app store. I am then able to login to ArcGIS Online directly from the device which shows a menu of groups, maps, favorites, etc., all tied to my online account:


As I browse into My Groups and then into the Pole Inspection Group, I see the Utility Pole Inspection WebMap that I published via ArcGIS Online:


When I load the map I see the Esri basemap along with all of the data from my ArcGIS Server mapping service.

Next, we will assume I am connected via the AT&T 3G (or similar) network and am walking the pole lines out in the field. I can click the GPS button to automatically locate myself on the map and zoom in to that location:


Placing a new pole inspection is as easy as clicking the edit button and choosing the pole inspection feature type:

You can then simply enter the information about the pole using the attributes. The attributes include all of the Esri domain values that I configured in the back office:


To place the pole inspection point on the map you can either use the GPS from the iPad or simply click on top of the pole that you are inspecting:


Next, I can click the attachments button at the bottom of the attributes panel to take a picture of the pole and/or associate one or more pictures I have already taken on my iPad:


Finally, I click the Finish button to place the new pole inspection record on the map. The symbol is tied to the ArcGIS Server feature service I configured in the back office:


As the pole inspection is placed on the map within the iPad it is also being saved to the back office geodatabase via ArcGIS Server and anyone reviewing the feature class via ArcMap, ArcGIS Server, etc., could immediately see the inspection feature including the picture(s) via any of the Esri tools such as the HTML pop up tool:


But our process does not stop here. SSP has taken the extra step to put in place a configurable batch application that will merge the standalone AGOLPoleInspection feature data back into the Telvent ArcFM™ pole inspection data model.

This application can be run on a scheduled basis (hourly, nightly, etc) and makes the pole inspection data available to all of the standard processes that may already be built around the ArcFM™ pole inspection data.

Here we can see the replicated pole inspection record for this same location in the ArcFM™ Attribute Editor:


The picture attachment data can be either saved as an Esri attachment within the feature or saved out to a file share and hyperlinked to the ArcFM™ record.

And with that said, we have taken the full trip from the back office ArcFM™ dataset out to the field via an iPad, collected new data, and had it made immediately available back within the central office. And it was all made possible via the new ArcGIS Online platform!

The pattern used in this example can be extended to almost any other utility field operation and opens the door to many new opportunities by enabling a blend of technologies in and outside of the office. I hope you now see why we are so excited about the potential for ArcGIS Online. We look forward to hearing about the specifics of your business requirements!

We Wrote the Book

The Indispensible Guide to ArcGIS Online

Download It for Free

Skye Perry is the CEO for SSP Innovations and has provided technical architecture, development, and management solutions for GIS-centered implementations since 2000. Skye’s roots tie back to Convergent Group, Miner & Miner, and Enspiria Solutions where he has focused on implementing Esri GIS customizations and system integrations. Today Skye is Read more


  • Thank you for a great post! I’ve created a few Web Maps for asset inspection (I work for a water and sewer utility) but I had the inspection feature class populated with the assets to be inspected so that the user would just have to click on an existing point and edit the attributes. This method has benefits (user doesn’t have to add an inspection point on top of another asset and the FacilityID is already entered for them) but also drawbacks (you are limited to one inspection per asset, can’t set up inspection templates etc). So I’ve been thinking about a similar method to the one you are highlighting here but was wondering how do you maintain the relationship between the pole and the pole inspection – is it the pole number field that is visible in your screenshot above? Do you rely on the user to enter this number during the inspection or is there a way to have it auto-populate/copy from the pole feature class? I know ESRI has a set of rules in their Attribute Assistant/ Infrastructure Editing Template for Desktop that will do this, but I have no idea how to get this to work in a Web Map. Could you accomplish this with a geoprocessing tool maybe? Any ideas?? Thank you so much!

    • Skye Perry says:

      Hi Alina, this is a very good question. You could potentially use the pole number IF your inspectors were going to populate that for every inspection point. But that would be a fair bit of overhead to put on the field users.

      So in our case we do NOT require the pole number to be populated on new records but instead are using an automated geoprocessing task on the server that uses a configurable spatial buffer on each inspection point to get the closest pole feature. The GP task is built into a configurable SSP Nightly Batch Suite app (one of our products) which runs on a scheduled basis.

      The app moves the data from the inspection record into the related record for the pole feature and either flags the inspection as “processed” or deletes it all together. This seems to work pretty well. If a matching pole cannot be found within the threshold OR if there are multiple poles within the threshold it can be kicked out to an exception list that can be emailed to a GIS admin or editor, etc.

      Your idea about populating the inspections ahead of time is also a good one! My next case study (due out next week) will be focusing on a similar implementation with quite a bit of back office automation. Thanks for reading!

  • Hi Skye,

    Thank you for the comment, it inspired me to think “outside-the-box” 🙂 I don’t know why I was stuck on trying to figure out a way to get my Facility ID calculated on the Mobile device. I figured out how to get the asset IDs calculated back in the office by running a tool that will copy the ID from the nearest asset. In this particular project, I can have two assets that can be within 15 ft from each other so there isn’t a lot of pressure on the field editor to add the point exactly on top of the existing asset. But as I think ahead, this workflow will probably not work when I move on to valve inspections as water valves can be really close to one another especially in a 4-way intersection. For that project I might have to go back to populating the inspection feature class ahead of time.

    Will you be posting about your new case study? I’m really curios to see what you’ve learned! Thank you again!

    • All good stuff, keep up the good work! The new case study will be published in our Energy Advisor e-zine tomorrow. If you haven’t signed up already to get our monthly postings, you can do so on our subscribe page. Let me know what you think once you read it. Thanks!

    • Absolutely, in this case we were mimicking the ArcFM pole inspection related object class but you can absolutely add whatever attributes you need to collect including text fields, drop downs, date fields, and attachments. Hope this helps!

  • I see that this post is a few years old now, and wondered if you would use the collector app for this application now instead? It seems to me that the big difference between the two apps is the collector app has the offline ability. I have not tried to sync or export info using the green app, but I wondered if it might deal with photos differently than the collector app.

    • We would typically use Collector in place of the green app at this point though the beauty of ArcGIS Online is that the same WebMap can consumed seamlessly in either application (even at the same time). Collector has a more advanced user interface and does support the offline usage as you noted through sync enabled feature services.

      It should also be noted that there is continued development being done on Collector whereas the green app is essentially in a steady state support phase (no new development). There were previously some bugs around collecting photo’s with collector but those have been resolved. The green app and Collector pretty much deal with photos the same way by using the ArcGIS Server endpoints for attachments. However they obviously are different client-side codebases.

      The key replacement for the green app is now ArcGIS Explorer which is already available for iOs and Android. Check that app out as well!

What do you think?

Leave a comment, and share your thoughts

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>