#########
# GDSC ETL is performed in two steps: shell script to ETL data into postgres
# and then additional transformations with SQL in postGIS (if needed).
####
#########
# Step 1 - bash script (pseudo code)
####
# create directory structure and move into it
mkdir -p /data/us_soundscore_howloud/{download,etl} && cd /data/us_soundscore_howloud
# set update flag based on last update and update frequency
do_update=0 if date() < last_update + update_frequency else do_update = 1
# create color raster and render raster tiles
mkdir -p /data/us_soundscore_howloud/derived
mkdir -p /tiles/raster/us_soundscore_howloud
cd /data/us_soundscore_howloud
echo "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" | base64 -d > /data/us_soundscore_howloud/derived/us_soundscore_howloud_legend.png
cp /data/us_soundscore_howloud/derived/us_soundscore_howloud_legend.png /tiles/raster/us_soundscore_howloud/