The primary purpose of setting up the LRS in AgileAssets Asset Management System is to be able to locate the various transportation events on the linear network. For example, maintenance work performed by maintenance / bridge crews on sections / bridges in the route network can be located on the LRS. Crashes that occurred on various routes, at various points can be located on the LRS. This section describes how events are located on the LRS in the Agile System.
After the network is defined the locations within the system are linearly referenced and store in a table named SETUP_LOC_IDENT. This following sections address this table in greater detail:
Basic Event Location Attributes
Event located event within the system is located by specifying the following set of information (they match the LRS fields described in Chapter 8.1):
- ROUTE_ID – a unique route identifier related by key to the route name in SETUP_NETWORK_LINES
- LANE_DIR – a value that indicates the directionality of the event, it may have on of 3 values 0,1 or 2. Normally these values translate to 0=All directions/Both Directions, 1- North or East or Increasing milepoint direction, 2 –South or West or decreasing milepoint direction.
- LANE_ID – a unique lane number numbered according to convention, for most clients the lanes are numbered beginning at 1 for the outside lane and increasing towards the median on both sides. Other options are available.
- OFFSET_FROM – Event begin measure
- OFFSET_TO – Event end measure
LOC_IDENT Column
"LOC_IDENT" is a field used by the system to uniquely identify all events on the LRS. The location data (on both Base LRM and Alt. LRM) for each LOC_IDENT is stored in a table called SETUP_LOC_IDENT. This table records only the location information and the name of the table that contains the attributes regarding this location. The attributes of the location for each LOC_IDENT is then stored in the corresponding table, with the same LOC_IDENT value.
The value for LOC_IDENT is generated by a sequence for every event that is recorded by the system. An event can be described the identification of a location on the LRS for a particular table where the particular table stores all the attribute information regarding that location. For example, when new sections are created, LOC_IDENT values are generated for each section as each section is a separate event on the LRS. Another example is when condition (performance measure) data is collected for a specific site, another LOC_IDENT value is generated (when saving this information into the system) even if the locations is exactly the same as location of a section. The reason is the corresponding attributes are different and stored in different tables and therefore they comprise separate events on the LRS.
SETUP_LOC_IDENT Table
The table SETUP_LOC_IDENT has a set of columns for each LRM. Only the columns for the basic LRM (default Agile LRM) will be mentioned in this document. The SETUP_LOC_IDENT has the following columns for the basic LRM. The following table also shows a sample of the data stored in the table.
Column for Base LRM
COLUMN_ID | DATA TYPE |
---|---|
LOC_IDENT | NUMBER |
ROUTE_ID | NUMBER |
LANE_DIR | NUMBER |
LANE_ID | NUMBER |
OFFSET_FROM | NUMBER(22,3) |
OFFSET_TO | NUMBER(22,3) |
SOURSE_TABLE | VARCHAR2(32 CHAR) |
Example Data from SETUP_LOC_IDENT Table
LOC_IDENT | ROUTE_ID | LANE_DIR | LANE_ID | OFFSET_FROM | OFFSET_TO | SOURSE_TABLE |
---|---|---|---|---|---|---|
121101006 | 743003 | 0 | 0 | 0.4 | 0.5 | PMS_ROADWAY_INVENTORY |
121101007 | 742988 | 0 | 0 | 0.1 | 0.2 | PMS_ROADWAY_INVENTORY |
121101008 | 743314 | 0 | 0 | 0.3 | 0.4 | PMS_ROADWAY_INVENTORY |
121101009 | 743303 | 0 | 0 | 0.5 | 0.6 | PMS_ROADWAY_INVENTORY |
121101010 | 743376 | 0 | 0 | 1 | 1.1 | PMS_ROADWAY_INVENTORY |
121101011 | 743355 | 0 | 0 | 0.3 | 0.4 | PMS_ROADWAY_INVENTORY |
The SETUP_LOC_IDENT table contains a record of all the location referenced events within the system. Each event is referenced by a unique identifier LOC_IDENT that also serves at the primary key for the table. It is important to note that this table stores the location information for each event only. The attribute data for the event is always stored in another table that references the event LOC_IDENT. To facilitate the location of the associated event table the column SOURSE_TABLE is used to identify the attribute table name.
In all the other tables the actual linear reference of a given event is stored in this table. The related key is always the LOC_IDENT column.
When a system is configured with multiple LRMs, each LRM's column are added to the SETUP_LOC_IDENT table. Below is an example of the table configuration with a Base LRM and County-based Alt. LRM.
SETUP_LOC_IDENT Structure (Example with a county-based LRM)
Column Name | Pk | Null? | Data Type | Comment |
---|---|---|---|---|
LOC_IDENT | Y | N | INTEGER | Unique Event Identifier |
ROUTE_ID | N | INTEGER | Event Route Location (FK) | |
LANE_DIR | N | INTEGER | Lane Direction (0, 1, 2) | |
LANE_ID | N | INTEGER | Lane Identifier | |
OFFSET_FROM | N | NUMBER (22,3) | Begin measure of the event | |
OFFSET_TO | N | NUMBER (22,3) | End measure of the event | |
SOURSE_TABLE | Y | VARCHAR2 (32 Char) | Associated Event Attribute table | |
DATE_BIRTH | Y | DATE | Begin date for event | |
DATE_DEATH | Y | DATE | End date for event | |
CHILD_LOC_IDENT | Y | INTEGER | Not used | |
LENGTH | Y | NUMBER (22,4) | Length of event | |
NETWORK_ID | N | INTEGER | Network Identifier for event (1) | |
PERPEN_OFFSET | Y | NUMBER (22,3) | Distance off route centerline | |
TEMPO_EFF_DEATH_DATE | Y | DATE | Date event died in the LRS network | |
TEMPO_EFF_BIRTH_DATE | Y | DATE | Date event was born in the LRS network | |
TEMPO_BIRTH_DATE | Y | DATE | Date Record was born in the system | |
COUNTY_ FROM | Y | INTEGER | Alt LRM - County (From) | |
COUNTY_ROUTE_FROM | Y | INTEGER | Alt LRM - Route (From) | |
COUNTY_ TO | Y | INTEGER | Alt LRM - County (To) | |
COUNTY_ROUTE_TO | Y | INTEGER | Alt LRM - Route (To) | |
COUNTY_ROUTE_EMP | Y | NUMBER(22,3) | Alt LRM - County Route Begin milepoint | |
COUNTY_ROUTE_BMP | Y | NUMBER(22,3) | Alt LRM - County Route End milepoint | |
DATA_YEAR | Y | INTEGER | For Event tables with EFF_YEAR column this is a copy of the EFF_YEAR data value from the event table. This is used to improve the performance for certain types of queries. A Java trigger "com.agileassetsinc.trigger.UpdateDataYearTrigger" should be configured on these event table to keep the data in sync (see Section 3.1.4 about Java Triggers). |
Note: In many county-based LRMs, County name is a part of overall route identifier, if a location event crossed county boundary, its beginning route name (COUNTY_ROUTE_FROM) can be different with its end route name (COUNTY_ROUTE_TO). On the other hand, for events that do not span county boundaries, COUNTY_ROUTE_FROM will be the same as COUNTY_ROUTE_TO.
LOC_REF_xxx Records in SETUP_LOC_IDENT
A special set of records in SETUP_LOC_IDENT (where SOURSE_TABLE='LOC_REF_xxx', and xxx is the LOC_REF_ID from SETUP_LOC_REF described in Section 8.1), is what the system uses to map between the Base LRM and Alt LRM. In the following example from Section 8.2.2:
- If you enter an event in Alt LRM, using County BALLADONIA, Route H001A, 1 to 3, the system translates it to Base LRM using linear interpolation: Route H001A from 2 to 4, and then store both sets of measures in the corresponding SETUP_LOC_IDENT record.
- If you enter an event in Base LRM, using Route 001A, 7 to 9, the system translates it to Alt. LRM using linear interpolation: County CANNING, Route H001A, 2 to 4, and then store both sets of measures in the corresponding SETUP_LOC_IDENT record.
Example Alternate LRM Mapping Screen
SETUP_LOC_IDENT Table Data with a County-based LRM Example
Event Geometry
In the system, for any table that has a LOC_IDENT column (i.e., the location data in the table is based on the LRS), a "GEOM" database column (data type Geometry) can be optionally added to the table to store the spatial geometry of the data. Whenever a linear location is updated, the corresponding GEOM column is also updated with a spatial geometry to match the linear location, using dynamic segmentation against SETUP_NETWORK_LINES.