Changes between Version 10 and Version 11 of Help/LeicaLidarDems


Ignore:
Timestamp:
May 19, 2009, 12:57:33 PM (15 years ago)
Author:
mark1
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Help/LeicaLidarDems

    v10 v11  
    2020------------
    2121== GRASS ==
    22 The first step is to create a location of the required area. See the GRASS reference manual for help with this. When this is done the ASCII point data can be loaded in. To do this use the following command:
     22The first step is to create a location of the required area. See the GRASS reference manual for help with this. When this is done the ASCII point data can be loaded in.  To import the ASCII data it must be within the GRASS region limits, any data outside the current region will not be imported. If you know the extent of your data you can set the region limits and skip the next step.
    2323
    24 `r.in.xyz input=<LDRfilename> output=<outputmapname> x=2 y=3 z=4 fs=' '`
     24Scan through the point cloud and find the min/max Eastings and Northings:
     25
     261. '''`r.in.xyz -s input=<LDRfilename> output=<outputmapname> x=2 y=3 z=4 fs=' '`'''
    2527
    2628where <LDRfilename> is the filename you want to read in, <outputmapname> is the name you wish to call this within GRASS, x, y, and z are equal to the column numbers which contain the Easting, Northing and elevation values, fs is the field separator.
     29
     30Set the region such that it contains all the point cloud data, and the resolution you wish to use – in this case 2.0m:
     31
     322. '''`g.region  n=max_nothing s=min_northing w=min_easting e=max_easting res=2.0`'''
     33
     34replacing the keywords  max_nothing,  min_northing,  min_easting,  max_easting with the values from the `r.in.xyz` command above.
     35
     36Now we can import the laser point cloud data into grass. This uses the same `r.in.xyz` command as above but without the -s flag:
     37
     383. '''`r.in.xyz input=<LDRfilename> output=<outputmapname> x=2 y=3 z=4 fs=' '`'''
     39
     40The above 3 steps need to be repeated for each of the point cloud files you wish to use to make the DEM with.
     41
     42When all point cloud files are loaded into GRASS, the region needs to be changed such that it covers the area of all the point clouds:
     43
     444. '''`g.region rast=mapname1,mapname2,....`'''
     45
     46where mapname1, mapname2, etc are the map names of the imported point cloud data from the above step.
     47
     48All the separate LIDAR maps can now be patched together to make a single large raster data set. To do this, use the following command:
     49
     505. '''`r.patch in=mapname1, mapname2,... out=lidar_mosaic`'''
     51
     52where the map names are as before, the imported point cloud rasters, and lidar_mosaic is the output name for the single concatenated raster set.
     53
     54[[Image()]]
     55
     56Assuming that there are only small holes in the data set and the DEM is required only within the lidar swath coverage, we can use the `r.surf.idw` command to interpolate over the lidar. This command will also interpolate into the GRASS region where the LIDAR is undefined.
     57
     586. '''`r.surf.idw input=lidar_mosaic output=lidar_mosaic_idw`'''
     59
     60where the output raster, lidar_mosaic_idw, has been interpolated using an inverse distance weighted formula. As well as filling in holes within the lidar swath, this will also interpolate over empty parts of the GRASS region, resulting in possibly unrealistic data values.
     61
     62[[Image()]]
     63
     64This can be improved if you wish by using a mask when interpolating the data. To create a mask, the easiest way is to use your input data at a low resolution. This creates a raster which covers the LIDAR swath but contains no holes in the data (assuming the resolution is selected low enough).  To import the data at a lower resolution , repeat steps 1-3 for each ASCII point cloud setting the `res` variable to a suitable value, e.g. 50.0 and outputting to a new map.  Then repeat steps 4 and 5 to create a raster covering the combined LIDAR swath.
     65
     66Then to use the mask:
     67
     687. '''`r.mask input=<maskmapname>`'''
     69
     70and perform the interpolation step:
     71
     728. '''`r.surf.idw input=lidar_mosaic output=lidar_mosaic_idw`'''
     73
     74this results in a map where the internal holes have been filled, but the area outside the swath coverage remains unchanged.
     75
     76To extend the coverage of your DEM, if required, it is suggested to patch on external DEM data. If you have access to a good quality DEM then use that, else the SRTM 3 arc second DEM is freely available and covers most of the globe between +-60 degrees latitude. To see how to make a DEM from SRTM data see the [wiki:Processing/SRTMDEMs SRTM DEM] page. Make sure to select the projection  the same as your LIDAR DEM.
     77
     78Once you have an SRTM DEM of sufficient coverage you can patch the LIDAR and SRTM DEMs together, such that the LIDAR takes precedence. This means the lidar_dem should be the first of the input maps on the r.patch command. If the mask is still applied then remove it before patching:
     79
     809. '''`r.mask input=<maskmapname> -r`'''
     81
     8210. '''`r.patch in=lidar_dem, srtm_dem out=combined_dem`'''
     83
    2784------------
    2885== Making the DEM suitable for azgcorr ==