|
|
|
@ -1,9 +1,24 @@
|
|
|
|
|
DATA_BACKUP_DIR = "J:/Coastal/Temp/CKL/nsw_2016_storm_impact/data"
|
|
|
|
|
###############################
|
|
|
|
|
# Load environment variables
|
|
|
|
|
|
|
|
|
|
include .env
|
|
|
|
|
export $(shell sed 's/=.*//' .env)
|
|
|
|
|
CURRENT_DIR = $(shell pwd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# Create python virtual environment
|
|
|
|
|
|
|
|
|
|
. PHONY: venv_init
|
|
|
|
|
|
|
|
|
|
venv-init: ##@environment Setup virtual environment
|
|
|
|
|
pip install pipenv
|
|
|
|
|
pipenv --python 3.7
|
|
|
|
|
pipenv install
|
|
|
|
|
|
|
|
|
|
#################################################################################
|
|
|
|
|
# PROJECT RULES #
|
|
|
|
|
#################################################################################
|
|
|
|
|
.PHONY: push-data mat_to_csv sites-csv-to-shp
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# Get data from network drive
|
|
|
|
|
|
|
|
|
|
push-data: ##@data Copies data from ./data/ to data backup directory
|
|
|
|
|
rclone copy ./data/ $(DATA_BACKUP_DIR) --exclude "*.las" --progress
|
|
|
|
@ -12,15 +27,74 @@ pull-data: ##@data Copies data from data backup directory to ./data/
|
|
|
|
|
# We probably don't want to pull the raw LIDAR .las files, so lets exclude them
|
|
|
|
|
rclone copy $(DATA_BACKUP_DIR) ./data/ --exclude "*.las" --progress
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# Process data
|
|
|
|
|
.PHONY: process-mat
|
|
|
|
|
|
|
|
|
|
process-mat: ./data/interim/sites.csv ./data/interim/waves.csv ./data/interim/profiles.csv ./data/interim/tides.csv ##@data Process all .mat to .csv
|
|
|
|
|
|
|
|
|
|
# Calculates beach orientations at each profile
|
|
|
|
|
./data/raw/processed_shorelines/orientations.mat: ./data/raw/processed_shorelines/profiles.mat
|
|
|
|
|
$(MATLAB_PATH) -nosplash -r "cd $(CURRENT_DIR); run('./src/data/beach_orientations.m'); quit"
|
|
|
|
|
|
|
|
|
|
# Produces a .csv of sites where our beach cross-sections are located
|
|
|
|
|
./data/interim/sites.csv: ./data/raw/processed_shorelines/*.mat
|
|
|
|
|
pipenv run python ./src/data/parse_mat.py create-sites-csv \
|
|
|
|
|
--waves-mat "./data/raw/processed_shorelines/waves.mat" \
|
|
|
|
|
--tides-mat "./data/raw/processed_shorelines/tides.mat" \
|
|
|
|
|
--profiles-mat "./data/raw/processed_shorelines/profiles.mat" \
|
|
|
|
|
--orientations-mat "./data/raw/processed_shorelines/orientations.mat" \
|
|
|
|
|
--output-file "./data/interim/sites.csv"
|
|
|
|
|
|
|
|
|
|
# Produces a .csv of waves for each site
|
|
|
|
|
./data/interim/waves.csv: ./data/interim/sites.csv ./data/raw/processed_shorelines/waves.mat ./src/data/parse_mat.py
|
|
|
|
|
pipenv run python ./src/data/parse_mat.py create-waves-csv \
|
|
|
|
|
--waves-mat "./data/raw/processed_shorelines/waves.mat" \
|
|
|
|
|
--sites-csv "./data/interim/sites.csv" \
|
|
|
|
|
--output-file "./data/interim/waves.csv"
|
|
|
|
|
|
|
|
|
|
# Produces a .csv of profiles for each site
|
|
|
|
|
./data/interim/profiles.csv: ./data/interim/sites.csv ./data/raw/processed_shorelines/profiles.mat ./src/data/parse_mat.py
|
|
|
|
|
pipenv run python ./src/data/parse_mat.py create-profiles-csv \
|
|
|
|
|
--profiles-mat "./data/raw/processed_shorelines/profiles.mat" \
|
|
|
|
|
--sites-csv "./data/interim/sites.csv" \
|
|
|
|
|
--output-file "./data/interim/profiles.csv"
|
|
|
|
|
|
|
|
|
|
# Produces a .csv of tides for each site
|
|
|
|
|
./data/interim/tides.csv: ./data/interim/sites.csv ./data/raw/processed_shorelines/tides.mat ./src/data/parse_mat.py
|
|
|
|
|
pipenv run python ./src/data/parse_mat.py create-tides-csv \
|
|
|
|
|
--tides-mat "./data/raw/processed_shorelines/tides.mat" \
|
|
|
|
|
--sites-csv "./data/interim/sites.csv" \
|
|
|
|
|
--output-file "./data/interim/tides.csv"
|
|
|
|
|
|
|
|
|
|
./data/interim/sites.shp : ./data/interim/sites.csv
|
|
|
|
|
pipenv run python ./src/data/csv_to_shp.py sites-csv-to-shp \
|
|
|
|
|
--input-csv "./data/interim/sites.csv" \
|
|
|
|
|
--output-shp "./data/interim/sites.shp"
|
|
|
|
|
|
|
|
|
|
#################################################################################
|
|
|
|
|
# PROJECT RULES #
|
|
|
|
|
#################################################################################
|
|
|
|
|
.PHONY: push-data parse_mat sites-csv-to-shp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mat-to-csv: ##@data Converts raw .mat files to .csv for python
|
|
|
|
|
cd ./src/data/ && python mat_to_csv.py
|
|
|
|
|
cd ./src/data/ && python parse_mat.py
|
|
|
|
|
|
|
|
|
|
sites-csv-to-shp: ##@data Create the sites.shp from sites.csv
|
|
|
|
|
cd ./src/data && python csv_to_shp.py sites_csv_to_shp "..\..\data\interim\sites.csv" "..\..\data\interim\sites.shp"
|
|
|
|
|
|
|
|
|
|
#################################################################################
|
|
|
|
|
# Self Documenting Commands #
|
|
|
|
|
#################################################################################
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# Misc commands
|
|
|
|
|
format: ./src/*.py ##@misc Check python file formatting
|
|
|
|
|
pipenv run black --line-length 120 "src/"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# Help command
|
|
|
|
|
|
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
|
.PHONY: help
|
|
|
|
|
|
|
|
|
|