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.
Next step, wrap up all the functionality we needed into our pygp python package, things like offsets and angles for on-pipe data (blue)
and the ability to read PODS and APDM data directly onto the map layout (orange).
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).
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.