Pima Association of Government LiDAR Processing

Pima Association of Government LiDAR Processing

LiDAR Tile Map

Unknown macro: {html}

<iframe src="https://www.google.com/maps/d/u/0/embed?mid=zWrC3jHvBaPo.kQxtF3pEUs_Y" width="800" height="600"></iframe>

The Pima Association of Governments (PAG) has collected aerial LiDAR data over the Tucson basin for a decade (dates: 2005, 2008, 2011, 2015). The LiDAR and digital Orthophotography data sets are currently hosted by the University of Arizona Library (UA Access only link)

As a demonstration portion of this project, we will calculate the monthly global irradiation (direct + diffuse + reflected) and hourly insolation of the LiDAR derived digital surface model - this is a representation of a landscape which includes above-ground features like trees, buildings, and infrastructure.

DSM and radiation/hours of sun light models will be calculated using the Sol routine developed by the Fall 2014 ACIC 420/520 (Applied Cyberinfrastructure Concepts) course.

We will be using the 2015 PAG LiDAR data for this project in order to be up-to-date on new construction and growth/death of urban trees and vegetation.

LAStools workflow

http://rapidlasso.com/2016/02/03/generating-spike-free-digital-surface-models-from-lidar/

Unfortunately - I don't have a licences to use LASTools right now and it generates a diagonal line through the surface model. I've requested one from Martin Isenberg and am standing by...

C:\LAStools\bin>las2dem -i C:\PAG2015\14S14E07.las -sp83 AZ_C -spike_free 9 -feet -step 3 -hillshade -o C:\PAG2015\hillshade.tif
Please note that LAStools is not "free" (see http://lastools.org/LICENSE.txt)
contact 'martin.isenburg@rapidlasso.com' to clarify licensing terms if needed.
using state plane 'AZ_C' (NAD83 TM) 'stateplane83 AZ_C'
WARNING: unlicensed. over 1.5 million points. inserting black diagonal.
WARNING: nodata -9999 out-of-range for 8 bits. using 0.

USFS FUSION Workflow

FUSION runs in a CMD window and has similar command line utilities as LASTools. 

First I run the FilterData function to remove outliers (points like birds, or airborne debris which are far above the ground level); here I use the outlier function for points within a 30x30 foot area at 5x the z-axis standard deviation.

Next, I create a digital surface model using the GridSurfaceCreate function at 3 foot resolution.  

FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S13E01_f.las D:\Tucson_Sol\las\14S13E01.las
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S13E12_f.las D:\Tucson_Sol\las\14S13E12.las
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S13E13_f.las D:\Tucson_Sol\las\14S13E13.las
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E05_f.las D:\Tucson_Sol\las\14S14E05.las 
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E06_f.las D:\Tucson_Sol\las\14S14E06.las 
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E07_f.las D:\Tucson_Sol\las\14S14E07.las 
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E08_f.las D:\Tucson_Sol\las\14S14E08.las  
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E17_f.las D:\Tucson_Sol\las\14S14E17.las
FilterData /index outlier 5 30 D:\Tucson_Sol\las\14S14E18_f.las D:\Tucson_Sol\las\14S14E18.las
GridSurfaceCreate D:\Tucson_Sol\dsm\14S13E01.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S13E01.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S13E12.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S13E12.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S13E13.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S13E13.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E05.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E05.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E06.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E06.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E07.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E07.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E08.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E08.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E17.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E17.las 
GridSurfaceCreate D:\Tucson_Sol\dsm\14S14E18.dtm 1 f f 2 0 2 2 D:\Tucson_Sol\las\14S14E18.las
MergeDTM /disk /overlap:average /cellsize:3 D:\Tucson_Sol\dsm\ua_model_3ft.dtm D:\Tucson_Sol\dsm\14S13E01.dtm D:\Tucson_Sol\dsm\14S13E12.dtm D:\Tucson_Sol\dsm\14S13E13.dtm D:\Tucson_Sol\dsm\14S14E05.dtm D:\Tucson_Sol\dsm\14S14E06.dtm D:\Tucson_Sol\dsm\14S14E07.dtm D:\Tucson_Sol\dsm\14S14E08.dtm D:\Tucson_Sol\dsm\14S14E17.dtm D:\Tucson_Sol\dsm\14S14E18.dtm   
MergeDTM /disk /overlap:average D:\Tucson_Sol\dsm\ua_model_1ft.dtm D:\Tucson_Sol\dsm\14S13E01.dtm D:\Tucson_Sol\dsm\14S13E12.dtm D:\Tucson_Sol\dsm\14S13E13.dtm D:\Tucson_Sol\dsm\14S14E05.dtm D:\Tucson_Sol\dsm\14S14E06.dtm D:\Tucson_Sol\dsm\14S14E07.dtm D:\Tucson_Sol\dsm\14S14E08.dtm D:\Tucson_Sol\dsm\14S14E17.dtm D:\Tucson_Sol\dsm\14S14E18.dtm  
DTM2ASCII D:\Tucson_Sol\dsm\ua_model_1ft.dtm
DTM2TIF D:\Tucson_Sol\dsm\ua_model_1ft.dtm
DTM2ASCII D:\Tucson_Sol\dsm\ua_model_3ft.dtm
DTM2TIF D:\Tucson_Sol\dsm\ua_model_3ft.dtm


Batch command processing of DSM

All .bat files are kept in the FUSION folder.

Create a filelist.txt with the directory id's of the tiles.

dir /b /s *.las >filelist.txt

The call .bat uses the filename 'filelist.txt' to execute serially the processes on all of the LAS/LAZ files to use:

for /F "eol=; tokens=1* delims=,. " %%i in (D:\Tucson_Sol\las\filelist.txt) do call create_dtm_gtifs %%

Make sure all folders are created before executing. Batch file named create_dtm_gtifs.bat:

FilterData /index outlier 5 30 D:\Tucson_Solar\las\%1_f.las D:\Tucson_Sol\las\%1.las
GridSurfaceCreate D:\Tucson_Solar\dtm\%1.dtm 1 f f 2 0 2 2 D:\Tucson_Solar\las\%1_f.las
DTM2ASCII D:\Tucson_Solar\dtm\%.dtm
DTM2TIF D:\Tucson_Solar\tif\%.dtm 

 

Mapping RGB onto LAS tiles

Aesthetically, I wanted to see if I could put the PAG 2015 6-inch orthophotography onto the point cloud data - this is also useful for calculating GridMetrics using FUSION, which can take into account the RGB values.

I used the Liblas las2las to read and write the RGB into the LAS tiles:

las2las -i D:\Tucson_Sol\14S14E07.las --color-source D:\Tucson_Sol\14S14E07_C50Y15.tif -o D:\Tucson_Sol\14S14E07rgb.las --file-format 1.2 --point-format 3 --color-source-scale 256 --color-source-bands 1 2 3