Code and docs for the Ice Road project.
Install packages in requirements.txt
I would reccomend doing this within an environment using the conda package manager:
conda create -c conda-forge --name iceroad arosics gdal pandas numpy numba pyyaml
to activate the environment:
conda activate iceroad
Satellite images were processed according the following steps:
- Conversion to top-of-atmosphere reflectance
- Orthorectification
- Clipping
- Co-registration
- Calculating NDVI and NDWI
Use code/python/radiometric-calibration-utility.py
to preform absolute
radiometric calibration and conversion to top-of-atmosphere(TOA) reflectance.
This utility supports input data in the format provided by Maxar/DigitalGlobe. The process used is described in the document here. Further calibration values used were found here.
The utility reads a config YAML file that contains the path to the input data,
output directory, wether or not to calculate TOA reflectance and other settings.
example-calibration-config.yml
contains all settings and options that
can be used in this utility.
Run as:
python code/python/radiometric-calibration-utility.py config.yml
Use code/python/orthorectify-utility.py
This utility uses GDAL warp to
orthorectify image data.
Inputs may either be raw data in the format provided by Maxar/DigitalGlobe, or reflectance outputs from radiometric-calibration-utility.py
(preferred).
The utility requires a config YAML file the input/output directories, a path to
the DEM, and the input format to operate. example-orthorectification-config.yml
contains all settings and options that can be used in this utility.
Run as:
python code/python/orthorectify-utility.py config.yml
Use code/python/clipping-utility.py
Takes output from orthorectification and
clip data to areas of interest provided in a vector file. Process uses GDAL
warp.
Utility needs a config YAML file that contains the path to a csv file (as output
from orthorectify-utility.py
), and a path to vector file along with various
other settings to preform the the clipping. clipping-config-example.yml
describes all settings that may be used.
Run as:
python code/python/clipping-utility.py config.yml
Use code/python/co-register-utility.py
. To co-register data output from clipping-utility.py
.
Add a column to the report file provided by clipping-utility.py
called
co-register
assign one row as the reference
image, and other rows as
target
. Leave rows in this column blank to skip. See example-co-register-in.csv
for an example of how this should look.
The utility takes a config YAML file with the input CSV file, output
directory and other settings to operate. co-registration-config-example.yml
describes describes all settings that may be used.
Run as:
python code/python/co-register-utility.py config.yml
These indexes are calculated with code/python/index-calculator-utility.py
The utility takes a config YAML file which contains an input CSV file, output
directory, Index to calculate and other settings to operate.
example-index-calculator-config.yml
contains and describes all possible
options this utility may use.
Run as:
python code/python/index-calculator-utility.py config.yml