Thursday, December 17, 2009

Flagging intersection points with elevation differences

Typical GIS applications have the capability to determine unbroken intersections but only from the perspective of a 2D plane i.e. as if the spatial intersection analysis is done only after the line work is projected entirely onto the 2D plane; if the line work has a elevation or Z component, then the Z component is ignored entirely in the analysis. In 3D GIS applications like terrain modeling, sometimes it is useful to be able to determine the elevation difference of the line work at the point of intersection. If one spatial feature represents a lake, then a river line feature flowing out of the lake should have the same elevation at the point of intersection. It would be useful to be able to flag the intersection points that have elevation differences.

In the example dataset below, there are a few line features with different elevation values - the values are labelled along the line work. All of them are at 0 elevation except for one, which is on 10 elevation.

We want to flag out the intersection point where there is a difference in elevation. One of the tools that can help us perform this is Safe FME. FME has some transformers that you can string together to perform the flagging of intersection points with elevation differences.

  1. Run FME Workbench. Add in a Source Dataset e.g. lines.shp. Add in a Destination Dataset e.g. flags.shp.

  2. Drag and drop the Intersector, Matcher, Counter Transformers onto the Main pane. Connect them up as shown in the figure below.


    Note: the Counter transformer is used to simply count the number of flags.

  3. Open up the Intersector transformer's Parameters. The settings should be set as shown below.


    Note: Duplicate Nodes as Each Elevation should be set to Yes. Then when an elevation difference is detected at the point of intersection, the Intersector transformer will output 2 nodess.

  4. Open up the Matcher transformer's Parameters.The settings should be set as shown below.


    Note: The Matcher will find(match) all duplicate nodes i.e. the nodes that have elevation differences. 

  5. Run the translation.

    The intersection points where there are elevation differences are flagged (shown as a red cross below).


Tuesday, December 15, 2009

Global Mapper Snapping to Line Work

Snapping to existing points, lines and polygons is important while digitizing. Knowing how Global Mapper handles snapping can help improve the data collection work. Sometimes, you may want to snap only to the vertices. At other times, you may want to snap along the line work. And sometimes, you may not want to snap at all.

Setting the Snap Mode
The snapping mode of Global Mapper can be set using the Configuration dialog box

  1. Select Tools > Configure.

    The Configuration dialog box appears.


  2. Click the tab Vector Display.

  3. In the list box, scroll down until the Only Snap to Area and Line Vertices by Default setting is shown.

  4. Depending on your situation, toggle on or off the Only Snap to Area and Line Vertices setting.

    Note: the keyboard shortcut V behavior would be reversed depending on this setting.

  5. Click OK.

    The snapping mode is set.

Using Snapping with Only Snap to Area and Line Vertices by Default off
  1. Digitize a new line and bring the cursor near to a line or polygon as shown below.

    The new line snaps on the line work and vertices of line or polygon.


  2. Press down and hold V.

    The new line will snap only to the vertices of the line or polygon.

  3. Now press down and hold ALT.

    The new line will not snap to anything.

Using Snapping with Only Snap to Area and Line Vertices by Default on


  1. Digitize a new line and bring the cursor near to a line or polygon.

    The new line snaps only to the vertices.


  2. Press down and hold V.

    The new line snaps on the vertices and along the line work.

  3. Press down and hold ALT.

    The new line will not snap to anything.




While digitizing lines, polygons and points in Global Mapper, you will probably want to snap to existing vectors' vertices, on the existing vectors' line work, or not at all.