AMREL is a software tool to automatically extract roads from large LiDAR data sets of mountainous areas. The road extraction is performed in two steps:
- seeds production using LiDAR derived digital terrain model (DTM) tiles,
- road detection using LiDAR raw data (ground 3D points).
Authors: Philippe Even and Phuc Ngo, LORIA/ADAGIo, Université de Lorraine.
Reference : Even, P. and Ngo, P., 2021. Automatic forest road extraction from LiDAR data of mountainous areas. In International Joint Conference of Discrete Geometry Mathematical Morphology, Uppsala, Sweden, May 24-17, 2021 (Springer LNCS 12708), pp. 93-106. hal-03144147.
- Requires libpng and OpenMP libraries.
- CMakeLists.txt provided for cmake.
- AMREL.pro provided for qmake.
This software has Unix-style command line control. A multi-platform version based on configuration file is available from AMRELmp GitHub repository.
NVM is the internal format to encode digital terrain models. It can be produced from standard ASC files using the following command:
AMREL --dtmdir path --import tile.asc --import next1.asc** ... **--import nextn.asc -t mytile
where path is the path to ASC files, tile.asc the suffixed name of the selected ASC file, nextn.asc the name of its nth 8-neighbour tile (optionally used to ensure normal continuity between adjacent tiles) and mytile the unsuffixed name given to the internal format tile. These files should be placed in nvm directory.
TIL is the internal format to encode arranged sets of 3D points. It can be produced from XYZ files (a text format where each lines contains X, Y then Z point coordinates separated by a space, that can be extracted from LiDAR raw data using las2txt LAStools command) using the following command:
AMREL --xyzdir path --import tile.txt -t mytile
where path is the path to XYZ files, tile.txt the suffixed name of the selected XYZ file, and mytile the unsuffixed name given to the internal format tile (should be the same than corresponding NVM file). These files should be placed in appropriate til subdirectory.
- Mode "Top" : fast access but heavy memory consumption,
- Mode "Mid" : medium time and memory performance,
- Mode "Eco" : longer execution time but less memory required.
No difference in accuracy between these modes.
Default mode is "Top". Other modes can be selected using --mid or --eco options when running AMREL. Conversions are automatic.
Gris-Mouton sector tiles of Fossard LiDAR data set are available in AMRELtest GitHub repository:
-
Copy the files from AMRELtest/Data/nvm/ directory into $AMREL/nvm/ directory.
-
Copy the files from AMRELtest/Data/til/eco/ directory into AMREL/til/eco/ directory.
-
Copy the file $AMRELtest/Data/tilesets/grismouton.txt into AMREL/tilesets directory.
-
Run AMREL grismouton
The result map is available in AMREL/steps/roads.png image. To test the precision of the achieved detection:
-
Copy this image in AMRELtest/Data/detections/roads_grismouton.png
-
In AMRELtest/Code/ directory, run roadgt --comp grismouton
To extract roads on tname single tile:
AMREL --tile tname
To add tile tname1 and tname2 to tile set tilesets/tsetname.txt:
AMREL --tile tname1 --tile tname2 tsetname
To extract roads on tile set tilesets/tsetname.txt
AMREL tsetname
To only run first stage (slope shading) and output a result map in steps/shade.png:
AMREL --shade --map tsetname
To only run second stage (RORPO filter to enhance elongated shapes) and output a result map in steps/shade.png (assuming the result of previous stage is available) :
AMREL --rorpo --map tsetname
To only run third stage (gradient map computation using 5x5 mask Sobel filter) and output a result map in steps/sobel.png (assuming the result of previous stage is available) :
AMREL --sobel --map tsetname
To only run fourth stage (straight segment extraction using FBSD detector) and output a result map in steps/fbsd.png (assuming the result of previous stage is available) :
AMREL --fbsd --map tsetname
To only run fifth stage (seeds positionning on extracted segments) and output a result map in steps/seeds.png (assuming the result of previous stage is available) :
AMREL --seeds --map tsetname
To only run sixth stage (road extraction using ASD) using extracted seeds (steps/roads.png output map is systematically produced) :
AMREL --asd tsetname
To build seeds from scratch on tiles listed in file tilesets/tsetname.txt using groups of 5x5 tiles:
AMREL --sawing --pad 5 tsetname
To extract roads form selected seeds on tiles listed in file tilesets/tsetname.txt using groups of 7x7 tiles:
AMREL --asd --buf 7 tsetname
###Map of extracted roads: roads.png
A PNG format image displaying the extracted roads. It is stored into steps directory.
###Seeds to edit extracted roads in ILSD tool: autodet.txt
Extracted roads can be edited using ILSD, an interactive road extraction tool from raw LiDAR data:
-
Run ILSD
-
In Files menu, select Load settings item, then AMREL/steps/autodet.ini file; this file contains the used road extraction parameters.
-
In Selection menu, select Load selection item, then AMREL/steps/autodet.txt file; this file contains the coordinates of successful seeds which produce the output roads.
Argument | Description |
---|---|
"tsetname" | Specifies the tile set to process |
--tile "name" (or -t "name") | Specifies a tile to add to the tile set |
--dtmdir "name" | Specifies the path to imported DTM files |
--xyzdir "name" | Specifies the path to imported point files |
--import "name" (or -i "name") | Specifies the suffixed name of an imported file |
--auto (or "") | Runs seeds selection from DTM map and road detection from point cloud |
--shade | Runs only first stage: slope-shading of DTM map |
--rorpo | Runs only second stage: RORPO filtering from shaded map |
--sobel | Runs only third stage: SOBEL gradient map production from filtered map |
--fbsd | Runs only fourth stage: FBSD straight segment detection from gradient map |
--seeds | Runs only fifth stage: seeds selection from straight segments |
--asd | Runs only sixth stage: road extraction from selected seeds |
--sawing | Runs the five first stages: seeds selection from a DTM map |
--eco | Uses slow access mode to ground points |
--mid | Uses medium access mode to ground points |
--pad "size" | Uses size x size groups of tiles for seed selection (positive odd integer value) |
--buf "size" | Uses size x size groups of tiles for road extraction (positive odd integer value) |
--hill | Outputs hill-shaded DTM in steps/hill.png |
--map | Outputs results in a PNG image |
--color | Outputs results in a colored PNG image (for each segment, seed or road section) |
--dtm | Outputs results superimposed DTM map |
--unconnected | Does not interpolate between valid road profiles |
--bsminlength "length" | Sets minimal length for straight segment extraction (positive integer value) |
--bsmaxthick "thickness" | Sets maximal thickness for straight segment extraction (positive integer value) |
--seedshift "shift" | Sets the distance between successive seeds |
--seedwidth "width" | Sets seed width |
--silent | Suppresses message printing |