ArcGIS: Linear Referencing For Street Signage

I have a task this month to digitise around 8000 street signs into the organisation's geographic information system.

Initially i attempted to digitise them manually but after the first 200 signs or so... it became very tedious.

The boss suggested using the Linear Referencing Tools in ArcGIS. I've never really explored these tools so I had to go through the ArcGIS tutorial first. Below is a summary of the Linear Referencing Tools:

Organizations that collect data about linear features, such as highways, city streets, railroads, rivers, pipelines, and water and sewer networks often use linear referencing systems to store data. A linear reference system stores data using a relative position along existing line features. That is, location is given in terms of a known linear feature and a position, or measure, along it. For example, route I-10, mile 23.2, uniquely identifies a position in geographic space, and can be used instead of an x,y coordinate.

This is my initial attempt at Linear Referencing. The point features represent different types of signage in the Richmond NSW area. There are over 2000 signs in this geographic area alone. I gave the point features a distance offset of about 7.5 metres from the route. It was fairly close to the local road widths in the area.

To begin, you'll need linear features like a coordinated road centreline as a linear reference. Multi-segment roads can be combined in to routes. You'll also need a table with the assets you're about to digitise. At minimum both features will need to have a common identifier field (like ROADID) and a measure or chainage (where the asset is located along the route).

Create Routes

This step is very important. Ideally your road centrelines are digitised over your aerial imagery. Unfortunately the dataset that I've got was digitised against the cadastre, so they don't quite line up with the centre of the road on the aerial imagery.

What this means is that any route events created with a distance offset from the centreline may not be in the right place - but anything is better than manually digitising 8000 street signs!

Start by going to the toolbox and clicking on Create Routes tool.

The first option requires your line feature, the second box is the route or road identifier. In this dataset it is the str_idx. Both your routes and route event table must use the same identifiers in order for the route event layer to be created. If routes do not have an identifier, the route is not created.

Measured source depends on your dataset. Ideally you have the start and end values of each route (whether it is single continuous line or multi-segment discontinuous). In this dataset I can only rely on the length of the route so the default option is selected. The other options are explained below:

When a route is created, a bounding box is generated around the route. The coordinate priority is needed so that the software can determine which point is the starting point to measure the route. This can also be used to determine the left and right side of a route.

Using the default option at the moment but experimentation with other road centreline datasets have taught me that it is possible for the software to reverse the routes if you don't set up the route correctly. In ArcGIS 10.4 you can use a special tool to reverse routes quickly. The slow method is frustrating and tricky to do, as it requires using the TWO_FIELDS option under measure source above. If you don't have that in your dataset, then you'll need to figure out the start and end points of each route manually which could take a lot of time with a large number of routes.

The remaining options are left as default above.

When the route is created you get a polyline feature class consisting of your routes. The table will look like this:

You may wish to Calibrate Routes if the distances from the start of the line is not accurate enough i.e. if a surveyor has supplied the exact distances or chainages of each block/segment of the road.

Make Route Events Layer

Once routes are created, we can start plotting assets as points or lines. Select the Make Route Event Layer tool:

First box is your route feature you created previously. Second box is the route identifier field. Third box is the location of your route events table. I've imported this as a table into an ArcGIS geodatabase but you may also have it as a spreadsheet somewhere.

The fourth box is the route identifier inside your route event table. This value should match the route identifier under your routes feature class. Note: If you're importing the event table make sure you define the field values as "double" rather than a "string" or "text", otherwise ArcGIS will be stubborn and won't recognise your route identifiers. This will also be needed for other measured values like start chainage and offset.

Event type is point (because these are street signs) but you may also use line (for something like footpaths)

Measure field refers to where the event would be located along the line, so I picked "start chainage" which would indicate the distance along the line the point should be located.

You'll need to give it a unique layer name. Just use something self explanatory.

In this scenario i needed an offset so in the route event table I've added a field consisting of the offset value (in metres). Positive values for right of the route, zero for no offset and negative values for left side of the route. I used a 7 metre offset as local roads are roughly 12 to 15 metres wide in the Hawkesbury. Check the option at the bottom so that the tool will generate the offsets.

When the geoprocessing is done.... hopefully you have a new route event layer. You won't be able to edit the route event layer directly, so you'll need to export to a shapefile and edited that feature class instead.

Data Validation

Now that you've created the route event layer and exported it to a shapefile you can position the points against the aerial imagery. Services like Google street view or similar will be handy unless it is not up to date. The other method is field inspection to validate the signage.

To keep track of the signs I've checked I created a new field called Checked and then applied a definition query to the layer where "Checked" IS null. Whenever i update a record with a value, it hides the point feature from view. A simple method to ensure that you can work your way through a large dataset without going back to the events you've already checked.

Labels and Symbology

It may also be useful to symbolise your attributes and display certain expressions and labels:

There are a ton of different types of signs in this dataset so I've used Categories > Unique Values, then tried a multi-colour point symbology.

Labels should stand out against the aerial imagery so I've used black text and a white halo/stroke.

Routes are given arrows at the end of the line to symbolise direction.

Hatching can display the approximate chainage which will be useful for plonking signs along the route. Don't overdo hatching otherwise a slower machine may struggle drawing everything.

Use scale range so that it won't display at smaller scales.

arcgis, linear referencing, create routes, route events, street signs