LRS is created from input lines and points in vector map. Points - MP (mileposts) must have attached attributes specifying line and distance. The distances from the beginning of the linear feature in real world are specified by MP+offset. Typically, MP is in kilometers and offset in meters.
The implementation of LRS in GRASS has some particularities.
--- road (linear feature) + MP (milepost, point, distance from the beginning in km)
+----+----+----+----+----+ 0 2 3 4 5 6
? ? +----+ | | | | +----+----+ +----+----+ 0 2 3 4 5 6
3+1000 3+2000 +----+ | | | | +----+----+ +----+----+ 0 2 3 3+3000 5 6 4
start_mp: 4 start_off: 0 end_mp: 3 end_off: 3000
To avoid potential confusion, MP values are limited to integers only. It would be ambiguous to have for example segments 3.500 - 3.500+200 and 3.600 - 3.600+200. The position 3+650 would fall into 2 segments, correct would be 3.600+50. That means, that MP must be the beginning of antonomous segment and all parts which becomes longer then before must be referenced from the last not changed MP.
The MP start_mp and end_mp columns must be decimal, but v.lrs.create takes only the decimal part, and adds its value to offset and prints a warning.
It is highly recommended to work with polylines instead of segmented vector lines. The command v.build.polylines creates this map structure.
Attribute | Type | Description |
rsid | integer | reference segment ID, unique in the table |
lcat | integer | category of the line in the LRS map |
lid | integer | route ID (LID) |
start_map | double precision | distance measured along the line in LRS map from the beginning of the line to the beginning of the segment (absolute milepost distance) |
end_map | double precision | distance measured along the line in LRS map from the beginning of the line to the end of the segment (absolute distance of subsequent milepost) |
start_mp | double precision | milepost number assigned to the start of the segment |
start_off | double precision | distance from start_mp to the start of the segment measured along the physical object |
end_mp | double precision | milepost number assigned to the end of the segment |
end_off | double precision | distance from end_mp to end of the segment measured along the physical object |
end_type | integer | 1: the same as specified for from_ ; 2: calculated from map along the line from previous MP; 3: defined by user |
------1------- --------2------ +0.0 +1.0 +2.0
It can be also intended, for example a part of the road is shared with another one, but MP are used only for one:
+ road1/km15 + road1/km22 \ / \ road1/km17 / road1/km20 +--------------+ / road2/km52 \ road2/km52 / \ + road2/km50 + road2/km54
v.build.polylines, v.lrs.create, v.lrs.segment, v.lrs.where, v.lrs.label
Available at: LRS (Linear Referencing System) source code (history)
Latest change: Monday Feb 27 13:45:25 2023 in commit: a82501dc85294207e8e58437c3ec7f1056465ed4
Main index | Topics index | Keywords index | Graphical index | Full index
© 2003-2024 GRASS Development Team, GRASS GIS 8.5.0dev Reference Manual