Calibration Imagery Post Processing
6X Multispectral Calibration Imagery Post Processing
Introduction
When using a reflectance panel with the 6X sensor, raw images should first be run through the Sentera 6X Calibration script.
Follow the detailed usage instructions found in the README file.
Downloads
Installation Instructions
Download miniconda for python 3.7
Choose the correct option for your computer.
Open Anaconda Prompt (miniconda 3)

Clone py-radiometric-corrections.
git clone https://github.com/SenteraLLC/py-radiometric-corrections.git

Navigate to py-radiometric-corrections/
cd py-radiometric-corrections/

Run The Following Commands
This creates an imgcorrect-venv environment that all scripts should be run in and installs the analyticstest library for the scripts to reference. If no errors appear, the imgcorrect library should be installed correctly.
conda env create -f environment.yml

conda activate imgcorrect-venv

pip install .

Installation Complete
Usage
The imagery correction in this repository can be used via:
Importing the various library functions defined in the package.
Running the pre-defined scripts with a Python installation of version 3.6 or above.
Running the standalone executable on the command line.
Arguments
input_path
Path to image files taken from supported sensors. Choose the session folder of your images. This will cause the script to correct the images in each subfolders for all 5 multispectral band and ignore the rgb folder.
--calibration_id "CALIBRATION_ID", -c CALIBRATION_ID
Identifier in the name of the image that denotes it is from the calibration set. If not specified, defaults to "CAL".
--output_path OUTPUT_PATH, -o OUTPUT_PATH
Path to output folder at which the corrected images will be stored. If not supplied, corrected images will be placed into the input directory.
--no_ils_correct, -i
If selected, Incident Light Sensor correction will not be applied to the images.
--no_reflectance_correct, -r
If selected, reflectance correction will not be applied to the images.
--delete_original, -d
Overwrite original 12-bit images with the corrected versions. If selected, corrected images are renamed to their original names. If not, an extension is added.
--exiftool_path EXIFTOOL_PATH, -e EXIFTOOL_PATH
Path to ExifTool executable. ExifTool is required for the conversion; if not passed, the script will use a bundled ExifTool executable.
--uint16_output, -u
If selected, scale of output values will be adjusted to 0-65535 and dtype will be changed to uint16.
Arugment Usage
correct_images.py [-h] [--calibration_id CALIBRATION_ID] [--output_path OUTPUT_PATH] [--no_ils_correct] [-no_reflectance_correct] [--delete_original] [--exiftool_path EXIFTOOL_PATH] [--uint16_output] [--version] input_path
The correction is done in 3 steps:
Autoexposure correction.
Incident Light Sensor correction.
Reflectance correction.
Autoexposure Correction
Sensors simulate longer exposures and wider apertures for subjects with lower upwelling radiance. These scripts correct by dividing pixel values by EXIF ISOSpeedRatings
* EXIF ExposureTime
Incident Light Sensor (ILS) Correction
Downwelling radiance may change over the course of a flight as clouds pass overhead. These scripts correct by dividing pixel values by a rolling average of Incident Light Sensor readings (Camera:SunSensor) on images taken within 3 seconds of the corrected image. Correcting for ILS will standardize the DN (digital number) of your images based on the differences in incident light.
Reflectance Correction
Sensors measure upwelling radiance, not reflectance. Radiance is dependent on unpredictable environmental conditions, and without a reference point with known reflectance, it is impossible to calculate. By beginning a flight with a photo of a panel with known reflectance, that panel's upwelling radiance can be used to standardize measurements.
These scripts correct by multiplying pixel values by slope coefficient (calculated based on known calibration panel reflectance values).
How To Use
Open Anaconda Prompt and navigate to py-radiometric-corrections/.
cd py-radiometric-corrections/

Activate Environment
conda activate imgcorrect-venv

Get Required Arguments
python scripts\correct_images.py -h

Run Corrections
python scripts\correct_images.py "input_path" --output_path "output_path"

Last updated