Post Processing Script
Introduction
When using a reflectance panel, raw images should first be run through a Radiometric Corrections Workflow.
Click below to view the GitHub page for this tool.
Download Options
There are two options to setup and perform these corrections.
Running the stand alone ImageryCorrector.exe in the command prompt
Installing the scripts and libraries in python, then running commands in the environment you have created.
Stand Alone Executable Setup Instructions
Download .exe file
ImageryCorrector.exe can be downloaded from the most recent tagged release on GitHub.
Click on the link below, and scroll down to assets. Then click ImageryCorrector.zip to download.
Python Installation Instructions
Download miniconda for python 3.7
Choose the correct option for your computer.
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.
How To Use
Stand Alone Executable Usage
Python Usage
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
[-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).
Last updated
Was this helpful?