Snap sites to network

Parent Previous Next

RivEX can help you snap sites (points) to your river network.


1.You can specify a search tolerance (the default is 100m).

2.If you have available data; match the site with river using names.

3.RivEX can avoid snapping the site to polyline end nodes.


This page deals with how to use RivEX for snapping sites.  Follow this link for a discussion on the types of snapping errors and their consequences.


Your site data must be a point layer such as a Shapefile or Geodatabase FeatureClass. If you are building a point dataset from an XY table (e.g. Excel) it is highly recommend you convert them into a Geodatabase FeatureClass as Shapefiles have several limitation; they cannot support NULL values, this is discussed here.


MULTIPOINT data is rejected by RivEX. You will need to convert it to single part form using the Geo-Processing tool Multipart to Singlepart.


If name matching has been chosen RivEX will skip sites that have empty fields, these are some times referred to as NULL strings. Note a field that appears to be empty may actually contain only space characters, this can happen when manipulating data in other applications (e.g. Excel or Minitab). Under this scenario RivEX will interpret these as names and try to match them (and fail). So always make sure you either have a river name or an empty field when you are snapping with site names.


RivEX creates a File GeoDatabase FeatureClass copy of your site dataset with each site snapped or rejected.  The name of this FeatureClass is the name of your input dataset plus the suffix "_Snapped".  For example if your input site layer was called "WeirLocations" then the output file will be called "WeirLocations_Snapped" and is created in a File GeoDatabase called fGDB_Snapped.gdb  in the default RivEX_Workspace\Output location.


A site that fails a snap is left as it's original point. The quality control fields will be populated with why it failed. The 4 quality control fields are appended to the output Shapefile and are described below.


Field name

Description of field

SnapDist

The straight line distance that the site was moved to locate it upon the network. If the site fails to snap then this is set to -1.

ForcedMove

A "Yes" or "No" field indicating if the site was forced to move the 1% of the polyline length away from the end points of a polyline.

SnapQual

A string field containing a line of text indicating what was done.

SrchName

The reduced text extracted from the site layer and used by RivEX to search against the river name field of the network layer.  If name matching is not used then default value is "n/a".


Select the point layer, unique ID field and set the search tolerance.  The basic mode snaps a site to the nearest polyline within a specified search tolerance.  No contextual information is used to quality control the snap and can thus produce unreliable results.  You must enter a search tolerance.  The ID field must be a numeric field containing unique ID values.  The FID and Object ID fields are not allowed.  If your point dataset does not contain a unique numeric field then have a look at this web page for how to achieve this with some basic python scripting.


Snapping dialog


If ticked, the check box avoid node will force a potential snap 1% along the length of the polyline to avoid snapping to a node.  This avoids the later situation of you using the point in a spatial selection and selecting 2 or more polylines because it snapped to a tributary node when you really wanted to select a single starting polyline.


Avoiding nodes


To be able to use name matching both your river network and site data must have string fields populated with river names.  You can choose the very strict quality control of exact name or use similar names by doing an in-string search for the river name.


Snapping with name matching


Exact matching will convert all text to lower case before attempting to match and will fail a site if they don't match exactly.  Be aware that spelling mistakes and local variations in the name will fail a site.  Whilst this is a less forgiving method it does ensure the highest quality snap.  Examples are:


Site name

River name

Snap success

River exe

River Exe

Success

R Ouse

River ouse

Failure

R Rother

rother r

Failure

r nidd

r nidd

Success


Note a site that has no name (a null string) will not be considered an exact match with a river polyline that has no name.


Similar name matching attempts to reduce the site's river name to a simplified version.  If this simplified version is found within the river name from your network layer then this is considered a good quality snap.  If it is not found then the site is rejected.  Examples of name reduction are


Before reduction

After reduction

River Amazon

Amazon

Rio Janella

Janella

Swale R

Swale

Master drain

Master

R. Orinoco

Orinoco


When using similar name matching you may want to add synonyms specific to your language. Clicking on the Add River Synonyms button displays the dialog below with a set of synonyms commonly used. Any updates (additions or removals) to this list are stored in the RivEX_Settings file.


Synonym dialog


The technique used by RivEX is not perfect and can accept/reject sites when the site name is radically different or the name attached to the site contains a synonym within a word used to name the river.


It could be possible for RivEX to reject a genuine site due to inconsistent naming.  For example a site labelled "R. Lune (near farm)" will be reduced to "Lune near farm" which is not a sub string of "River Lune".  The appended SrchName field will help you identify this situation.


Another issue with the sub-string  search technique used by RivEX are words that include  synonyms themselves.  Thus a site on "Rock River" would be reduced to "Rock" and is a sub-string within a word such as "Brock Lake".  The appended SrchName field will help you identify this situation.


Below is a list of the current combination of values that are used to populate the appended snapping fields.


Users choice

SnapQual

SnapDist

SrchName

Basic snap

Site outside snap distance

-1

N/A

Basic snap

Nearest Polyline, no name check

X

N/A

Exact match

Site outside snap distance

-1

original site name

Exact match

Site rejected as it failed exact match

-1

original site name

Exact match

Site has exact name match

X

original site name

Similar match

Site outside snap distance

-1

reduced site name

Similar match

Site rejected as it failed similar match

-1

reduced site name

Similar match

Site has similar name match

X

reduced site name


X = The distance the point was moved from initial location to point on network