You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.2 KiB
Markdown
105 lines
3.2 KiB
Markdown
# Central Coast aerial lidar processing
|
|
|
|
Python scripts for cleaning, classifying, and extracting survey profiles from las point clouds.
|
|
|
|
### 1. Enter input parameters
|
|
Input parameters are entered into excel spreadsheets, e.g. `param-files/survey-1.xlsx`. The python scripts take their input in yaml format. The spreadsheets can be converted to yaml by running:
|
|
|
|
```
|
|
python excel_to_yaml.py
|
|
```
|
|
|
|
### 2. Manipulate las data
|
|
`las_manipulation.py` does the following to the input las file:
|
|
- clip to beach extent
|
|
- classify ground points (so vegetation and buildings can be removed later)
|
|
- draw a polygon to remove swash zone interference
|
|
|
|
Example usage:
|
|
|
|
```
|
|
# Process single survey at specific beach
|
|
python las_manipulation.py param-files/survey-1-avoca.yaml
|
|
|
|
# Process single survey at multiple beaches
|
|
python las_manipulation.py param-files/survey-1-avoca.yaml param-files/survey-1-pearl.yaml
|
|
|
|
# Process all surveys at specific beach
|
|
python las_manipulation.py param-files/*avoca.yaml
|
|
|
|
# Process all beaches for specific survey date
|
|
python las_manipulation.py param-files/survey-1*.yaml
|
|
|
|
# Process all beaches for multiple survey dates
|
|
python las_manipulation.py param-files/survey-1*.yaml param-files/survey-2*.yaml
|
|
```
|
|
|
|
### 3. Check swash clipping mask
|
|
The swash clipping mask should be checked visually to ensure it is correct.
|
|
|
|
### 4. Export results
|
|
`las_outputs.py` does the following, based on the outputs of `las_manipulation.py`:
|
|
- remove swash zone
|
|
- extract elevations from point cloud at profile locations
|
|
- complete volume analysis based on Nielsen et al. (1992)
|
|
- save figures of profile cross sections
|
|
- save raster of ground surface
|
|
|
|
Example usage:
|
|
|
|
```
|
|
# Process single survey at specific beach
|
|
python las_outputs.py param-files/survey-1-avoca.yaml
|
|
|
|
# Process all beaches for multiple survey dates
|
|
python las_outputs.py param-files/survey-1*.yaml param-files/survey-2*.yaml
|
|
```
|
|
|
|
### 5. Generate erosion heatmaps
|
|
`generate_heatmaps.py` creates a heatmap raster by calculating the elevation difference between the current and previous surveys.
|
|
|
|
`generate_heatmaps.py` relies on `arcpy`, so this script must be run using the version of `python` that was installed with ArcGIS.
|
|
|
|
Example usage:
|
|
|
|
```
|
|
C:\Python27\ArcGIS10.5\python generate_heatmaps.py param-files\survey-2*.yaml
|
|
|
|
```
|
|
|
|
### 6. Export erosion heatmaps
|
|
|
|
`plot_heatmaps.py` exports a jpg erosion heatmap at all of the beaches covered by the specified heatmap tif.
|
|
|
|
`plot_heatmaps.py` relies on `arcpy`, so this script must be run using the version of `python` that was installed with ArcGIS.
|
|
|
|
Example usage:
|
|
|
|
```
|
|
C:\Python27\ArcGIS10.5\python plot_heatmaps.py param-files\survey-2-avoca.yaml
|
|
```
|
|
|
|
### 7. Export 0.7 m contour for DSAS trend analysis
|
|
`extract_contours.py` extracts a predefined contour (say 0.7 m AHD) and outputs it in a format suitable for DSAS shoreline trend analysis.
|
|
|
|
Example usage:
|
|
```
|
|
python extract_contours.py
|
|
```
|
|
|
|
## polyline_to_points.py
|
|
This script interpolates points along transects in a shapefile.
|
|
|
|
Example usage:
|
|
|
|
```
|
|
# Extract points at default spacing (1m)
|
|
$ python polyline_to_points.py path/to/shp
|
|
|
|
# Extract points at 5m increments
|
|
$ python polyline_to_points.py -s 5 path/to/shp
|
|
|
|
# Use profile names from field "ProfileID" in the attribute table
|
|
$ python polyline_to_points.py -f ProfileID path/to/shp
|
|
```
|