In this article:
Quick Setup
To generate NDVI or GRVI orthophotos in PhotoMesh, perform the following basic configuration:
-
After loading your photos, define the Multispectral Bands in the Collection Properties:
Set the NIR band to
NIR.Set the Red and/or Green bands to a custom multispectral band (for example
Custom_0,Custom_1).
-
Select the bands used for the vegetation index:
In Build Parameters > Build Settings tab > Orthophoto > Bands and Collections.
Select the index: NDVI or GRVI.
Assign the required spectral bands for the calculation (e.g., NIR and Red for NDVI, or Green and Red for GRVI).
In Build Parameters >Aerotriangulation tab > AT Flags field, add the following flags to enforce a global 16-bit range and minimize radiometric degradation:
@featuredetect2[GdalMinValue=0]@featuredetect2[GdalMaxValue=65535]@featuredetect2[SmptJpegQuality=99]-
Enable orthophoto generation:
In Build Parameters > Build Settings tab > under Outputs > select Orthophoto.
Click Build.
The sections below describe these steps in more detail.
Introduction
PhotoMesh can generate orthophotos based on two vegetation indices:
NDVI (Normalized Difference Vegetation Index)
GRVI (Green-Red Vegetation Index)
These spectral indices are commonly used to evaluate vegetation health using aerial or satellite imagery. Vegetation indices rely on the spectral behavior of vegetation containing chlorophyll. Healthy vegetation typically exhibits:
Strong absorption in the red spectral range
Strong reflectance in the near-infrared (NIR) spectral range
Moderate reflectance in the green spectral range
This contrast between spectral bands allows vegetation indices to estimate vegetation health and vigor. NDVI uses the NIR and Red bands, while GRVI uses the Green and Red bands. The workflow for generating NDVI and GRVI orthophotos in PhotoMesh is identical; only the bands used in the calculation differ.
Both indices are normalized ratios and produce values between –1 and 1, where higher values typically indicate healthier, denser vegetation. The vegetation indices are calculated using the following formulas:
NDVI = (NIR − Red) / (NIR + Red)
GRVI = (Green − Red) / (Green + Red)
NDVI/GRVI Requirements
When working with multispectral imagery, PhotoMesh may interpret collections labeled as Red, Green, and Blue as RGB imagery and apply color balancing during reconstruction. Vegetation index calculations require the original radiometric values, so this processing should be avoided.
To prevent RGB color balancing, define the Red and/or Green bands as custom multispectral bands (for exampleCustom_0,Custom_1). The NIR band can remain defined as NIR.- All photos must share a consistent 16-bit radiometric range.
- During processing, PhotoMesh converts imagery to SMPT format using JPEG compression. To minimize compression artifacts, the JPEG quality should be increased.
The sections below explain how to configure these settings.
Step 1: Loading Data and Configuring the Collections
Preparing the Photos
If using georeferenced photos with EXIF metadata, place each band (Red, NIR, etc.) in a separate folder. This allows PhotoMesh to automatically detect and separate them into different collections.
Photos can also be loaded using an Excel or CSV file that includes the needed parameters (location, orientation, camera parameters, collection name) set for each photo. More about: Adding Photos >
Disabling Color Balancing
PhotoMesh applies color balancing to RGB collections by default. This improves visual consistency between images, but modifies pixel values.
For vegetation indices, this is undesirable because the original radiometric values need to be preserved.
To avoid this, two options are available:
-
Option 1 - Use Custom Band Types (recommended)
After adding photos to the project, change the multispectral band type in the collection's properties to Custom_0 or Custom_1. This is needed only for the Red and/or Green bands:
When using custom band types, an RGB orthophoto and an NDVI/GRVI orthophoto can be created in the same build. To do so, load RGB JPEG photos together with multispectral single-band TIFF files.
The band types and other parameters can also be predefined when loading photos from an Excel, XML or CollectionProperties.xml file placed inside each input folder. More about: Adding Photos >
-
Option 2 - Disable in Reconstruction
Add the following reconstruction flag:
-dpc_ab 0⚠ Note: If using this flag, RGB outputs will also be affected. Use this flag only when generating NDVI/GRVI outputs exclusively.
Step 2: Setting the Build Parameters
Selecting the bands for calculating the desired index
Open the Build Parameters dialog (Home > Build).
Build Settings > Outputs section, select Orthophoto.
Under the Outputs-Orthophoto format, in the Bands and Collections field, click More Options
.
Select the index (1), set the bands (2) and add the index to the Bands Used section (3).
Enforcing a Global 16-bit Range
By default, PhotoMesh stretches each 16-bit image to its full internal range during processing. While this improves visual contrast, it alters the original radiometric values, which is undesirable when calculating vegetation indices.
To prevent per-image stretching and enforce a consistent 16-bit range across all images, modify the feature detection settings:
In the Build Parameters dialog > Aerotriangulation tab > AT Flags field, add the the following flags:
@featuredetect2[GdalMinValue=0]
@featuredetect2[GdalMaxValue=65535]These flags force PhotoMesh to maintain a consistent 16-bit range (0–65535) across all photos.
Minimizing Radiometric Degradation
During internal processing, PhotoMesh converts imagery to 8-bit when creating SMPT files.
To minimize compression effects, increase JPEG quality:
In the Build Parameters dialog > Aerotriangulation tab > AT Flags field, add the the following flag:
@featuredetect2[SmptJpegQuality=99]This reduces compression artifacts and keeps pixel values as close as possible to their original values.
Step 3: Generating Orthophoto Output
In Build Parameters > Build Settings tab > under Outputs > select Orthophoto.
Click Build. More about: Setting build steps, parameters, and outputs >
Radiometric Calibration – Important Considerations
PhotoMesh preserves pixel values when configured as described above, but it does not perform full radiometric calibration (conversion from raw digital numbers to reflectance).
Without proper calibration, NDVI/GRVI results are generally suitable for:
Relative comparison within the same dataset
Visual or qualitative evaluation
For quantitative comparison across different dates, lighting conditions, or flights, radiometric calibration is strongly recommended.
Radiometric calibration may include:
Sensor gain correction
Exposure normalization
Sun irradiance correction
Vignetting correction
Reflectance panel calibration
Atmospheric compensation
These steps depend on the specific camera model and manufacturer.
To apply sun irradiance correction based on EXIF metadata:
In the Build Parameters dialog > Aerotriangulation tab > AT Flags field, add the the following flag:
@FeatureDetect2[UseExifSunCalibration=1]This setting attempts to apply sun irradiance correction based on EXIF metadata (when available).
However:
The exact implementation may not match the manufacturer’s official radiometric workflow.
It may rely on generalized calculations.
It is primarily relevant for cameras that embed solar irradiance metadata (for example, DJI multispectral models).
It may not be applicable to other camera systems.
Therefore, this setting should not be considered a full radiometric calibration workflow.
Recommended Best Practice
For scientifically reliable vegetation index results:
Perform radiometric calibration using the workflow recommended by your camera manufacturer.
Generate calibrated reflectance TIFFs.
Import those calibrated TIFFs into PhotoMesh.
Then apply the configuration steps described in this article to preserve those values.
Always consult your sensor’s official documentation to determine:
Whether calibration panels are required
Whether reflectance output is already provided
Whether additional preprocessing software is required