Showing 7 result(s) for tag: arcgis

Delivering accessible mapping applications for everyone [Geocortex Tech Tip]

Accessibility has become a top-of-mind topic for businesses, government agencies, and developers of technology in recent years; U.S. legislation like Section 508, which requires inclusivity for end-users of all abilities, has emerged in recent years and historic exemptions for web mapping have been eliminated.

Since 2015, Geocortex Viewer for HTML5 has been accessible out-of-the-box and meets the criteria to be Web Content Accessibility Guideline (WCAG) AA compliant, without requiring administrators to undertake complicated and onerous configuration or development. In this week’s Tech Tip, Garrett takes a closer look at screen reader support, keyboard navigation, and other accessibility features that ship with Geocortex Viewer for HTML5.

Watch on YouTube

 

Video Transcription

“Hi my name is Garrett, I work on the Product Experience Design team here at Geocortex. Today we’re going to take a look at some of the accessibility features included in our viewers. You don’t need to do anything to configure these – they’re all included out-of-the-box with every viewer implementation.

Geocortex Viewer for HTML5 is accessible and meets WCAG AA standards. This has taken a lot of work on our part to look at many different things, from color contrast to screen reader support to keyboard navigation.

Let me show you how keyboard navigation works in [Geocortex Viewer for HTML5]. First, we have skip links. When you first come to our viewer and use the tab key to navigate throughout the application, the first time you hit “tab” you’ll be presented with what we call skip links. This gives you quick shortcuts to jump to popular portions of our viewer.

The skip links allow you to jump to other regions in our application without having to tab through each individual, clickable item. If we wanted to jump straight to the tool bar, we just tab over and hit enter. Now once the toolbar is open, we can navigate through the different tabs on the toolbar to find an individual tool that we want to use.

Let’s try drawing a polygon on the map. When we activate the drawing tools with keyboards, we have activated “accessibility drawing mode”. Once we’ve activated the polygon drawing tool, our focus is now on the map, as indicated by the purple line around the map. We can now draw on the map using the keyboard.

Hitting Enter will drop a marker in the center of the map extent, and we can control the position using the arrow keys on the keyboard. Hitting Enter will drop a vertex on the map, from which now we can move our cursor around with the keyboard. Hitting Enter again will drop another vertex. If you find that the increments with which the keyboard moves around is too large, you can hold the Alt key and you get a more fine-grained control over where you want to drop the vertex.

Hitting Enter again will complete the shape, and now we can edit this shape using the keyboard shortcut “V”: we can cycle through all the vertices, which we can move. Holding Shift+V will cycle the vertices in reverse order. Between each vertex, another handle will get added that we can then drag out to edit the shape, which will add more handles that we can edit. When we’re done drawing the shape, hit Enter again to complete the shape. And now your shape is drawn on the map. If you hit Enter again, you can draw a second shape. And that’s how you draw on the map with the keyboard.

Another great accessibility feature in our viewers is screen reader support. Geocortex Viewer for HTML5 supports the combination of Firefox with the NVDA screen reader. The screen reader will read aloud changes in the application, links, text, map location, those sorts of things.

In combination with some of the keyboard support, we can navigate through the viewer and the visually impaired will have the benefit of a screen reader reading out the context and instructions to them. Let’s try a couple examples here.

[Screen reader reading results]

Now know that we can perform a search because the screen reader has read out those instructions for us. So, let’s perform a simple search.

[Screen reader reading results]

After we perform the search, the screen reader read out that we’ve closed the home panel and opened the search results panel. We can tab through here to hear other instructions.

[Screen reader reading results]

As you could hear, as we zoom to all the features in the feature collection, the screen reader read out the coordinates and extent change on the map to keep users centered with where the map is now located.

To learn more about accessibility with our viewers, you can visit our Documentation Center at docs.geocortex.com. Just search for “accessibility” and you can read all about accessibility in our viewers, including a detailed list of all the keyboard shortcuts to help you navigate through applications with just the keyboard.”

​You can learn more about Geocortex Essentials accessibility features in our 2017 webinar, which is available on YouTube here.


How to search for data in a non-spatial database [Geocortex Tech Tip]

Maps allow you to visualize data in meaningful ways and expose patterns that can’t be seen anywhere else. One of the challenges, though, is that your most important business data typically lives in another system or database. This can become even more challenging when it’s data stored outside your geodatabase.

In this Geocortex Tech Tip, Drew Millen shows you how to search for data in a non-spatial database (such as Oracle or SQL), find the spatial relationship, and display it on a map. 

Watch on YouTube

 

Video Transcription

“Hi everybody, I’m Drew with Latitude and in this Tech Tip we’re going to look at searching for non-spatial data. That’s data stored in Oracle or SQL Server… somewhere that’s not in your geodatabase. We’re going to look for that, find the spatial relationship, and display it on a map, so let’s see how we do that with Geocortex.

What we’re looking at here is a very basic Geocortex viewer application that’s been configured with a single layer called “Land Use”. This contains polygons of different types of land uses and what I’m interested in is this “Arts and Recreation” land use polygon, which contains park information for Los Angeles County. I also have a database table - in this case, an Excel spreadsheet of trees. Now notice that I‘ve got records of all the different types of trees that exist, but I don’t have location information for these. In other words, this is a non-spatial database table. This could live in Oracle or SQL Server, but for the sake of this demonstration it’s just an Excel table.

We’ve got a facility that tells us which park this tree belongs to, but we still don’t have its “XY” location on the map. What I want to find out is where I can find certain trees in my county, so, what parks do I have to visit to discover certain types of trees.

Now in this application, I’ve got a data link between my parks layer, or my land use layer, and the tree database. So, if I have a park selected, and I view the additional details for [the park]; I can see the spatial details associated with that park and I can also see the trees that are within that park, but I’m not quite there. What I want to find out is which parks contain which trees... and remember, my trees don’t have “XY” locations.

How do I solve this? Well, I’ve already set it up so that we can do a search against this Excel table. So, if I do a search for the word “macadamia”, for example, I will find search results from that Excel table, but I still don’t have the location on the map where these macadamia nut trees exist. I need to create a “join” between these search results and a spatial layer on the map to find the underlying spatial feature. In other words, the park that the trees live within.

What I can do is come back to Geocortex Essentials Manager where I’ve configured this application. And to connect to this Excel spreadsheet, I’ve established a data connection. You can see the connection string that we’ve used here simply points to the spreadsheet. If you’re connecting to Oracle or SQL Server, there’s different syntax that you would use for your connection string, but the same idea exists.

Now that we have that data connection, we can set up what we call a “Search Table.” And a search table gives us a select clause: in other words, which fields are we interested in returning from that table when the user issues a search. In this case, we want the user to be able to search on the common name of the tree (like my example when I typed in the keyword “macadamia”) and find all the attributes from the LA Parks trees in this database. So that search is set up.

I’ve also got the land-use layer in my site configured with a datalink. This datalink means that the layer is joined to this data connection, so that every time I click on a park on the map, I see the associated records from my Excel spreadsheet. Recall, however, that I want to do the reverse. So, our current datalink makes sure that every time I select a park on the map I’m grabbing the trees and joining it on the facility column. Notice that facility column is the name of the column that we're using in the spreadsheet to represent the park that the tree exists within.

There’s this section down at the bottom, here, that allows me to add a search, so that’s the reverse of what we’re currently doing, and it allows me to use one of the searches that I’ve configured to find these features from the land use layer that match my search criteria from my datalink.

I’m going to give this a display name. We’ll just use “Park Trees Search,” and the search table that I’m searching on is the only one that we’ve configured in our site earlier, so it’s this Park Trees Search table. And then the field that we want to join is called “Facility,” and that maps to the name of the land use polygon. So that’s where we get our many-to-one relationship from. I’ll go ahead and save the site with those configuration changes and then refresh our viewer.

Now I’m going to issue a search for the word “macadamia” like I did before, and I’ll find the same four results from my Excel spreadsheet. But now when I drill into a result, we can see the facility that it belongs to. It exists in two different parks: there’s “Runyon Canyon Park” and “Runyon Canyon Park – MRCA”. If I click on one of those it’s going to take me to the park where I can discover these macadamia trees.

Hopefully this quick Tech Tip has shown you how you can configure a non-spatial data source to be searchable inside your viewer and still return spatial results. Thanks for watching!”

Explore more Geocortex Essentials functionality in the Discovery Center.

Discover Geocortex


Configuring Geocortex Analytics to monitor a new Portal for ArcGIS instance [Geocortex Tech Tip]

Geocortex Analytics helps you get a complete picture of your GIS infrastructure; you can ensure peak performance, keep your users happy, and avoid interruptions. For many of us, Portal for ArcGIS is a critical piece of the GIS environment, and one that we want to monitor.

In this Geocortex Tech Tip, Aaron Oxley shows you how to configure Geocortex Analytics to monitor a new Portal for ArcGIS instance.

Watch on YouTube

 

Video Transcript

“Hi, my name is Aaron Oxley. I’m a Product Support Analyst at Latitude Geographics and in this video I’ll be explaining how to configure Geocortex Analytics to monitor your Portal for ArcGIS.

Once you're logged in and looking at the summary page in your Geocortex Analytics reports, click the “configuration” link in the top right corner. And that will take us to the configuration overview page, and we can see to add a new resource, we need to click “add resource” in the bottom of the resource list. Let’s go there.

Portal for ArcGIS is what we’re after. As you can see, there’s not a lot of configuration required. The first thing that we need is a name. This is what’s going to show up in reports, alarm emails, and texts. I like to use the name of the server where the portal is hosted, even if you only have one portal, it’s a good naming convention in case your environment grows in the future.

In the next field, you’ll need the URL to your Portal for ArcGIS. You can see there’s an example here; the default URL is “servername/arcgis”, but if you aren’t sure about what to put here you can confirm the correct URL by testing in a browser.

I’d like to do that, so let’s open a new tab and load up our portal. We can see this is our portal, so we know the URL is correct. Let’s copy it and take note of the protocol. We can see here that it is HTTPS. We’ll paste the URL and toggle the protocol field to HTTPs.

Now lastly, because your Portal for ArcGIS is secured, you need to enter credentials, and they need to be from an administrator account. There’s five options here. First one is token, and if your portal uses token authentication it’s very straightforward: just enter a username and password for an administrator and click save.

The next option -- OAUTH2 -- is certainly the most common, and it’s also Esri’s recommended methodology for user sign in. We see a message here that we’re going to need an app that has this redirect URI. We’re also going to need an app ID, an app secret, and lastly, we see a message letting us know that we are still going to need to provide administrative credentials.

So, let’s go and get this app created: come over to your portal and click “content” in the top. Under my content, click on “add item” and select an application. In here, we’ll select an application again and enter a title, and some tags. If we click “add item” that will create our application, and we can see it there.

Under the “settings” tab, near the bottom, there’s a registered info button. If we click that button, and then click the update” button, we can enter a redirect URI. If you remember from the configuration page here, we have the redirect URI specified. We can copy that and paste into here. Click the “add” button and it shows up in the list below, click the “update” button and it’s all set.

Now lastly, before we go back to the configuration in Geocortex Analytics, we need the app ID and app secret. Go ahead and copy the app ID, paste into the corresponding field in Geocortex Analytics. Same thing with the app secret. That’s all there is to it. We can now click “save” and we should be prompted to sign into ArcGIS Enterprise.

So, this has now taken us to Portal for ArcGIS. These are administrative credentials for portal, so this is an account that has administrator access. “Sign in” brings us up to “Save Successful” and we can see that it was saved successfully.

The third option for authentication types is good old Windows authentication, and it really is as simple as entering username, password, domain, and clicking save. As with the other types, this does need to have full administrative access.

And the last two options are just combinations of the previous three in case your portal is configured with two layers of security. But the procedure is the same. Just follow the exact same steps as for these ones above. And that’s all there is to it.

Once again, my name is Aaron Oxley, I hope this video was helpful. Thanks for watching!”

To learn more about how Geocortex Analytics can help you get a better understanding of the performance of your GIS, please get in touch and we'd be happy to take you on a tour of the product.


Getting started with forms in Geocortex Workflow 5 [Geocortex Tech Tip]

You hear us talk a lot about the importance of keeping your end-users in mind when developing GIS tools and applications; we built Geocortex Workflow 5 to help you improve user experience by allowing you to guide end-users through complex business processes in simple, intuitive ways, which is largely achieved through forms for capturing user inputs.

The improved forms offered with Geocortex Workflow 5 go beyond just simple text inputs; you can present users with checkboxes, dropdown menus, and geometry and file pickers. In this Geocortex Tech Tip, Ryan shows you how to get started and build your first form for deployment inside Geocortex or Web AppBuilder for ArcGIS.

Watch on YouTube

 

Video Transcript

“Hi, I’m Ryan, and I’m a Product Manager at Latitude. Today I’m going to show you how to get started and build your first form with Geocortex Workflow 5. Let’s get started.

One of the main uses of [Geocortex] Workflow is to create an experience that guides the end-user through some sort of business process. Typically, what that means is that we are presenting forms to the user so that we can capture inputs from them, then pass on to the rest of our workflow, which actually executes the business logic based on the data the user provided. So, an indispensable tool in [Geocortex] Workflow is the “display form” activity, available here in the tool box.

To get started, just drag [the “display form” activity] onto the design area and connect it to the flow chart. Now we have a workflow that contains one “display form” activity. If I double click that activity, it opens the form designer experience. We can see here that I have a header that contains my title, and a footer that’s got some buttons in it for “submit” and “cancel”. So that’s what we have by default.

I can change the title of the form if I want to "My form". And if I wanted to, I could change the buttons around to “back” and “next” instead of “submit” and “cancel” or add and remove buttons as needed.

And then we’ve got a selection of form inputs that we can choose from, depending on what type of information we need to capture. So, just starting with something simple, a textbox, we can drag that onto the [design area]. And let’s say that we wanted to create an address entry form. I can change that textbox’s title to just be “address”. And if I want a little description underneath that, I could put something like “enter an address” in there and it shows up.

There’s even some cool things that we can support, like markdown, to make it have some improved formatting. If I wanted bold or italics, or things like that, that’s available. And I can supply a value.

Okay, so that’s sort of a basic input that we’ve fleshed out. There’s also all kinds of other things that we can add. If I wanted radio groups or check box groups, dropdown lists, all sorts of things are possible in here. And even things like a geometry picker is going to allow the end-user to draw a shape or multiple shapes on the map. File pickers can [also be used to] capture pictures from phones and things like that. All these different items are available in here.

So now what we do is, I’m going to hit “Ctrl+S” to save this and am going to demonstrate this form running in our sandbox application. So, we can see this workflow running with various Esri APIs - in this case just a 2D map. Here’s the form showing up, as it was designed. There’s my text input, I’ve got radio buttons that we didn’t bother to configure, I’ve got a geometry picker that’s going to allow me to draw a shape on the map. All that information is available just from that, the simple clicks that set-up that form.

And the last thing I’ll show here is a couple real applications. This is just a sandbox for testing, but if we were to look at WebApp Builder [for ArcGIS], I can connect to a widget that’s going to run that workflow.

Here’s that exact same form running from the workflow I just edited, available here. That’s a 2D Web AppBuilder for ArcGIS application, and then here’s a 3D one that runs a completely different viewer and a completely different layout that’s being used, but it runs just the same, so we can get our forms rendered and we can start capturing input.

That [should be] enough to get you started. Stay tuned for future [Tech Tips] where we look at how we can get this data out of the form and pass it on to our workflow process.”


Running Geocortex Essentials workflows from an identify operation [Geocortex Tech Tip]

The Geocortex Essentials identify operation allows you to draw a geometry on the map, and have the application return a collection of features that intersect that geometry. But the identify operation will only return results from your GIS layers, and many (likely most) of us integrate our GIS with various 3rd party business systems, such as asset management, document management, ERP, and business intelligence.

In this week’s Tech Tip, Drew Millen will show you how to invoke a Geocortex Essentials workflow from an identify operation to return non-GIS results. Perhaps you want to see documents in your document management system displayed on the map, or geo-located tweets for a specific area. Kicking off a workflow from the identify operation will allow you to display these types of results and will help you avoid writing a ton of custom code to do so.

Watch on YouTube

Video Transcription

“Hi, I’m Drew Millen, Director of Products at Latitude. In this short Tech Tip video, we’re going to talk about workflows; specifically how you can make Geocortex Essentials workflows run in Geocortex Viewer for HTML5 when you perform an identify operation. Let’s dive in.

I’m going to show you how to use identify workflows, which are Geocortex Essentials workflows that piggyback on top of the identify functionality. In this site, I’ve got the default identify behavior working, so when I perform an identify [operation], I’m going to find cities on top of this map, and I want to run a workflow every time I perform an identify as well.

Let’s look at the configuration file that supplies the configurations for this viewer. There’s a module in here called “identify”, and we want to configure the identify behavior. This [view you’re seeing] is the desktop.json.js file that configures the viewer we were just looking at. Notice that the identify module has a section called “identify providers”. It’s here that we specify which logic will run when an identify is performed by a user: for example, querying a graphics layer, or querying the map itself. And down here, I’ve added a workflow identify provider. I’ve also supplied some configuration to this identify provider, so it’s looking for workflows in my site with the suffix “_identify”. Any workflow I’ve added with this suffix will be run by this workflow identify provider.

With that in place, let’s author our workflow. I’m going to open the Geocortex Essentials Workflow Designer. If you go into the “file” menu and click on “new”, you’ll see that we’ve provided a template for creating identify workflows. This template supplies a basic example to help you get started. If you look at the arguments, an identify workflow is expecting a geometry as an input argument. That geometry comes from the identify the user performs. It’s also expecting a unique identifier just for some bookkeeping. We can just ignore that property.

The other properties are output arguments - things that your workflow must supply. For example, the feature set that’s returned from your query, the display name for that collection of features, and any aliases and formats that you want to use for the features that come back. In this example, we simply query a sample layer from ArcGIS Online that looks at [US] states. The geometry from the identify operation is passed in as a parameter to perform that identify. We set the display name to be "states” and we supply some aliases for the fields that are going to come back, making it readable for the user. And we supply some format strings for features that are going to be displayed in the map tips and results list.

With this workflow developed, we [now need to] attach it to our site so that it can be run every time we perform an identify operation. Let’s look at this app in Geocortex Essentials Manager, and I’ll navigate down to the workflows tab where I want to attach this workflow that we were just looking at. Recall that it must have an “_identify” suffix to be picked up by my workflow identify provider. I’ll give it the name “helloworld_identfiy”. Now it’s looking for the URL or URI of the workflow I just authored. So, I’m going to browse for that, and I’m going to go into the directory that we have for this site. I’ll upload it into a folder I created called “resources”. It’s now stored on my workstation as “helloworld_identfy.xaml”. I’m going to go ahead and upload it to that directory and select it.

Now Geocortex Essentials Manager is smart enough to know that this workflow has parameters, so I’m being prompted to supply them here. Because the geometry and unique identifier are going to be supplied by the identify operation, we don’t need to supply them here.

The workflow is now attached to my site, so I’ll go ahead and save it. Let’s refresh the viewer and see the resulting behavior. I’m going to run an identify again, which will identify the cities, but it should also run my workflow and grab the states. Here we can see the result of my states workflow populating the list of results that I expected.

To view a more sophisticated example, we’ve also done the same thing by integrating a workflow that uses the Twitter API to find tweets within a geographic area. In this case, I’m going to perform an identify at the San Francisco airport and discover all the tweets that have been added in this area in the last hour. This is a more sophisticated example of using an identify workflow in a Geocortex Viewer for HTML5 application. To learn more, please get in touch. Thanks for watching!”

Want to learn more about Geocortex Essentials? Visit our Discovery Center to take it for a spin and explore real-world examples of how Geocortex Essentials helps organizations address common (and not-so-common) business challenges.

Visit the Discovery Center

 


Build custom activities with the new SDK for Geocortex Workflow 5

It’s now been a few months since we officially launched Geocortex Workflow 5, and it’s great to see our users building some innovative apps with Geocortex and Web AppBuilder for ArcGIS®!

One thing that we’ve been hearing, though, is that developers want the ability to apply their own code in the workflows they’re building.

As of version 5.2 (released a few weeks ago), Geocortex Workflow 5 now offers a software development kit (SDK) for building custom workflow activities. The SDK is TypeScript-based, allowing you to write your own custom code to run in workflows, with your builds producing the JavaScript required to execute the activities at runtime.

So, what are “activities”? In the simplest terms, they’re the building blocks of a workflow - each activity represents a unit of work. Geocortex Workflow 5 offers more than 150 pre-built activities that chain together to automate almost any task. Activities such as geocode, query layer, set the map extent, get user info, calculate distance, buffer geometry, run geoprocessing, and so many more allow you to streamline even the most complex GIS and business tasks.

Flex your development chops and write activities to perform tasks that weren’t previously possible – or were extremely complex to assemble with pre-built activities. You can combine your programming skills with Geocortex Workflow’s intuitive, activity-based design to build powerful applications.

Custom activities can be built for yourself, or for others in your organization; even non-developers can work with activities as they would any others in Geocortex Workflow Designer. And granted that your technology of choice supports the functionality you’re building, custom activities can be consumed in Geocortex and/or Web AppBuilder for ArcGIS applications.

Take Geocortex Workflow 5 even further

While most tasks can be automated with the pre-built, out-of-the-box (OOTB) activities offered with Geocortex Workflow 5, you can now build anything you want with the SDK. Custom integrations, talking to custom web services, connecting with 3rd party APIs, and interfacing with custom code in your existing apps are now all possible.

Here are a few examples of what you can do with custom activities:

  • Perhaps you want to integrate with a 3rd party system like SAP®. While this is possible with pre-built activities, you’ll be manually assembling workflow logic to make the web requests, parse the responses, and execute your business logic. With the latest updates, you can achieve a result that’s more clean, efficient, and consumable by wrapping the logic in a few simple custom activities.
  • Many common tasks are time-consuming to build – maybe you find yourself using the same pattern over and over in one workflow. Instead of following this repetitive pattern, you can bundle all the logic within a single custom activity. An example might be sorting map features by multiple columns. Pre-built activities are available that will sort data by one column, but it’s more efficient to write a custom activity to sort by multiple columns than it is to link activity after activity – especially if you need to perform these tasks across multiple applications and workflows.
  • At the more complex end of the spectrum, you can build custom user interfaces using React (a leading JavaScript library for building user interfaces). This is the most challenging to achieve, but if you’re up for the challenge, it provides complete flexibility. If you’re thinking of doing this, we recommend chatting with us beforehand - we want to help make sure you’re on the right path.

Set a standard

Unless your organization follows strict guidelines for building custom apps and widgets, there is always the risk that developers will use different patterns and approaches to develop custom code. This makes it difficult for others to maintain or update the code; it can be a bit like the wild west.

This can be mitigated with Geocortex Workflow 5’s custom activities. All activities have the same, simple signature of inputs, outputs, and an execute method. Following the activity-based pattern ensures you have a standard practice for building custom logic.

With activities, you are implementing a unit of work rather than a large, rigid solution. This promotes reusability and your code will be easier to write, interpret, test, and maintain. Any developer will be able to pick up your custom activities and understand how to work with them.

You can also control how custom activities are presented to other users in the browser-based Geocortex Workflow Designer. They can be configured to look like the existing OOTB activities, helping ensure a consistent pattern across your apps.

Custom activities in Web AppBuilder for ArcGIS®

At Latitude Geographics, we’ve always built complementary technology to help our customers accomplish even more with Esri’s ArcGIS platform. With Geocortex Workflow 5, we’ve taken this to a new level by allowing you to build workflows that run inside Web AppBuilder for ArcGIS.

If you’re using Web AppBuilder for ArcGIS, creating custom activities with Geocortex Workflow 5 is still the preferred alternative to writing a bunch of custom widgets. Initial deployment will require a similar amount of effort, but ongoing maintenance and modifications of custom activities require significantly less time (and pain!).

If you write a custom widget for Web AppBuilder for ArcGIS and want to deploy it to multiple apps, you need to edit the source code in all the applications using that widget each time a modification is required. With Geocortex Workflow 5, the custom code is packaged in an activity, and you only need to modify the source activity for changes to be applied across all your applications.

Learn more about deploying workflows inside Web AppBuilder for ArcGIS in the Geocortex Workflow Discovery Center.

Start building today

You can access the SDK in our Documentation Center. Just look for the .zip file that contains all the necessary instructions you need to get started.

Let us know how it goes

As you get going with the new SDK, we want to hear your feedback. If you have questions, comments, or concerns, please get in touch with us to let us know.

We’d also love it if you share what you’re building with us and other users in the Geocortex Workflow Community. This is a great place to connect with other users - everyone benefits from sharing tips, tricks, and sample workflows.

Happy building!

 


Demystifying Pipeline Data Models

If you’re reading this, you’re likely involved with managing GIS pipeline data. If you aren’t, I recommend checking out an informative, relevant (and quite possibly more interesting) read on enhancing your GIS with integrations or connecting business processes to your GIS. If you’re still with me, strap in.

Why do we talk about data models so much in the pipeline space? From my years interacting with operators, vendors, and regulators, I believe it comes down to a handful of reasons: 

 
  • The regulatory landscape;
  • The need for thorough and accurate data;
  • Meeting demands of complex implementation architectures;
  • Maintaining interoperability; and
  • Aligning with industry standards for linear referencing.

The pipeline data model landscape can be a difficult one to navigate. Operators work with significant amounts of data and there is no shortage of models to explore.

In my last post, I introduced ArcGIS Pipeline Referencing (APR). APR is at the core of an integrated offering from Esri that incorporates linear referenced GIS (LRS) into the ArcGIS® platform. APR focuses on the “core” of the LRS, with modeling of the data on the line (events) being stored in either a Pipeline Open Data Standard Next Generation (PODS) or a Utility and Pipeline Data Model (UPDM).

This is a slight deviation from previous approaches, which has introduced some confusion. PODS and UPDM provide database models to organize your pipeline data, while APR provides a set of tools to manage and interact with it inside your GIS. Hopefully the diagram below helps explain it a bit.

Legacy data models and their impact

With the emergence of Integrated Spatial Analysis Techniques (ISAT), pipeline operators have had methods to store data about their systems and the surrounding environment since at least the early 1990s (some methods probably pre-date that). These methods have continued to develop through the work of the PODS organization and contributors to the ArcGIS Pipeline Data Model (APDM).

Each of these have offered unique benefits to the industry, but they’ve also introduced unneeded fragmentation to the landscape. As I mentioned in my previous post, APR helps simplify this by providing consolidation.

Pipeline Open Data Standard (PODS)

PODS is the data model standard for the pipeline industry. Founded in 1998, PODS was developed to extend legacy models (ISAT), and provide a baseline for software solutions in the industry. Since that time, PODS has established itself as the industry standard.

The success of PODS is rooted in the unique nature of operators and vendors coming together to meet the storage, analysis, regulatory, and reporting needs of the industry. It is important to note that PODS is more than a data model: it’s a group of individuals coming together to discuss, evaluate, and establish the data needs for the industry. The work of the PODS organization extends well beyond how to model a pipeline in a database.

PODS exists predominately in two variations: PODS Relational and PODS Spatial. Both models share a structure and format that adheres to the PODS standards, but differ in how they’re implemented. PODS Relational leverages core relational database standards, and PODS Spatial provides a native implementation for Esri Geodatabases.

Important to note: even though PODS Relational is designed as a GIS-agnostic data model (i.e. it’s not a geodatabase), most every implementation I have worked with has vendor-developed implementation methods and toolsets that integrates with Esri’s ArcGIS platform.

ArcGIS Pipeline Data Model (APDM)

APDM is the Esri pipeline data model template for pipeline assets. As with all of the models provided by Esri, APDM is a method for operators to access a structured data model, free of charge, in full support of an Esri implementation.

The template nature of APDM differs from the standards designation of PODS by allowing any portion of the base template to be altered to meet implementation requirements. This flexibility is the single biggest deviation from the standards-driven approach of PODS. Another separation between APDM and PODS is that APDM focuses on the features that make up the pipeline network itself, and is not intended to be as encompassing as the PODS models.

With the release of the UPDM, APDM has ultimately been retired.

Utility and Pipeline Data Model (UPDM)

As mentioned, UPDM has essentially replaced APDM as the recommended Esri pipeline data model.  This model provides an implementation foundation for gas and hazardous liquids industries. UPDM has been designed to work with or without the APR linear referencing component of the ArcGIS platform.

Most importantly, UPDM is the first model released that allows vertically-integrated utilities (gas distribution companies that operate regulated, high-pressure lines) to consolidate database schemas, and centralize data management to a single model.

Conclusion

I hope this post has helped demystify the world of pipeline data models, as there is a lot to consider and it can be difficult to understand.

Next week, I will dive into what you should consider when choosing the best pipeline data model for your operation, including the limitations of different models, how APR is addressing the limitations, and the questions you should be asking yourself.