Avoiding the Broken Extension Problem

I got this email from a reader a couple weeks ago:

We use several tools that are built as extensions inside ArcGIS as toolbars. Most of these tools are built by other federal agencies (USFS and USFWS). These agencies are hit with cutbacks and budget cuts just like every other government agency. This results in an inability to keep up the extensions with current versions of ArcGIS. Do you know of any type of design/programmatic solutions that could in theory be used to avoid the broken extension problem that I seemed to be plagued with everytime I upgrade my software?

Problem we’ve seen for years. How many friends to do you know still using 9.3.1 because of an extension issue. Now to be fair, this is a problem with many applications and operating systems. My Dad is using Mac OS X 10.6 because some scanning software he uses has never been updated. But here’s the big question from above:

In short is there a way programs can interact with ArcGIS without having to be rewritten everytime a new service pack or upgrade comes along?

Now the kicker for this user is that they are using extensions created by someone else. The trick is to get these under your control. Now you could open up Visual Studio and start coding, but I’d say your better bet is to recreate the geoprocessing using Python and open libraries. That way you’d be software agnostic (well at least besides Python) and not have to worry about what version of ArcGIS you are using. Then I’d leverage Arc.py to call these Python processing scripts and perform the analysis from within ArcGIS Desktop. The best part of this is you can then transport this processing cross platform to any applications you are using. Simply simple!

Nodding

Because the ending as it stands today is very sad:

We just upgraded to ArcGIS 10.1 and it broke all the extensions i use and no updates are available. Hind sight being 20/20 I should not have assumed these tools would work from 10 to 10.1.

Esri gives lots of free Python training classes and Python has no shortage of great documentation.

  • Matt

    The other option, where possible, is for the fed agency to open source what they can’t keep up with.

  • Nico

    Use add-ins.

    From http://resources.arcgis.com/en/help/main/10.1/index.html#/What_is_a_Python_add_in/014p00000025000000/

    An add-in is a customization, such as a collection of tools on a toolbar, that plugs into an ArcGIS for Desktop
    application (that is, ArcMap, ArcCatalog, ArcGlobe, and ArcScene) to provide supplemental functionality for accomplishing custom tasks.
    ArcGIS 10 introduced a new and innovative Desktop add-in model, making it easier for you to customize and extend the ArcGIS for Desktop applications. The new add-in model provides you with a declarative-based framework for creating a collection of customizations conveniently packaged within a single, compressed file with a .esriaddin file extension.
    In ArcGIS 10, add-ins are authored using .NET or Java along with Extensible Markup Language (XML). The XML describes the customizations, while the .NET or Java classes provide the custom behavior. The ArcObjects software development kit (SDK) includes an Add-Ins Wizard that integrates with development environments—such as Eclipse, Microsoft Visual Studio, and the free Express Editions of Visual Studio—to simplify development.

    ArcGIS 10.1 introduces Python to the list of languages for authoring Desktop add-ins, providing you with an easy solution to extend desktop functionality

    • KoS

      Not to nitpick….you are assuming one can have arcobjects SDK or even eclipse, visual studio free or not loaded on to their computer. As crazy as it may sound, it could happen. An agency’s IT not allowing them to be installed, for a variety of reasons.

      In my agency, if it’s not on a approved list, no way in hell is it going to be installed. If it’s still in “testing”, don’t hold you breath it will be ready before changes made somewhere won’t make it obsolete and useless until the testing is done with the newest configuration or setup.

  • Ed

    Embracing ArcPy may cover your needs in regards to straight geoprocessing tasks that an extension may tackle, however it will do you no good in replicating the GUIs, custom tools, etc. inherent in those extensions. It’s that rich functionality that makes, or should make, a good extension an ‘extension’. When jumping into these customizations, the first questions developers should always ask themselves is “Do I really need an extension or will a model/script based on Python be the proper path to least resistance?”

  • http://www.spatiallyadjusted.com/ James Fee

    I didn’t say it above, but the love of extensions and the GUI is because most of GIS is just a bunch of button pushers.

  • KoS

    Well, I had this long diatribe typed up about how it could or couldn’t work in my agency. Rather I think I will sum it up this way.

    I’ve been teleworking this past month. It’s been a joy to be able to use my own laptop. I can do whatever is needed to get the job done. The unwarranted limitations the bureaucracy places on itself is self-constricting, self-defeating.

    And to note, I work with unclassified or non-sensitive info/data and programs. Using my own wasn’t an issue outside of not being able to get onto the agency’s backbone. Which wasn’t a big deal after all.

  • Bart

    Reading this made me think of the Geospatial Modelling Environment (GME – http://www.spatialecology.com/gme/), formerly the ArcGIS extension known as Hawth’s Analysis Tools (http://www.spatialecology.com/htools/tooldesc.php).

    The HawthsTools extension kept breaking with each ArcGIS upgrade so the author rewrote the extension so it used open source software. Much better.

  • $1783700

    Your solution in you conclusion is spot on. That is exactly how I handle it. I accomplish most things via python scripts and on occasion integrate the script into the GUI. My scripted processes seem to be much more resilient to new versions. See, I can do more than play devils advocate on your posts!

  • Brett Lord-Castillo

    Intro and intermediate python workshops that I just taught at the Missouri statewide conference last month:
    https://github.com/marigolds6/pythonintro

    https://github.com/marigolds6/pythonintermediate

    I still need more work on these, especially adding more content to the intermediate (it is examples driven), but the intro workshop is pretty good for the average ArcGIS Desktop user to get up to speed quickly. (Well, at least, I think so, but I wrote it.)

  • Brett Lord-Castillo

    Intro and intermediate python workshops that I just taught at the Missouri statewide conference last month:
    https://github.com/marigolds6/pythonintro

    https://github.com/marigolds6/pythonintermediate

    I still need more work on these, especially adding more content to the intermediate (it is examples driven), but the intro workshop is pretty good for the average ArcGIS Desktop user to get up to speed quickly. (Well, at least, I think so, but I wrote it.)