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.

  1. Running the stand alone ImageryCorrector.exe in the command prompt

  2. Installing the scripts and libraries in python, then running commands in the environment you have created.

Stand Alone Executable Setup Instructions

1

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.

2

Unzip File

Extract the file from the downloaded zipped folder.

You're now ready to navigate to and run the .exe file in the command prompt.

Python Installation Instructions

1

Download miniconda for python 3.7

Choose the correct option for your computer.

2

Open Anaconda Prompt (miniconda3)

3

Clone py-radiometric-corrections

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

4
cd py-radiometric-corrections/

5

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 .

you may need to add --user at the end of the install command.

Installation Complete.


How To Use

Stand Alone Executable Usage

1

Open Command Prompt and navigate to location of ImageryCorrector.exe

cd C:\Users\Mbohman\Downloads\ImageryCorrector
2

Get Required Arguments

 ImageryCorrector.exe -h
3

Run Corrections

 ImageryCorrector.exe "input_path" --output_path "output_path"

Python Usage

1

Open Anaconda Prompt and navigate to py-radiometric-corrections/.

cd py-radiometric-corrections/ 
2

Activate Environment

 conda activate imgcorrect-venv 
3

Get Required Arguments

 python scripts\correct_images.py -h  
4

Run Corrections

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

Use local data folders when running the proceesing scripts.


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:

  1. Autoexposure correction.

  2. Incident Light Sensor correction.

  3. 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?