Pima Association of Government LiDAR Processing

Pima Association of Government LiDAR Processing

LiDAR Tile Map

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