Image classification, hyperspectral & target detection
The classifier suite, air-gapped, on the analyst’s desk.
The classic Semi-Automatic Classification Plugin algorithm set and ENVI-class hyperspectral exploitation, implemented in pure C# and rendered as a raster function on the same ImageServer as everything else. Train from ROI polygons, GPS points or SAM2 segments; assess accuracy with a confusion matrix and Kappa; run change detection and object-based classification; and add Random Forest, SVM and XGBoost through an optional sidecar whose trained trees score in-process.
SAM · MinDist · MaxLik · Parallelepiped · K-meansRF · SVM · XGBoostPPI · N-FINDR · VCACEM · ACE · MF · MTMF · RXDPCA · MNFTOA + DOS1OBIA + GLCM
At a glance
- Per-pixel (pure C#)Spectral Angle Mapper, Minimum Distance, Maximum Likelihood (Mahalanobis via Cholesky with ridge guard), Parallelepiped, K-means (k-means++ seeding)
- EnsemblesRandom Forest, SVM, XGBoost trained in a scikit-learn sidecar, exported as portable tree JSON and scored by a C# tree-walker — no Python at inference
- HyperspectralEndmembers PPI / N-FINDR / VCA; targets CEM, ACE, Matched Filter, MTMF; anomaly RXD (global + local); PCA and MNF transforms
- CalibrationTier-0 TOA and Tier-1 DOS1 reflectance from Landsat MTL and Sentinel-2 MTD sidecars
- WorkflowROI + GPS + SAM2 training, accuracy assessment (OA, producer’s / user’s, Cohen’s Kappa), two-date change map with from→to tally, OBIA with GLCM texture and shape, majority filter
- Render
renderingRule {rasterFunction:"Classify", signatureSetId, smoothRadius, calibrate:"dos1"}on any ImageryTileLayer
Capabilities
Supervised, unsupervised, spectral and object-based
Per-pixel classifiers
SAM (θ = acos(p·m / ‖p‖‖m‖)), Minimum Distance, Maximum Likelihood with Mahalanobis distance via Cholesky, Parallelepiped and unsupervised K-means — Welford mean and covariance training from your ROIs.
- Inline K-means preview:
KMeans {k:5} - Signature sets persist in a GeoPackage store
- Majority filter and smoothing radius on render
Machine-learning ensembles
Random Forest, SVM and XGBoost train in an optional scikit-learn sidecar; the trained ensemble exports to a portable tree JSON that the in-process C# walker scores — no Python at runtime, no round trips.
- Capability-gated:
/capabilitiesreports what is installed - Same signature sets and ROIs as the per-pixel classifiers
Hyperspectral exploitation
Endmember extraction (PPI, N-FINDR, VCA), target detection (CEM, ACE, Matched Filter, MTMF), anomaly detection (RXD global and local) and PCA / MNF dimensionality reduction — pure C#.
- Band-stack fusion builds the N-band cube from single-band rasters
- Results render as ImageServer raster functions
Accuracy and change
Seeded stratified sampling, confusion matrix with overall, producer’s and user’s accuracy and Cohen’s Kappa on a Plotly heatmap; post-classification change detection with a from→to transition tally.
- Radiometric calibration TOA + DOS1 from Landsat MTL / Sentinel-2 MTD
- TemporalFunction Difference for dNBR-style two-date maps
Object-based (OBIA)
Segment-level classification with GLCM texture and shape features on SAM2 or algorithmic segments; click-to-mask SAM2 segmentation returns GeoJSON polygons.
- SAM2 sidecar (local weights, no cloud)
- OBIA results share the signature store
Automation on the headless server
A scene groups related collects — a multispectral band stack, a mosaic, a stereo pair — into one VRT and analyzes it as one image: fuse → classify → class-map GeoTIFF registered as a COG, with the class breakdown on the job.
POST /api/scenes {collectIds, fusion:"BandStack", analysis:{autoClassify, signatureSetId}}- Auto-index and optional auto-detect on every arriving collect
Analyst workflow
Train, classify, assess, detect change
The workflow mirrors SCP so analysts trained on QGIS carry their habits across; the outputs are ImageServer layers any client can consume.
- CalibrateConvert DN to TOA or DOS1 reflectance from the sensor metadata so signatures transfer between dates.
- TrainDraw ROI polygons, drop GPS points or click SAM2 segments; the signature store accumulates class statistics.
- ClassifyPick SAM, MaxLik, MinDist, Parallelepiped, K-means or a trained RF / SVM / XGBoost ensemble; render it as a Classify raster function.
- AssessRun the seeded accuracy assessment; read OA, per-class accuracies and Kappa from the confusion matrix.
- Detect changeClassify the second date and produce the from→to change map — or run CEM / ACE / RXD for a specific target or anomaly instead.
Specifications
Algorithms and routes
Classifiers
- Pure C#SAM · Minimum Distance · Maximum Likelihood · Parallelepiped · K-means
- Sidecar-trainedRandom Forest · SVM · XGBoost (port 8006), scored in C#
- TrainingROI polygons · GPS points · SAM2 segments; Welford statistics
- AssessmentSeeded Fisher-Yates (default seed 7), OA, producer’s / user’s, Cohen’s Kappa
Hyperspectral
- EndmembersPPI · N-FINDR · VCA
- TargetsCEM · ACE · MF · MTMF
- AnomalyRXD global + local
- TransformsPCA · MNF
- CubesBand-stack VRT fusion of single-band rasters
Render & automate
- Raster function
Classifywith signatureSetId, smoothRadius, calibrate - ChangePost-classification from→to; TemporalFunction Difference
- OBIAGLCM texture + shape per segment
- Scenes
POST /api/scenesBandStack / Mosaic → autoClassify → COG
Honest scope
What ships, what is optional, what is next
Defense buyers get burned by overclaims. This is the plain-language scope for this capability, drawn from the product’s own documentation.
- Shipped Per-pixel, HSI, calibration, assessment, change, OBIA — Pure C# in the engine core; runs on the workstation and the headless Linux server alike.
- Optional sidecar / gated RF / SVM / XGBoost training — Needs the scikit-learn sidecar on port 8006 for training; inference is in-process C#.
- Optional sidecar / gated SAM2 and YOLO-E — Local model weights and a Python sidecar; GPU strongly recommended. No cloud calls.
- Roadmap Vector search / RAG — The AI assistant’s RAG and vector-search routes are stubs today and are not marketed on this site.
GeoTactical Insights · powered by 3D Map Explorer
See it on a disconnected machine.
A 30-minute guided demo on your own data: ingest, exploit, fuse, share to TAK and export — with the network cable out. We will also tell you exactly what is a sidecar, what is gated and what is still roadmap.
GeoTactical Insights
GEOINT and defense workflows powered by 3D Map Explorer, the air-gapped geospatial intelligence platform from Tech Maven Geospatial.