BoundaryTypeAnalysis


Details

Although the use cases for this Arc addin extension are fairly complicated, it shows a couple of things off. Firstly, communication between addin elements and some of the issues around starting multiple elements up. Secondly, how to deal with Arc topologies and edge/node analysis.

The tool was designed for the PhD work of Benjamin Vis. Benjamin has a system for analysing maps where multiple layers of vector lines are used to create a topology. Lines can overlap each other, but wherever the number or type of overlapping lines changes, a node is put in all the lines connecting them at that point. This tool calculates a number of different statistics (for example, total length of different line combinations), and also includes a tool to "explode" the lines slightly so they can be seen separately. Reading through the comments should give a reasonable picture of what each tool does, but they mostly start by getting the topology layer (which traces out the shapes created by all the overlapping layers) and then get hold of either the nodes (to look at the connections between different sets of layer combinations) or the parent lines (to look at line combinations or length). Note that the comments also detail bits of code that were tried, but failed.


Original author/s: Andy Evans
License: The Artistic License minus optional Clause 8.
This code also includes Progress Bar code by Marc Mettes, licenced under the Creative Commons Attribution License 3.0.


Source

Eclipse project files (zip)
Arc addin file (associated tools are in Category: BoundaryTypeAnalysis)
Example map for testing (Arc .mpk package)
Instructions (Word docx)

Individual files:

BoundaryTypeAnalyst.java Extension: loads other addin bits and pieces.
ChangeOutputDirectory.java A button to change the default directory for results.
AllOverlaps.java A button.
AllLineTypeDistances.java A button.
NodeTypeStatistics.java A button.
LineTypeLengths.java A button.
LineTypeDistances.java A button.
DisplayTypes.java A button.
DisplacementGUI.java A GUI for DisplayTypes.java.
LineTypeDensities.java A non-working button so you can see some of the difficulties involved.


Known issues

See comments for most issues. One remaining one is that it isn't especially clear whether you have to select the directory you want to change to, or open it, when using the ChangeOutputDirectory tool.