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

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

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:

  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).


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" 

Use local data folders when running the proceesing scripts.


Last updated

Logo

Sentera 6X Multispectral Sensor

6X Product PagePurchase 6X

Sentera Calibrated Reflectance Panel

Purchase Reflectance Panel