Home > GIS > Python-based Alignment Sheet Generator

Python-based Alignment Sheet Generator

The very first alignment sheet generator software we wrote was way back in the days of ArcView GIS 3.x using Avenue and some tiff libraries for performing image rotation.  When ArcGIS 8.x came around we did an overhaul of the application to take advantage of an event driven environment where much more of the data could be live fed into a rotated data frame and labeling (and overposting) was dynamic.  It definitely made for an improvement on the overall application and usage.

After porting to 9.x and maintaining the application for the last few years as ArcGIS minor versions and service packs were released we decided to drop the entire code base instead of porting to 10.  Risky?  Yup, you bet, but how else will you get step change improvements if you keep dragging legacy code around?

First thing we did was do survey of the exposed and desired functionality of ArcGIS 10 with all the new mapping modules and interaction with maps and layers and data driven pages.  Let’s just say that the amount of functionality exposed to Python was sufficient (not perfect) to allow us to move forward.

alignment

Next step, wrap up all the functionality we needed into our pygp python package, things like offsets and angles for on-pipe data (blue)

mosaic

and the ability to read PODS and APDM data directly onto the map layout (orange). 

details

pygp has become our storehouse of unique and useful functionality, things we should only have to figure out once and use many times, it is also the place where we choose to expose functionality as would like it to be exposed for Python development as opposed to the command-line style of arcpy.  Wrapping the Python functionality has a very nice side benefit too – you really get to know the functionality well and quickly.

After that we thought about all the new capability we wanted in the application with the main item being the ability to draw graphs of data (e.g. pipeline integrity data) along the pipeline route (green). 

graphs

This turned out to be a very sweet add to the application and it wasn’t more than a few weeks later that one of our clients was using this for generating alignment sheets for a regulatory inquiry showing things like rupture pressure ratio, hydrostatic test pressure overlaid with MAOP, defect density, close interval survey and cathodic protection test station readings.  All displaying very crisply on the alignment sheet and all performed using Python.

Another item we wanted and subsequently implemented was the ability to configure the alignment sheet generator solely using an Excel table to define the data connections and types and ArcGIS layout tools for making the template (we are thinking about driving that from an Excel configuration table too).  This was a super add to the application since it makes for a much quicker way to add data to your map document and to ensure that all the settings of the layers are consistent and follow the desired labeling and cartographic settings.

About the only thing we have left to do now is get the documentation updated and this application is ready to ship.  And while we did originally make this product for the pipeline industry the new configuration and graph capabilities make it very suitable for transmission lines and other linear corridor assets.

About these ads
Categories: GIS
  1. Bosquez
    September 29, 2011 at 8:44 pm | #1

    Any alignment sheet samples available for viewing. You should post some images to better comprehend its capabilities. And who are “we” there is not about the authors or anything.

    • jlhumber
      September 29, 2011 at 9:38 pm | #2

      Yes, we have some samples available — give us a couple of days to get clearance to post and we’ll have something up. You’re right, we’ve tried to keep our site relatively anonymous but the “we” is Integrated Informatics Inc. (http://www.integrated-informatics.com).

  2. Arturo
    January 18, 2013 at 10:13 am | #3

    i would like to learn!!!!
    what i need to do this???

    • January 25, 2013 at 7:04 am | #4

      Mostly what you’ll need is pile of python and a lot of patience.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: