Load an Image
Click "Load Image" to select a GeoTIFF file
Filtering spectral bands by thresholds allows you to isolate reflectance patterns and reveal features in the image. Try it yourself or choose a preset filter. You can also add a boolean OR expression inside Custom Thresholds.
Spectral Signature
π§ͺ Methods Panel
βΌSpectral Reflectance Explorer is a teaching tool for investigating multispectral GeoTIFF data. Each pixel is scaled from digital numbers (DN) into unitless reflectance using the scale factor reported by the sensor, then rendered as RGB composites and spectral signatures that can be compared across windows.
When a TIFF is loaded, every band is read with geotiff.js, normalized by the selected divisor, and cached as float arrays. Visualization panels sample a configurable spatial window, summarize per-band statistics, and power band-specific filters so you can design logic-based queries that highlight materials of interest.
The analytics below expose the assumptions made by the rendering pipeline and the parameters used to transform raw values into the on-screen visualizations.
Conversion: Reflectance (rho) = DN Γ· --
Calibrated Range: -- (unitless surface reflectance)
Precision: 1 DN β -- reflectance units
π Visualization Control
RGB Band Assignment
Multispectral satellite imagery contains many spectral bands beyond what the human eye can see. To visualize this data, we assign three bands to the Red, Green, and Blue channels of your display. This creates a composite image where each pixel's color represents the reflectance values across those three bands.
True Color: Uses visible bands (Red β R, Green β G, Blue β B) to approximate natural appearance.
False Color: Uses non-visible bands (e.g., NIR β R) to reveal patterns invisible to the eye, such as vegetation health or water content.
Linear Contrast Stretch
Raw reflectance values often occupy only a small portion of the possible display range (0-255). Contrast stretching enhances image visibility by remapping the data distribution to use the full dynamic range.
Type: This tool uses a linear (min-max) stretch rather than non-linear alternatives like histogram equalization or standard deviation stretches. The linear approach preserves the relative relationships between pixel values while enhancing contrast.
Method: The stretch slider sets the lower percentile clip (default 2%). Values below this percentile are mapped to 0 (black), while values above the 98th percentile are mapped to 255 (white). This linear transformation improves contrast by eliminating extreme outliers while maintaining the linear relationship between reflectance values.
Formula: stretched = (value - min) / (max - min) Γ 255
where min and max are the specified percentile values for each band independently.
Gamma Correction (Non-Linear)
Gamma correction is a non-linear transformation that adjusts image brightness without changing the endpoints. It compensates for the non-linear relationship between pixel values and perceived brightness, making it complementary to the linear stretch.
Method: After linear contrast stretching, normalized values (0-1) are raised to the power of 1/gamma. A gamma > 1 brightens mid-tones (revealing dark features), while gamma < 1 darkens mid-tones (enhancing bright features). Unlike the linear stretch, this applies a power function that disproportionately affects mid-range values.
Formula: corrected = normalized(1/Ξ³)
Default Ξ³ = 1.0 (no correction, linear passthrough). Range: 0.3 (darken) to 2.5 (brighten).
Combined Pipeline
Each pixel undergoes this transformation sequence:
1. Select reflectance value from chosen band
2. Apply percentile-based linear contrast stretch
3. Apply non-linear gamma correction
4. Scale to 0-255 for display
This process is applied independently to R, G, and B channels, then combined to produce the final composite image. The combination of linear stretch (for contrast) and non-linear gamma (for brightness) provides flexible control over image appearance.