Python library for computation of the normalized product (normprod) for automated mapping of landfast sea ice around Antarctica in Sentinel-1 SAR imagery.
Original development was conducted in collaboration with the University of Tasmania, UiT The Arctic University of Norway, and Geoscience Australia, as part of the Australian Antarctic Program Partnership (AAPP).
This library requires the Geospatial Data Abstraction Layer (GDAL) library. The simplest way to manage GDAL and Python dependencies is via the Anaconda distribution.
It is recommended the code in a dedicated virtual environment:
# Create and activate a new environment
conda create -y --name NORMPROD -c conda-forge gdal rasterio geopandas numpy scipy loguru matplotlib pyyaml
conda activate NORMPROD
# Install additional interactive tools
pip install ipython
You can install this library directly from GitHub or locally after cloning the repository.
# install this package
pip install git+https://github.com/jlo031/normalized_product
# clone the repository
git clone git@github.com:jlo031/normalized_product
Change into the main directory of the cloned repository (it should contain the setup.py file) and install the library:
# installation
pip install .
Test scripts and usage examples are provided in the test/ and examples/ folders.
- examples: Contains a "quick and dirty" script that runs through the entire processing chain for a single image pair.
- examples/hpc_support: Examples subfolder with setup for distributed batch processing, specifically designed for the NCI/GADI supercomputing environment.
Unless you are developing the code further, there is no need to run or modify the contents of the test/ folder.
An example setup for HPC batch processing is provided in examples/hpc_support/.
For full batch processing of a complete test site, users only need to adjust the config.yaml file located in the config/ folder.
The entire batch processing chain consists of two steps:
preprocess_full_test_site.py: Handles initial data preparation, georegistration, checking of image pairs, and cropping to overlapping regions.batch_process_normprod_smovar.py: Computes the normalized product for each valid image pair.
Both scripts read settings from config.yaml and should not require manual code changes. All outputs are written to specific image-pair folders within the test site directory.
Your data must be organized according to the structure below for the batch scripts to function:
DATA_DIR/
│
├── TestSite1/
│ ├── GA_geotiffs/
│ │ ├── original_GA_intensity_file1.tif
│ │ ├── original_GA_intensity_file2.tif
│ │ └── ...
│ ├── IMG_PAIR_1/
│ │ ├── georeg_1_*tif
│ │ ├── georeg_1_*tif
│ │ └── normprod_smovar_window_*tif
│ └── ...
│
└── TestSiteN/
├── GA_geotiffs/
│ └── ...
├── IMG_PAIR_1/
│ └── ...
└── ...
DATA_DIR/: The main directory containing all test site subfolders.TestSite1/,TestSite2/, ...,TestSiteN/: Subfolders for individual test sites.GA_geotiffs/: A folder within each test site containing the original GeoTIFF files.IMG_PAIR_1/,IMG_PAIR_2/, ...: Folders for individual image pairs within each test site, containing processed or related files.