Attributing Schematic Links from StreamsΒΆ
When schematic networks are created by the Arc Hydro Tools, the schematic nodes include a FeatureID attribute, linking them to the HydroID of the original features that they represent. Schematic links do not include this attribute, which makes it difficult to attribute links with parameters from the streams that they represent.
This tutorial shows how to copy attributes of network edges to the schematic links which represent those edges. This tutorial makes the following assumptions:
- A schematic network has been created from a geometric network using the Arc Hydro Tools.
- The geometric network was created from National Hydrography Dataset flowlines that include a FlowDir attribute.
- The FlowDir attribute for all lines is “With Digitized”. This means that when the line features were created, they were digitized (drawn) in the same direction as the flow of water along the line.
- The flowlines also have an attribute called Slope that must be copied to the Schematic links.
Having the lines digitized in the direction of flow is critical for this procedure. A given stream and the schematic link that represents it should have the same “From” node, so we’ll use the From node to carry the desired attributes from the streams to the links.
The general strategy is to create points at the starting vertex (the From node) of each line, where each point includes the attributes of the line that it represents. The points are then spatially joined with the schematic nodes at the exact same location. The result is tabularly joined to the schematic links using FromNodeID, enabling the original attribute from the streams to be copied to the links.
For this tutorial, we’ll use the following names for the datasets involved:
- HydroEdge – NHD Flowlines as geometric network simple edges, with attribute named Slope.
- SchemaNode – Schematic nodes
- SchemaLink – Schematic links
Procedure:
- Change the data frame’s coordinate system to match that of the schematic
nodes (needed for spatial join later).
- In the ArcMap table of contents, right-click the data frame name and click Properties.
- In the Coordinate System tab, click Import.
- Navigate to the feature dataset containing the schematic nodes and click Add.
- Click OK.
- In ArcToolbox, run the Feature Vertices To Points tool with these arguments.
- Input Features – HydroEdge
- Output Feature Class – EdgeVertices (save in the same feature dataset as SchemaNode, ensuring that they use the same coordinate system)
- Point Type – START
- In ArcToolbox, run the Spatial Join tool with these arguments.
- Target Features – SchemaNode
- Join Features – EdgeVertices
- Output Feature Class – JoinResult
- Uncheck Keep All Target Features
- Search Radius – 10 meters (just in case EdgeVertices were’t created exactly at the same location as the schematic nodes)
- Add a Slope field to SchemaLink.
- Join JoinResult to SchemaLink via SchemaLink.FromNodeID to JoinResult.HydroID. The HydroID comes from the SchemaNode.
Note
JoinResult may have two HydroID fields if HydroEdge also had a HydroID field. In that case, access JoinResult’s layer properties, view fields, and click on a HydroID field to see its field details on the right. Chances are that the HydroID from HydroEdge is actually named HydroEdge_HydroID, but shows up as HydroID in the list of fields because ArcMap carried over the original field name as its display (alias) name. Once you’ve identified which HydroID field is which, then you can turn off the one from HydroEdge by unchecking it in the layer properties dialog. Then that field won’t show up in the Join dialog when you create the join.
- Calculate SchemaLink.Slope to be JoinResult.Slope.
- Remove the join.
Your schematic links should now be attributed with the slope values from the streams that they represent.