{"docs":[{"id":32,"title":"From Spectral Libraries to Cuprite — Better, Faster Alteration Maps","slug":"from-spectral-libraries-to-cuprite-better-faster-alteration-maps","excerpt":"Exploration teams looking for copper, gold, and critical-mineral deposits use hyperspectral imagery to map exposed alteration and indicator minerals—clays, micas, iron oxides, carbonates, and related assemblages.","description":null,"type":"Article","author":{"id":7,"name":"Ahmed Sigiuk","slug":"ahmed-sigiuk","email":null,"avatar":{"id":189,"alt":"Ahmed Sigiuk author headshot","caption":null,"sourcePath":"src/assets/team-headshot_4.png","updatedAt":"2026-06-23T19:31:05.725Z","createdAt":"2026-06-23T19:31:05.725Z","url":"/api/media/file/author-ahmed-sigiuk.png","thumbnailURL":"/api/media/file/author-ahmed-sigiuk-320x320.png","filename":"author-ahmed-sigiuk.png","mimeType":"image/png","filesize":956285,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-ahmed-sigiuk-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":221901,"filename":"author-ahmed-sigiuk-320x320.png"},"card":{"url":"/api/media/file/author-ahmed-sigiuk-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":960162,"filename":"author-ahmed-sigiuk-768x768.png"}}},"title":"Senior Deep Learning Engineer","bio":null,"updatedAt":"2026-06-23T19:31:40.946Z","createdAt":"2026-04-23T23:27:47.142Z"},"category":{"id":1,"title":"Research","slug":"research","updatedAt":"2026-06-22T22:49:08.557Z","createdAt":"2026-06-22T22:49:08.555Z"},"contentStage":"evaluation","layout":"wide","tags":[{"id":"6ab6f8874bec9e0014635bd4","tag":"hyperspectral imaging"},{"id":"6ab6f8874bec9e0014635bd5","tag":"mineral mapping"},{"id":"6ab6f8874bec9e0014635bd6","tag":"EMIT"},{"id":"6ab6f8874bec9e0014635bd7","tag":"spectral unmixing"}],"industries":["mining","earth-observation"],"products":["clarity","earth-observation-workflows"],"heroImage":{"id":218,"alt":"EMIT mineral unmixing over Cuprite, NV","caption":null,"sourcePath":null,"updatedAt":"2026-09-25T22:39:05.249Z","createdAt":"2026-09-25T22:39:05.249Z","url":"/api/media/file/strands-mineral-emit_cuprite_header.png","thumbnailURL":"/api/media/file/strands-mineral-emit_cuprite_header-320x189.png","filename":"strands-mineral-emit_cuprite_header.png","mimeType":"image/png","filesize":612302,"width":2168,"height":1278,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/strands-mineral-emit_cuprite_header-320x189.png","width":320,"height":189,"mimeType":"image/png","filesize":79784,"filename":"strands-mineral-emit_cuprite_header-320x189.png"},"card":{"url":"/api/media/file/strands-mineral-emit_cuprite_header-768x453.png","width":768,"height":453,"mimeType":"image/png","filesize":380577,"filename":"strands-mineral-emit_cuprite_header-768x453.png"}}},"imageBackground":"dark","publishedAt":null,"legacySourcePath":null,"bodyMarkdown":"<a id=\"article\"></a>\n\nExploration teams looking for **copper, gold, and critical-mineral deposits** use hyperspectral imagery to map exposed alteration and indicator minerals—clays, micas, iron oxides, carbonates, and related assemblages. These mineral maps are interpreted alongside geology, geochemistry, geophysics, and field samples to outline alteration footprints and prioritize follow-up work; they do not directly measure buried ore or ore grade. NASA **EMIT** samples the surface at a nominal ground spacing of about 60 m, so one pixel commonly blends several materials. The task is therefore to identify which mineral signatures contribute to each pixel and estimate the **spectral abundance of each detected mineral**—the model-estimated contribution of that mineral's diagnostic spectrum, not a direct weight percentage or ore grade.\n\n**Clarity** is designed to turn selected mineral spectra into sensor-ready spectral-abundance models. The workflow begins with a spectral library, adapts the model using a small number of labeled pixels from the target sensor, and then applies that model to other scenes captured by the same sensor.\n\nThe comparison below uses these names:\n\n| Term | Meaning |\n|---|---|\n| **Clarity Model** | We use Clarity **BaseCNN**, size **medium**. It maps 244-band reflectance to a 9-way softmax: eight minerals plus Background. |\n| **Training setup** | Spectra are standard-normal-variate (SNV) normalized. We train with batch size 512 and dropout 0.3. |\n| **Library mix** | The warm-start model is pretrained on generalized-bilinear mixtures of the eight USGS endmembers and real EMIT Background spectra. This stage does not use Tetracorder-derived mineral targets. |\n| **Scratch** | The scratch model learns from Tetracorder-derived spectral-abundance targets only. |\n| **Lab→FT** | Laboratory-to-fine-tune. Lab→FT starts from the library mix, then fine-tunes on the same Tetracorder-derived targets used by Scratch. |\n\nIn this article we show that:\n\n1. **Clarity makes spectral-abundance maps easier to produce.** Select minerals from a library (USGS, ECOSTRESS, or your own), fine-tune on a small number of labeled pixels from the same sensor, and run inference on other sites captured by that sensor. [Section 1](#1-from-spectral-libraries-to-orbital-maps) explains the library-to-orbit gap and this workflow.\n2. **Our EMIT results show lower error and faster convergence.** Starting from a USGS-pretrained mineral model and fine-tuning on 5%, 25%, 50%, and 100% of the labeled pixels gives lower test error than training on labeled sensor data alone, while the learning curves show that Lab→FT reaches the same validation-error levels in fewer epochs. [Section 2](#2-results-on-held-out-emit-scenes) quantifies those results.\n3. **Cuprite provides the field-sample check.** Using laboratory spectroscopy (LS) as the primary reference, the Clarity Model detects at least one LS-supported mineral at **10 of 12 eligible sites (83%)**, compared with **12 of 12 (100%)** for EMIT Tetracorder. [Section 3](#3-cuprite-benchmark) presents the benchmark and its limits.\n\n## 1. From spectral libraries to orbital maps\n\nWe start with reference spectra of known minerals. [EMIT uses](https://lpdaac.usgs.gov/documents/1659/EMITL2B_ATBD_v1.pdf) the USGS-developed [Tetracorder system](https://pubs.usgs.gov/publication/ofr20131300) to compare these references with orbital spectra. We use its quality-filtered mineral estimates as training labels for eight minerals plus Background. These labels come from an algorithm, not field measurements, so we later check the model against laboratory results from Cuprite.\n\nLaboratory and orbital spectra do not look identical. A laboratory spectrum represents a clean sample, while a 60 m EMIT pixel can mix minerals, soil, and vegetation. Atmospheric and lighting conditions add further differences, making mineral features weaker or blended.\n\n![USGS vs EMIT](/api/media/file/strands-mineral-fig_lab_orbit_gap_kcd.png)\n\n**Figure 1.** USGS library spectra (red) versus the mean reflectance of EMIT training pixels whose dominant Tetracorder mineral is that class (blue). For this diagnostic comparison only, each curve is continuum-removed and normalized to a common Euclidean (L2) norm. Iron oxides use VNIR (400–1000 nm); clays and carbonates use SWIR (2000–2500 nm). Table 1 reports Pearson *r* as a diagnostic of spectral-shape agreement, not as an abundance-accuracy score.\n\n| Mineral | Window | r vs USGS |\n|---|---|---:|\n| Goethite | VNIR | 0.86 |\n| Hematite | VNIR | **0.66** |\n| Kaolinite | SWIR | 0.85 |\n| Dolomite | SWIR | 0.83 |\n| Muscovite | SWIR | 0.83 |\n| Chlorite | SWIR | 0.82 |\n| Calcite | SWIR | **0.77** |\n| Montmorillonite | SWIR | **0.75** |\n\n**Table 1.** Pearson *r* between the USGS and mean EMIT spectra in Figure 1. Bold marks the lowest matches.\n\nAcross the eight minerals, *r* ranges from 0.66 to 0.86. Several diagnostic shapes remain well aligned, but the match is weaker for Hematite, Montmorillonite, and Calcite. The orbital spectra are also shallower and more mixed than their library counterparts. The comparison retains recognizable mineral-specific structure while leaving a measurable library-to-orbit mismatch, motivating sensor-specific adaptation rather than direct use of the clean spectra as a finished orbital model.\n\nThat leads to the question we test: **Can a deep-learning model learn to predict Tetracorder-derived mineral spectral abundance directly from EMIT reflectance, and does starting from spectral-library knowledge improve that learning compared with training on Tetracorder-derived EMIT targets alone?**\n\n### Building the EMIT dataset\n\nTo answer that question, we assembled **150 EMIT scenes**—50 each from eastern Australia, northern Africa, and the USA. We split the data 80/20 by scene within each region, producing 120 training scenes and 30 held-out test scenes. The split is by scene rather than by pixel, so test pixels never come from a training acquisition.\n\nEach model input contains the 244 EMIT bands retained in this dataset. Each target is a dense nine-component vector: Tetracorder-derived abundance estimates for eight minerals plus a residual Background component. The mineral estimates are quality-filtered Tetracorder outputs: Fit Score ≥ 0.46 and Band Depth Uncertainty ≤ 0.01. Undetected values are set to zero, Background is calculated as the non-negative residual after summing the eight minerals, and the resulting vector is L1-normalized. The training-ready pool contains **456,000 sampled examples**.\n\n### Testing the value of library pretraining\n\nClarity uses the spectral library as an informed initialization, then adapts the model to the sensor. In general, the practical workflow is:\n\n1. Select the minerals of interest from USGS, ECOSTRESS, or a user-provided library.\n2. Build synthetic mixtures of those minerals with representative background spectra from the target sensor.\n3. Fine-tune the library-initialized model on the labeled pixels available from the target sensor.\n4. Apply the adapted model to other scenes captured by that sensor.\n\nIn the reported experiment, the library stage uses eight USGS mineral endmembers resampled to the EMIT bands and **255,285 real EMIT Background examples**. Generalized bilinear mixing generates synthetic mineral–background mixtures during pretraining. Both training paths then use the same network and Tetracorder-derived target pool, isolating the effect of the library initialization.\n\nThe library warm-start is not a linear addition of USGS spectra: it uses **nonlinear generalized bilinear mixing** with EMIT background to better represent the scattering behavior of intimate mineral mixtures.\n\nThis design separates the two roles. The spectral library supplies mineral knowledge; the Tetracorder-derived targets teach the model how those signatures appear in EMIT pixels. Section 2 tests whether combining them lowers held-out error and reaches a given validation RMSE in fewer epochs.\n\n## 2. Results on held-out EMIT scenes\n\nWe compare two models on 30 held-out scenes. **Scratch** uses only Tetracorder-derived targets from EMIT. **Lab→FT** begins with the library mixture model and then fine-tunes on the same labeled pool. Test RMSE measures agreement with held-out Tetracorder-derived spectral-abundance targets.\n\n| Tetracorder-labeled pixels | Scratch-40 | Lab→FT-40 |\n|---|---:|---:|\n| 0% (library mix) | — | 0.0213 |\n| 5% (≈23k) | 0.01077 ± 0.00006 | **0.00927 ± 0.00002** |\n| 25% (≈114k) | 0.00907 ± 0.00007 | **0.00829 ± 0.00005** |\n| 50% (≈228k) | 0.00847 ± 0.00010 | **0.00781 ± 0.00003** |\n| 100% (≈456k) | 0.00774 ± 0.00006 | **0.00724 ± 0.00005** |\n\n**Table 2.** Held-out test RMSE, mean ± standard deviation across three 40-epoch runs.\n\n![Scratch vs Lab→FT](/api/media/file/strands-mineral-fig_data_efficiency.png)\n\n**Figure 2.** Mean ± standard deviation across three runs. The dashed line is scratch at 100% labeled data (0.00774).\n\nThe library initialization helps most when labels are scarce. With 5% of the labeled pixels, Lab→FT already outperforms scratch trained on the same amount of data. At 50%, Lab→FT nearly matches scratch trained on the full labeled pool. At 100%, fine-tuning remains ahead at 0.00724 versus 0.00774.\n\n![Scratch vs Lab→FT by epoch](/api/media/file/strands-mineral-fig_learning_curves_adaptation.png)\n\n**Figure 3.** Validation RMSE versus epoch at 5%, 25%, 50%, and 100% labels. Lab→FT is below scratch in every panel. These curves are from one run. At 50%, Lab→FT reaches 0.0095 by epoch **4**; scratch requires **24** epochs.\n\nLower error and faster convergence are the second result above. The library model is not a substitute for sensor labels, but it gives fine-tuning a better starting point. The result is a model that can reach a given error level with fewer labels or fewer training epochs.\n\nThese held-out results measure agreement with Tetracorder-derived targets. They show that the workflow adapts efficiently, but they do not independently establish whether the detected minerals agree with field-sample laboratory measurements. Cuprite provides that separate check.\n\n## 3. Cuprite benchmark\n\n**Cuprite adds a field-sample check using the laboratory results in Table A1 of [Swayze et al. (2014), *Mapping Advanced Argillic Alteration at Cuprite, Nevada, Using Imaging Spectroscopy*](https://pubs.usgs.gov/publication/70196084).** We use **laboratory spectroscopy (LS)** as the primary reference for spectral mineral detection. **X-ray diffraction (XRD)** remains a separate supporting check on crystalline minerals reported in the samples.\n\nWe use the **2023-08-04 EMIT scene**, which was not included in training. At each sample location, the Clarity Model runs once on the mean reflectance spectrum of valid pixels in a **3×3 neighborhood**, after the same SNV normalization used in training. EMIT Tetracorder values are averaged over the same neighborhood. Detection thresholds were fixed on validation data before testing Cuprite; the [evaluation protocol](#cuprite-evaluation-protocol) defines the matching and scoring rules.\n\n![Side-by-side dominant-mineral maps of Cuprite from EMIT Tetracorder and the Clarity Model, with thirteen labeled USGS sample sites and a shared eight-mineral legend](/api/media/file/strands-mineral-fig_cuprite_split.png)\n\n**Figure 4.** Dominant-mineral comparison over Cuprite on 2023-08-04. The 13 marked sites have at least one LS-reported mineral that maps to the eight model classes; 12 remain eligible for LS scoring after site 15P is excluded under the [appendix protocol](#detection-thresholds-and-site-scoring). For this spatial view, Tetracorder (left) is shown where one of the eight minerals is above zero; Clarity Model (right) is shown where the eight mineral outputs sum to at least 0.002, giving similar scene coverage. The **0.002 coverage display rule is not a site-scoring threshold**.\n\n| Reference method | What we test | Clarity Model | EMIT Tetracorder |\n|---|---|---:|---:|\n| **Laboratory spectroscopy (LS)—primary** | At least one LS-listed mineral in our eight classes is detected | **83% (10/12)** | **100% (12/12)** |\n| **X-ray diffraction (XRD)—supporting** | At least one XRD-listed mineral in our eight classes is detected | **67% (10/15)** | **80% (12/15)** |\n\n**Table 3. Cuprite laboratory agreement.** Counts are sites with at least one matching mineral / eligible sites.\n\nExamples of the LS matches include the Clarity Model's Muscovite output matching LS white mica at **18S–21V**, Kaolinite at **12J**, Montmorillonite at **16Q**, and Calcite at **23W**. The two LS misses are **3B**, where Hematite and Kaolinite remain below their thresholds, and **11I**, where Montmorillonite is missed while Kaolinite and Hematite are detected.\n\nThe Cuprite result is a **transfer result, not a claim that Clarity beats Tetracorder**. Tetracorder detects an LS-supported mineral at all 12 eligible sites; Clarity does so at 10. The value of the benchmark is that a model adapted on other EMIT scenes produces a spatial mineral map and recovers most eligible LS-supported sites on an acquisition it never saw during training.\n\n## Discussion\n\nThe three sections answer three connected questions. First, how can a mineral library become a practical orbital mapping workflow? Clarity uses the library as an informed starting point, then adapts it to the sensor. Second, does that initialization improve model development? Across every labeled-data budget, Lab→FT lowers held-out Tetracorder-agreement error, and its learning curves reach the same validation-error levels in fewer epochs. Third, does the adapted model transfer to a recognizable field site? At Cuprite, it recovers an LS-supported mineral at 10 of 12 eligible sites on an unseen scene.\n\nThe evidence has clear boundaries. Tetracorder retains the higher Cuprite laboratory-agreement score, the Cuprite sample is small, and the site-level hit rule does not measure full-mixture recovery or penalize extra detections. The Clarity advantage is therefore the reusable workflow: select the minerals, initialize from a library, adapt with the labeled sensor pixels available, and apply the resulting model across new scenes.\n\n**Clarity** supports that loop by importing EMIT-like cubes, managing mineral libraries, generating synthetic mixtures, training and comparing abundance models, and producing per-pixel maps for review.\n\nFull supporting details—including the 23-site comparison, laboratory-name matching rules, detection thresholds, and scoring protocol—are in the [Cuprite technical appendix](#appendix).\n\n---\n\n<a id=\"appendix\"></a>\n\n## Appendix: Cuprite site results and evaluation protocol\n\nThis appendix supports [*From Spectral Libraries to Cuprite — Better, Faster Alteration Maps*](#article). It contains the complete 23-site comparison, laboratory-name matching rules, detection thresholds, and site-scoring protocol.\n\n### Detailed site results\n\nTable 4 includes all 23 published sample categories used in the comparison, including samples whose reported minerals fall outside the model's eight classes. Detections are ordered by spectral abundance within each method.\n\n| Spectral category (map code) | Sample ID | LS sample verification | XRD sample verification | Clarity Model detections ↓ | EMIT Tetracorder detections ↓ |\n|---|---|---|---|---|---|\n| Jarosite (1A) | **CU91-20A** | Jarosite in coating | K-jarosite in coating | None above threshold | Kaolinite **0.066**; Hematite **0.022**; Goethite **0.001** |\n| Hematite (**3B**) | **CU91-223A** | Hematite + Kaolinite | Disordered Hematite, Kaolinite, Quartz, Calcite, Tridymite (tr?) | None above threshold | Kaolinite **0.144**; Hematite **0.010**; Muscovite **0.003** |\n| Goethite (**4C**) | **CU91-236A** | Goethite, w.o. Kaolinite, Dickite | Goethite, Kaolinite, Quartz | Kaolinite **0.093**; Muscovite **0.028**; Goethite **0.003** | Kaolinite **0.089**; Muscovite **0.013**; Goethite **0.003** |\n| Chlorite (**5D**) | **CU91-238A** | Chlorite + White mica | Fe-chlorite, Muscovite, Quartz, Kaolinite | Muscovite **0.169**; Goethite **0.006** | Muscovite **0.112**; Goethite **0.004**; Chlorite **0.003** |\n| Pyroxene (6E) | **CU01-20A** | Pyroxene + trace hydrated phases | Augite (M), Diopside (M), Anorthite (M), Forsterite (tr), Quartz (tr), Analcime (tr) | Calcite **0.021**; Goethite **0.004** | Calcite **0.050** |\n| K-alunite 1 (7F) | **CU91-217G** | K-alunite, Na/K = 0.01 | K-alunite, Quartz | Kaolinite **0.074**; Muscovite **0.059** | Muscovite **0.079**; Kaolinite **0.051**; Goethite **0.003** |\n| K-alunite 2 (8G) | **CU98-5C** | K-alunite, Na/K = 0.07 | Alunite (M), Opal-A (M), Tridymite (m), Quartz (tr) | Kaolinite **0.184** | Kaolinite **0.079** |\n| Na-K±Ca alunite (9H) | **CU91-217H** | Multiple Alunite components | Na-alunite, Quartz | Muscovite **0.092**; Kaolinite **0.058** | Muscovite **0.070**; Kaolinite **0.063**; Goethite **0.002** |\n| Buddingtonite + Na-montmorillonite (**11I**) | **CU91-260B** | Buddingtonite + Na-montmorillonite | Buddingtonite in solid solution with K-feldspar; Quartz | Kaolinite **0.108**; Hematite **0.004** | Kaolinite **0.021**; Montmorillonite **0.006** |\n| Well-ordered Kaolinite (**12J**) | **CU91-200A** | w.o. Kaolinite | w.o. Kaolinite, Quartz, Feldspar, Alunite | Kaolinite **0.141** | Kaolinite **0.216** |\n| Disordered Kaolinite or w.o. Kaolinite ± Alunite + other (**13K**) | **CU00-19A** | Hematite; disordered Kaolinite or w.o. Kaolinite + White mica/Smectite | Clay separate: w.o. Kaolinite, Smectite (tr), Illite (tr) | Kaolinite **0.118** | Kaolinite **0.108**; Hematite **0.001** |\n| Dickite (14L) | **CU91-219B** | Dickite | Dickite, Kaolinite, Quartz, Calcite | None above threshold | Kaolinite **0.145**; Goethite **0.003**; Hematite **0.001** |\n| Kaolinite + White mica ± Alunite or Halloysite (15P) | **CU91-242D** | Trace Goethite; Halloysite or w.o. Kaolinite + White mica/Smectite | Halloysite, Quartz, Mica, Alunite, possibly Dickite | Kaolinite **0.057**; Hematite **0.006** | Kaolinite **0.130**; Muscovite **0.009**; Goethite **0.004**; Hematite **0.001** |\n| Na-montmorillonite (**16Q**) | **CU93-52** | Na-montmorillonite | Quartz (M), Anorthite (m), Albite (m), Calcite (m), Orthoclase (m), Muscovite (m), Montmorillonite (m), Kaolinite (tr), Magnesiohornblende (tr) | Montmorillonite **0.017** | Montmorillonite **0.054** |\n| Nontronite (17R) | **CU00-13A** | Nontronite | Clay separate: Smectite (M), Kaolinite (tr), Mica (tr) | None above threshold | Goethite **0.001**; Hematite **0.00029** |\n| High-Al White mica 1 (**18S**) | **CU00-5B** | High-Al White mica (Al_oct = 1.845) | Quartz (M), Illite (1M and 2M2 polytypes) | Muscovite **0.071**; Kaolinite **0.030** | Muscovite **0.103**; Goethite **0.002** |\n| Medium-high-Al White mica 2 (**19T**) | **CU91-252D** | Medium-high-Al White mica (Al_oct = 1.783) | Quartz (M), Muscovite (mostly 2M1 with trace 1M polytypes), Clinochlore (tr) | Muscovite **0.219**; Goethite **0.031** | Muscovite **0.154**; Goethite **0.006**; Chlorite **0.002** |\n| Medium-low-Al White mica 3 (**20U**) | **CU91-250A** | Medium-low-Al White mica (Al_oct = 1.707) | Quartz (M), Muscovite (2M1 and 1M polytypes) | Muscovite **0.098**; Goethite **0.030** | Goethite **0.118**; Muscovite **0.112** |\n| Low-Al White mica 4 (**21V**) | **CU98-8H** | Low-Al White mica (Al_oct = 1.642) | Quartz (M), Muscovite (1M and 2M1 polytypes) | Muscovite **0.067** | Muscovite **0.050**; Kaolinite **0.021**; Goethite **0.019** |\n| Calcite (**23W**) | **CU02-11A** | Calcite | Calcite (M), Quartz (tr) | Calcite **0.330** | Calcite **0.332** |\n| Hydrated silica — Chalcedony and/or Opal (25X) | **CU91-6A** | Chalcedony | Quartz | Montmorillonite **0.014**; Muscovite **0.009** | Kaolinite **0.017**; Montmorillonite **0.016** |\n| Opal (26Y) | **CU00-15E** | Opal | Cristobalite and/or Opal (M), Quartz (M), Calcite (m), Tridymite (tr) | Kaolinite **0.021**; Muscovite **0.007** | Kaolinite **0.022**; Montmorillonite **0.012** |\n| Hydrated volcanic glass (27Z) | **CU01-4A** | Hydrated volcanic glass, Nontronite | Anorthite (M), Sanidine (M), Quartz (M), Cristobalite or Opal (m), Nontronite (m), Muscovite (tr), Volcanic glass | None above threshold | None |\n\n**Table 4. Cuprite sample comparison.** Laboratory columns and row order follow Swayze Table A1; detections are ordered by spectral abundance. Bold map codes are the 12 sites eligible for the laboratory-spectroscopy score; 15P stays in the table but is excluded from that score. M/m/tr = major/minor/trace; w.o. = well ordered.\n\nThis is a small, mixed-mineral field check—not a validation of mineral weight percentages. Field samples and the 3×3 EMIT neighborhoods cover different areas, and the predicted values are Tetracorder-style spectral abundances.\n\n### Cuprite evaluation protocol\n\n#### What spectral abundance means\n\nSpectral abundance is estimated from a mineral's absorption features in reflected light; it is not a direct measurement of the mineral's weight in the rock. As [Swayze et al. (2014)](https://pubs.usgs.gov/publication/70196084) explain, absorption strength also depends on grain size and mineral properties, so the strongest spectral signature need not belong to the most abundant mineral.\n\nHere, EMIT Tetracorder supplies processed mineral spectral-abundance estimates, and the Clarity Model predicts spectral abundances learned from targets derived from those estimates. A value such as **0.066 Kaolinite does not establish 6.6% Kaolinite by weight**.\n\n#### Matching laboratory names\n\nBefore scoring, we translate laboratory names into the eight Clarity Model classes using Table 5. LS and XRD are matched separately; Table 4 retains their original wording.\n\n| Clarity Model class | Name in XRD or LS | Rule |\n|---|---|---|\n| **Calcite** | Calcite | Same name |\n| **Chlorite** | Chlorite, Fe-chlorite, Clinochlore | Same group ([Handbook of Mineralogy](https://www.handbookofmineralogy.org/pdfs/clinochlore.pdf)) |\n| **Dolomite** | Dolomite | Same name |\n| **Goethite** | Goethite | Same name |\n| **Hematite** | Hematite | Same name |\n| **Kaolinite** | Kaolinite, well-ordered or disordered Kaolinite | Same mineral; different ordering |\n| **Montmorillonite** | Montmorillonite, Na-montmorillonite | Same mineral; sodium form |\n| **Muscovite** | Muscovite, Illite, White mica | Combined Illite–Muscovite class |\n\n**Table 5.** Laboratory names mapped to the eight model classes; terminology follows [Swayze et al. (2014)](https://pubs.usgs.gov/publication/70196084).\n\nGeneric “mica” or “smectite” is too broad for an automatic match. Nontronite, Dickite, and Halloysite have no matching output class. Uncertain identifications are not treated as confirmed. Dolomite remains an output but has no laboratory reference in these samples.\n\n#### Detection thresholds and site scoring\n\nA small non-zero prediction is not automatically a detection. For each of the seven scored **Clarity Model** classes, a mineral must reach its minimum spectral abundance in Table 6 before it can count toward a site hit. Chlorite is excluded because its validation set is too small to support a reliable threshold.\n\nWe select each mineral's threshold by **maximizing F1 against filtered Tetracorder detections on 24,000 validation pixels**, taking the higher threshold on ties. All thresholds are fixed before testing Cuprite.\n\n| Clarity Model class | Detection threshold | Validation F1 |\n|---|---:|---:|\n| Calcite | 0.0162 | 0.837 |\n| Chlorite† | — | — |\n| Dolomite | 0.0175 | 0.839 |\n| Goethite | 0.0024 | 0.775 |\n| Hematite | 0.0031 | 0.718 |\n| Kaolinite | 0.0187 | 0.958 |\n| Montmorillonite | 0.0113 | 0.579 |\n| Muscovite | 0.0057 | 0.818 |\n\n**Table 6.** Validation-selected detection thresholds. †Chlorite is not scored because only six positive validation examples were available.\n\nFor each site, we compare **Clarity Model predictions at or above their class-specific thresholds** and **positive, quality-filtered EMIT Tetracorder outputs** with the laboratory reference. The Tetracorder data used here have already passed **Fit Score ≥ 0.46** and **Band Depth Uncertainty ≤ 0.01** filters. Table 5 handles differences in mineral names.\n\nFor either method, **one laboratory-supported detection gives a hit; none gives a miss**. We report the percentage of eligible sites with a hit, separately for **LS (12 sites)** and **XRD (15 sites)**. Eligibility requires at least one laboratory-listed mineral covered by the eight classes.\n\nSample 15P is excluded from the LS score because its clay interpretation has alternatives, but remains visible in Table 4. XRD major/minor/trace annotations provide context rather than an abundance ranking for scoring.\n\nThis is a site-level agreement score, not full-mixture recovery or precision. One correct detection is enough, and additional unsupported detections do not reduce the score. Clarity and Tetracorder also retain their different detection rules.","bodyHtml":"<a id=\"article\"></a>\n<p>Exploration teams looking for <strong>copper, gold, and critical-mineral deposits</strong> use hyperspectral imagery to map exposed alteration and indicator minerals—clays, micas, iron oxides, carbonates, and related assemblages. These mineral maps are interpreted alongside geology, geochemistry, geophysics, and field samples to outline alteration footprints and prioritize follow-up work; they do not directly measure buried ore or ore grade. NASA <strong>EMIT</strong> samples the surface at a nominal ground spacing of about 60 m, so one pixel commonly blends several materials. The task is therefore to identify which mineral signatures contribute to each pixel and estimate the <strong>spectral abundance of each detected mineral</strong>—the model-estimated contribution of that mineral's diagnostic spectrum, not a direct weight percentage or ore grade.</p>\n<p><strong>Clarity</strong> is designed to turn selected mineral spectra into sensor-ready spectral-abundance models. The workflow begins with a spectral library, adapts the model using a small number of labeled pixels from the target sensor, and then applies that model to other scenes captured by the same sensor.</p>\n<p>The comparison below uses these names:</p>\n<table><thead><tr><th>Term</th><th>Meaning</th></tr></thead><tbody>\n<tr><td><strong>Clarity Model</strong></td><td>We use Clarity <strong>BaseCNN</strong>, size <strong>medium</strong>. It maps 244-band reflectance to a 9-way softmax: eight minerals plus Background.</td></tr>\n<tr><td><strong>Training setup</strong></td><td>Spectra are standard-normal-variate (SNV) normalized. We train with batch size 512 and dropout 0.3.</td></tr>\n<tr><td><strong>Library mix</strong></td><td>The warm-start model is pretrained on generalized-bilinear mixtures of the eight USGS endmembers and real EMIT Background spectra. This stage does not use Tetracorder-derived mineral targets.</td></tr>\n<tr><td><strong>Scratch</strong></td><td>The scratch model learns from Tetracorder-derived spectral-abundance targets only.</td></tr>\n<tr><td><strong>Lab→FT</strong></td><td>Laboratory-to-fine-tune. Lab→FT starts from the library mix, then fine-tunes on the same Tetracorder-derived targets used by Scratch.</td></tr>\n</tbody></table>\n<p>In this article we show that:</p>\n<ol><li><strong>Clarity makes spectral-abundance maps easier to produce.</strong> Select minerals from a library (USGS, ECOSTRESS, or your own), fine-tune on a small number of labeled pixels from the same sensor, and run inference on other sites captured by that sensor. <a href=\"#1-from-spectral-libraries-to-orbital-maps\">Section 1</a> explains the library-to-orbit gap and this workflow.</li><li><strong>Our EMIT results show lower error and faster convergence.</strong> Starting from a USGS-pretrained mineral model and fine-tuning on 5%, 25%, 50%, and 100% of the labeled pixels gives lower test error than training on labeled sensor data alone, while the learning curves show that Lab→FT reaches the same validation-error levels in fewer epochs. <a href=\"#2-results-on-held-out-emit-scenes\">Section 2</a> quantifies those results.</li><li><strong>Cuprite provides the field-sample check.</strong> Using laboratory spectroscopy (LS) as the primary reference, the Clarity Model detects at least one LS-supported mineral at <strong>10 of 12 eligible sites (83%)</strong>, compared with <strong>12 of 12 (100%)</strong> for EMIT Tetracorder. <a href=\"#3-cuprite-benchmark\">Section 3</a> presents the benchmark and its limits.</li></ol>\n<h2 id=\"1-from-spectral-libraries-to-orbital-maps\">1. From spectral libraries to orbital maps</h2>\n<p>We start with reference spectra of known minerals. <a href=\"https://lpdaac.usgs.gov/documents/1659/EMITL2B_ATBD_v1.pdf\">EMIT uses</a> the USGS-developed <a href=\"https://pubs.usgs.gov/publication/ofr20131300\">Tetracorder system</a> to compare these references with orbital spectra. We use its quality-filtered mineral estimates as training labels for eight minerals plus Background. These labels come from an algorithm, not field measurements, so we later check the model against laboratory results from Cuprite.</p>\n<p>Laboratory and orbital spectra do not look identical. A laboratory spectrum represents a clean sample, while a 60 m EMIT pixel can mix minerals, soil, and vegetation. Atmospheric and lighting conditions add further differences, making mineral features weaker or blended.</p>\n<p><img src=\"/api/media/file/strands-mineral-fig_lab_orbit_gap_kcd.png\" alt=\"USGS vs EMIT\" style=\"max-width:100%;height:auto\" /></p>\n<p><strong>Figure 1.</strong> USGS library spectra (red) versus the mean reflectance of EMIT training pixels whose dominant Tetracorder mineral is that class (blue). For this diagnostic comparison only, each curve is continuum-removed and normalized to a common Euclidean (L2) norm. Iron oxides use VNIR (400–1000 nm); clays and carbonates use SWIR (2000–2500 nm). Table 1 reports Pearson <em>r</em> as a diagnostic of spectral-shape agreement, not as an abundance-accuracy score.</p>\n<table><thead><tr><th>Mineral</th><th>Window</th><th style=\"text-align:right\">r vs USGS</th></tr></thead><tbody>\n<tr><td>Goethite</td><td>VNIR</td><td style=\"text-align:right\">0.86</td></tr>\n<tr><td>Hematite</td><td>VNIR</td><td style=\"text-align:right\"><strong>0.66</strong></td></tr>\n<tr><td>Kaolinite</td><td>SWIR</td><td style=\"text-align:right\">0.85</td></tr>\n<tr><td>Dolomite</td><td>SWIR</td><td style=\"text-align:right\">0.83</td></tr>\n<tr><td>Muscovite</td><td>SWIR</td><td style=\"text-align:right\">0.83</td></tr>\n<tr><td>Chlorite</td><td>SWIR</td><td style=\"text-align:right\">0.82</td></tr>\n<tr><td>Calcite</td><td>SWIR</td><td style=\"text-align:right\"><strong>0.77</strong></td></tr>\n<tr><td>Montmorillonite</td><td>SWIR</td><td style=\"text-align:right\"><strong>0.75</strong></td></tr>\n</tbody></table>\n<p><strong>Table 1.</strong> Pearson <em>r</em> between the USGS and mean EMIT spectra in Figure 1. Bold marks the lowest matches.</p>\n<p>Across the eight minerals, <em>r</em> ranges from 0.66 to 0.86. Several diagnostic shapes remain well aligned, but the match is weaker for Hematite, Montmorillonite, and Calcite. The orbital spectra are also shallower and more mixed than their library counterparts. The comparison retains recognizable mineral-specific structure while leaving a measurable library-to-orbit mismatch, motivating sensor-specific adaptation rather than direct use of the clean spectra as a finished orbital model.</p>\n<p>That leads to the question we test: <strong>Can a deep-learning model learn to predict Tetracorder-derived mineral spectral abundance directly from EMIT reflectance, and does starting from spectral-library knowledge improve that learning compared with training on Tetracorder-derived EMIT targets alone?</strong></p>\n<h3 id=\"building-the-emit-dataset\">Building the EMIT dataset</h3>\n<p>To answer that question, we assembled <strong>150 EMIT scenes</strong>—50 each from eastern Australia, northern Africa, and the USA. We split the data 80/20 by scene within each region, producing 120 training scenes and 30 held-out test scenes. The split is by scene rather than by pixel, so test pixels never come from a training acquisition.</p>\n<p>Each model input contains the 244 EMIT bands retained in this dataset. Each target is a dense nine-component vector: Tetracorder-derived abundance estimates for eight minerals plus a residual Background component. The mineral estimates are quality-filtered Tetracorder outputs: Fit Score ≥ 0.46 and Band Depth Uncertainty ≤ 0.01. Undetected values are set to zero, Background is calculated as the non-negative residual after summing the eight minerals, and the resulting vector is L1-normalized. The training-ready pool contains <strong>456,000 sampled examples</strong>.</p>\n<h3 id=\"testing-the-value-of-library-pretraining\">Testing the value of library pretraining</h3>\n<p>Clarity uses the spectral library as an informed initialization, then adapts the model to the sensor. In general, the practical workflow is:</p>\n<ol><li>Select the minerals of interest from USGS, ECOSTRESS, or a user-provided library.</li><li>Build synthetic mixtures of those minerals with representative background spectra from the target sensor.</li><li>Fine-tune the library-initialized model on the labeled pixels available from the target sensor.</li><li>Apply the adapted model to other scenes captured by that sensor.</li></ol>\n<p>In the reported experiment, the library stage uses eight USGS mineral endmembers resampled to the EMIT bands and <strong>255,285 real EMIT Background examples</strong>. Generalized bilinear mixing generates synthetic mineral–background mixtures during pretraining. Both training paths then use the same network and Tetracorder-derived target pool, isolating the effect of the library initialization.</p>\n<p>The library warm-start is not a linear addition of USGS spectra: it uses <strong>nonlinear generalized bilinear mixing</strong> with EMIT background to better represent the scattering behavior of intimate mineral mixtures.</p>\n<p>This design separates the two roles. The spectral library supplies mineral knowledge; the Tetracorder-derived targets teach the model how those signatures appear in EMIT pixels. Section 2 tests whether combining them lowers held-out error and reaches a given validation RMSE in fewer epochs.</p>\n<h2 id=\"2-results-on-held-out-emit-scenes\">2. Results on held-out EMIT scenes</h2>\n<p>We compare two models on 30 held-out scenes. <strong>Scratch</strong> uses only Tetracorder-derived targets from EMIT. <strong>Lab→FT</strong> begins with the library mixture model and then fine-tunes on the same labeled pool. Test RMSE measures agreement with held-out Tetracorder-derived spectral-abundance targets.</p>\n<table><thead><tr><th>Tetracorder-labeled pixels</th><th style=\"text-align:right\">Scratch-40</th><th style=\"text-align:right\">Lab→FT-40</th></tr></thead><tbody>\n<tr><td>0% (library mix)</td><td style=\"text-align:right\">—</td><td style=\"text-align:right\">0.0213</td></tr>\n<tr><td>5% (≈23k)</td><td style=\"text-align:right\">0.01077 ± 0.00006</td><td style=\"text-align:right\"><strong>0.00927 ± 0.00002</strong></td></tr>\n<tr><td>25% (≈114k)</td><td style=\"text-align:right\">0.00907 ± 0.00007</td><td style=\"text-align:right\"><strong>0.00829 ± 0.00005</strong></td></tr>\n<tr><td>50% (≈228k)</td><td style=\"text-align:right\">0.00847 ± 0.00010</td><td style=\"text-align:right\"><strong>0.00781 ± 0.00003</strong></td></tr>\n<tr><td>100% (≈456k)</td><td style=\"text-align:right\">0.00774 ± 0.00006</td><td style=\"text-align:right\"><strong>0.00724 ± 0.00005</strong></td></tr>\n</tbody></table>\n<p><strong>Table 2.</strong> Held-out test RMSE, mean ± standard deviation across three 40-epoch runs.</p>\n<p><img src=\"/api/media/file/strands-mineral-fig_data_efficiency.png\" alt=\"Scratch vs Lab→FT\" style=\"max-width:100%;height:auto\" /></p>\n<p><strong>Figure 2.</strong> Mean ± standard deviation across three runs. The dashed line is scratch at 100% labeled data (0.00774).</p>\n<p>The library initialization helps most when labels are scarce. With 5% of the labeled pixels, Lab→FT already outperforms scratch trained on the same amount of data. At 50%, Lab→FT nearly matches scratch trained on the full labeled pool. At 100%, fine-tuning remains ahead at 0.00724 versus 0.00774.</p>\n<p><img src=\"/api/media/file/strands-mineral-fig_learning_curves_adaptation.png\" alt=\"Scratch vs Lab→FT by epoch\" style=\"max-width:100%;height:auto\" /></p>\n<p><strong>Figure 3.</strong> Validation RMSE versus epoch at 5%, 25%, 50%, and 100% labels. Lab→FT is below scratch in every panel. These curves are from one run. At 50%, Lab→FT reaches 0.0095 by epoch <strong>4</strong>; scratch requires <strong>24</strong> epochs.</p>\n<p>Lower error and faster convergence are the second result above. The library model is not a substitute for sensor labels, but it gives fine-tuning a better starting point. The result is a model that can reach a given error level with fewer labels or fewer training epochs.</p>\n<p>These held-out results measure agreement with Tetracorder-derived targets. They show that the workflow adapts efficiently, but they do not independently establish whether the detected minerals agree with field-sample laboratory measurements. Cuprite provides that separate check.</p>\n<h2 id=\"3-cuprite-benchmark\">3. Cuprite benchmark</h2>\n<p><strong>Cuprite adds a field-sample check using the laboratory results in Table A1 of undefined.</strong> We use <strong>laboratory spectroscopy (LS)</strong> as the primary reference for spectral mineral detection. <strong>X-ray diffraction (XRD)</strong> remains a separate supporting check on crystalline minerals reported in the samples.</p>\n<p>We use the <strong>2023-08-04 EMIT scene</strong>, which was not included in training. At each sample location, the Clarity Model runs once on the mean reflectance spectrum of valid pixels in a <strong>3×3 neighborhood</strong>, after the same SNV normalization used in training. EMIT Tetracorder values are averaged over the same neighborhood. Detection thresholds were fixed on validation data before testing Cuprite; the <a href=\"#cuprite-evaluation-protocol\">evaluation protocol</a> defines the matching and scoring rules.</p>\n<p><img src=\"/api/media/file/strands-mineral-fig_cuprite_split.png\" alt=\"Side-by-side dominant-mineral maps of Cuprite from EMIT Tetracorder and the Clarity Model, with thirteen labeled USGS sample sites and a shared eight-mineral legend\" style=\"max-width:100%;height:auto\" /></p>\n<p><strong>Figure 4.</strong> Dominant-mineral comparison over Cuprite on 2023-08-04. The 13 marked sites have at least one LS-reported mineral that maps to the eight model classes; 12 remain eligible for LS scoring after site 15P is excluded under the <a href=\"#detection-thresholds-and-site-scoring\">appendix protocol</a>. For this spatial view, Tetracorder (left) is shown where one of the eight minerals is above zero; Clarity Model (right) is shown where the eight mineral outputs sum to at least 0.002, giving similar scene coverage. The <strong>0.002 coverage display rule is not a site-scoring threshold</strong>.</p>\n<table><thead><tr><th>Reference method</th><th>What we test</th><th style=\"text-align:right\">Clarity Model</th><th style=\"text-align:right\">EMIT Tetracorder</th></tr></thead><tbody>\n<tr><td><strong>Laboratory spectroscopy (LS)—primary</strong></td><td>At least one LS-listed mineral in our eight classes is detected</td><td style=\"text-align:right\"><strong>83% (10/12)</strong></td><td style=\"text-align:right\"><strong>100% (12/12)</strong></td></tr>\n<tr><td><strong>X-ray diffraction (XRD)—supporting</strong></td><td>At least one XRD-listed mineral in our eight classes is detected</td><td style=\"text-align:right\"><strong>67% (10/15)</strong></td><td style=\"text-align:right\"><strong>80% (12/15)</strong></td></tr>\n</tbody></table>\n<p><strong>Table 3. Cuprite laboratory agreement.</strong> Counts are sites with at least one matching mineral / eligible sites.</p>\n<p>Examples of the LS matches include the Clarity Model's Muscovite output matching LS white mica at <strong>18S–21V</strong>, Kaolinite at <strong>12J</strong>, Montmorillonite at <strong>16Q</strong>, and Calcite at <strong>23W</strong>. The two LS misses are <strong>3B</strong>, where Hematite and Kaolinite remain below their thresholds, and <strong>11I</strong>, where Montmorillonite is missed while Kaolinite and Hematite are detected.</p>\n<p>The Cuprite result is a <strong>transfer result, not a claim that Clarity beats Tetracorder</strong>. Tetracorder detects an LS-supported mineral at all 12 eligible sites; Clarity does so at 10. The value of the benchmark is that a model adapted on other EMIT scenes produces a spatial mineral map and recovers most eligible LS-supported sites on an acquisition it never saw during training.</p>\n<h2 id=\"discussion\">Discussion</h2>\n<p>The three sections answer three connected questions. First, how can a mineral library become a practical orbital mapping workflow? Clarity uses the library as an informed starting point, then adapts it to the sensor. Second, does that initialization improve model development? Across every labeled-data budget, Lab→FT lowers held-out Tetracorder-agreement error, and its learning curves reach the same validation-error levels in fewer epochs. Third, does the adapted model transfer to a recognizable field site? At Cuprite, it recovers an LS-supported mineral at 10 of 12 eligible sites on an unseen scene.</p>\n<p>The evidence has clear boundaries. Tetracorder retains the higher Cuprite laboratory-agreement score, the Cuprite sample is small, and the site-level hit rule does not measure full-mixture recovery or penalize extra detections. The Clarity advantage is therefore the reusable workflow: select the minerals, initialize from a library, adapt with the labeled sensor pixels available, and apply the resulting model across new scenes.</p>\n<p><strong>Clarity</strong> supports that loop by importing EMIT-like cubes, managing mineral libraries, generating synthetic mixtures, training and comparing abundance models, and producing per-pixel maps for review.</p>\n<p>Full supporting details—including the 23-site comparison, laboratory-name matching rules, detection thresholds, and scoring protocol—are in the <a href=\"#appendix\">Cuprite technical appendix</a>.</p>\n<hr />\n<a id=\"appendix\"></a>\n<h2 id=\"appendix-cuprite-site-results-and-evaluation-protocol\">Appendix: Cuprite site results and evaluation protocol</h2>\n<p>This appendix supports <a href=\"#article\"><em>From Spectral Libraries to Cuprite — Better, Faster Alteration Maps</em></a>. It contains the complete 23-site comparison, laboratory-name matching rules, detection thresholds, and site-scoring protocol.</p>\n<h3 id=\"detailed-site-results\">Detailed site results</h3>\n<p>Table 4 includes all 23 published sample categories used in the comparison, including samples whose reported minerals fall outside the model's eight classes. Detections are ordered by spectral abundance within each method.</p>\n<table><thead><tr><th>Spectral category (map code)</th><th>Sample ID</th><th>LS sample verification</th><th>XRD sample verification</th><th>Clarity Model detections ↓</th><th>EMIT Tetracorder detections ↓</th></tr></thead><tbody>\n<tr><td>Jarosite (1A)</td><td><strong>CU91-20A</strong></td><td>Jarosite in coating</td><td>K-jarosite in coating</td><td>None above threshold</td><td>Kaolinite <strong>0.066</strong>; Hematite <strong>0.022</strong>; Goethite <strong>0.001</strong></td></tr>\n<tr><td>Hematite (<strong>3B</strong>)</td><td><strong>CU91-223A</strong></td><td>Hematite + Kaolinite</td><td>Disordered Hematite, Kaolinite, Quartz, Calcite, Tridymite (tr?)</td><td>None above threshold</td><td>Kaolinite <strong>0.144</strong>; Hematite <strong>0.010</strong>; Muscovite <strong>0.003</strong></td></tr>\n<tr><td>Goethite (<strong>4C</strong>)</td><td><strong>CU91-236A</strong></td><td>Goethite, w.o. Kaolinite, Dickite</td><td>Goethite, Kaolinite, Quartz</td><td>Kaolinite <strong>0.093</strong>; Muscovite <strong>0.028</strong>; Goethite <strong>0.003</strong></td><td>Kaolinite <strong>0.089</strong>; Muscovite <strong>0.013</strong>; Goethite <strong>0.003</strong></td></tr>\n<tr><td>Chlorite (<strong>5D</strong>)</td><td><strong>CU91-238A</strong></td><td>Chlorite + White mica</td><td>Fe-chlorite, Muscovite, Quartz, Kaolinite</td><td>Muscovite <strong>0.169</strong>; Goethite <strong>0.006</strong></td><td>Muscovite <strong>0.112</strong>; Goethite <strong>0.004</strong>; Chlorite <strong>0.003</strong></td></tr>\n<tr><td>Pyroxene (6E)</td><td><strong>CU01-20A</strong></td><td>Pyroxene + trace hydrated phases</td><td>Augite (M), Diopside (M), Anorthite (M), Forsterite (tr), Quartz (tr), Analcime (tr)</td><td>Calcite <strong>0.021</strong>; Goethite <strong>0.004</strong></td><td>Calcite <strong>0.050</strong></td></tr>\n<tr><td>K-alunite 1 (7F)</td><td><strong>CU91-217G</strong></td><td>K-alunite, Na/K = 0.01</td><td>K-alunite, Quartz</td><td>Kaolinite <strong>0.074</strong>; Muscovite <strong>0.059</strong></td><td>Muscovite <strong>0.079</strong>; Kaolinite <strong>0.051</strong>; Goethite <strong>0.003</strong></td></tr>\n<tr><td>K-alunite 2 (8G)</td><td><strong>CU98-5C</strong></td><td>K-alunite, Na/K = 0.07</td><td>Alunite (M), Opal-A (M), Tridymite (m), Quartz (tr)</td><td>Kaolinite <strong>0.184</strong></td><td>Kaolinite <strong>0.079</strong></td></tr>\n<tr><td>Na-K±Ca alunite (9H)</td><td><strong>CU91-217H</strong></td><td>Multiple Alunite components</td><td>Na-alunite, Quartz</td><td>Muscovite <strong>0.092</strong>; Kaolinite <strong>0.058</strong></td><td>Muscovite <strong>0.070</strong>; Kaolinite <strong>0.063</strong>; Goethite <strong>0.002</strong></td></tr>\n<tr><td>Buddingtonite + Na-montmorillonite (<strong>11I</strong>)</td><td><strong>CU91-260B</strong></td><td>Buddingtonite + Na-montmorillonite</td><td>Buddingtonite in solid solution with K-feldspar; Quartz</td><td>Kaolinite <strong>0.108</strong>; Hematite <strong>0.004</strong></td><td>Kaolinite <strong>0.021</strong>; Montmorillonite <strong>0.006</strong></td></tr>\n<tr><td>Well-ordered Kaolinite (<strong>12J</strong>)</td><td><strong>CU91-200A</strong></td><td>w.o. Kaolinite</td><td>w.o. Kaolinite, Quartz, Feldspar, Alunite</td><td>Kaolinite <strong>0.141</strong></td><td>Kaolinite <strong>0.216</strong></td></tr>\n<tr><td>Disordered Kaolinite or w.o. Kaolinite ± Alunite + other (<strong>13K</strong>)</td><td><strong>CU00-19A</strong></td><td>Hematite; disordered Kaolinite or w.o. Kaolinite + White mica/Smectite</td><td>Clay separate: w.o. Kaolinite, Smectite (tr), Illite (tr)</td><td>Kaolinite <strong>0.118</strong></td><td>Kaolinite <strong>0.108</strong>; Hematite <strong>0.001</strong></td></tr>\n<tr><td>Dickite (14L)</td><td><strong>CU91-219B</strong></td><td>Dickite</td><td>Dickite, Kaolinite, Quartz, Calcite</td><td>None above threshold</td><td>Kaolinite <strong>0.145</strong>; Goethite <strong>0.003</strong>; Hematite <strong>0.001</strong></td></tr>\n<tr><td>Kaolinite + White mica ± Alunite or Halloysite (15P)</td><td><strong>CU91-242D</strong></td><td>Trace Goethite; Halloysite or w.o. Kaolinite + White mica/Smectite</td><td>Halloysite, Quartz, Mica, Alunite, possibly Dickite</td><td>Kaolinite <strong>0.057</strong>; Hematite <strong>0.006</strong></td><td>Kaolinite <strong>0.130</strong>; Muscovite <strong>0.009</strong>; Goethite <strong>0.004</strong>; Hematite <strong>0.001</strong></td></tr>\n<tr><td>Na-montmorillonite (<strong>16Q</strong>)</td><td><strong>CU93-52</strong></td><td>Na-montmorillonite</td><td>Quartz (M), Anorthite (m), Albite (m), Calcite (m), Orthoclase (m), Muscovite (m), Montmorillonite (m), Kaolinite (tr), Magnesiohornblende (tr)</td><td>Montmorillonite <strong>0.017</strong></td><td>Montmorillonite <strong>0.054</strong></td></tr>\n<tr><td>Nontronite (17R)</td><td><strong>CU00-13A</strong></td><td>Nontronite</td><td>Clay separate: Smectite (M), Kaolinite (tr), Mica (tr)</td><td>None above threshold</td><td>Goethite <strong>0.001</strong>; Hematite <strong>0.00029</strong></td></tr>\n<tr><td>High-Al White mica 1 (<strong>18S</strong>)</td><td><strong>CU00-5B</strong></td><td>High-Al White mica (Al_oct = 1.845)</td><td>Quartz (M), Illite (1M and 2M2 polytypes)</td><td>Muscovite <strong>0.071</strong>; Kaolinite <strong>0.030</strong></td><td>Muscovite <strong>0.103</strong>; Goethite <strong>0.002</strong></td></tr>\n<tr><td>Medium-high-Al White mica 2 (<strong>19T</strong>)</td><td><strong>CU91-252D</strong></td><td>Medium-high-Al White mica (Al_oct = 1.783)</td><td>Quartz (M), Muscovite (mostly 2M1 with trace 1M polytypes), Clinochlore (tr)</td><td>Muscovite <strong>0.219</strong>; Goethite <strong>0.031</strong></td><td>Muscovite <strong>0.154</strong>; Goethite <strong>0.006</strong>; Chlorite <strong>0.002</strong></td></tr>\n<tr><td>Medium-low-Al White mica 3 (<strong>20U</strong>)</td><td><strong>CU91-250A</strong></td><td>Medium-low-Al White mica (Al_oct = 1.707)</td><td>Quartz (M), Muscovite (2M1 and 1M polytypes)</td><td>Muscovite <strong>0.098</strong>; Goethite <strong>0.030</strong></td><td>Goethite <strong>0.118</strong>; Muscovite <strong>0.112</strong></td></tr>\n<tr><td>Low-Al White mica 4 (<strong>21V</strong>)</td><td><strong>CU98-8H</strong></td><td>Low-Al White mica (Al_oct = 1.642)</td><td>Quartz (M), Muscovite (1M and 2M1 polytypes)</td><td>Muscovite <strong>0.067</strong></td><td>Muscovite <strong>0.050</strong>; Kaolinite <strong>0.021</strong>; Goethite <strong>0.019</strong></td></tr>\n<tr><td>Calcite (<strong>23W</strong>)</td><td><strong>CU02-11A</strong></td><td>Calcite</td><td>Calcite (M), Quartz (tr)</td><td>Calcite <strong>0.330</strong></td><td>Calcite <strong>0.332</strong></td></tr>\n<tr><td>Hydrated silica — Chalcedony and/or Opal (25X)</td><td><strong>CU91-6A</strong></td><td>Chalcedony</td><td>Quartz</td><td>Montmorillonite <strong>0.014</strong>; Muscovite <strong>0.009</strong></td><td>Kaolinite <strong>0.017</strong>; Montmorillonite <strong>0.016</strong></td></tr>\n<tr><td>Opal (26Y)</td><td><strong>CU00-15E</strong></td><td>Opal</td><td>Cristobalite and/or Opal (M), Quartz (M), Calcite (m), Tridymite (tr)</td><td>Kaolinite <strong>0.021</strong>; Muscovite <strong>0.007</strong></td><td>Kaolinite <strong>0.022</strong>; Montmorillonite <strong>0.012</strong></td></tr>\n<tr><td>Hydrated volcanic glass (27Z)</td><td><strong>CU01-4A</strong></td><td>Hydrated volcanic glass, Nontronite</td><td>Anorthite (M), Sanidine (M), Quartz (M), Cristobalite or Opal (m), Nontronite (m), Muscovite (tr), Volcanic glass</td><td>None above threshold</td><td>None</td></tr>\n</tbody></table>\n<p><strong>Table 4. Cuprite sample comparison.</strong> Laboratory columns and row order follow Swayze Table A1; detections are ordered by spectral abundance. Bold map codes are the 12 sites eligible for the laboratory-spectroscopy score; 15P stays in the table but is excluded from that score. M/m/tr = major/minor/trace; w.o. = well ordered.</p>\n<p>This is a small, mixed-mineral field check—not a validation of mineral weight percentages. Field samples and the 3×3 EMIT neighborhoods cover different areas, and the predicted values are Tetracorder-style spectral abundances.</p>\n<h3 id=\"cuprite-evaluation-protocol\">Cuprite evaluation protocol</h3>\n<h4 id=\"what-spectral-abundance-means\">What spectral abundance means</h4>\n<p>Spectral abundance is estimated from a mineral's absorption features in reflected light; it is not a direct measurement of the mineral's weight in the rock. As <a href=\"https://pubs.usgs.gov/publication/70196084\">Swayze et al. (2014)</a> explain, absorption strength also depends on grain size and mineral properties, so the strongest spectral signature need not belong to the most abundant mineral.</p>\n<p>Here, EMIT Tetracorder supplies processed mineral spectral-abundance estimates, and the Clarity Model predicts spectral abundances learned from targets derived from those estimates. A value such as <strong>0.066 Kaolinite does not establish 6.6% Kaolinite by weight</strong>.</p>\n<h4 id=\"matching-laboratory-names\">Matching laboratory names</h4>\n<p>Before scoring, we translate laboratory names into the eight Clarity Model classes using Table 5. LS and XRD are matched separately; Table 4 retains their original wording.</p>\n<table><thead><tr><th>Clarity Model class</th><th>Name in XRD or LS</th><th>Rule</th></tr></thead><tbody>\n<tr><td><strong>Calcite</strong></td><td>Calcite</td><td>Same name</td></tr>\n<tr><td><strong>Chlorite</strong></td><td>Chlorite, Fe-chlorite, Clinochlore</td><td>Same group (<a href=\"https://www.handbookofmineralogy.org/pdfs/clinochlore.pdf\">Handbook of Mineralogy</a>)</td></tr>\n<tr><td><strong>Dolomite</strong></td><td>Dolomite</td><td>Same name</td></tr>\n<tr><td><strong>Goethite</strong></td><td>Goethite</td><td>Same name</td></tr>\n<tr><td><strong>Hematite</strong></td><td>Hematite</td><td>Same name</td></tr>\n<tr><td><strong>Kaolinite</strong></td><td>Kaolinite, well-ordered or disordered Kaolinite</td><td>Same mineral; different ordering</td></tr>\n<tr><td><strong>Montmorillonite</strong></td><td>Montmorillonite, Na-montmorillonite</td><td>Same mineral; sodium form</td></tr>\n<tr><td><strong>Muscovite</strong></td><td>Muscovite, Illite, White mica</td><td>Combined Illite–Muscovite class</td></tr>\n</tbody></table>\n<p><strong>Table 5.</strong> Laboratory names mapped to the eight model classes; terminology follows <a href=\"https://pubs.usgs.gov/publication/70196084\">Swayze et al. (2014)</a>.</p>\n<p>Generic “mica” or “smectite” is too broad for an automatic match. Nontronite, Dickite, and Halloysite have no matching output class. Uncertain identifications are not treated as confirmed. Dolomite remains an output but has no laboratory reference in these samples.</p>\n<h4 id=\"detection-thresholds-and-site-scoring\">Detection thresholds and site scoring</h4>\n<p>A small non-zero prediction is not automatically a detection. For each of the seven scored <strong>Clarity Model</strong> classes, a mineral must reach its minimum spectral abundance in Table 6 before it can count toward a site hit. Chlorite is excluded because its validation set is too small to support a reliable threshold.</p>\n<p>We select each mineral's threshold by <strong>maximizing F1 against filtered Tetracorder detections on 24,000 validation pixels</strong>, taking the higher threshold on ties. All thresholds are fixed before testing Cuprite.</p>\n<table><thead><tr><th>Clarity Model class</th><th style=\"text-align:right\">Detection threshold</th><th style=\"text-align:right\">Validation F1</th></tr></thead><tbody>\n<tr><td>Calcite</td><td style=\"text-align:right\">0.0162</td><td style=\"text-align:right\">0.837</td></tr>\n<tr><td>Chlorite†</td><td style=\"text-align:right\">—</td><td style=\"text-align:right\">—</td></tr>\n<tr><td>Dolomite</td><td style=\"text-align:right\">0.0175</td><td style=\"text-align:right\">0.839</td></tr>\n<tr><td>Goethite</td><td style=\"text-align:right\">0.0024</td><td style=\"text-align:right\">0.775</td></tr>\n<tr><td>Hematite</td><td style=\"text-align:right\">0.0031</td><td style=\"text-align:right\">0.718</td></tr>\n<tr><td>Kaolinite</td><td style=\"text-align:right\">0.0187</td><td style=\"text-align:right\">0.958</td></tr>\n<tr><td>Montmorillonite</td><td style=\"text-align:right\">0.0113</td><td style=\"text-align:right\">0.579</td></tr>\n<tr><td>Muscovite</td><td style=\"text-align:right\">0.0057</td><td style=\"text-align:right\">0.818</td></tr>\n</tbody></table>\n<p><strong>Table 6.</strong> Validation-selected detection thresholds. †Chlorite is not scored because only six positive validation examples were available.</p>\n<p>For each site, we compare <strong>Clarity Model predictions at or above their class-specific thresholds</strong> and <strong>positive, quality-filtered EMIT Tetracorder outputs</strong> with the laboratory reference. The Tetracorder data used here have already passed <strong>Fit Score ≥ 0.46</strong> and <strong>Band Depth Uncertainty ≤ 0.01</strong> filters. Table 5 handles differences in mineral names.</p>\n<p>For either method, <strong>one laboratory-supported detection gives a hit; none gives a miss</strong>. We report the percentage of eligible sites with a hit, separately for <strong>LS (12 sites)</strong> and <strong>XRD (15 sites)</strong>. Eligibility requires at least one laboratory-listed mineral covered by the eight classes.</p>\n<p>Sample 15P is excluded from the LS score because its clay interpretation has alternatives, but remains visible in Table 4. XRD major/minor/trace annotations provide context rather than an abundance ranking for scoring.</p>\n<p>This is a site-level agreement score, not full-mixture recovery or precision. One correct detection is enough, and additional unsupported detections do not reduce the score. Clarity and Tetracorder also retain their different detection rules.</p>","updatedAt":"2026-09-25T22:48:17.659Z","createdAt":"2026-09-25T22:41:11.077Z","_status":"published"},{"id":31,"title":"Clarity Plume™ Matches Metered Methane — Review It Faster, on Your Site","slug":"geomonitoring-matches-metered-methane-review-it-faster-on-your-site","excerpt":"A controlled-release evaluation of Clarity Plume's production methane retrievals against PRISMA and EMIT, with metered releases, no-release periods, and review references beside the result.","description":null,"type":"Article","author":{"id":7,"name":"Ahmed Sigiuk","slug":"ahmed-sigiuk","email":null,"avatar":{"id":189,"alt":"Ahmed Sigiuk author headshot","caption":null,"sourcePath":"src/assets/team-headshot_4.png","updatedAt":"2026-06-23T19:31:05.725Z","createdAt":"2026-06-23T19:31:05.725Z","url":"/api/media/file/author-ahmed-sigiuk.png","thumbnailURL":"/api/media/file/author-ahmed-sigiuk-320x320.png","filename":"author-ahmed-sigiuk.png","mimeType":"image/png","filesize":956285,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-ahmed-sigiuk-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":221901,"filename":"author-ahmed-sigiuk-320x320.png"},"card":{"url":"/api/media/file/author-ahmed-sigiuk-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":960162,"filename":"author-ahmed-sigiuk-768x768.png"}}},"title":"Senior Deep Learning Engineer","bio":null,"updatedAt":"2026-06-23T19:31:40.946Z","createdAt":"2026-04-23T23:27:47.142Z"},"category":{"id":1,"title":"Research","slug":"research","updatedAt":"2026-06-22T22:49:08.557Z","createdAt":"2026-06-22T22:49:08.555Z"},"contentStage":"evaluation","layout":"wide","tags":[{"id":"6a90af2f21879d00146935cd","tag":"methane detection"},{"id":"6a90af2f21879d00146935ce","tag":"controlled release"},{"id":"6a90af2f21879d00146935cf","tag":"Clarity Plume"},{"id":"6a90af2f21879d00146935d0","tag":"PRISMA"},{"id":"6a90af2f21879d00146935d1","tag":"EMIT"}],"industries":["earth-observation","environmental-monitoring"],"products":["clarity","earth-observation-workflows"],"heroImage":{"id":213,"alt":"Clarity Plume controlled-release result at Casa Grande","caption":"Clarity Plume controlled-release result at Casa Grande, PRISMA, 19 November 2024.","sourcePath":null,"updatedAt":"2026-08-31T04:12:06.632Z","createdAt":"2026-08-27T23:45:28.870Z","url":"/api/media/file/geo-metaspectral-com-1.png","thumbnailURL":"/api/media/file/geo-metaspectral-com-1-320x261.png","filename":"geo-metaspectral-com-1.png","mimeType":"image/png","filesize":1857959,"width":1365,"height":1113,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/geo-metaspectral-com-1-320x261.png","width":320,"height":261,"mimeType":"image/png","filesize":140060,"filename":"geo-metaspectral-com-1-320x261.png"},"card":{"url":"/api/media/file/geo-metaspectral-com-1-768x626.png","width":768,"height":626,"mimeType":"image/png","filesize":741040,"filename":"geo-metaspectral-com-1-768x626.png"}}},"imageBackground":"light","publishedAt":null,"legacySourcePath":null,"bodyMarkdown":"A plume on a map is not a decision. Operators need a rate they can stand\nbehind, on a site they chose, with something independent next to it.\n\nThat is what Clarity Plume is built for, and that is what this test shows:\nproduction retrievals against public meters, with the meter and published\nplumes already beside the result — the same view you get [on a live\nsite](https://metaspectral.com/clarity-plume).\n\nWe evaluated Clarity Plume's production methane retrievals against public\ncontrolled-release data from Arizona, Evanston, Casa Grande, and Petrolia. The\nbenchmark includes PRISMA and EMIT overpasses with metered releases, known\nno-release periods, successful detections, and misses.\n\n## Bottom line\n\n- **Detected rates track the meter.** Median absolute error is **46% for\n  PRISMA** and **27% for EMIT**.\n- **Review is built in.** Clarity Plume automatically retrieves external\n  references beside the satellite result — a controlled-release meter when the\n  site has one, and a Carbon Mapper published plume when they have released a\n  detection for that overpass.\n\n## Dataset and evaluation\n\nWe used [public controlled-release measurements published by Stanford](https://doi.org/10.25740/qh001qt3946)\nfor Arizona, Evanston, and Casa Grande, and a FluxLab SIMFLEX metered release at\nPetrolia, Ontario. The benchmark covers Arizona in 2021, Evanston in 2024, Casa\nGrande in 2024–25, and Petrolia in 2025. All PRISMA and EMIT archive overpasses\navailable for those campaigns at the evaluation freeze are retained, including\nscenes where Clarity Plume did not detect the metered release. Six additional\nCasa Grande PRISMA overpasses and one Petrolia PRISMA overpass are included.\n\n| Site | Period | Sensor | Metered releases | Certified no-release |\n|---|---|---|---:|---:|\n| Arizona | 2021 | PRISMA | 3 | — |\n| Evanston | 2024 | PRISMA | 2 | — |\n| Petrolia | 2025 | PRISMA | 1 | — |\n| Casa Grande | 2024–25 | PRISMA | 19 | 3 |\n| Casa Grande | 2024–25 | EMIT | 8 | 2 |\n\n**Table 1.** Controlled-release evaluation dataset by site and sensor.\n\nA satellite result is paired with a meter reading taken within one hour of the\noverpass. A positive Clarity Plume emission rate counts as a detection. Missed\nreleases remain in the detection denominator and are plotted at zero in the\nrate comparison.\n\nQuantification gain was fitted once using the scenes marked **fit**. Scenes\nmarked **holdout** were not re-fitted after evaluation. False alarms are scored\nonly where the campaign record confirms that the meter was off and the\nno-release period passes quality control. Archive dates without a usable meter\nare not counted as true negatives.\n\n## Results\n\nFigure 1 compares Clarity Plume's reported rates with the ground meters. The\ngrey band marks estimates within ±30% of the metered rate. Detected PRISMA and\nEMIT scenes cluster around the one-to-one line, but the points at zero show that\nsome substantial releases were missed.\n\n![Clarity Plume reported methane rate compared with controlled-release meters](./images/cr-validation-scatter.png)\n\n**Figure 1.** Reported rate versus metered release rate for PRISMA and EMIT.\nMissed detections are plotted at zero; fit and holdout scenes are marked\nseparately.\n\n| Metric | PRISMA | EMIT |\n|---|---:|---:|\n| Metered releases detected | **16/25 (64%)** | **5/8 (63%)** |\n| False alarms on certified no-release overpasses | **0/3** | **0/2** |\n| Geometric-mean reported/metered rate, detections | **0.69×** | **1.28×** |\n| Median absolute percent error, detections | **46%** | **27%** |\n| Smallest detected release in this dataset | 289 kg/h | 382 kg/h |\n\n**Table 2.** Summary of controlled-release performance. The smallest detected\nrelease is a dataset observation, not a minimum detection limit.\n\nEvery retained PRISMA and EMIT overpass is listed at the end of this post.\n\n## Clarity Plume application\n\nThe same Casa Grande overpasses appear in Clarity Plume with the retrieved\nplume, the meter, and the reported rate. Table 5 lists rate error, ±1σ, and\nsource offset for the four scenes in Figures 2–5.\n\n| Sensor | Date (UTC) | Metered (kg/h) | Reported (kg/h) | ±1σ (kg/h) | Rate error | Source offset |\n|---|---|---:|---:|---:|---:|---:|\n| PRISMA | 2025-06-15 | 1,004.7 | 606.8 | 234 | 40% | 162 m |\n| EMIT | 2025-06-23 | 879.2 | 3,053.1 | 4,697 | 247% | 218 m |\n| PRISMA | 2025-11-25 | 880.7 | 618.3 | 208 | 30% | 196 m |\n| EMIT | 2025-11-29 | 382.4 | 574.3 | 693 | 50% | 156 m |\n\n**Table 5.** Workbench metrics for the four Casa Grande scenes. Source offset is\nthe distance from the retrieved source to the release point.\n\nJune includes a PRISMA result and the EMIT holdout outlier from Table 4.\n\n<img src=\"./images/cr-ui-prisma-casa-grande-20250615.png\" alt=\"PRISMA controlled-release result at Casa Grande on June 15, 2025\" width=\"720\" />\n\n**Figure 2.** PRISMA, 15 June 2025.\nThe reported rate is 40% below the meter. ±1σ (234 kg/h) is smaller than the\nrate, and the source is 162 m from the release point.\n\n<img src=\"./images/cr-ui-emit-casa-grande-20250623.png\" alt=\"EMIT controlled-release result at Casa Grande on June 23, 2025\" width=\"720\" />\n\n**Figure 3.** EMIT, 23 June 2025.\nThe plume is in the right place (218 m offset), but the rate is 247% high and\n±1σ (4,697 kg/h) is larger than the estimate, so the quantification is\nunstable.\n\nNovember covers smaller releases.\n\n<img src=\"./images/cr-ui-prisma-casa-grande-20251125.png\" alt=\"PRISMA controlled-release result at Casa Grande on November 25, 2025\" width=\"720\" />\n\n**Figure 4.** PRISMA, 25 November 2025.\nA smaller release: 30% below the meter, with ±1σ comparable to the reported\nrate and a 196 m offset.\n\n<img src=\"./images/cr-ui-emit-casa-grande-20251129.png\" alt=\"EMIT controlled-release result at Casa Grande on November 29, 2025\" width=\"720\" />\n\n**Figure 5.** EMIT, 29 November 2025.\nSmallest EMIT detection in this dataset. The rate is 50% high; ±1σ again\nexceeds the estimate, while the source offset is the tightest of the four\n(156 m).\n\n## Discussion\n\nThe point of this check is not only that detected rates sit close to the\nmeter. It is that a reviewer can see that comparison in Clarity Plume, next\nto the plume, the rate, and the uncertainty — instead of treating the retrieval\nas an unsupported alert.\n\nOn a controlled-release site, Clarity Plume puts the campaign **meter** beside\nour rate so the same overpass can be checked against ground truth. Where Carbon\nMapper has published a plume for that scene, that map is pulled in\nautomatically. The reviewer is not assembling those sources; they are already\nnext to the retrieval.\n\nThe same layout is what we are extending. More metered CR sites will attach as\ncampaigns publish. EnMAP and limited PRISMA tasking will use the same review,\nas will commercial satellites such as Tanager and others — archive scenes and\ntasked acquisitions checked the same way, with the meter and published plumes\nstill in view when they exist.\n\nThe present dataset remains small, particularly for false-alarm evaluation.\nThese results demonstrate the workflow and its current performance, but\nadditional campaigns are needed to characterize reliability across a wider\nrange of conditions.\n\n## Scene-by-scene results\n\nThe tables below list every retained overpass in this benchmark. Use them to\ncheck a date, a miss, or a holdout without re-reading the summary.\n\n### PRISMA\n\nPRISMA gives the larger sample in this benchmark. Its median detected-scene\nerror is 46%, and its geometric-mean estimate is 31% below the meter. The\nholdout-only geometric mean is **0.67×**, showing similar average behavior on\nscenes that were not used to fit the gain.\n\nDetection remains the main limitation. PRISMA misses nine metered releases,\nincluding releases of **1,232 kg/h**, **767 kg/h**, and **572 kg/h** at\nPetrolia, so source magnitude alone does not explain whether a plume is found. It reports no positive rate\non the three certified no-release overpasses. Three no-release scenes are too\nfew to estimate a stable false-alarm rate, but the observed outcomes are\nincluded in full below.\n\n| Site | Date (UTC) | Cloud (%) | Outcome | Split | Meter (kg/h) | Reported (kg/h) | Reported/metered |\n|---|---|---:|---|---|---:|---:|---:|\n| Arizona 2021 | 2021-10-16 18:36 | 0.3 | Detection | Holdout | 2,357 | 1,354.7 | 0.575 |\n| Arizona 2021 | 2021-10-21 18:23 | 0.5 | Detection | Holdout | 4,473 | 2,153.1 | 0.481 |\n| Arizona 2021 | 2021-10-27 18:26 | 0.1 | Detection | Fit | 3,436 | 3,438.4 | 1.001 |\n| Evanston | 2024-08-30 18:24 | 0.0 | Miss | — | 767.2 | 0 | — |\n| Evanston | 2024-09-05 18:27 | 0.0 | Miss | — | 1,232 | 0 | — |\n| Petrolia | 2025-06-03 16:23 | 0.0 | Miss | — | 571.8 | 0 | — |\n| Casa Grande | 2024-11-19 18:23 | 0.3 | Detection | Holdout | 382.9 | 373.5 | 0.975 |\n| Casa Grande | 2024-12-23 18:09 | 0.1 | Detection | Holdout | 845.4 | 256.1 | 0.303 |\n| Casa Grande | 2024-12-29 18:13 | 0.5 | Detection | Holdout | 1,097 | 479.9 | 0.437 |\n| Casa Grande | 2025-01-10 18:19 | 0.4 | True negative | — | 0 | 0 | — |\n| Casa Grande | 2025-01-16 18:23 | 0.1 | Miss | — | 781.4 | 0 | — |\n| Casa Grande | 2025-01-21 18:09 | 1.3 | Detection | Holdout | 865.2 | 1,525.7 | 1.763 |\n| Casa Grande | 2025-02-02 18:16 | 0.1 | Miss | — | 544 | 0 | — |\n| Casa Grande | 2025-02-25 18:13 | 0.6 | Detection | Holdout | 921 | 474.2 | 0.515 |\n| Casa Grande | 2025-03-09 18:19 | 0.4 | Detection | Fit | 1,107 | 822.0 | 0.743 |\n| Casa Grande | 2025-03-20 18:09 | 0.7 | Detection | Holdout | 475.5 | 737.6 | 1.551 |\n| Casa Grande | 2025-04-24 18:13 | 0.5 | Miss | — | 500 | 0 | — |\n| Casa Grande | 2025-05-17 18:09 | 0.4 | Detection | Holdout | 288.7 | 683.8 | 2.368 |\n| Casa Grande | 2025-06-04 18:19 | 1.2 | True negative | — | 0 | 0 | — |\n| Casa Grande | 2025-06-10 18:23 | 0.2 | Detection | Holdout | 981 | 585.1 | 0.596 |\n| Casa Grande | 2025-06-15 18:09 | 0.1 | Detection | Fit | 1,005 | 606.8 | 0.604 |\n| Casa Grande | 2025-07-26 18:16 | 0.3 | No certified meter | — | — | 48.4 | — |\n| Casa Grande | 2025-08-01 18:19 | 0.0 | Detection | Fit | 708 | 492.6 | 0.696 |\n| Casa Grande | 2025-08-18 18:13 | 0.8 | Miss | — | 99.1 | 0 | — |\n| Casa Grande | 2025-10-21 18:16 | 0.5 | True negative | — | 0 | 0 | — |\n| Casa Grande | 2025-11-07 18:09 | 0.3 | Miss | — | 80.5 | 0 | — |\n| Casa Grande | 2025-11-25 18:19 | 0.5 | Detection | Fit | 881 | 618.3 | 0.702 |\n| Casa Grande | 2025-12-12 18:13 | 0.5 | Miss | — | 153.2 | 0 | — |\n| Casa Grande | 2025-12-18 18:16 | 1.0 | Detection | Holdout | 986 | 159.7 | 0.162 |\n\n**Table 3.** PRISMA results for every retained overpass. Cloud % is the cloudy-pixel\nfraction from the PRISMA L1 Cloud_Mask over the full scene. The July 26 scene has\nno certified meter and is excluded from both detection and false-alarm totals.\nThe Petrolia overpass is a holdout miss and was not used to fit the\nquantification gain.\n\n### EMIT\n\nEMIT has only eight metered releases in this benchmark, so its results are less\nsettled. It detects five releases, with a median absolute rate error of 27%.\nThe geometric-mean estimate is 28% above the meter, driven partly by a June 23\nholdout scene reported at 3.47 times the metered rate.\n\nEMIT misses three releases, including one above 1,000 kg/h. It produces no\npositive rate on either certified no-release overpass. That is encouraging, but\ntwo no-release scenes are not enough to establish a general false-alarm rate.\n\n| Site | Date (UTC) | Cloud (%) | Outcome | Split | Meter (kg/h) | Reported (kg/h) | Reported/metered |\n|---|---|---:|---|---|---:|---:|---:|\n| Casa Grande | 2024-12-02 18:01 | 38 | Detection | Fit | 756 | 550.8 | 0.729 |\n| Casa Grande | 2025-04-02 18:07 | 69 | Miss | — | 1,043 | 0 | — |\n| Casa Grande | 2025-04-06 16:33 | 25 | Miss | — | 689 | 0 | — |\n| Casa Grande | 2025-06-03 17:34 | 8 | Detection | Fit | 794 | 640.7 | 0.807 |\n| Casa Grande | 2025-06-23 17:37 | 4 | Detection | Holdout | 879 | 3,053.1 | 3.473 |\n| Casa Grande | 2025-06-27 15:59 | 24 | Detection | Fit | 875 | 990.0 | 1.131 |\n| Casa Grande | 2025-07-18 23:39 | 60 | True negative | — | 0 | 0 | — |\n| Casa Grande | 2025-09-24 20:46 | 14 | True negative | — | 0 | 0 | — |\n| Casa Grande | 2025-11-25 20:13 | 23 | Miss | — | 478 | 0 | — |\n| Casa Grande | 2025-11-29 18:40 | 33 | Detection | Fit | 382 | 574.3 | 1.503 |\n\n**Table 4.** EMIT CH4ENH results for every retained overpass. Cloud % is NASA CMR\nCloudCover on the L1B radiance granule.\n","bodyHtml":"<p>A plume on a map is not a decision. Operators need a rate they can stand\nbehind, on a site they chose, with something independent next to it.</p>\n<p>That is what Clarity Plume is built for, and that is what this test shows:\nproduction retrievals against public meters, with the meter and published\nplumes already beside the result — the same view you get <a href=\"https://metaspectral.com/clarity-plume\">on a live\nsite</a>.</p>\n<p>We evaluated Clarity Plume's production methane retrievals against public\ncontrolled-release data from Arizona, Evanston, Casa Grande, and Petrolia. The\nbenchmark includes PRISMA and EMIT overpasses with metered releases, known\nno-release periods, successful detections, and misses.</p>\n<h2>Bottom line</h2>\n<ul>\n<li><strong>Detected rates track the meter.</strong> Median absolute error is <strong>46% for\nPRISMA</strong> and <strong>27% for EMIT</strong>.</li>\n<li><strong>Review is built in.</strong> Clarity Plume automatically retrieves external\nreferences beside the satellite result — a controlled-release meter when the\nsite has one, and a Carbon Mapper published plume when they have released a\ndetection for that overpass.</li>\n</ul>\n<h2>Dataset and evaluation</h2>\n<p>We used <a href=\"https://doi.org/10.25740/qh001qt3946\">public controlled-release measurements published by Stanford</a>\nfor Arizona, Evanston, and Casa Grande, and a FluxLab SIMFLEX metered release at\nPetrolia, Ontario. The benchmark covers Arizona in 2021, Evanston in 2024, Casa\nGrande in 2024–25, and Petrolia in 2025. All PRISMA and EMIT archive overpasses\navailable for those campaigns at the evaluation freeze are retained, including\nscenes where Clarity Plume did not detect the metered release. Six additional\nCasa Grande PRISMA overpasses and one Petrolia PRISMA overpass are included.</p>\n<table>\n<thead>\n<tr>\n<th>Site</th>\n<th>Period</th>\n<th>Sensor</th>\n<th style=\"text-align:right\">Metered releases</th>\n<th style=\"text-align:right\">Certified no-release</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Arizona</td>\n<td>2021</td>\n<td>PRISMA</td>\n<td style=\"text-align:right\">3</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Evanston</td>\n<td>2024</td>\n<td>PRISMA</td>\n<td style=\"text-align:right\">2</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Petrolia</td>\n<td>2025</td>\n<td>PRISMA</td>\n<td style=\"text-align:right\">1</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2024–25</td>\n<td>PRISMA</td>\n<td style=\"text-align:right\">19</td>\n<td style=\"text-align:right\">3</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2024–25</td>\n<td>EMIT</td>\n<td style=\"text-align:right\">8</td>\n<td style=\"text-align:right\">2</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Table 1.</strong> Controlled-release evaluation dataset by site and sensor.</p>\n<p>A satellite result is paired with a meter reading taken within one hour of the\noverpass. A positive Clarity Plume emission rate counts as a detection. Missed\nreleases remain in the detection denominator and are plotted at zero in the\nrate comparison.</p>\n<p>Quantification gain was fitted once using the scenes marked <strong>fit</strong>. Scenes\nmarked <strong>holdout</strong> were not re-fitted after evaluation. False alarms are scored\nonly where the campaign record confirms that the meter was off and the\nno-release period passes quality control. Archive dates without a usable meter\nare not counted as true negatives.</p>\n<h2>Results</h2>\n<p>Figure 1 compares Clarity Plume's reported rates with the ground meters. The\ngrey band marks estimates within ±30% of the metered rate. Detected PRISMA and\nEMIT scenes cluster around the one-to-one line, but the points at zero show that\nsome substantial releases were missed.</p>\n<p><img src=\"/api/media/file/cr-validation-scatter.png\" alt=\"Clarity Plume reported methane rate compared with controlled-release meters\" /></p>\n<p><strong>Figure 1.</strong> Reported rate versus metered release rate for PRISMA and EMIT.\nMissed detections are plotted at zero; fit and holdout scenes are marked\nseparately.</p>\n<table>\n<thead>\n<tr>\n<th>Metric</th>\n<th style=\"text-align:right\">PRISMA</th>\n<th style=\"text-align:right\">EMIT</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Metered releases detected</td>\n<td style=\"text-align:right\"><strong>16/25 (64%)</strong></td>\n<td style=\"text-align:right\"><strong>5/8 (63%)</strong></td>\n</tr>\n<tr>\n<td>False alarms on certified no-release overpasses</td>\n<td style=\"text-align:right\"><strong>0/3</strong></td>\n<td style=\"text-align:right\"><strong>0/2</strong></td>\n</tr>\n<tr>\n<td>Geometric-mean reported/metered rate, detections</td>\n<td style=\"text-align:right\"><strong>0.69×</strong></td>\n<td style=\"text-align:right\"><strong>1.28×</strong></td>\n</tr>\n<tr>\n<td>Median absolute percent error, detections</td>\n<td style=\"text-align:right\"><strong>46%</strong></td>\n<td style=\"text-align:right\"><strong>27%</strong></td>\n</tr>\n<tr>\n<td>Smallest detected release in this dataset</td>\n<td style=\"text-align:right\">289 kg/h</td>\n<td style=\"text-align:right\">382 kg/h</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Table 2.</strong> Summary of controlled-release performance. The smallest detected\nrelease is a dataset observation, not a minimum detection limit.</p>\n<p>Every retained PRISMA and EMIT overpass is listed at the end of this post.</p>\n<h2>Clarity Plume application</h2>\n<p>The same Casa Grande overpasses appear in Clarity Plume with the retrieved\nplume, the meter, and the reported rate. Table 5 lists rate error, ±1σ, and\nsource offset for the four scenes in Figures 2–5.</p>\n<table>\n<thead>\n<tr>\n<th>Sensor</th>\n<th>Date (UTC)</th>\n<th style=\"text-align:right\">Metered (kg/h)</th>\n<th style=\"text-align:right\">Reported (kg/h)</th>\n<th style=\"text-align:right\">±1σ (kg/h)</th>\n<th style=\"text-align:right\">Rate error</th>\n<th style=\"text-align:right\">Source offset</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>PRISMA</td>\n<td>2025-06-15</td>\n<td style=\"text-align:right\">1,004.7</td>\n<td style=\"text-align:right\">606.8</td>\n<td style=\"text-align:right\">234</td>\n<td style=\"text-align:right\">40%</td>\n<td style=\"text-align:right\">162 m</td>\n</tr>\n<tr>\n<td>EMIT</td>\n<td>2025-06-23</td>\n<td style=\"text-align:right\">879.2</td>\n<td style=\"text-align:right\">3,053.1</td>\n<td style=\"text-align:right\">4,697</td>\n<td style=\"text-align:right\">247%</td>\n<td style=\"text-align:right\">218 m</td>\n</tr>\n<tr>\n<td>PRISMA</td>\n<td>2025-11-25</td>\n<td style=\"text-align:right\">880.7</td>\n<td style=\"text-align:right\">618.3</td>\n<td style=\"text-align:right\">208</td>\n<td style=\"text-align:right\">30%</td>\n<td style=\"text-align:right\">196 m</td>\n</tr>\n<tr>\n<td>EMIT</td>\n<td>2025-11-29</td>\n<td style=\"text-align:right\">382.4</td>\n<td style=\"text-align:right\">574.3</td>\n<td style=\"text-align:right\">693</td>\n<td style=\"text-align:right\">50%</td>\n<td style=\"text-align:right\">156 m</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Table 5.</strong> Workbench metrics for the four Casa Grande scenes. Source offset is\nthe distance from the retrieved source to the release point.</p>\n<p>June includes a PRISMA result and the EMIT holdout outlier from Table 4.</p>\n<img src=\"/api/media/file/cr-ui-prisma-casa-grande-20250615.png\" alt=\"PRISMA controlled-release result at Casa Grande on June 15, 2025\" width=\"720\" />\n<p><strong>Figure 2.</strong> PRISMA, 15 June 2025.\nThe reported rate is 40% below the meter. ±1σ (234 kg/h) is smaller than the\nrate, and the source is 162 m from the release point.</p>\n<img src=\"/api/media/file/cr-ui-emit-casa-grande-20250623.png\" alt=\"EMIT controlled-release result at Casa Grande on June 23, 2025\" width=\"720\" />\n<p><strong>Figure 3.</strong> EMIT, 23 June 2025.\nThe plume is in the right place (218 m offset), but the rate is 247% high and\n±1σ (4,697 kg/h) is larger than the estimate, so the quantification is\nunstable.</p>\n<p>November covers smaller releases.</p>\n<img src=\"./images/cr-ui-prisma-casa-grande-20251125.png\" alt=\"PRISMA controlled-release result at Casa Grande on November 25, 2025\" width=\"720\" />\n<p><strong>Figure 4.</strong> PRISMA, 25 November 2025.\nA smaller release: 30% below the meter, with ±1σ comparable to the reported\nrate and a 196 m offset.</p>\n<img src=\"./images/cr-ui-emit-casa-grande-20251129.png\" alt=\"EMIT controlled-release result at Casa Grande on November 29, 2025\" width=\"720\" />\n<p><strong>Figure 5.</strong> EMIT, 29 November 2025.\nSmallest EMIT detection in this dataset. The rate is 50% high; ±1σ again\nexceeds the estimate, while the source offset is the tightest of the four\n(156 m).</p>\n<h2>Discussion</h2>\n<p>The point of this check is not only that detected rates sit close to the\nmeter. It is that a reviewer can see that comparison in Clarity Plume, next\nto the plume, the rate, and the uncertainty — instead of treating the retrieval\nas an unsupported alert.</p>\n<p>On a controlled-release site, Clarity Plume puts the campaign <strong>meter</strong> beside\nour rate so the same overpass can be checked against ground truth. Where Carbon\nMapper has published a plume for that scene, that map is pulled in\nautomatically. The reviewer is not assembling those sources; they are already\nnext to the retrieval.</p>\n<p>The same layout is what we are extending. More metered CR sites will attach as\ncampaigns publish. EnMAP and limited PRISMA tasking will use the same review,\nas will commercial satellites such as Tanager and others — archive scenes and\ntasked acquisitions checked the same way, with the meter and published plumes\nstill in view when they exist.</p>\n<p>The present dataset remains small, particularly for false-alarm evaluation.\nThese results demonstrate the workflow and its current performance, but\nadditional campaigns are needed to characterize reliability across a wider\nrange of conditions.</p>\n<h2>Scene-by-scene results</h2>\n<p>The tables below list every retained overpass in this benchmark. Use them to\ncheck a date, a miss, or a holdout without re-reading the summary.</p>\n<h3>PRISMA</h3>\n<p>PRISMA gives the larger sample in this benchmark. Its median detected-scene\nerror is 46%, and its geometric-mean estimate is 31% below the meter. The\nholdout-only geometric mean is <strong>0.67×</strong>, showing similar average behavior on\nscenes that were not used to fit the gain.</p>\n<p>Detection remains the main limitation. PRISMA misses nine metered releases,\nincluding releases of <strong>1,232 kg/h</strong>, <strong>767 kg/h</strong>, and <strong>572 kg/h</strong> at\nPetrolia, so source magnitude alone does not explain whether a plume is found. It reports no positive rate\non the three certified no-release overpasses. Three no-release scenes are too\nfew to estimate a stable false-alarm rate, but the observed outcomes are\nincluded in full below.</p>\n<table>\n<thead>\n<tr>\n<th>Site</th>\n<th>Date (UTC)</th>\n<th style=\"text-align:right\">Cloud (%)</th>\n<th>Outcome</th>\n<th>Split</th>\n<th style=\"text-align:right\">Meter (kg/h)</th>\n<th style=\"text-align:right\">Reported (kg/h)</th>\n<th style=\"text-align:right\">Reported/metered</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Arizona 2021</td>\n<td>2021-10-16 18:36</td>\n<td style=\"text-align:right\">0.3</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">2,357</td>\n<td style=\"text-align:right\">1,354.7</td>\n<td style=\"text-align:right\">0.575</td>\n</tr>\n<tr>\n<td>Arizona 2021</td>\n<td>2021-10-21 18:23</td>\n<td style=\"text-align:right\">0.5</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">4,473</td>\n<td style=\"text-align:right\">2,153.1</td>\n<td style=\"text-align:right\">0.481</td>\n</tr>\n<tr>\n<td>Arizona 2021</td>\n<td>2021-10-27 18:26</td>\n<td style=\"text-align:right\">0.1</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">3,436</td>\n<td style=\"text-align:right\">3,438.4</td>\n<td style=\"text-align:right\">1.001</td>\n</tr>\n<tr>\n<td>Evanston</td>\n<td>2024-08-30 18:24</td>\n<td style=\"text-align:right\">0.0</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">767.2</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Evanston</td>\n<td>2024-09-05 18:27</td>\n<td style=\"text-align:right\">0.0</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">1,232</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Petrolia</td>\n<td>2025-06-03 16:23</td>\n<td style=\"text-align:right\">0.0</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">571.8</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2024-11-19 18:23</td>\n<td style=\"text-align:right\">0.3</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">382.9</td>\n<td style=\"text-align:right\">373.5</td>\n<td style=\"text-align:right\">0.975</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2024-12-23 18:09</td>\n<td style=\"text-align:right\">0.1</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">845.4</td>\n<td style=\"text-align:right\">256.1</td>\n<td style=\"text-align:right\">0.303</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2024-12-29 18:13</td>\n<td style=\"text-align:right\">0.5</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">1,097</td>\n<td style=\"text-align:right\">479.9</td>\n<td style=\"text-align:right\">0.437</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-01-10 18:19</td>\n<td style=\"text-align:right\">0.4</td>\n<td>True negative</td>\n<td>—</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-01-16 18:23</td>\n<td style=\"text-align:right\">0.1</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">781.4</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-01-21 18:09</td>\n<td style=\"text-align:right\">1.3</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">865.2</td>\n<td style=\"text-align:right\">1,525.7</td>\n<td style=\"text-align:right\">1.763</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-02-02 18:16</td>\n<td style=\"text-align:right\">0.1</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">544</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-02-25 18:13</td>\n<td style=\"text-align:right\">0.6</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">921</td>\n<td style=\"text-align:right\">474.2</td>\n<td style=\"text-align:right\">0.515</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-03-09 18:19</td>\n<td style=\"text-align:right\">0.4</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">1,107</td>\n<td style=\"text-align:right\">822.0</td>\n<td style=\"text-align:right\">0.743</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-03-20 18:09</td>\n<td style=\"text-align:right\">0.7</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">475.5</td>\n<td style=\"text-align:right\">737.6</td>\n<td style=\"text-align:right\">1.551</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-04-24 18:13</td>\n<td style=\"text-align:right\">0.5</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">500</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-05-17 18:09</td>\n<td style=\"text-align:right\">0.4</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">288.7</td>\n<td style=\"text-align:right\">683.8</td>\n<td style=\"text-align:right\">2.368</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-04 18:19</td>\n<td style=\"text-align:right\">1.2</td>\n<td>True negative</td>\n<td>—</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-10 18:23</td>\n<td style=\"text-align:right\">0.2</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">981</td>\n<td style=\"text-align:right\">585.1</td>\n<td style=\"text-align:right\">0.596</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-15 18:09</td>\n<td style=\"text-align:right\">0.1</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">1,005</td>\n<td style=\"text-align:right\">606.8</td>\n<td style=\"text-align:right\">0.604</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-07-26 18:16</td>\n<td style=\"text-align:right\">0.3</td>\n<td>No certified meter</td>\n<td>—</td>\n<td style=\"text-align:right\">—</td>\n<td style=\"text-align:right\">48.4</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-08-01 18:19</td>\n<td style=\"text-align:right\">0.0</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">708</td>\n<td style=\"text-align:right\">492.6</td>\n<td style=\"text-align:right\">0.696</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-08-18 18:13</td>\n<td style=\"text-align:right\">0.8</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">99.1</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-10-21 18:16</td>\n<td style=\"text-align:right\">0.5</td>\n<td>True negative</td>\n<td>—</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-11-07 18:09</td>\n<td style=\"text-align:right\">0.3</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">80.5</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-11-25 18:19</td>\n<td style=\"text-align:right\">0.5</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">881</td>\n<td style=\"text-align:right\">618.3</td>\n<td style=\"text-align:right\">0.702</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-12-12 18:13</td>\n<td style=\"text-align:right\">0.5</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">153.2</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-12-18 18:16</td>\n<td style=\"text-align:right\">1.0</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">986</td>\n<td style=\"text-align:right\">159.7</td>\n<td style=\"text-align:right\">0.162</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Table 3.</strong> PRISMA results for every retained overpass. Cloud % is the cloudy-pixel\nfraction from the PRISMA L1 Cloud_Mask over the full scene. The July 26 scene has\nno certified meter and is excluded from both detection and false-alarm totals.\nThe Petrolia overpass is a holdout miss and was not used to fit the\nquantification gain.</p>\n<h3>EMIT</h3>\n<p>EMIT has only eight metered releases in this benchmark, so its results are less\nsettled. It detects five releases, with a median absolute rate error of 27%.\nThe geometric-mean estimate is 28% above the meter, driven partly by a June 23\nholdout scene reported at 3.47 times the metered rate.</p>\n<p>EMIT misses three releases, including one above 1,000 kg/h. It produces no\npositive rate on either certified no-release overpass. That is encouraging, but\ntwo no-release scenes are not enough to establish a general false-alarm rate.</p>\n<table>\n<thead>\n<tr>\n<th>Site</th>\n<th>Date (UTC)</th>\n<th style=\"text-align:right\">Cloud (%)</th>\n<th>Outcome</th>\n<th>Split</th>\n<th style=\"text-align:right\">Meter (kg/h)</th>\n<th style=\"text-align:right\">Reported (kg/h)</th>\n<th style=\"text-align:right\">Reported/metered</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Casa Grande</td>\n<td>2024-12-02 18:01</td>\n<td style=\"text-align:right\">38</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">756</td>\n<td style=\"text-align:right\">550.8</td>\n<td style=\"text-align:right\">0.729</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-04-02 18:07</td>\n<td style=\"text-align:right\">69</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">1,043</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-04-06 16:33</td>\n<td style=\"text-align:right\">25</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">689</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-03 17:34</td>\n<td style=\"text-align:right\">8</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">794</td>\n<td style=\"text-align:right\">640.7</td>\n<td style=\"text-align:right\">0.807</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-23 17:37</td>\n<td style=\"text-align:right\">4</td>\n<td>Detection</td>\n<td>Holdout</td>\n<td style=\"text-align:right\">879</td>\n<td style=\"text-align:right\">3,053.1</td>\n<td style=\"text-align:right\">3.473</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-06-27 15:59</td>\n<td style=\"text-align:right\">24</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">875</td>\n<td style=\"text-align:right\">990.0</td>\n<td style=\"text-align:right\">1.131</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-07-18 23:39</td>\n<td style=\"text-align:right\">60</td>\n<td>True negative</td>\n<td>—</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-09-24 20:46</td>\n<td style=\"text-align:right\">14</td>\n<td>True negative</td>\n<td>—</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-11-25 20:13</td>\n<td style=\"text-align:right\">23</td>\n<td>Miss</td>\n<td>—</td>\n<td style=\"text-align:right\">478</td>\n<td style=\"text-align:right\">0</td>\n<td style=\"text-align:right\">—</td>\n</tr>\n<tr>\n<td>Casa Grande</td>\n<td>2025-11-29 18:40</td>\n<td style=\"text-align:right\">33</td>\n<td>Detection</td>\n<td>Fit</td>\n<td style=\"text-align:right\">382</td>\n<td style=\"text-align:right\">574.3</td>\n<td style=\"text-align:right\">1.503</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Table 4.</strong> EMIT CH4ENH results for every retained overpass. Cloud % is NASA CMR\nCloudCover on the L1B radiance granule.</p>","updatedAt":"2026-08-31T04:11:59.717Z","createdAt":"2026-08-27T21:42:07.621Z","_status":"published"},{"id":30,"title":"Metaspectral Partners with Planet to Deliver Trusted Spectral Intelligence from Tanager Hyperspectral Data","slug":"metaspectral-partners-with-planet-tanager-hyperspectral","excerpt":"Metaspectral announced its partnership with Planet Labs PBC to deliver trusted, evidence-based spectral intelligence from Planet Tanager™ hyperspectral data through Metaspectral Clarity.","description":null,"type":"News","author":{"id":4,"name":"Metaspectral Team","slug":"metaspectral-team","email":null,"avatar":null,"title":null,"bio":null,"updatedAt":"2026-04-23T20:30:08.493Z","createdAt":"2026-04-23T20:30:08.492Z"},"category":null,"contentStage":"awareness","layout":"default","tags":[{"id":"6a5571281e18210014315667","tag":"planet"},{"id":"6a5571281e18210014315668","tag":"tanager"},{"id":"6a5571281e18210014315669","tag":"hyperspectral"},{"id":"6a5571281e1821001431566a","tag":"partnership"},{"id":"6a5571281e1821001431566b","tag":"clarity"}],"industries":["earth-observation","agriculture","environmental-monitoring"],"products":["clarity"],"heroImage":{"id":207,"alt":"Metaspectral and Planet logos over a hyperspectral Earth observation scene","caption":null,"sourcePath":"codex-generated/planet-partnership-preview.png","updatedAt":"2026-07-16T17:49:26.984Z","createdAt":"2026-07-16T17:49:26.984Z","url":"/api/media/file/planet-partnership-preview.png","thumbnailURL":"/api/media/file/planet-partnership-preview-320x168.png","filename":"planet-partnership-preview.png","mimeType":"image/png","filesize":1094888,"width":1200,"height":630,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/planet-partnership-preview-320x168.png","width":320,"height":168,"mimeType":"image/png","filesize":83329,"filename":"planet-partnership-preview-320x168.png"},"card":{"url":"/api/media/file/planet-partnership-preview-768x403.png","width":768,"height":403,"mimeType":"image/png","filesize":480280,"filename":"planet-partnership-preview-768x403.png"}}},"imageBackground":"dark","publishedAt":"2026-07-15T16:56:00.000Z","legacySourcePath":null,"bodyMarkdown":"VANCOUVER, BC — Metaspectral announced its partnership with Planet Labs PBC, a leading provider of daily data and insights about change on Earth, to deliver trusted, evidence-based spectral intelligence from Planet Tanager™ hyperspectral data through Metaspectral Clarity.\n\nPlanetary Intelligence derived from Planet data is emerging as a new model for understanding the physical world: continuous sensing, real-world data, AI-assisted analysis, and decision support that helps organizations respond to what is happening on Earth. The Planet Tanager mission provides rich hyperspectral observations from orbit. Metaspectral Clarity provides the intelligence and infrastructure that converts imagery into spectral science-based evidence for monitoring, change detection, and high-consequence decisions across agriculture, forestry, and environmental monitoring. Clarity is a hyperspectral analysis platform built to turn Tanager data into science-grade intelligence with an agentic AI orchestrator that guides analysis from data to decision-ready output. Metaspectral's patented subpixel deep learning for spectral unmixing strengthens the platform's ability to extract precise signals from complex hyperspectral scenes.\n\n> \"Tanager gives organizations access to a new level of spectral information from orbit. Clarity turns that information into intelligence they can trust. Our partnership with Planet is focused on deriving intelligence from hyperspectral analysis-ready data and transforming it into science-based evidence for high-confidence, high-consequence decisions.\"\n>\n> — Francis Doumet, CEO, Metaspectral\n\nPlanetary Intelligence is more than seeing the Earth more frequently. It also depends on the ability to interpret what sensor data indicates, compare it with scientific context, and provide decision-makers with outputs that are reviewable, explainable, and grounded in observable evidence. In that workflow, Tanager provides the hyperspectral observation layer, while Clarity provides the decision-intelligence layer that helps users understand what the data may mean.\n\nTanager hyperspectral data reveals material and biochemical differences that multispectral imagery cannot resolve with the same precision. Tanager broad wavelength coverage provides additional intelligence beyond legacy multispectral imagery, particularly in monitoring contexts where subtle changes in material-level evidence matter.\n\nBy combining spectral analysis, explainable AI, and decision-ready outputs, Clarity reports what the data indicates, surfaces strong evidence, identifies where uncertainty remains, and flags indicators to be validated. Clarity preserves the chain from spectral observation to analytical workflow results. Evidence trails are essential for organizations using hyperspectral intelligence to support operational decisions, field inspections, sampling programs, and recurring monitoring workflows.\n\n> \"Tanager expands the scope of what organizations can monitor from orbit by capturing rich hyperspectral observations across broad wavelength ranges. Metaspectral's Clarity platform translates those observations into spectral intelligence, supporting applications where monitoring, change detection, and decision confidence are critical.\"\n>\n> — Linds Panther, Director of Strategic Partnerships, Planet\n\nThis is especially important for organizations evaluating hyperspectral data against familiar multispectral approaches. While multispectral imagery is suitable for routine monitoring tasks, hyperspectral data becomes most valuable when the decisions require detailed material-level information.\n\nIn agriculture, they surface crop and soil indicators before visible symptoms appear. For example, Clarity improves confidence around surface area signals before field resources are committed. In environmental monitoring, Clarity identifies material signals to prioritize inspection and monitoring workflows.\n\nMetaspectral provides a sandbox environment to demonstrate how Clarity analyzes Tanager Core Imagery available through the Planet Open Data portal and reports decision-ready intelligence from spectral evidence. View examples at [clarity.metaspectral.com/sandbox/planet](https://clarity.metaspectral.com/sandbox/planet).\n\nTo learn more about hyperspectral data and auditable intelligence from Metaspectral Clarity, visit [www.metaspectral.com](https://www.metaspectral.com). To learn more about Planet Tanager, visit [planet.com/constellations/tanager](https://www.planet.com/constellations/tanager/).","bodyHtml":"<p>VANCOUVER, BC — Metaspectral announced its partnership with Planet Labs PBC, a leading provider of daily data and insights about change on Earth, to deliver trusted, evidence-based spectral intelligence from Planet Tanager™ hyperspectral data through Metaspectral Clarity.</p>\n\n<p>Planetary Intelligence derived from Planet data is emerging as a new model for understanding the physical world: continuous sensing, real-world data, AI-assisted analysis, and decision support that helps organizations respond to what is happening on Earth. The Planet Tanager mission provides rich hyperspectral observations from orbit. Metaspectral Clarity provides the intelligence and infrastructure that converts imagery into spectral science-based evidence for monitoring, change detection, and high-consequence decisions across agriculture, forestry, and environmental monitoring. Clarity is a hyperspectral analysis platform built to turn Tanager data into science-grade intelligence with an agentic AI orchestrator that guides analysis from data to decision-ready output. Metaspectral's patented subpixel deep learning for spectral unmixing strengthens the platform's ability to extract precise signals from complex hyperspectral scenes.</p>\n\n<blockquote><p>\"Tanager gives organizations access to a new level of spectral information from orbit. Clarity turns that information into intelligence they can trust. Our partnership with Planet is focused on deriving intelligence from hyperspectral analysis-ready data and transforming it into science-based evidence for high-confidence, high-consequence decisions.\"</p><p>— Francis Doumet, CEO, Metaspectral</p></blockquote>\n\n<p>Planetary Intelligence is more than seeing the Earth more frequently. It also depends on the ability to interpret what sensor data indicates, compare it with scientific context, and provide decision-makers with outputs that are reviewable, explainable, and grounded in observable evidence. In that workflow, Tanager provides the hyperspectral observation layer, while Clarity provides the decision-intelligence layer that helps users understand what the data may mean.</p>\n\n<p>Tanager hyperspectral data reveals material and biochemical differences that multispectral imagery cannot resolve with the same precision. Tanager broad wavelength coverage provides additional intelligence beyond legacy multispectral imagery, particularly in monitoring contexts where subtle changes in material-level evidence matter.</p>\n\n<p>By combining spectral analysis, explainable AI, and decision-ready outputs, Clarity reports what the data indicates, surfaces strong evidence, identifies where uncertainty remains, and flags indicators to be validated. Clarity preserves the chain from spectral observation to analytical workflow results. Evidence trails are essential for organizations using hyperspectral intelligence to support operational decisions, field inspections, sampling programs, and recurring monitoring workflows.</p>\n\n<blockquote><p>\"Tanager expands the scope of what organizations can monitor from orbit by capturing rich hyperspectral observations across broad wavelength ranges. Metaspectral's Clarity platform translates those observations into spectral intelligence, supporting applications where monitoring, change detection, and decision confidence are critical.\"</p><p>— Linds Panther, Director of Strategic Partnerships, Planet</p></blockquote>\n\n<p>This is especially important for organizations evaluating hyperspectral data against familiar multispectral approaches. While multispectral imagery is suitable for routine monitoring tasks, hyperspectral data becomes most valuable when the decisions require detailed material-level information.</p>\n\n<p>In agriculture, they surface crop and soil indicators before visible symptoms appear. For example, Clarity improves confidence around surface area signals before field resources are committed. In environmental monitoring, Clarity identifies material signals to prioritize inspection and monitoring workflows.</p>\n\n<p>Metaspectral provides a sandbox environment to demonstrate how Clarity analyzes Tanager Core Imagery available through the Planet Open Data portal and reports decision-ready intelligence from spectral evidence. View examples at <a href=\"https://clarity.metaspectral.com/sandbox/planet\">clarity.metaspectral.com/sandbox/planet</a>.</p>\n\n<p>To learn more about hyperspectral data and auditable intelligence from Metaspectral Clarity, visit <a href=\"https://www.metaspectral.com\">www.metaspectral.com</a>. To learn more about Planet Tanager, visit <a href=\"https://www.planet.com/constellations/tanager/\">planet.com/constellations/tanager</a>.</p>","updatedAt":"2026-07-16T17:49:27.147Z","createdAt":"2026-07-13T23:13:45.027Z","_status":"published"},{"id":29,"title":"Evaluating Deep Learning Spectral Unmixing From Pure Reference Spectra","slug":"evaluating-deep-learning-spectral-unmixing-pure-reference-spectra","excerpt":"A deep learning model trained only on synthetic mixtures — generated from pure reference spectra — outperforms classical solvers on four- and five-material mixtures across nine sensors. The benchmark: 325 real clay powder mixtures measured by lab spectrometers, pushbroom cameras, snapshot cameras, MWIR, and RGB.","description":null,"type":"Article","author":{"id":7,"name":"Ahmed Sigiuk","slug":"ahmed-sigiuk","email":null,"avatar":{"id":189,"alt":"Ahmed Sigiuk author headshot","caption":null,"sourcePath":"src/assets/team-headshot_4.png","updatedAt":"2026-06-23T19:31:05.725Z","createdAt":"2026-06-23T19:31:05.725Z","url":"/api/media/file/author-ahmed-sigiuk.png","thumbnailURL":"/api/media/file/author-ahmed-sigiuk-320x320.png","filename":"author-ahmed-sigiuk.png","mimeType":"image/png","filesize":956285,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-ahmed-sigiuk-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":221901,"filename":"author-ahmed-sigiuk-320x320.png"},"card":{"url":"/api/media/file/author-ahmed-sigiuk-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":960162,"filename":"author-ahmed-sigiuk-768x768.png"}}},"title":"Senior Deep Learning Engineer","bio":null,"updatedAt":"2026-06-23T19:31:40.946Z","createdAt":"2026-04-23T23:27:47.142Z"},"category":null,"contentStage":"evaluation","layout":"default","tags":[{"id":"6a4886e1a6e9f9001544b39b","tag":"spectral unmixing"},{"id":"6a4886e1a6e9f9001544b39c","tag":"deep learning"},{"id":"6a4886e1a6e9f9001544b39d","tag":"hyperspectral imaging"},{"id":"6a4886e1a6e9f9001544b39e","tag":"clay minerals"},{"id":"6a4886e1a6e9f9001544b39f","tag":"abundance estimation"},{"id":"6a4886e1a6e9f9001544b3a0","tag":"synthetic training data"}],"industries":["mining","environmental-monitoring"],"products":["clarity","fusion"],"heroImage":{"id":204,"alt":"Clay endmember spectral unmixing - header","caption":null,"sourcePath":null,"updatedAt":"2026-07-04T05:50:51.380Z","createdAt":"2026-07-04T05:50:51.380Z","url":"/api/media/file/clay_endmember_header.png","thumbnailURL":"/api/media/file/clay_endmember_header-320x104.png","filename":"clay_endmember_header.png","mimeType":"image/png","filesize":259439,"width":1600,"height":520,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/clay_endmember_header-320x104.png","width":320,"height":104,"mimeType":"image/png","filesize":39901,"filename":"clay_endmember_header-320x104.png"},"card":{"url":"/api/media/file/clay_endmember_header-768x250.png","width":768,"height":250,"mimeType":"image/png","filesize":164307,"filename":"clay_endmember_header-768x250.png"}}},"imageBackground":"dark","publishedAt":"2026-07-04T17:54:00.000Z","legacySourcePath":null,"bodyMarkdown":"Spectral unmixing answers a more useful question than simple classification: not only *what* material is present, but *how much* of each material is present.\n\nThat matters because real samples are rarely clean. A pixel can contain several minerals, coatings, contaminants, soils, plastics, or plant materials at once. In those cases, assigning one label to the whole pixel loses the information the sensor was meant to capture.\n\nThe practical challenge is training. Real mixtures with known proportions are difficult to collect at scale. Pure reference spectra are much easier to measure and maintain. In this study, we evaluate whether a deep learning (DL) model can start from those pure spectra, generate synthetic training mixtures, and then perform well on real measured mixtures.\n\nThe clearest result appears as the number of materials increases (Table 5, Figure 2). Classical methods are strong on simple two-material mixtures. By four- and five-material mixtures, the DL model beats the best classical solver on every sensor we tested.","bodyHtml":"<style>\n.unmix-article { max-width: 768px; margin: 0 auto; padding: 8px 40px 0; font-family: 'Inter', system-ui, sans-serif; }\n.unmix-article p { font-size: 18px; line-height: 1.72; color: #9AA3B5; margin: 22px 0 0; }\n.unmix-article p.lead { font-size: 19px; color: #C9CFDC; }\n.unmix-article h2 { font-family: 'Visby Round CF','Quicksand','Inter',sans-serif; font-size: 34px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.12; color: #F6F8FC; margin: 56px 0 0; }\n.unmix-article h3 { font-family: 'Visby Round CF','Quicksand','Inter',sans-serif; font-size: 24px; font-weight: 600; color: #F6F8FC; margin: 36px 0 0; }\n.unmix-article a { color: #C6A6FB; text-decoration: none; border-bottom: 1px solid rgba(198,166,251,0.35); }\n.unmix-article em { font-style: italic; }\n.unmix-article strong { color: #E8EBF2; font-weight: 600; }\n.unmix-figure { max-width: 768px; margin: 32px auto 0; padding: 0 40px; }\n.unmix-figure img { width: 100%; height: auto; display: block; border-radius: 8px; border: 1px solid rgba(255,255,255,0.07); background: #0B0E18; }\n.unmix-figcap { font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; line-height: 1.55; letter-spacing: 0.02em; color: #6B7488; margin: 12px 0 0; }\n.unmix-figcap strong { color: #9AA3B5; font-weight: 500; }\n.unmix-table-wrap { max-width: 900px; margin: 28px auto 0; padding: 0 40px; overflow-x: auto; }\n.unmix-table { width: 100%; border-collapse: collapse; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; }\n.unmix-table th { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #6B7488; padding: 12px 14px; text-align: left; background: #0E121F; border-bottom: 1px solid rgba(255,255,255,0.1); }\n.unmix-table th.r { text-align: right; }\n.unmix-table td { padding: 12px 14px; color: #9AA3B5; border-bottom: 1px solid rgba(255,255,255,0.06); vertical-align: top; }\n.unmix-table td.r { text-align: right; }\n.unmix-table td strong { color: #E8EBF2; font-weight: 600; }\n.unmix-table tr:last-child td { border-bottom: none; }\n.unmix-table tr:nth-child(even) td { background: rgba(255,255,255,0.015); }\n.unmix-tablecap { font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; line-height: 1.55; color: #6B7488; margin: 10px 40px 0; }\n.unmix-tablecap strong { color: #9AA3B5; }\n</style>\n\n<div class=\"unmix-article\">\n<p class=\"lead\">Spectral unmixing answers a more useful question than simple classification: not only <em>what</em> material is present, but <em>how much</em> of each material is present.</p>\n<p>That matters because real samples are rarely clean. A pixel can contain several minerals, coatings, contaminants, soils, plastics, or plant materials at once. In those cases, assigning one label to the whole pixel loses the information the sensor was meant to capture.</p>\n<p>The practical challenge is training. Real mixtures with known proportions are difficult to collect at scale. Pure reference spectra are much easier to measure and maintain. In this study, we evaluate whether a deep learning (DL) model can start from those pure spectra, generate synthetic training mixtures, and then perform well on real measured mixtures.</p>\n<p>The clearest result appears as the number of materials increases (Table 5, Figure 2). Classical methods are strong on simple two-material mixtures. By four- and five-material mixtures, the DL model beats the best classical solver on every sensor we tested.</p>\n<h2>Benchmark Dataset</h2>\n<p>We used the public <a href=\"https://github.com/VisionlabHyperspectral/Multisensor_datasets\">multisensor intimate-mixture benchmark</a> (Table 1). It is a useful test case because the same physical mixtures were measured by several instruments, while the ground-truth material proportions remain the same. That lets us compare methods across sensors without changing the underlying samples.</p>\n<p>The mixtures are made from five clay-related endmembers: Kaolin, Roof clay, Red clay, Mixed clay, and Calcium hydroxide. Each real mixture has known mass-fraction abundances, so the evaluation measures how close each method gets to the true proportions. The clay spectra intentionally overlap, especially across the clay materials, but they also contain useful separation in overall spectral shape and in absorption regions around 1400 nm, 1900 nm, and 2100-2500 nm (Figure 1).</p>\n</div>\n\n<div class=\"unmix-figure\">\n<img src=\"/api/media/file/figure1_endmember_spectra.png\" alt=\"Endmember spectra — VNIR–SWIR from ASD spectroradiometer and MWIR from Specim FX50\">\n<p class=\"unmix-figcap\"><strong>Figure 1.</strong> Measured pure endmember spectra: VNIR–SWIR from the ASD spectroradiometer (350–2500 nm) and MWIR from the Specim FX50 (2708–5279 nm).</p>\n</div>\n\n<div class=\"unmix-table-wrap\">\n<table class=\"unmix-table\">\n<thead><tr><th>Item</th><th>Description</th></tr></thead>\n<tbody>\n<tr><td>Dataset</td><td><a href=\"https://github.com/VisionlabHyperspectral/Multisensor_datasets\" style=\"color:#C6A6FB;text-decoration:none;border-bottom:1px solid rgba(198,166,251,0.35);\">Multisensor intimate-mixture benchmark</a></td></tr>\n<tr><td>Real mixture samples</td><td>325 measured mixtures, plus pure reference spectra</td></tr>\n<tr><td>Endmembers</td><td>Kaolin, Roof clay, Red clay, Mixed clay, Calcium hydroxide</td></tr>\n<tr><td>Evaluation target</td><td>Predict the abundance of each endmember in each real mixture</td></tr>\n</tbody>\n</table>\n<p class=\"unmix-tablecap\"><strong>Table 1.</strong> Summary of the benchmark dataset used for evaluation.</p>\n</div>\n\n<div class=\"unmix-article\">\n<p>The 325 real mixtures are split by the number of materials present in each sample (Table 2):</p>\n</div>\n\n<div class=\"unmix-table-wrap\">\n<table class=\"unmix-table\">\n<thead><tr><th>Mixture order</th><th>Meaning</th><th class=\"r\">Samples</th></tr></thead>\n<tbody>\n<tr><td>Binary (k=2)</td><td>Two materials present</td><td class=\"r\">60</td></tr>\n<tr><td>Ternary (k=3)</td><td>Three materials present</td><td class=\"r\">150</td></tr>\n<tr><td>Quaternary (k=4)</td><td>Four materials present</td><td class=\"r\">100</td></tr>\n<tr><td>Quinary (k=5)</td><td>Five materials present</td><td class=\"r\">15</td></tr>\n</tbody>\n</table>\n<p class=\"unmix-tablecap\"><strong>Table 2.</strong> Breakdown of real mixture samples by mixture order.</p>\n</div>\n\n<div class=\"unmix-article\">\n<p>The full benchmark includes 13 sensors across visible, near-infrared, short-wave infrared, mid-wave infrared, and long-wave infrared ranges. Our experiments use the nine sensors in Table 3, spanning lab spectrometers, pushbroom cameras, snapshot cameras, MWIR, VNIR, SWIR, and RGB:</p>\n</div>\n\n<div class=\"unmix-table-wrap\">\n<table class=\"unmix-table\">\n<thead><tr><th>Sensor</th><th class=\"r\">Bands</th><th>Range (nm)</th><th>Type / region</th></tr></thead>\n<tbody>\n<tr><td>ASD spectroradiometer</td><td class=\"r\">2151</td><td>350–2500</td><td>Point spectrometer, VNIR-SWIR</td></tr>\n<tr><td>PSR-3500</td><td class=\"r\">1024</td><td>345–2504</td><td>Point spectrometer, VNIR-SWIR</td></tr>\n<tr><td>Specim AisaFenix</td><td class=\"r\">450</td><td>378–2504</td><td>Pushbroom camera, VNIR-SWIR</td></tr>\n<tr><td>Specim FX50</td><td class=\"r\">308</td><td>2708–5279</td><td>MWIR camera</td></tr>\n<tr><td>Specim sCMOS</td><td class=\"r\">238</td><td>398–1001</td><td>Pushbroom camera, VNIR</td></tr>\n<tr><td>Cubert Ultris X20P</td><td class=\"r\">164</td><td>350–1002</td><td>Snapshot camera, VNIR</td></tr>\n<tr><td>IMEC</td><td class=\"r\">100</td><td>1120–1675</td><td>Snapshot camera, SWIR</td></tr>\n<tr><td>Senops HSC2</td><td class=\"r\">50</td><td>500–900</td><td>Snapshot camera, VNIR</td></tr>\n<tr><td>JAI RGB</td><td class=\"r\">3</td><td>440–630</td><td>RGB camera</td></tr>\n</tbody>\n</table>\n<p class=\"unmix-tablecap\"><strong>Table 3.</strong> The nine sensors used in our experiments.</p>\n</div>\n\n<div class=\"unmix-article\">\n<h2>Modeling Approach</h2>\n<p>Both the DL model and the classical baselines start from the same reference information: the five pure endmember spectra. What differs is how each one uses mixing methods. The DL model uses a mixing function only during training, both to generate synthetic data and inside the loss objective that reconstructs the mixed spectrum from predicted abundances, while the classical methods apply their mixing model directly to each real mixture at evaluation.</p>\n<h3>DL model: synthetic training</h3>\n<p>For each sensor, the DL model starts from five pure clay spectra, one measured reference per material. We turn those into synthetic training mixtures by sampling abundance combinations and mixing the pure spectra with a nonlinear PPNM recipe. The network learns from these pairs: the sampled abundances are the labels, and a reconstruction loss rebuilds the mixed spectrum from the predicted abundances using the same mixing function. The recipe is a training tool only; it is never applied to real mixtures.</p>\n<p>We chose a nonlinear recipe based on experiment. Testing one linear and several nonlinear recipes for generating the synthetic mixtures, each with a matched reconstruction loss, the PPNM recipe was the strongest and most consistent across sensors. On the binary and ternary mixtures, for example, it lowered RMSE from about 0.133 (linear) to about 0.106.</p>\n<p>This matches the physics of the dataset. The samples are intimate powder mixtures, not spatially separated patches, and the powders were sieved below 200 µm. At that grain size, light scatters through multiple particles before reaching the sensor, so the measured reflectance is not a simple linear sum of pure spectra. A nonlinear recipe approximates that behavior more closely, while the real measured mixtures are held out for evaluation.</p>\n<h3>Classical methods: inverse solvers</h3>\n<p>Classical methods work in the opposite direction. Each is an inverse solver: given a real mixed spectrum and the pure endmember spectra, it estimates the abundances that best reproduce the observation under its mixing assumption. There is no training step, the solver runs directly on each real mixture. We use FCLSU, PPNM, and MLM (Table 4) and report the strongest result in each setting.</p>\n</div>\n\n<div class=\"unmix-table-wrap\">\n<table class=\"unmix-table\">\n<thead><tr><th>Classical solver</th><th>Short description</th></tr></thead>\n<tbody>\n<tr><td><strong>FCLSU</strong> (Fully Constrained Least Squares Unmixing)</td><td>Linear unmixing with non-negative abundances that sum to one; equivalent to MCR-ALS (Multivariate Curve Resolution - Alternating Least Squares) with equality, non-negativity, and closure constraints.</td></tr>\n<tr><td><strong>PPNM</strong> (Polynomial Post-Nonlinear Mixing)</td><td>Adds a nonlinear correction after linear mixing.</td></tr>\n<tr><td><strong>MLM</strong> (Multilinear Mixing)</td><td>Accounts for multiple-scattering interactions between materials.</td></tr>\n</tbody>\n</table>\n<p class=\"unmix-tablecap\"><strong>Table 4.</strong> Classical inverse solvers used as evaluation baselines.</p>\n</div>\n\n<div class=\"unmix-article\">\n<h2>Results</h2>\n<p>The main question is whether a model trained only on synthetic mixtures can handle real samples as they become more complex. A two-material mixture is the simplest case; four- and five-material mixtures are closer to real operating conditions, where several materials contribute to the same spectrum.</p>\n<p>The trend in Table 5 is consistent across the whole sensor panel. On two-material mixtures the classical solvers are ahead almost everywhere, and the DL model is better on only one sensor. As materials are added the DL model pulls ahead: it leads on most sensors at three materials, and by four and five materials it has the lower RMSE on every sensor. Pooled across all mixture orders, the DL model is better on all nine.</p>\n</div>\n\n<div class=\"unmix-table-wrap\" style=\"max-width:1040px;\">\n<table class=\"unmix-table\">\n<thead><tr>\n<th>Sensor</th><th class=\"r\">Bands</th>\n<th class=\"r\">k=2 DL</th><th class=\"r\">k=2 classical</th>\n<th class=\"r\">k=3 DL</th><th class=\"r\">k=3 classical</th>\n<th class=\"r\">k=4 DL</th><th class=\"r\">k=4 classical</th>\n<th class=\"r\">k=5 DL</th><th class=\"r\">k=5 classical</th>\n</tr></thead>\n<tbody>\n<tr><td>ASD</td><td class=\"r\">2151</td><td class=\"r\">0.107</td><td class=\"r\"><strong>0.086</strong> (PPNM)</td><td class=\"r\"><strong>0.112</strong></td><td class=\"r\">0.116 (PPNM)</td><td class=\"r\"><strong>0.099</strong></td><td class=\"r\">0.130 (PPNM)</td><td class=\"r\"><strong>0.073</strong></td><td class=\"r\">0.120 (PPNM)</td></tr>\n<tr><td>PSR-3500</td><td class=\"r\">1024</td><td class=\"r\">0.109</td><td class=\"r\"><strong>0.104</strong> (PPNM)</td><td class=\"r\"><strong>0.105</strong></td><td class=\"r\">0.109 (MLM)</td><td class=\"r\"><strong>0.086</strong></td><td class=\"r\">0.108 (MLM)</td><td class=\"r\"><strong>0.048</strong></td><td class=\"r\">0.085 (MLM)</td></tr>\n<tr><td>AisaFenix</td><td class=\"r\">450</td><td class=\"r\">0.220</td><td class=\"r\"><strong>0.184</strong> (MLM)</td><td class=\"r\"><strong>0.176</strong></td><td class=\"r\">0.189 (MLM)</td><td class=\"r\"><strong>0.137</strong></td><td class=\"r\">0.188 (MLM)</td><td class=\"r\"><strong>0.115</strong></td><td class=\"r\">0.219 (MLM)</td></tr>\n<tr><td>FX50</td><td class=\"r\">308</td><td class=\"r\">0.162</td><td class=\"r\"><strong>0.113</strong> (MLM)</td><td class=\"r\">0.141</td><td class=\"r\"><strong>0.132</strong> (MLM)</td><td class=\"r\"><strong>0.146</strong></td><td class=\"r\">0.157 (PPNM)</td><td class=\"r\"><strong>0.176</strong></td><td class=\"r\">0.190 (PPNM)</td></tr>\n<tr><td>Specim sCMOS</td><td class=\"r\">238</td><td class=\"r\">0.180</td><td class=\"r\"><strong>0.138</strong> (FCLSU)</td><td class=\"r\">0.149</td><td class=\"r\"><strong>0.143</strong> (FCLSU)</td><td class=\"r\"><strong>0.122</strong></td><td class=\"r\">0.161 (FCLSU)</td><td class=\"r\"><strong>0.084</strong></td><td class=\"r\">0.182 (FCLSU)</td></tr>\n<tr><td>Cubert</td><td class=\"r\">164</td><td class=\"r\"><strong>0.293</strong></td><td class=\"r\">0.334 (FCLSU)</td><td class=\"r\"><strong>0.196</strong></td><td class=\"r\">0.288 (MLM)</td><td class=\"r\"><strong>0.164</strong></td><td class=\"r\">0.284 (MLM)</td><td class=\"r\"><strong>0.092</strong></td><td class=\"r\">0.212 (PPNM)</td></tr>\n<tr><td>IMEC</td><td class=\"r\">100</td><td class=\"r\">0.224</td><td class=\"r\"><strong>0.160</strong> (MLM)</td><td class=\"r\"><strong>0.179</strong></td><td class=\"r\">0.184 (FCLSU)</td><td class=\"r\"><strong>0.135</strong></td><td class=\"r\">0.217 (FCLSU)</td><td class=\"r\"><strong>0.090</strong></td><td class=\"r\">0.246 (PPNM)</td></tr>\n<tr><td>Senops HSC2</td><td class=\"r\">50</td><td class=\"r\">0.240</td><td class=\"r\"><strong>0.231</strong> (PPNM)</td><td class=\"r\"><strong>0.196</strong></td><td class=\"r\">0.240 (PPNM)</td><td class=\"r\"><strong>0.156</strong></td><td class=\"r\">0.238 (PPNM)</td><td class=\"r\"><strong>0.121</strong></td><td class=\"r\">0.224 (PPNM)</td></tr>\n<tr><td>JAI RGB</td><td class=\"r\">3</td><td class=\"r\">0.269</td><td class=\"r\"><strong>0.196</strong> (MLM)</td><td class=\"r\"><strong>0.199</strong></td><td class=\"r\">0.209 (FCLSU)</td><td class=\"r\"><strong>0.140</strong></td><td class=\"r\">0.196 (PPNM)</td><td class=\"r\"><strong>0.079</strong></td><td class=\"r\">0.169 (PPNM)</td></tr>\n<tr style=\"border-top:2px solid rgba(255,255,255,0.15);\"><td><strong>Average (9 sensors)</strong></td><td class=\"r\">—</td><td class=\"r\">0.200</td><td class=\"r\"><strong>0.172</strong></td><td class=\"r\"><strong>0.161</strong></td><td class=\"r\">0.179</td><td class=\"r\"><strong>0.132</strong></td><td class=\"r\">0.187</td><td class=\"r\"><strong>0.098</strong></td><td class=\"r\">0.183</td></tr>\n</tbody>\n</table>\n<p class=\"unmix-tablecap\"><strong>Table 5.</strong> Abundance RMSE per sensor and mixture order (DL and best classical in separate columns). <strong>Bold</strong> is the better (lower) value; the winning classical method is in parentheses. The final row averages the nine sensors.</p>\n</div>\n\n<div class=\"unmix-article\">\n<p>Figure 2 shows the same pattern as a heatmap of the gap (DL minus best-classical): orange where classical is ahead, blue where the DL model is ahead. It shifts from mostly orange at k=2 to consistently blue at k=5.</p>\n</div>\n\n<div class=\"unmix-figure\">\n<img src=\"/api/media/file/figure2_gap_heatmap.png\" alt=\"DL model gap by sensor and mixture order — heatmap\">\n<p class=\"unmix-figcap\"><strong>Figure 2.</strong> DL model advantage by sensor and mixture order (DL RMSE minus best-classical RMSE). Negative (blue) means the DL model is better.</p>\n</div>\n\n<div class=\"unmix-article\">\n<p>The same per-sensor checkpoint is evaluated across k=2 through k=5; there is no separate model per material count. One caveat: the k=5 set is small (15 samples), so treat the quinary column as indicative, though the trend is consistent and already clear at k=3 and k=4.</p>\n<h2>Discussion</h2>\n<p>The main takeaway is not simply that the DL model wins more often at higher mixture orders. The more useful point is <em>why</em> that matters operationally: the model starts from pure spectra, which many teams can realistically measure and curate, rather than requiring a large labeled library of real mixtures. In many applications, collecting clean reference spectra is much easier than creating hundreds of physical mixtures with known proportions.</p>\n<p>The mixture-order result in Table 5 and Figure 2 is also consistent with how the problem changes as samples become more complex. A two-material mixture is relatively constrained: only a few components are active, and a classical solver has fewer degrees of freedom to resolve. As more materials contribute to the same measured spectrum, the signatures overlap more, several abundance values become nonzero, and small modeling errors can spread across more components. That is where a method trained across many possible abundance combinations has more room to help.</p>\n<p>This is the advantage of turning the pure spectral library into synthetic training data. A classical solver applies one chosen mathematical assumption directly to the measured spectrum. The DL approach can generate spectra across many material proportions, and it can be tested under different physical mixing assumptions when needed. The model is not just using the pure spectra as fixed endmembers; it is learning from a wider mixture space before being evaluated on real samples.</p>\n<p>Classical methods still play an important role in that evaluation. FCLSU, PPNM, and MLM make different assumptions, and the strongest one differs by sensor and mixture order; in our runs no single classical solver was best everywhere, and all three won on at least one sensor. Treating \"classical\" as one fixed baseline would hide that variation. A useful workflow should compare the DL model against multiple classical methods, then let the data show where each approach is reliable.</p>\n<p>This is where the Clarity platform fits naturally. Teams can import sensor data, inspect spectral signatures, manage reference libraries, generate synthetic spectra and training mixtures, train abundance models, and compare model iterations against classical methods in one workflow. As new sensors, materials, or modeling choices are added, the workflow can be repeated and modified instead of rebuilt from scratch.</p>\n</div>","updatedAt":"2026-07-04T17:56:08.412Z","createdAt":"2026-07-04T04:06:57.401Z","_status":"published"},{"id":28,"title":"Seeing beyond the bands","slug":"hyperspectral-vs-multispectral","excerpt":"Where hyperspectral analysis diverges from multispectral — and what that divergence reveals about a crop. Measured on real scenes.","description":null,"type":"Article","author":{"id":2,"name":"Francis Doumet","slug":"francis-doumet","email":null,"avatar":{"id":187,"alt":"Francis Doumet author headshot","caption":null,"sourcePath":"src/assets/team-headshot_1.png","updatedAt":"2026-06-23T19:31:04.276Z","createdAt":"2026-06-23T19:31:04.275Z","url":"/api/media/file/author-francis-doumet.png","thumbnailURL":"/api/media/file/author-francis-doumet-320x320.png","filename":"author-francis-doumet.png","mimeType":"image/png","filesize":831841,"width":1000,"height":1000,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-francis-doumet-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":173960,"filename":"author-francis-doumet-320x320.png"},"card":{"url":"/api/media/file/author-francis-doumet-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":854456,"filename":"author-francis-doumet-768x768.png"}}},"title":"Co-Founder & CEO","bio":null,"updatedAt":"2026-06-23T19:31:39.891Z","createdAt":"2026-04-23T20:29:55.218Z"},"category":null,"contentStage":"awareness","layout":"default","tags":[{"id":"6a46eddba6e9f9001544b38b","tag":"hyperspectral imaging"},{"id":"6a46eddba6e9f9001544b38c","tag":"multispectral"},{"id":"6a46eddba6e9f9001544b38d","tag":"NDVI"},{"id":"6a46eddba6e9f9001544b38e","tag":"earth observation"},{"id":"6a46eddba6e9f9001544b38f","tag":"agriculture"}],"industries":["agriculture","earth-observation"],"products":["earth-observation-workflows","clarity"],"heroImage":{"id":199,"alt":"Soil / PV / NPV spectral composite over cropland","caption":"Soil · PV · NPV composite from Planet Tanager hyperspectral imagery over Pilinga, Australia. What a broadband sensor blends into one number, the full spectrum separates into materials.","sourcePath":null,"updatedAt":"2026-07-03T00:23:27.743Z","createdAt":"2026-07-02T22:56:36.524Z","url":"/api/media/file/83794ab2-6db0-420d-9006-1b4a2ef71b17.png","thumbnailURL":"/api/media/file/83794ab2-6db0-420d-9006-1b4a2ef71b17-320x250.png","filename":"83794ab2-6db0-420d-9006-1b4a2ef71b17.png","mimeType":"image/png","filesize":538667,"width":575,"height":450,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/83794ab2-6db0-420d-9006-1b4a2ef71b17-320x250.png","width":320,"height":250,"mimeType":"image/png","filesize":168924,"filename":"83794ab2-6db0-420d-9006-1b4a2ef71b17-320x250.png"},"card":{"url":null,"width":null,"height":null,"mimeType":null,"filesize":null,"filename":null}}},"imageBackground":"dark","publishedAt":"2026-07-06T18:13:00.000Z","legacySourcePath":null,"bodyMarkdown":"100+  \nNarrow hyperspectral bands\n\n4–13  \nBroad multispectral bands\n\n400–2500  \nSpectral range (nm)\n\nFor two decades, NDVI has been the default lens on crop health from orbit. It is fast, cheap, and everywhere — but it is also a single smoothed number, and that number hides more than most growers realize. This is a field note about what a continuous spectrum sees that a handful of broad bands cannot, worked through two real scenes rather than a lab bench.","bodyHtml":"<style>\n\n\n</style>\n<style>\n  --weight-regular:  400;\n  --weight-medium:   500;\n  --weight-semibold: 600;\n  --weight-bold:     700;\n\n  \n\n:root {\n  \n.ms-eyebrow {\n  font-family: var(--font-mono);\n  font-size: var(--text-xs);\n  letter-spacing: var(--tracking-label);\n  text-transform: uppercase;\n  color: var(--text-muted);\n}\n\n\n\n  --weight-regular:  400;\n  --weight-medium:   500;\n  --weight-semibold: 600;\n  --weight-bold:     700;\n\n  \n\n:root {\n  \n.ms-eyebrow {\n  font-family: var(--font-mono);\n  font-size: var(--text-xs);\n  letter-spacing: var(--tracking-label);\n  text-transform: uppercase;\n  color: var(--text-muted);\n}\n\n.ms-spectral-text {\n  background: var(--gradient-spectral);\n  -webkit-background-clip: text;\n  background-clip: text;\n  color: transparent;\n}\n\n.ms-scroll::-webkit-scrollbar { width: 10px; height: 10px; }\n.ms-scroll::-webkit-scrollbar-thumb {\n  background: var(--navy-600);\n  border-radius: var(--radius-pill);\n  border: 2px solid transparent;\n  background-clip: padding-box;\n}\n.ms-scroll::-webkit-scrollbar-thumb:hover { background: var(--navy-500); }\n.ms-scroll::-webkit-scrollbar-track { background: transparent; }\n\n@media (prefers-reduced-motion: reduce) {\n  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }\n}\n\n</style>\n<style>\n    *{ -webkit-font-smoothing:antialiased; box-sizing:border-box; }\n    html,body{ margin:0; background:#0A0D17; }\n    .disp{ font-family:'Visby Round CF','Quicksand','Inter',sans-serif; }\n    .mono{ font-family:'IBM Plex Mono',monospace; }\n    .body{ font-family:'Inter',system-ui,sans-serif; }\n    .eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:#A968F7; margin:0; }\n    .h2{ font-family:'Visby Round CF','Quicksand','Inter',sans-serif; font-size:34px; font-weight:600; letter-spacing:-0.02em; line-height:1.12; color:#F6F8FC; margin:0; }\n    .lead{ font-family:'Inter',sans-serif; font-size:22px; line-height:1.55; color:#C9CFDC; margin:0; }\n    p.p{ font-family:'Inter',sans-serif; font-size:18px; line-height:1.72; color:#9AA3B5; margin:22px 0 0; }\n    p.p b, p.p strong{ color:#E8EBF2; font-weight:600; }\n    .cap{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; line-height:1.55; letter-spacing:0.02em; color:#6B7488; margin:14px 0 0; text-transform:none; }\n    .cap b{ color:#9AA3B5; font-weight:500; }\n    .well{ background:#0B0E18; border:1px solid rgba(255,255,255,0.07); border-radius:12px; overflow:hidden; }\n    .well img{ width:100%; height:auto; display:block; }\n    a.tlink{ color:#C6A6FB; text-decoration:none; border-bottom:1px solid rgba(198,166,251,0.35); }\n    a.tlink:hover{ border-bottom-color:#C6A6FB; }\n    ::selection{ background:rgba(144,54,244,0.4); color:#fff; }\n  </style>\n<style>\n@media (max-width: 767px) {\n  .resource-body img { max-width: 100% !important; height: auto !important; }\n}\n</style>\n<div style=\"margin:0 0 40px;\">\n  <div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border:1px solid rgba(255,255,255,0.08);border-radius:14px;background:rgba(255,255,255,0.025);padding:18px 20px;\">\n    <div>\n      <div class=\"disp\" style=\"font-size:34px;font-weight:600;color:#7ED8EE;line-height:1;\">100+</div>\n      <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#6B7488;margin-top:9px;\">Narrow hyperspectral bands</div>\n    </div>\n    <div>\n      <div class=\"disp\" style=\"font-size:34px;font-weight:600;color:#E8EBF2;line-height:1;\">4–13</div>\n      <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#6B7488;margin-top:9px;\">Broad multispectral bands</div>\n    </div>\n    <div>\n      <div class=\"disp\" style=\"font-size:34px;font-weight:600;color:#E8EBF2;line-height:1;\">400–2500</div>\n      <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#6B7488;margin-top:9px;\">Spectral range (nm)</div>\n    </div>\n  </div>\n</div>\n\n<article style=\"margin:0;padding:8px 0 0;\">\n\n    <p class=\"p\" style=\"font-size:19px;color:#C9CFDC;\">For two decades, NDVI has been the default lens on crop health from orbit. It is fast, cheap, and everywhere — but it is also a single smoothed number, and that number hides more than most growers realize. This is a field note about what a continuous spectrum sees that a handful of broad bands cannot, worked through two real scenes rather than a lab bench.</p>\n\n    <section style=\"margin-top:56px;\">\n      <p class=\"eyebrow\">The baseline · NDVI</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">The limits of a vegetation index</h2>\n      <p class=\"p\">NDVI reads the contrast between the near-infrared light plants reflect and the red light they absorb — a reliable proxy for canopy vigour. But it returns a single smoothed signal, and three structural blind spots come with it.</p>\n\n      <div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px;\">\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:18px;\">\n          <div class=\"mono\" style=\"font-size:12px;letter-spacing:0.1em;color:#7B27D6;\">01</div>\n          <h3 class=\"disp\" style=\"font-size:20px;font-weight:600;color:#F6F8FC;margin:10px 0 0;letter-spacing:-0.01em;\">Saturation</h3>\n          <p class=\"body\" style=\"font-size:15px;line-height:1.6;color:#9AA3B5;margin:12px 0 0;\">Once a canopy is dense enough, NDVI stops climbing even as the plant keeps changing — it flattens out past LAI (Leaf Area Index)&nbsp;&gt;&nbsp;3.</p>\n          <p class=\"body\" style=\"font-size:14px;line-height:1.5;color:#7ED8EE;margin:14px 0 0;\">Thriving and over-mature fields read the same.</p>\n        </div>\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:18px;\">\n          <div class=\"mono\" style=\"font-size:12px;letter-spacing:0.1em;color:#7B27D6;\">02</div>\n          <h3 class=\"disp\" style=\"font-size:20px;font-weight:600;color:#F6F8FC;margin:10px 0 0;letter-spacing:-0.01em;\">Blind to dry matter</h3>\n          <p class=\"body\" style=\"font-size:15px;line-height:1.6;color:#9AA3B5;margin:12px 0 0;\">NDVI uses only Red and NIR. Non-photosynthetic vegetation needs the SWIR, so dried and senescent material never registers.</p>\n          <p class=\"body\" style=\"font-size:14px;line-height:1.5;color:#7ED8EE;margin:14px 0 0;\">Dry stalks look like bare soil.</p>\n        </div>\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:18px;\">\n          <div class=\"mono\" style=\"font-size:12px;letter-spacing:0.1em;color:#7B27D6;\">03</div>\n          <h3 class=\"disp\" style=\"font-size:20px;font-weight:600;color:#F6F8FC;margin:10px 0 0;letter-spacing:-0.01em;\">Soil interference</h3>\n          <p class=\"body\" style=\"font-size:15px;line-height:1.6;color:#9AA3B5;margin:12px 0 0;\">In sparse, early-stage crops the soil background bleeds into the pixel and skews the index up or down.</p>\n          <p class=\"body\" style=\"font-size:14px;line-height:1.5;color:#7ED8EE;margin:14px 0 0;\">Emergence looks healthier — or more stressed — than it is.</p>\n        </div>\n      </div>\n    </section>\n\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">Resolution · sampling</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Sparse bands vs. a continuous spectrum</h2>\n      <p class=\"p\">The root cause is how the two sensor classes sample light. Multispectral instruments read a handful of broad points across 400–2500&nbsp;nm; hyperspectral reads the same range as a near-continuous curve. The features that separate healthy from stressed sit <b>between</b> a multispectral sensor's bands — in wavelength ranges it never samples.</p>\n    </section>\n  </article>\n\n  <figure style=\"margin:34px 0 0;\">\n    <div data-om-raster=\"\" class=\"well\" style=\"padding:40px 36px 30px;background:#090C15;\">\n      <div style=\"display:flex;gap:22px;align-items:stretch;\">\n        <div style=\"flex:0 0 150px;position:relative;\">\n          <div style=\"position:absolute;left:0;top:52px;height:48px;display:flex;flex-direction:column;justify-content:center;\">\n            <div class=\"mono\" style=\"font-size:13px;letter-spacing:0.06em;color:#7ED8EE;text-transform:uppercase;\">Hyperspectral</div>\n            <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#6B7488;margin-top:3px;\">~230 contiguous bands</div>\n          </div>\n          <div style=\"position:absolute;left:0;top:120px;height:48px;display:flex;flex-direction:column;justify-content:center;\">\n            <div class=\"mono\" style=\"font-size:13px;letter-spacing:0.06em;color:#9AA3B5;text-transform:uppercase;\">Multispectral</div>\n            <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#6B7488;margin-top:3px;\">13 discrete bands</div>\n          </div>\n        </div>\n        <div style=\"flex:1;position:relative;height:214px;\">\n          <div style=\"position:absolute;left:38.1%;top:24px;bottom:48px;width:0;border-left:2px dashed rgba(126,216,238,0.8);\"></div>\n          <div style=\"position:absolute;left:38.1%;top:-4px;transform:translateX(-50%);text-align:center;width:120px;\">\n            <div class=\"mono\" style=\"font-size:12px;color:#7ED8EE;\">1200 nm</div>\n            <div class=\"body\" style=\"font-size:11px;color:#6B7488;margin-top:2px;\">leaf water</div>\n          </div>\n          <div style=\"position:absolute;left:50%;top:24px;bottom:48px;width:0;border-left:2px dashed rgba(126,216,238,0.8);\"></div>\n          <div style=\"position:absolute;left:50%;top:-4px;transform:translateX(-50%);text-align:center;width:120px;\">\n            <div class=\"mono\" style=\"font-size:12px;color:#7ED8EE;\">1450 nm</div>\n            <div class=\"body\" style=\"font-size:11px;color:#6B7488;margin-top:2px;\">water (in gap)</div>\n          </div>\n          <div style=\"position:absolute;left:80.95%;top:24px;bottom:48px;width:0;border-left:2px dashed rgba(126,216,238,0.8);\"></div>\n          <div style=\"position:absolute;left:80.95%;top:-4px;transform:translateX(-50%);text-align:center;width:130px;\">\n            <div class=\"mono\" style=\"font-size:12px;color:#7ED8EE;\">2100 nm</div>\n            <div class=\"body\" style=\"font-size:11px;color:#6B7488;margin-top:2px;\">cellulose / lignin</div>\n          </div>\n          <img src=\"https://new-cms.metaspectral.com/api/media/file/c97ed779-bb56-4e2c-8623-650a8d9483d2.png\" style=\"position:absolute;left:0;right:0;top:52px;width:100%;height:48px;border-radius:6px;box-shadow:0 0 0 1px rgba(255,255,255,0.06);display:block;\" alt=\"Continuous hyperspectral spectrum, 400-2500 nm\">\n          <div style=\"position:absolute;left:0;right:0;top:120px;height:48px;border-radius:6px;background:#0D1119;box-shadow:0 0 0 1px rgba(255,255,255,0.08);\"></div>\n          <div style=\"position:absolute;top:120px;height:48px;left:25.95%;width:20.48%;background:rgba(144,54,244,0.12);border-left:1px dashed rgba(168,104,247,0.6);border-right:1px dashed rgba(168,104,247,0.6);display:flex;align-items:center;justify-content:center;\">\n            <span class=\"mono\" style=\"font-size:11px;letter-spacing:0.08em;color:#A968F7;text-transform:uppercase;\">No band</span>\n          </div>\n          <div style=\"position:absolute;top:120px;height:48px;left:46.43%;width:11.19%;background:rgba(144,54,244,0.12);border-left:1px dashed rgba(168,104,247,0.6);border-right:1px dashed rgba(168,104,247,0.6);\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:2.05%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:4.29%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:7.62%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:12.62%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:14.52%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:16.19%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:18.24%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:21.05%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:22.14%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:25.95%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:46.43%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:57.62%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;top:125px;height:38px;width:4px;left:85.24%;transform:translateX(-50%);background:#7ED8EE;border-radius:2px;\"></div>\n          <div style=\"position:absolute;left:0;right:0;top:176px;height:20px;\">\n            <div class=\"mono\" style=\"position:absolute;left:0%;font-size:12px;color:#6B7488;\">400</div>\n            <div class=\"mono\" style=\"position:absolute;left:14.29%;transform:translateX(-50%);font-size:12px;color:#6B7488;\">700</div>\n            <div class=\"mono\" style=\"position:absolute;left:28.57%;transform:translateX(-50%);font-size:12px;color:#6B7488;\">1000</div>\n            <div class=\"mono\" style=\"position:absolute;left:52.38%;transform:translateX(-50%);font-size:12px;color:#6B7488;\">1500</div>\n            <div class=\"mono\" style=\"position:absolute;left:76.19%;transform:translateX(-50%);font-size:12px;color:#6B7488;\">2000</div>\n            <div class=\"mono\" style=\"position:absolute;left:100%;transform:translateX(-100%);font-size:12px;color:#6B7488;\">2500 nm</div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <figcaption class=\"cap\">A multispectral sensor (bottom) samples 13 discrete points; hyperspectral (top) reads a continuous curve. Key diagnostic features — 1200&nbsp;nm and 1450&nbsp;nm water, 2100&nbsp;nm cellulose — fall <b>in the gaps</b> where a multispectral sensor has no band at all.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">The evidence · two scenes</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Two scenes, real reflectance</h2>\n      <p class=\"p\">Everything that follows is measured over the same fields. We start from the multispectral baseline, then show what only the full spectrum resolves — no synthetic data, no lab spectra.</p>\n    </section>\n  </article>\n\n  <div style=\"margin:34px 0 0;\">\n    <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:30px;\">\n      <figure style=\"margin:0;\">\n        <div class=\"well\"><img src=\"https://new-cms.metaspectral.com/api/media/file/318e90f3-9e24-4f2e-8324-359c11e8d359.png\" alt=\"Tanager RGB, Pilinga Australia\"></div>\n        <div style=\"display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;gap:12px;\">\n          <h3 class=\"disp\" style=\"font-size:19px;font-weight:600;color:#F6F8FC;margin:0;\">Pilinga, Australia</h3>\n          <span class=\"mono\" style=\"font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#6B7488;text-align:right;\">Planet Tanager · hyperspectral</span>\n        </div>\n        <p class=\"body\" style=\"font-size:14.5px;line-height:1.6;color:#9AA3B5;margin:10px 0 0;\">Cropland and forest. Some fields harvested to bare soil, others holding green (PV) or dried (NPV) vegetation.</p>\n      </figure>\n      <figure style=\"margin:0;\">\n        <div class=\"well\"><img src=\"https://new-cms.metaspectral.com/api/media/file/950c40f6-1127-45ff-8c40-a661a5fd7f00.png\" alt=\"True-color RGB, Central Valley California\"></div>\n        <div style=\"display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;gap:12px;\">\n          <h3 class=\"disp\" style=\"font-size:19px;font-weight:600;color:#F6F8FC;margin:0;\">Central Valley, California</h3>\n          <span class=\"mono\" style=\"font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#6B7488;text-align:right;\">PRISMA vs Sentinel-2 · 7 days apart</span>\n        </div>\n        <p class=\"body\" style=\"font-size:14.5px;line-height:1.6;color:#9AA3B5;margin:10px 0 0;\">A dense agricultural mosaic along the delta — crops, fallow ground and water that the two sensor classes read very differently.</p>\n      </figure>\n    </div>\n  </div>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">Tanager · unmixing</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">One index vs. three endmembers</h2>\n      <p class=\"p\">Here is the core idea. NDVI gives one blended score per pixel — soil, weeds and crop averaged together, like a smoothie. Unmixing decomposes that same pixel back into the fraction that is <b>Soil</b>, <b>PV</b> (live vegetation) and <b>NPV</b> (dried, non-photosynthetic matter). Each layer becomes its own field-health signal.</p>\n    </section>\n  </article>\n\n  <style>\n    @media (max-width: 767px) {\n      [data-unmixing-comparison] {\n        grid-template-columns: 1fr !important;\n      }\n    }\n  </style>\n  <figure style=\"margin:32px 0 0;\">\n    <div data-unmixing-comparison style=\"display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;\">\n      <div>\n        <div class=\"well\" style=\"aspect-ratio:1.18/1;display:flex;align-items:center;justify-content:center;overflow:hidden;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/649e5ef4-035d-4836-a854-24663d65083d.png\" alt=\"Tanager NDVI, boxed parcel\" style=\"width:100%;height:100%;object-fit:contain;\"></div>\n        <div class=\"mono\" style=\"font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#6B7488;margin-top:10px;\">NDVI — one blended score</div>\n      </div>\n      <div>\n        <div class=\"well\" style=\"aspect-ratio:1.18/1;display:flex;align-items:center;justify-content:center;overflow:hidden;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/c2d9571d-4279-471f-82ee-ac5b4c7ab413.png\" alt=\"Soil fraction\" style=\"width:100%;height:100%;object-fit:contain;\"></div>\n        <div class=\"disp\" style=\"font-size:15px;font-weight:600;color:#F6F8FC;margin-top:10px;\">Soil</div>\n      </div>\n      <div>\n        <div class=\"well\" style=\"aspect-ratio:1.18/1;display:flex;align-items:center;justify-content:center;overflow:hidden;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/f0d7f802-6233-4aa7-abf7-ad64f93b7f50.png\" alt=\"PV fraction\" style=\"width:100%;height:100%;object-fit:contain;\"></div>\n        <div class=\"disp\" style=\"font-size:15px;font-weight:600;color:#F6F8FC;margin-top:10px;\">PV</div>\n      </div>\n      <div>\n        <div class=\"well\" style=\"aspect-ratio:1.18/1;display:flex;align-items:center;justify-content:center;overflow:hidden;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/fb7993ce-1d1b-4f59-bd3e-e3cdfd91707c.png\" alt=\"NPV fraction\" style=\"width:100%;height:100%;object-fit:contain;\"></div>\n        <div class=\"disp\" style=\"font-size:15px;font-weight:600;color:#F6F8FC;margin-top:10px;\">NPV</div>\n      </div>\n    </div>\n    <figcaption class=\"cap\">The <b>boxed parcel</b> reads green and healthy in NDVI (left). Yet unmixing shows it is <span style=\"color:#7ED8EE;\">low in live vegetation (PV)</span> and <span style=\"color:#F2C94C;\">high in dried &amp; senescent matter (NPV)</span> — early stress the blended score averages away.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">Tanager · the NPV advantage</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">The dry-matter blind spot</h2>\n      <p class=\"p\">Non-photosynthetic vegetation — dry branches, senescent leaves, crop residue — absorbs in the shortwave infrared near <b>2,100 and 2,300 nm</b> from cellulose and lignin. Most multispectral sensors have broad SWIR bands, or none at all.</p>\n      <blockquote style=\"margin:32px 0 0;padding-left:22px;border-left:3px solid #A968F7;\">\n        <p class=\"disp\" style=\"font-size:24px;font-weight:500;line-height:1.35;color:#F6F8FC;margin:0;\">To a multispectral sensor, a field of dry corn stalks looks almost identical to bare brown dirt.</p>\n      </blockquote>\n      <div style=\"margin-top:28px;display:flex;flex-direction:column;gap:16px;\">\n        <div style=\"display:flex;gap:14px;align-items:flex-start;\">\n          <span style=\"color:#A968F7;font-size:15px;line-height:1.7;\">●</span>\n          <p class=\"body\" style=\"font-size:16.5px;line-height:1.65;color:#9AA3B5;margin:0;\"><b style=\"color:#E8EBF2;\">In-season</b>, high NPV signals premature senescence from drought or disease.</p>\n        </div>\n        <div style=\"display:flex;gap:14px;align-items:flex-start;\">\n          <span style=\"color:#A968F7;font-size:15px;line-height:1.7;\">●</span>\n          <p class=\"body\" style=\"font-size:16.5px;line-height:1.65;color:#9AA3B5;margin:0;\"><b style=\"color:#E8EBF2;\">Post-harvest</b>, high NPV means crop residue protecting soil and sequestering carbon.</p>\n        </div>\n      </div>\n      <div style=\"display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;align-items:center;\">\n        <span style=\"display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid rgba(255,255,255,0.12);background:#121725;\"><span style=\"width:9px;height:9px;border-radius:50%;background:#FF3B3B;\"></span><span class=\"mono\" style=\"font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:#C9CFDC;\">Soil</span></span>\n        <span style=\"display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid rgba(255,255,255,0.12);background:#121725;\"><span style=\"width:9px;height:9px;border-radius:50%;background:#2AB752;\"></span><span class=\"mono\" style=\"font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:#C9CFDC;\">PV</span></span>\n        <span style=\"display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid rgba(255,255,255,0.12);background:#121725;\"><span style=\"width:9px;height:9px;border-radius:50%;background:#3BA5CD;\"></span><span class=\"mono\" style=\"font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:#C9CFDC;\">NPV</span></span>\n        <span class=\"body\" style=\"font-size:14px;align-self:center;color:#6B7488;margin-left:4px;\">shown as one composite above</span>\n      </div>\n    </section>\n\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">PRISMA · Feature 02 · dry matter</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Same green, different chemistry</h2>\n      <p class=\"p\">Dry plant material — cellulose, lignin, crop residue — absorbs near 2,100&nbsp;nm in the shortwave infrared. Hyperspectral measures that <b>band depth</b> directly. Two fields can sit at the <span style=\"color:#7ED8EE;\">same high NDVI</span> yet differ sharply in chemistry — one a lush vegetative canopy, the other already accumulating cellulose and lignin as it matures or carries residue.</p>\n    </section>\n  </article>\n\n  <figure style=\"margin:30px 0 0;\">\n    <div class=\"well\" style=\"padding:8px;background:#070A12;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/070f04fd-615a-41ae-b89b-e0dbe25ec7c3.png\" alt=\"PRISMA 2100nm cellulose/lignin band depth vs Sentinel-2 NDVI, parcels A and B\"></div>\n    <figcaption class=\"cap\">Parcels <span style=\"color:#46E3C6;\">A</span> and <span style=\"color:#FBB33A;\">B</span> read as the same green NDVI (right), but separate into low vs. high cellulose/lignin in the hyperspectral 2,100&nbsp;nm band depth (left). A maturity and harvest-timing signal — and Sentinel-2 has <b>no band between 1610 &amp; 2190 nm</b> to see it.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">PRISMA · canopy water · 1200 nm</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Green canopy, hidden water stress</h2>\n      <p class=\"p\">Liquid water in a canopy produces a broad absorption near 1,200&nbsp;nm. Hyperspectral measures its <b>band depth</b> directly — a true optical reading of how much water the leaves actually hold. Neighbouring fields, ostensibly the <span style=\"color:#7ED8EE;\">same crop</span>, separate cleanly by hydration state — a distinction that looks identical in an NDVI image.</p>\n      <div style=\"margin-top:26px;background:rgba(144,54,244,0.08);border:1px solid rgba(168,104,247,0.3);border-radius:10px;padding:20px 22px;\">\n        <div class=\"eyebrow\" style=\"color:#7ED8EE;\">What this means for a grower</div>\n        <p class=\"body\" style=\"font-size:16px;line-height:1.65;color:#C9CFDC;margin:12px 0 0;\">NDVI reports how green and dense a canopy is — not how much water it holds. The 1,200&nbsp;nm absorption separates a canopy that is <b style=\"color:#E8EBF2;\">green-but-water-stressed</b> from one that is <b style=\"color:#E8EBF2;\">green-and-well-watered</b>. For irrigation, that is the difference between reacting after vigour drops and intervening while the canopy still looks healthy.</p>\n      </div>\n    </section>\n  </article>\n\n  <figure style=\"margin:30px 0 0;\">\n    <div class=\"well\" style=\"padding:8px;background:#070A12;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/c0376120-d403-44e5-8646-15c7a4e93714.png\" alt=\"PRISMA 1200nm canopy-water band depth vs Sentinel-2 NDVI, parcels S and W\"></div>\n    <figcaption class=\"cap\">Parcels <span style=\"color:#FF6B6B;\">S</span> and <span style=\"color:#5BD2FF;\">W</span> read as the same green NDVI (right), yet split into low vs. high canopy-water band depth in the PRISMA 1,200&nbsp;nm panel (left; brighter = more water). Sentinel-2 carries <b>no band between 945 &amp; 1375 nm</b> to see it.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">PRISMA · Feature 03 · the spectral gap</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Where Sentinel-2 goes dark</h2>\n      <p class=\"p\">The 1,450&nbsp;nm water absorption sits squarely in a Sentinel-2 spectral gap — <b>no band between 1375 nm (B10) and 1610 nm (B11)</b>. Hyperspectral reads it directly.</p>\n      <blockquote style=\"margin:32px 0 0;padding-left:22px;border-left:3px solid #A968F7;\">\n        <p class=\"disp\" style=\"font-size:24px;font-weight:500;line-height:1.35;color:#F6F8FC;margin:0;\">Not \"hyperspectral does it better.\" Sentinel-2 cannot do it at all.</p>\n      </blockquote>\n      <p class=\"p\">Read alongside the 1,200&nbsp;nm map, this is a second, independent water window — two absorption features agreeing is harder to fool. And it keeps resolving water status where <b>NDVI saturates</b> across a closed canopy.</p>\n    </section>\n  </article>\n\n  <figure style=\"margin:30px 0 0;\">\n    <div class=\"well\" style=\"padding:8px;background:#070A12;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/7a4650b0-0b0c-485a-bf98-7f9d43dfcdac.png\" alt=\"PRISMA 1450nm water-absorption index vs Sentinel-2 NDVI, parcels A and B\"></div>\n    <figcaption class=\"cap\">Parcels within <span style=\"color:#46E3C6;\">A</span> and <span style=\"color:#FF5FA2;\">B</span> sit at the <b>same saturated NDVI</b> (right, deep green) — yet split into low vs. high 1,450&nbsp;nm water absorption (left). The index NDVI can no longer separate, the spectral gap still resolves.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">PRISMA · head-to-head · red edge</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">True wavelength vs. relative proxy</h2>\n      <p class=\"p\">Hyperspectral resolves the red-edge inflection as a <b>true wavelength</b> — an actual position in nanometres (vegetation mean ≈ 722&nbsp;nm), with smooth field-by-field gradients.</p>\n      <blockquote style=\"margin:32px 0 0;padding-left:22px;border-left:3px solid #A968F7;\">\n        <p class=\"disp\" style=\"font-size:24px;font-weight:500;line-height:1.35;color:#F6F8FC;margin:0;\">Sentinel-2's multispectral proxy can say \"more shift than the neighbour\" — not where the inflection sits.</p>\n      </blockquote>\n      <div style=\"margin-top:26px;background:rgba(144,54,244,0.08);border:1px solid rgba(168,104,247,0.3);border-radius:10px;padding:20px 22px;\">\n        <div class=\"eyebrow\" style=\"color:#7ED8EE;\">What this means for a grower</div>\n        <p class=\"body\" style=\"font-size:16px;line-height:1.65;color:#C9CFDC;margin:12px 0 0;\">The inflection wavelength tracks <b style=\"color:#E8EBF2;\">chlorophyll and nitrogen</b>. As pigment builds, the red edge shifts to <span style=\"color:#43D26C;\">longer wavelengths</span> (a healthy, N-rich canopy); as it drops, the edge slides back to <span style=\"color:#F2A65A;\">shorter wavelengths</span> — early stress, weeks before any visible yellowing.</p>\n        <p class=\"body\" style=\"font-size:16px;line-height:1.65;color:#C9CFDC;margin:14px 0 0;\">Because hyperspectral gives an absolute wavelength reading, it can be checked against an agronomic threshold across dates and fields — the basis for <b style=\"color:#E8EBF2;\">variable-rate fertigation</b>. Sentinel-2's relative proxy re-anchors every scene, so it can rank fields but never trigger a threshold.</p>\n      </div>\n    </section>\n  </article>\n\n  <figure style=\"margin:30px 0 0;\">\n    <div class=\"well\" style=\"padding:8px;background:#070A12;\"><img src=\"https://new-cms.metaspectral.com/api/media/file/505f44ee-00a8-4633-ae02-648d3ec204c7.png\" alt=\"PRISMA red-edge inflection wavelength vs Sentinel-2 red-edge proxy\"></div>\n    <div style=\"display:flex;align-items:center;gap:16px;margin-top:16px;\">\n      <span class=\"mono\" style=\"flex:0 0 auto;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#F2A65A;line-height:1.4;\">Lower λ ≈ 700 nm<br><span style=\"text-transform:none;letter-spacing:0;font-family:'Inter',sans-serif;color:#6B7488;font-size:11.5px;\">less chlorophyll · stressed</span></span>\n      <div style=\"flex:1;height:12px;border-radius:6px;background:linear-gradient(90deg,#7A1FA2 0%,#C0392B 22%,#E67E22 44%,#F1C40F 68%,#2ECC71 100%);box-shadow:0 0 0 1px rgba(255,255,255,0.08);\"></div>\n      <span class=\"mono\" style=\"flex:0 0 auto;text-align:right;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#43D26C;line-height:1.4;\">Higher λ ≈ 730 nm<br><span style=\"text-transform:none;letter-spacing:0;font-family:'Inter',sans-serif;color:#6B7488;font-size:11.5px;\">more chlorophyll · healthy</span></span>\n    </div>\n    <figcaption class=\"cap\">Left: hyperspectral REIP — true inflection wavelength (nm). Right: multispectral REIP proxy — a normalized 0–1 red-edge ratio. Same vegetation mask, each on its own scale. In the <span style=\"color:#C6A6FB;\">highlighted block</span>, PRISMA reads a shorter, stressed wavelength across fields the proxy washes into uniform healthy green.</figcaption>\n  </figure>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">Side by side</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">Multispectral vs. hyperspectral</h2>\n    </section>\n  </article>\n\n  <div style=\"margin:28px 0 0;\">\n    <div style=\"border:1px solid rgba(255,255,255,0.08);border-radius:12px;overflow:hidden;\">\n      <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;background:#0E121F;border-bottom:1px solid rgba(255,255,255,0.1);\">\n        <div class=\"mono\" style=\"padding:16px 20px;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#6B7488;\">Feature</div>\n        <div class=\"disp\" style=\"padding:16px 20px;font-size:16px;font-weight:600;color:#9AA3B5;\">Multispectral</div>\n        <div class=\"disp\" style=\"padding:16px 20px;font-size:16px;font-weight:600;color:#C6A6FB;background:rgba(144,54,244,0.1);\">Hyperspectral</div>\n      </div>\n      <div class=\"tbl\">\n        <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;border-bottom:1px solid rgba(255,255,255,0.07);\">\n          <div class=\"mono\" style=\"padding:16px 20px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#9AA3B5;\">Data source</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#9AA3B5;\">4–10 broad spectral bands</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#E8EBF2;background:rgba(144,54,244,0.06);\">100+ narrow contiguous bands</div>\n        </div>\n        <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;border-bottom:1px solid rgba(255,255,255,0.07);\">\n          <div class=\"mono\" style=\"padding:16px 20px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#9AA3B5;\">Pixel composition</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#9AA3B5;\">One average value per pixel</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#E8EBF2;background:rgba(144,54,244,0.06);\">Decomposed into % PV, % NPV, % Soil</div>\n        </div>\n        <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;border-bottom:1px solid rgba(255,255,255,0.07);\">\n          <div class=\"mono\" style=\"padding:16px 20px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#9AA3B5;\">Dry matter</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#9AA3B5;\">Confused with bare soil</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#E8EBF2;background:rgba(144,54,244,0.06);\">Identified via lignin &amp; cellulose signatures</div>\n        </div>\n        <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;border-bottom:1px solid rgba(255,255,255,0.07);\">\n          <div class=\"mono\" style=\"padding:16px 20px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#9AA3B5;\">Sensitivity</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#9AA3B5;\">Saturates at high biomass (LAI &gt; 3)</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#E8EBF2;background:rgba(144,54,244,0.06);\">Linear and sensitive at high density</div>\n        </div>\n        <div style=\"display:grid;grid-template-columns:0.9fr 1.3fr 1.4fr;\">\n          <div class=\"mono\" style=\"padding:16px 20px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#9AA3B5;\">Stress timing</div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#9AA3B5;\">Detects stress when colour changes <span style=\"color:#F09836;\">(late)</span></div>\n          <div class=\"body\" style=\"padding:16px 20px;font-size:15px;color:#E8EBF2;background:rgba(144,54,244,0.06);\">Detects biochemical shifts <span style=\"color:#43D26C;\">(early)</span></div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <article style=\"margin:0;padding:0;\">\n    <section style=\"margin-top:60px;\">\n      <p class=\"eyebrow\">Material Intelligence</p>\n      <h2 class=\"h2\" style=\"margin-top:14px;\">From divergence to decision</h2>\n      <p class=\"p\">By unmixing what multispectral blends together, hyperspectral turns crop colour into <b>crop chemistry</b> — a triple-threat field-health read.</p>\n      <div style=\"display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;\">\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:16px;\">\n          <div class=\"disp\" style=\"font-size:17px;font-weight:600;color:#F6F8FC;\">Productivity</div>\n          <p class=\"body\" style=\"font-size:14.5px;line-height:1.6;color:#9AA3B5;margin:10px 0 0;\">From the pure PV fraction — without soil interference.</p>\n        </div>\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:16px;\">\n          <div class=\"disp\" style=\"font-size:17px;font-weight:600;color:#F6F8FC;\">Nutrient cycling</div>\n          <p class=\"body\" style=\"font-size:14.5px;line-height:1.6;color:#9AA3B5;margin:10px 0 0;\">From the NPV fraction — organic matter returning to the soil.</p>\n        </div>\n        <div style=\"border-top:2px solid rgba(144,54,244,0.55);padding-top:16px;\">\n          <div class=\"disp\" style=\"font-size:17px;font-weight:600;color:#F6F8FC;\">Soil &amp; moisture</div>\n          <p class=\"body\" style=\"font-size:14.5px;line-height:1.6;color:#9AA3B5;margin:10px 0 0;\">From the soil fraction — tillage intensity and moisture effects.</p>\n        </div>\n      </div>\n    </section>\n  </article>\n","updatedAt":"2026-07-06T18:16:43.871Z","createdAt":"2026-07-02T22:58:31.717Z","_status":"published"},{"id":27,"title":"Automated Classification of Waste Wood Composites: An Evaluation of Hyperspectral Imaging and Deep Learning Pipelines","slug":"automated-classification-waste-wood-composites-hyperspectral-imaging-deep-learning","excerpt":"New collaborative research between UBC and Metaspectral evaluates near-infrared hyperspectral imaging and deep learning pipelines for automated classification of post-consumer waste wood composites, achieving up to 100% accuracy under controlled conditions and 91.2% on real landfill material.","description":null,"type":"Article","author":{"id":6,"name":"Guillaume Hans","slug":"guillaume-hans","email":null,"avatar":{"id":188,"alt":"Guillaume Hans author headshot","caption":null,"sourcePath":"src/assets/team-headshot_3.jpg","updatedAt":"2026-06-23T19:31:04.863Z","createdAt":"2026-06-23T19:31:04.863Z","url":"/api/media/file/author-guillaume-hans.jpg","thumbnailURL":"/api/media/file/author-guillaume-hans-320x320.jpg","filename":"author-guillaume-hans.jpg","mimeType":"image/jpeg","filesize":101598,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-guillaume-hans-320x320.jpg","width":320,"height":320,"mimeType":"image/jpeg","filesize":15637,"filename":"author-guillaume-hans-320x320.jpg"},"card":{"url":"/api/media/file/author-guillaume-hans-768x768.jpg","width":768,"height":768,"mimeType":"image/jpeg","filesize":60445,"filename":"author-guillaume-hans-768x768.jpg"}}},"title":"Senior Research Scientist","bio":null,"updatedAt":"2026-06-23T19:31:40.594Z","createdAt":"2026-04-23T23:27:03.623Z"},"category":{"id":1,"title":"Research","slug":"research","updatedAt":"2026-06-22T22:49:08.557Z","createdAt":"2026-06-22T22:49:08.555Z"},"contentStage":"evaluation","layout":"default","tags":[{"id":"6a39bbe412ccb4002e45d312","tag":"hyperspectral imaging"},{"id":"6a39bbe412ccb4002e45d313","tag":"deep learning"},{"id":"6a39bbe412ccb4002e45d314","tag":"waste wood"},{"id":"6a39bbe412ccb4002e45d315","tag":"wood composites"},{"id":"6a39bbe412ccb4002e45d316","tag":"classification"}],"industries":["recycling","industrial-sorting"],"products":["industrial-sorting","material-testing"],"heroImage":{"id":186,"alt":"Waste wood composite classification banner","caption":null,"sourcePath":"/home/metaspectral/workspace/strands-openclaw/.openclaw/tmp/image1.png","updatedAt":"2026-06-22T22:05:36.419Z","createdAt":"2026-06-22T22:05:36.419Z","url":"/api/media/file/image1.png","thumbnailURL":"/api/media/file/image1-320x108.png","filename":"image1.png","mimeType":"image/png","filesize":1331386,"width":1359,"height":458,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/image1-320x108.png","width":320,"height":108,"mimeType":"image/png","filesize":93858,"filename":"image1-320x108.png"},"card":{"url":"/api/media/file/image1-768x259.png","width":768,"height":259,"mimeType":"image/png","filesize":523627,"filename":"image1-768x259.png"}}},"imageBackground":"dark","publishedAt":"2026-06-23T20:38:00.000Z","legacySourcePath":null,"bodyMarkdown":"Construction, renovation, and demolition (CRD) activities generate one of the largest solid waste streams in Canada [1]. In the Metro Vancouver region, one-third of all municipal waste sent to landfills originates from CRD activities [2]. Wood waste comprises nearly 48% of that total CRD stream [3]. At the Vancouver Landfill specifically, plywood (21%) and dimensional lumber (32%) were dominating the wood waste piles [4].\n\nBecause wood is an exceptional, naturally renewable carbon sink, diverting it from landfills not only extends its carbon-storage lifecycle for decades but also represents a vital opportunity to keep the material's inherent structural and economic value active within the economy. British Columbia's CleanBC framework [5] and the Canadian Council of Ministers of the Environment (CCME) [6] have outlined supportive policies in this direction. These frameworks actively encourage the recovery of post-consumer fiber to reduce landfill emissions and promote the circular bioeconomy.\n\n## 1. The Technical Challenge: Salvaged Wood Contamination\n\nTo safely integrate recycled fibers into manufacturing streams, exceptionally clean feedstocks are required. However, salvaged wood may carry chemical contaminants. It may contain chemical preservatives like Alkaline Copper Quaternary (ACQ) or be bound with different synthetic adhesive resins like Phenol Formaldehyde (PF), Urea Formaldehyde (UF), or Melamine-Urea Formaldehyde (MUF). Moreover, at the landfill, weathered wood quickly turns grey and dirty. Therefore, the primary technical challenge in realizing this circular economy is accurate, automated sorting.\n\n## 2. The Automated Solution: Hyperspectral Imaging\n\nAutomated sorting of post-consumer wood composites is a highly complex chemical and structural classification problem. In industrial waste streams, materials such as oriented strand board (OSB), plywood (PLY), particleboard (PB), and melamine-coated particleboard (M-PB) are frequently mixed.\n\nNew collaborative research between the University of British Columbia (UBC) and Metaspectral demonstrates how near-infrared hyperspectral imaging can overcome industrial wood waste sorting barriers [7]. In this study, we provide a technical evaluation of Near-Infrared (NIR) Hyperspectral Imaging (HSI) combined with deep learning architectures to classify these materials under varying operational complexities.\n\nWhile normal cameras only capture light in three channels (Red, Green, and Blue), near-infrared hyperspectral imaging (HSI) cameras capture hundreds of contiguous, narrow wavelength bands across the spectrum and in a two-dimensional space. The resulting data structure is called a hypercube: a 3D image where every single pixel contains a highly detailed chemical \"fingerprint\" (its spectrum).\n\nThis technology can instantly read the molecular structure of wood and its contaminants. By analyzing how light interacts with chemical bonds, HSI can:\n\n- **Identify Species:** Detect different wood species based on their distinct lignin and hemicellulose profiles.\n- **Spot Surface Coatings:** Detect surface coatings, such as the distinct absorption peaks of melamine.\n- **Reveal Resins:** Identify chemical resins (PF vs. UF) hiding inside the wood matrix.\n\n## 3. Classification Pipelines: Per Pixel vs. Per Sample\n\nTo translate the 3D hypercube into classification decisions, two distinct deep learning inference pipelines were developed and compared. It worth pointing out that we emphasise the differences in the inference pipelines (test), while the training and validation pipelines remain identical in both cases: training and validation were always done on a Per Pixel basis.\n\n### 3.1 Pipeline A: Per Pixel Inference\n\nIn the Per Pixel pipeline, every spatial coordinate in the hypercube is classified independently based solely on its individual spectral vector. The system performs inference line-by-line in real time as the line-scan HSI camera captures data over the conveyor belt.\n\n### 3.2 Pipeline B: Per Sample Inference\n\nThe Per Sample pipeline groups pixels into discrete physical objects before making a classification decision. This is executed via a three-step sequence:\n\n- **Spatial Segmentation**: The 2D spatial frame is processed through a segmentation model to generate bounding masks around each individual piece of wood.\n- **Spectral Averaging**: All HSI pixels inside a segmented mask are extracted and averaged into a single representative spectrum.\n- **Deep Learning Inference**: The classification model operates on this single, averaged high-dimensional vector.\n\n## 4. Experimental Evaluation: Scenarios & Accuracies\n\nThe classification performances of the Per Pixel and Per Sample pipelines were evaluated across three operational scenarios of increasing environmental complexity as described in Table 1. More details about the samples can be found in [7]. As mentioned earlier, because training and validation were always carried on a Per Pixel basis, we do not report validation accuracy for the Per Sample inference pipeline in Table 1.\n\n<figure class=\"resource-table\">\n  <figcaption><strong>Table 1: Deep Learning Classification Accuracies Across Three Scenarios</strong></figcaption>\n  <table>\n    <thead>\n      <tr>\n        <th>Scenario</th>\n        <th>Description</th>\n        <th>Inference Pipeline</th>\n        <th>Validation Accuracy (%)</th>\n        <th>Test Accuracy (%)</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td rowspan=\"2\"><strong>Clean Sample</strong></td>\n        <td rowspan=\"2\">Clean, new composite samples in a controlled laboratory environment.</td>\n        <td>Per Pixel</td>\n        <td>99.9</td>\n        <td>99.8</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>100.0</td>\n      </tr>\n      <tr>\n        <td rowspan=\"2\"><strong>Landfilled Samples</strong></td>\n        <td rowspan=\"2\">Wood waste retrieved from the Vancouver Landfill, placed individually on a conveyor belt.</td>\n        <td>Per Pixel</td>\n        <td>91.6</td>\n        <td>85.5</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>91.2</td>\n      </tr>\n      <tr>\n        <td rowspan=\"2\"><strong>Landfilled Stream</strong></td>\n        <td rowspan=\"2\">Wood waste retrieved from the Vancouver Landfill, mixed together on a conveyor belt.</td>\n        <td>Per Pixel</td>\n        <td>94.5</td>\n        <td>82.0</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>83.3</td>\n      </tr>\n    </tbody>\n  </table>\n</figure>\n\nTwo critical conclusions can be drawn from these evaluation results:\n\n### 4.1 Scenario Complexity vs. Accuracy\n\nAs expected, model accuracy decreases as physical complexity increases. Under clean laboratory conditions, the deep learning model performed flawlessly, achieving 99.8% and 100% accuracy on the test sets.\n\nWhen transitioning to real wood waste pulled directly from the landfill, test accuracies dropped to the 85.5% - 91.1% range. This drop is due to weathered surfaces: some melamine-coated boards were missing chunks of their coating, while others were stained with dirt or mud. An example of false RGB image along with per pixel and per sample classification results obtained for the \"Landfilled Samples\" scenario is shown in Figure 1.\n\n![Per Pixel and Per Sample inference comparison based on a hyperspectral image of the Landfilled Samples scenario.](/api/media/file/image2.png)\n\n*Figure 1: Per Pixel and Per Sample inference comparison based a hyperspectral image of the Landfilled Samples scenario.*\n\nThe final \"Landfilled Stream\" scenario mimicked an active recycling facility, introducing spectral mixing, a phenomenon where light bounces off neighboring wood pieces and blends into the target's spectral reading. Despite physical overlapping and spectral mixing, the models still achieved a highly encouraging 82% to 83.3% test accuracy.\n\n### 4.2 The Per Pixel vs. Per Sample Pipeline Trade-Off\n\nThe Per Sample pipeline consistently yielded higher test accuracies (up to a 5.7% improvement in the Landfilled Samples scenario). This superior performance is driven by two factors:\n\n- **Higher Signal-to-Noise Ratio (SNR):** Averaging the spectra across an entire segmented sample smooths out random sensor noise.\n- **Spectral Dilution:** Weathered wood waste often has minor, localized defects (e.g., small dirt stains or cracks in a melamine face). By averaging the spectra over the entire segmented surface, these localized anomalies are chemically diluted by the dominant surface chemistry of the sample. This \"washes out\" localized noise to provide a general spectrum that is more representative of the material (Figure 1).\n\nHowever, this gain in accuracy comes with industrial trade-offs:\n\n- **Loss of Fine-Grained Information:** Per Pixel inference can tell a manufacturer exactly what percentage of a decorative melamine board is still covered in melamine versus how much is reduced to bare particleboard. Per Sample averaging loses this detailed surface-area mapping (Figure 1).\n- **Processing Latency:** Per Pixel inference is highly efficient; it can run in real time on a line-by-line stream from a line-scan hyperspectral camera. Conversely, segmentation driven Per Sample inference is more computationally intensive. Because segmentation requires a complete 2D image rather than a single line scan, a delay (potentially of a few seconds) is introduced to acquire and process the image, making it a near-real-time workflow.\n\n## 5. Metaspectral's Clarity Platform: Powering the In-Line Sorting of Tomorrow\n\nDeploying these classification systems within an active, profitable, high-speed industrial production environment requires massive processing power. Hyperspectral images are exceptionally large data packets. Processing these hypercubes on a fast-moving conveyor belt in real time is a significant computational challenge.\n\nThis is where Metaspectral's Clarity platform comes in. Clarity is a state-of-the-art, cloud-based platform designed specifically to process hyperspectral images using deep learning. By combining the physical chemistry of near-infrared light with fast neural networks, Metaspectral's technology can:\n\n- **Analyze complex chemical matrices on the fly,** instantly distinguishing clean structural fiber from reclaimed timber containing chemicals.\n- **Identify specific composite types,** segregating incompatible binders (like UF particleboard).\n- **Overcome industrial noise,** automatically accounting for variables like conveyor belt speed and moisture variations.\n\n## References\n\n[1] \"Guide for Identifying, Evaluating and Selecting Policies for Influencing Construction, Renovation and Demolition Waste Management,\" Canadian Council of Ministers of the Environment, 2019.\n\n[2] \"Construction and Demolition - Waste Reduction and Recycling Toolkit,\" Metro Vancouver Regional District, Burnaby, BC, 2023.\n\n[3] \"2022 Construction & Demolition Waste Composition Study,\" Dillon Consulting Limited, Metro Vancouver, 2023.\n\n[4] \"2022 Full-Scale Waste Composition Study Report,\" Dillon Consulting Limited, Metro Vancouver, 2023.\n\n[5] \"Our Nature. Our Power. Our Future: CleanBC Plan,\" Government of British Columbia, Highlights Report, 2018.\n\n[6] \"Canadian Council of Ministers of the Environment.\" Accessed: May 29, 2026. [Online]. Available: https://ccme.ca/en/current-activities/waste\n\n[7] A. Schild, \"Sensor-based sorting of waste wood composites and the use of composite particles in cement-bonded wood composites,\" Doctoral dissertation, University of British Columbia, Vancouver, BC, Canada, 2024.","bodyHtml":"<p>Construction, renovation, and demolition (CRD) activities generate one of the largest solid waste streams in Canada [1]. In the Metro Vancouver region, one-third of all municipal waste sent to landfills originates from CRD activities [2]. Wood waste comprises nearly 48% of that total CRD stream [3]. At the Vancouver Landfill specifically, plywood (21%) and dimensional lumber (32%) were dominating the wood waste piles [4].</p>\n<p>Because wood is an exceptional, naturally renewable carbon sink, diverting it from landfills not only extends its carbon-storage lifecycle for decades but also represents a vital opportunity to keep the material's inherent structural and economic value active within the economy. British Columbia's CleanBC framework [5] and the Canadian Council of Ministers of the Environment (CCME) [6] have outlined supportive policies in this direction. These frameworks actively encourage the recovery of post-consumer fiber to reduce landfill emissions and promote the circular bioeconomy.</p>\n<h2 id=\"1-the-technical-challenge-salvaged-wood-contamination\">1. The Technical Challenge: Salvaged Wood Contamination</h2>\n<p>To safely integrate recycled fibers into manufacturing streams, exceptionally clean feedstocks are required. However, salvaged wood may carry chemical contaminants. It may contain chemical preservatives like Alkaline Copper Quaternary (ACQ) or be bound with different synthetic adhesive resins like Phenol Formaldehyde (PF), Urea Formaldehyde (UF), or Melamine-Urea Formaldehyde (MUF). Moreover, at the landfill, weathered wood quickly turns grey and dirty. Therefore, the primary technical challenge in realizing this circular economy is accurate, automated sorting.</p>\n<h2 id=\"2-the-automated-solution-hyperspectral-imaging\">2. The Automated Solution: Hyperspectral Imaging</h2>\n<p>Automated sorting of post-consumer wood composites is a highly complex chemical and structural classification problem. In industrial waste streams, materials such as oriented strand board (OSB), plywood (PLY), particleboard (PB), and melamine-coated particleboard (M-PB) are frequently mixed.</p>\n<p>New collaborative research between the University of British Columbia (UBC) and Metaspectral demonstrates how near-infrared hyperspectral imaging can overcome industrial wood waste sorting barriers [7]. In this study, we provide a technical evaluation of Near-Infrared (NIR) Hyperspectral Imaging (HSI) combined with deep learning architectures to classify these materials under varying operational complexities.</p>\n<p>While normal cameras only capture light in three channels (Red, Green, and Blue), near-infrared hyperspectral imaging (HSI) cameras capture hundreds of contiguous, narrow wavelength bands across the spectrum and in a two-dimensional space. The resulting data structure is called a hypercube: a 3D image where every single pixel contains a highly detailed chemical \"fingerprint\" (its spectrum).</p>\n<p>This technology can instantly read the molecular structure of wood and its contaminants. By analyzing how light interacts with chemical bonds, HSI can:</p>\n<ul>\n<li><strong>Identify Species:</strong> Detect different wood species based on their distinct lignin and hemicellulose profiles.</li>\n<li><strong>Spot Surface Coatings:</strong> Detect surface coatings, such as the distinct absorption peaks of melamine.</li>\n<li><strong>Reveal Resins:</strong> Identify chemical resins (PF vs. UF) hiding inside the wood matrix.</li>\n</ul>\n<h2 id=\"3-classification-pipelines-per-pixel-vs-per-sample\">3. Classification Pipelines: Per Pixel vs. Per Sample</h2>\n<p>To translate the 3D hypercube into classification decisions, two distinct deep learning inference pipelines were developed and compared. It worth pointing out that we emphasise the differences in the inference pipelines (test), while the training and validation pipelines remain identical in both cases: training and validation were always done on a Per Pixel basis.</p>\n<h3 id=\"31-pipeline-a-per-pixel-inference\">3.1 Pipeline A: Per Pixel Inference</h3>\n<p>In the Per Pixel pipeline, every spatial coordinate in the hypercube is classified independently based solely on its individual spectral vector. The system performs inference line-by-line in real time as the line-scan HSI camera captures data over the conveyor belt.</p>\n<h3 id=\"32-pipeline-b-per-sample-inference\">3.2 Pipeline B: Per Sample Inference</h3>\n<p>The Per Sample pipeline groups pixels into discrete physical objects before making a classification decision. This is executed via a three-step sequence:</p>\n<ul>\n<li><strong>Spatial Segmentation</strong>: The 2D spatial frame is processed through a segmentation model to generate bounding masks around each individual piece of wood.</li>\n<li><strong>Spectral Averaging</strong>: All HSI pixels inside a segmented mask are extracted and averaged into a single representative spectrum.</li>\n<li><strong>Deep Learning Inference</strong>: The classification model operates on this single, averaged high-dimensional vector.</li>\n</ul>\n<h2 id=\"4-experimental-evaluation-scenarios-accuracies\">4. Experimental Evaluation: Scenarios &amp; Accuracies</h2>\n<p>The classification performances of the Per Pixel and Per Sample pipelines were evaluated across three operational scenarios of increasing environmental complexity as described in Table 1. More details about the samples can be found in [7]. As mentioned earlier, because training and validation were always carried on a Per Pixel basis, we do not report validation accuracy for the Per Sample inference pipeline in Table 1.</p>\n<figure class=\"resource-table\">\n  <figcaption><strong>Table 1: Deep Learning Classification Accuracies Across Three Scenarios</strong></figcaption>\n  <table>\n    <thead>\n      <tr>\n        <th>Scenario</th>\n        <th>Description</th>\n        <th>Inference Pipeline</th>\n        <th>Validation Accuracy (%)</th>\n        <th>Test Accuracy (%)</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td rowspan=\"2\"><strong>Clean Sample</strong></td>\n        <td rowspan=\"2\">Clean, new composite samples in a controlled laboratory environment.</td>\n        <td>Per Pixel</td>\n        <td>99.9</td>\n        <td>99.8</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>100.0</td>\n      </tr>\n      <tr>\n        <td rowspan=\"2\"><strong>Landfilled Samples</strong></td>\n        <td rowspan=\"2\">Wood waste retrieved from the Vancouver Landfill, placed individually on a conveyor belt.</td>\n        <td>Per Pixel</td>\n        <td>91.6</td>\n        <td>85.5</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>91.2</td>\n      </tr>\n      <tr>\n        <td rowspan=\"2\"><strong>Landfilled Stream</strong></td>\n        <td rowspan=\"2\">Wood waste retrieved from the Vancouver Landfill, mixed together on a conveyor belt.</td>\n        <td>Per Pixel</td>\n        <td>94.5</td>\n        <td>82.0</td>\n      </tr>\n      <tr>\n        <td>Per Sample</td>\n        <td>—</td>\n        <td>83.3</td>\n      </tr>\n    </tbody>\n  </table>\n</figure>\n<p>Two critical conclusions can be drawn from these evaluation results:</p>\n<h3 id=\"41-scenario-complexity-vs-accuracy\">4.1 Scenario Complexity vs. Accuracy</h3>\n<p>As expected, model accuracy decreases as physical complexity increases. Under clean laboratory conditions, the deep learning model performed flawlessly, achieving 99.8% and 100% accuracy on the test sets.</p>\n<p>When transitioning to real wood waste pulled directly from the landfill, test accuracies dropped to the 85.5% - 91.1% range. This drop is due to weathered surfaces: some melamine-coated boards were missing chunks of their coating, while others were stained with dirt or mud. An example of false RGB image along with per pixel and per sample classification results obtained for the \"Landfilled Samples\" scenario is shown in Figure 1.</p>\n<p><img src=\"/api/media/file/image2.png\" alt=\"Per Pixel and Per Sample inference comparison based on a hyperspectral image of the Landfilled Samples scenario.\"></p>\n<p><em>Figure 1: Per Pixel and Per Sample inference comparison based a hyperspectral image of the Landfilled Samples scenario.</em></p>\n<p>The final \"Landfilled Stream\" scenario mimicked an active recycling facility, introducing spectral mixing, a phenomenon where light bounces off neighboring wood pieces and blends into the target's spectral reading. Despite physical overlapping and spectral mixing, the models still achieved a highly encouraging 82% to 83.3% test accuracy.</p>\n<h3 id=\"42-the-per-pixel-vs-per-sample-pipeline-trade-off\">4.2 The Per Pixel vs. Per Sample Pipeline Trade-Off</h3>\n<p>The Per Sample pipeline consistently yielded higher test accuracies (up to a 5.7% improvement in the Landfilled Samples scenario). This superior performance is driven by two factors:</p>\n<ul>\n<li><strong>Higher Signal-to-Noise Ratio (SNR):</strong> Averaging the spectra across an entire segmented sample smooths out random sensor noise.</li>\n<li><strong>Spectral Dilution:</strong> Weathered wood waste often has minor, localized defects (e.g., small dirt stains or cracks in a melamine face). By averaging the spectra over the entire segmented surface, these localized anomalies are chemically diluted by the dominant surface chemistry of the sample. This \"washes out\" localized noise to provide a general spectrum that is more representative of the material (Figure 1).</li>\n</ul>\n<p>However, this gain in accuracy comes with industrial trade-offs:</p>\n<ul>\n<li><strong>Loss of Fine-Grained Information:</strong> Per Pixel inference can tell a manufacturer exactly what percentage of a decorative melamine board is still covered in melamine versus how much is reduced to bare particleboard. Per Sample averaging loses this detailed surface-area mapping (Figure 1).</li>\n<li><strong>Processing Latency:</strong> Per Pixel inference is highly efficient; it can run in real time on a line-by-line stream from a line-scan hyperspectral camera. Conversely, segmentation driven Per Sample inference is more computationally intensive. Because segmentation requires a complete 2D image rather than a single line scan, a delay (potentially of a few seconds) is introduced to acquire and process the image, making it a near-real-time workflow.</li>\n</ul>\n<h2 id=\"5-metaspectrals-clarity-platform-powering-the-in-line-sorting-of-tomorrow\">5. Metaspectral's Clarity Platform: Powering the In-Line Sorting of Tomorrow</h2>\n<p>Deploying these classification systems within an active, profitable, high-speed industrial production environment requires massive processing power. Hyperspectral images are exceptionally large data packets. Processing these hypercubes on a fast-moving conveyor belt in real time is a significant computational challenge.</p>\n<p>This is where Metaspectral's Clarity platform comes in. Clarity is a state-of-the-art, cloud-based platform designed specifically to process hyperspectral images using deep learning. By combining the physical chemistry of near-infrared light with fast neural networks, Metaspectral's technology can:</p>\n<ul>\n<li><strong>Analyze complex chemical matrices on the fly,</strong> instantly distinguishing clean structural fiber from reclaimed timber containing chemicals.</li>\n<li><strong>Identify specific composite types,</strong> segregating incompatible binders (like UF particleboard).</li>\n<li><strong>Overcome industrial noise,</strong> automatically accounting for variables like conveyor belt speed and moisture variations.</li>\n</ul>\n<h2 id=\"references\">References</h2>\n<p>[1] \"Guide for Identifying, Evaluating and Selecting Policies for Influencing Construction, Renovation and Demolition Waste Management,\" Canadian Council of Ministers of the Environment, 2019.</p>\n<p>[2] \"Construction and Demolition - Waste Reduction and Recycling Toolkit,\" Metro Vancouver Regional District, Burnaby, BC, 2023.</p>\n<p>[3] \"2022 Construction &amp; Demolition Waste Composition Study,\" Dillon Consulting Limited, Metro Vancouver, 2023.</p>\n<p>[4] \"2022 Full-Scale Waste Composition Study Report,\" Dillon Consulting Limited, Metro Vancouver, 2023.</p>\n<p>[5] \"Our Nature. Our Power. Our Future: CleanBC Plan,\" Government of British Columbia, Highlights Report, 2018.</p>\n<p>[6] \"Canadian Council of Ministers of the Environment.\" Accessed: May 29, 2026. [Online]. Available: <a href=\"https://ccme.ca/en/current-activities/waste\">https://ccme.ca/en/current-activities/waste</a></p>\n<p>[7] A. Schild, \"Sensor-based sorting of waste wood composites and the use of composite particles in cement-bonded wood composites,\" Doctoral dissertation, University of British Columbia, Vancouver, BC, Canada, 2024.</p>","updatedAt":"2026-06-23T20:40:47.992Z","createdAt":"2026-06-22T21:50:11.572Z","_status":"published"},{"id":22,"title":"Turning One Reference Spectrum Into Full-Scene Target Detection","slug":"turning-one-reference-spectrum-into-full-scene-target-detection","excerpt":"See how a CNN-based single-spectrum detector trained on Clarity outperformed classical baselines on full-scene MUUFL target detection across multiple train-test scene pairs.","description":"See how a CNN-based single-spectrum detector trained on Clarity outperformed classical baselines on full-scene MUUFL target detection across multiple train-test scene pairs.","type":"Article","author":{"id":7,"name":"Ahmed Sigiuk","slug":"ahmed-sigiuk","email":null,"avatar":{"id":189,"alt":"Ahmed Sigiuk author headshot","caption":null,"sourcePath":"src/assets/team-headshot_4.png","updatedAt":"2026-06-23T19:31:05.725Z","createdAt":"2026-06-23T19:31:05.725Z","url":"/api/media/file/author-ahmed-sigiuk.png","thumbnailURL":"/api/media/file/author-ahmed-sigiuk-320x320.png","filename":"author-ahmed-sigiuk.png","mimeType":"image/png","filesize":956285,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-ahmed-sigiuk-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":221901,"filename":"author-ahmed-sigiuk-320x320.png"},"card":{"url":"/api/media/file/author-ahmed-sigiuk-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":960162,"filename":"author-ahmed-sigiuk-768x768.png"}}},"title":"Senior Deep Learning Engineer","bio":null,"updatedAt":"2026-06-23T19:31:40.946Z","createdAt":"2026-04-23T23:27:47.142Z"},"category":null,"contentStage":null,"layout":"default","tags":[],"industries":[],"products":[],"heroImage":{"id":183,"alt":"Turning One Reference Spectrum Into Full-Scene Target Detection","caption":null,"sourcePath":"../src/content/blog/turning-one-reference-spectrum-into-full-scene-target-detection/muufl_gulfport_campus_3.png","updatedAt":"2026-04-23T23:28:03.659Z","createdAt":"2026-04-23T23:28:03.659Z","url":"/api/media/file/muufl_gulfport_campus_3.png","thumbnailURL":"/api/media/file/muufl_gulfport_campus_3-320x305.png","filename":"muufl_gulfport_campus_3.png","mimeType":"image/png","filesize":268373,"width":345,"height":329,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/muufl_gulfport_campus_3-320x305.png","width":320,"height":305,"mimeType":"image/png","filesize":268415,"filename":"muufl_gulfport_campus_3-320x305.png"},"card":{"url":null,"width":null,"height":null,"mimeType":null,"filesize":null,"filename":null}}},"imageBackground":"dark","publishedAt":"2026-04-23T22:53:44.000Z","legacySourcePath":"../src/content/blog/turning-one-reference-spectrum-into-full-scene-target-detection/index.md","bodyMarkdown":"<p>Using a single reference spectrum per class, a CNN-based detector trained on Clarity outperformed the strongest tested classical baseline in most object-level comparisons on the MUUFL Gulfport dataset (Multi-Unit Spectroscopic Explorer and Hyperspectral Aerial Imagery for Gulfport), an airborne hyperspectral benchmark collected over the University of Southern Mississippi Gulf Park campus in Gulfport, Mississippi.</p>\n\n\n\n<p><strong>Introduction</strong></p>\n\n\n<p>Hyperspectral target detection is often framed as a practical question: if you know what a target spectrum looks like, can you find that target reliably in airborne imagery? In practice, that is not as simple as matching one clean signature to one clean pixel. The MUUFL Gulfport benchmark contains 64 cloth targets in three sizes; 0.5 m × 0.5 m, 1 m × 1 m, and 3 m × 3 m, while the hyperspectral imagery is delivered at 1 m ground sample distance. That means the benchmark includes targets that are clearly subpixel, targets that are roughly pixel-sized, and targets that span multiple pixels. Many pixels are also mixed pixels, containing not only part of the target signal but also background contributions from nearby vegetation, soil, pavement, rooftops, or other materials. On top of that, the dataset explicitly includes targets that are in shadow or partially or fully occluded by trees, which makes detection even harder.</p>\n\n\n\n<p>Classical detectors such as the matched filter (MF), adaptive cosine estimator (ACE), orthogonal subspace projection (OSP), and constrained energy minimization (CEM) remain strong baselines for this type of problem. But an important operational question is whether a learned model can do better when supervision is extremely sparse.</p>\n\n\n\n<p>That is what we explored on the MUUFL Gulfport benchmark.</p>\n\n\n\n<p>In our setup,each target class is represented by a single reference spectrum, and the task is to detect that target across cross-scene train–test pairs, where the model is trained on one flight image and evaluated on a different flight image. We evaluate three pairs shown in Table 1.. These scene pairs let us test the model across both scene changes and acquisition differences.</p>\n\n\n\n<p>Our results focus on four cloth target classes: brown, dark green, pea green, and faux vineyard green. These classes provide a consistent way to compare the learned model against classical baselines across the selected scene pairs.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Train scene</strong></td><td><strong>Test scene</strong></td><td><strong>Elevation change</strong></td><td><strong>Time difference between train and test scene</strong></td></tr><tr><td>Campus 1</td><td>Campus 3</td><td>3500 ft → 3500 ft</td><td>~18 hours</td></tr><tr><td>Campus 3</td><td>Campus 1</td><td>3500 ft → 3500 ft</td><td>~18 hours</td></tr><tr><td>Campus 1</td><td>Campus 4</td><td>3500 ft → 6700 ft</td><td>~47 minutes</td></tr></tbody></table><figcaption>Table 1. Train–test scene pairs</figcaption></figure>\n\n\n\n<p></p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Property</strong></td><td><strong>Value</strong></td></tr><tr><td>Bands</td><td>72</td></tr><tr><td>Wavelengths</td><td>367.7 nm to 1043.4 nm</td></tr><tr><td>Spatial resolution</td><td>1 m GSD</td></tr><tr><td>Target classes used here</td><td>Brown, dark green, pea green, faux vineyard green</td></tr></tbody></table><figcaption>Table 2. MUUFL dataset properties</figcaption></figure>\n\n\n\n<p>For this post, we focus on the evaluation view that is most relevant to a real scene-level detection problem: object-level detection quality under low false-alarm constraints. Figures 1 (A, B, and C)  gives visual context for the three test scenes emphasized in this post.</p>\n\n\n\n<div class=\"wp-container-4 wp-block-columns\">\n<div class=\"wp-container-3 wp-block-column\" style=\"flex-basis:100%\">\n<div class=\"wp-container-2 wp-block-columns\">\n<div class=\"wp-container-1 wp-block-column\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-2.png\" alt=\"\" class=\"wp-image-1918\" width=\"839\" height=\"809\" srcset=\"/api/media/file/image-2.png 674w, /api/media/file/image-2-600x579.png 600w\" sizes=\"(max-width: 839px) 100vw, 839px\" /><figcaption><strong>Figure 1A</strong>. Campus 1</figcaption></figure>\n</div>\n</div>\n</div>\n</div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-4.png\" alt=\"\" class=\"wp-image-1920\" width=\"840\" height=\"801\" srcset=\"/api/media/file/image-4.png 690w, /api/media/file/image-4-600x572.png 600w\" sizes=\"(max-width: 840px) 100vw, 840px\" /><figcaption><strong>Figure 1B.</strong> Campus 3</figcaption></figure>\n\n\n\n<p></p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-5.png\" alt=\"\" class=\"wp-image-1921\" width=\"838\" height=\"809\" srcset=\"/api/media/file/image-5.png 690w, /api/media/file/image-5-600x579.png 600w\" sizes=\"(max-width: 838px) 100vw, 838px\" /><figcaption><strong>Figure 1C</strong>.<strong> </strong>Campus 4</figcaption></figure>\n\n\n\n<h2><strong>Approach</strong></h2>\n\n\n\n<p>We used a CNN spectral model trained on Clarity, Metaspectral’s hyperspectral artificial intelligence platform, for single-spectrum target detection on MUUFL. Here, “single-spectrum” means that each target class is represented by one reference spectrum, which serves as the starting point for model training. On Clarity, the training workflow expands that reference information by generating synthetic target signatures, allowing the detector to learn from a broader set of target-like examples than the original spectrum alone would provide. That matters on MUUFL because the measured image spectra are often not clean target-only signatures. Depending on target size, scene geometry, and local conditions, a pixel may contain a mixture of target and background materials, and the observed target response can also be altered by effects such as shadow or partial tree occlusion.</p>\n\n\n\n<p>The model was evaluated against four classical baselines:</p>\n\n\n\n<ul><li><strong>MF</strong> — matched filter</li><li><strong>ACE</strong> — adaptive cosine estimator</li><li><strong>OSP</strong> — orthogonal subspace projection</li><li><strong>CEM</strong> — constrained energy minimization</li></ul>\n\n\n\n<p>For the main result, we use object-level evaluation. Here, the model is judged as an object detector, not just as a pixel scorer. Under the Bullwinkle protocol, the model first produces a dense score map over the scene, and those scores are then converted into object-level detections. Those detections are compared with the known target locations, so performance is measured in terms of whether the detector finds the target objects while avoiding false detections elsewhere in the scene. Figure 2 shows this object-level evaluation for the same campus 1 → 3 dark green case, making the hits, false positives, and missed targets visible in the scene.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"989\" src=\"/api/media/file/image-1024x989.png\" alt=\"\" class=\"wp-image-1915\" srcset=\"/api/media/file/image-1024x989.png 1024w, /api/media/file/image-600x580.png 600w, /api/media/file/image-768x742.png 768w, /api/media/file/image.png 1185w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /><figcaption><strong>Figure 2. </strong>Object-level scoring overlay for the campus 1 → 3 dark green target case. Green marks hits, red marks false positives, blue marks missed targets, and black marks masked regions.</figcaption></figure>\n\n\n\n<p>We summarize object-level detection behavior with NAUC (normalized area under the curve). In the Bullwinkle setting, this curve is an operational ROC-style curve that relates probability of detection to false alarms per square meter. Like AUROC, NAUC is threshold-independent: it summarizes performance across all decision thresholds rather than at one fixed threshold. The difference is that AUROC uses the full curve, while NAUC in this study is computed only over the low-false-alarm region up to a cutoff of 0.001 false alarms per square meter. That makes it especially useful when false positives matter, since it rewards detectors that stay strong in the operating region most relevant for practical target detection. Figure 3 shows one example of this curve for the campus 1 → 3 dark green case.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"425\" src=\"/api/media/file/image-1-1024x425.png\" alt=\"\" class=\"wp-image-1916\" srcset=\"/api/media/file/image-1-1024x425.png 1024w, /api/media/file/image-1-600x249.png 600w, /api/media/file/image-1-768x319.png 768w, /api/media/file/image-1-1536x637.png 1536w, /api/media/file/image-1.png 1784w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /><figcaption><strong>Figure 3.</strong> Object-level detection curve for the campus 1 → 3 dark green target case. The Bullwinkle curve plots probability of detection against false alarms per square meter, with NAUC computed up to the 0.001 cutoff.</figcaption></figure>\n\n\n\n<p>The workflow was run on Clarity end to end: hyperspectral data can be uploaded, labeled, used to train and evaluate models, and then carried forward into deployment-oriented target-detection workflows. That broader workflow is part of what makes these results meaningful beyond a single benchmark run. It makes benchmark results easier to reproduce, methods easier to compare under a consistent setup, and successful models easier to move toward deployment.</p>\n\n\n\n<p>Figure 4 shows the CNN score maps before object-level post-processing or metric evaluation. Each panel corresponds to one target class and one train–test scene pair, with brighter regions indicating stronger target likelihood. These maps are useful because they show not just where the model responds, but how concentrated or diffuse those responses are across the scene. In turn, that helps explain why some class/scene combinations translate into cleaner object-level detections than others.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th scope=\"col\"> </th><th scope=\"col\"><strong>campus 1 → campus 3</strong></th><th scope=\"col\"><strong>campus 3 → campus 1</strong></th><th scope=\"col\"><strong>campus 1 → campus 4</strong></th></tr></thead><tbody><tr><td><strong>Dark Green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-3-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Brown</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-4-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-1-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-1-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Pea Green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-5-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-2-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-2-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Faux vineyard green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-6-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-3-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-3-996x1024.png\" alt=\"\"></td></tr></tbody></table><figcaption><strong>Figure 4</strong>. Example raw prediction map from the CNN model.</figcaption></figure>\n\n\n\n<h2><strong>Key Findings</strong></h2>\n\n\n\n<p>The strongest result in this study comes from the object-level evaluation described above, where the model is judged on whether its scene-level detections recover target objects while avoiding false alarms elsewhere in the image. We summarize that behavior with object-level NAUC, a normalized 0-to-1 score in which higher values indicate better low-false-alarm detection performance. Table 3 summarizes the overall outcome across all train–test scene pairs, while Table 4 (A, B and C) provides the class-by-class breakdown for each pair. Under this object-level measure, the CNN outperformed the best tested classical baseline in 9 of 12 comparisons. Here, the classical comparison is not tied to one fixed method; for each case, it refers to whichever of MF, ACE, OSP, or CEM performed best.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Train–Test scene pair</strong></td><td><strong>NAUC wins</strong></td></tr><tr><td>campus 1 → 3</td><td>4 / 4</td></tr><tr><td>campus 3 → 1</td><td>3 / 4</td></tr><tr><td>campus 1 → 4</td><td>2 / 4</td></tr><tr><td><strong>Overall</strong></td><td><strong>9 / 12</strong></td></tr></tbody></table><figcaption><strong>Table 3. </strong>Object-level summary across train–test scene pairs</figcaption></figure>\n\n\n\n<p><strong>Object-level results by train–test scene pair</strong></p>\n\n\n\n<p>The scene-pair comparisons make it easier to see how performance changes from one train–test setup to another.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical</strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.442</strong></td><td>MF</td><td>0.386</td><td><strong>+0.056</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.512</strong></td><td>MF</td><td>0.432</td><td><strong>+0.080</strong></td></tr><tr><td><strong>Pea green</strong></td><td><strong>0.310</strong></td><td>MF</td><td>0.294</td><td><strong>+0.016</strong></td></tr><tr><td><strong>Faux vineyard green</strong></td><td><strong>0.564</strong></td><td>CEM</td><td>0.428</td><td><strong>+0.136</strong></td></tr></tbody></table><figcaption><strong>Table 4A. </strong>Object-level comparison for campus 1 → 3</figcaption></figure>\n\n\n\n<p>In Table 4A, campus 1 → 3 train-test scene pair, the CNN is ahead in all four classes. This is the strongest and cleanest transfer result in the set.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical&nbsp;</strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.444</strong></td><td>ACE</td><td>0.423</td><td><strong>+0.021</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.715</strong></td><td>ACE</td><td>0.665</td><td><strong>+0.050</strong></td></tr><tr><td><strong>Pea green</strong></td><td>0.382</td><td>MF</td><td>0.435</td><td>-0.053</td></tr><tr><td><strong>Faux vineyard green</strong></td><td><strong>0.662</strong></td><td>ACE</td><td>0.613</td><td><strong>+0.049</strong></td></tr></tbody></table><figcaption><strong>Table 4B. </strong>Object-level comparison for campus 3 → 1</figcaption></figure>\n\n\n\n<p>In Table 4B, campus 3 → 1 train-test scene pair the same pattern largely holds: the CNN remains ahead in three of the four classes.</p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical</strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.401</strong></td><td>MF</td><td>0.311</td><td><strong>+0.090</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.595</strong></td><td>MF</td><td>0.561</td><td><strong>+0.034</strong></td></tr><tr><td><strong>Pea green</strong></td><td>0.272</td><td>MF</td><td>0.310</td><td>-0.038</td></tr><tr><td><strong>Faux vineyard green</strong></td><td>0.408</td><td>MF</td><td>0.432</td><td>-0.024</td></tr></tbody></table><figcaption><strong>Table 4C.</strong> Object-level comparison for campus 1 → 4</figcaption></figure>\n\n\n\n<p>In Table 4C, the campus 1 → 4 train–test scene pair is the toughest of the three because it introduces the largest scene and acquisition change, including a shift from the 3500 ft collection group to the 6700 ft group. This makes it the most distinct train–test pairing in the study and provides a likely explanation for the lower CNN performance: in a single-spectrum setting, larger differences in scene and acquisition conditions can make the observed target spectra less consistent with the training signatures, which in turn makes detection harder.</p>\n\n\n\n<h2><strong>Discussion</strong></h2>\n\n\n\n<p>The most important point in these results is not simply that a CNN outperformed several classical baselines.</p>\n\n\n\n<p>The more useful point is how little information the model needed to get there.</p>\n\n\n\n<p>This was a single-spectrum setup: one reference spectrum per class, applied across cross-flight train–test scene pairs. That lowers the barrier to building practical target-detection workflows. In many real Earth observation (EO) settings, assembling large, carefully curated target datasets is expensive or unrealistic. A workflow that can begin from a single target spectrum is therefore operationally attractive.</p>\n\n\n\n<p>That is where the platform angle becomes important. The value here is not only the CNN itself, but the full workflow that turns a single reference spectrum into an operational target-detection pipeline. On Clarity, that starts by expanding the reference spectrum into synthetic target signatures for training. This helps because a single measured spectrum does not fully represent how a target will appear in real airborne imagery, where the observed signal can shift because of mixing, illumination, shadow, and surrounding materials. By exposing the model to a broader set of target-like examples, the workflow makes training more robust than relying on the original spectrum alone. From there, the same platform supports data upload, labeling, model training, evaluation, and deployment, making the results easier to reproduce and the path to operational use much more direct.</p>\n\n\n\n<p>The results also highlight an important point about how target-detection systems should be evaluated. For this study, object-level evaluation is the most relevant measure because the task is to find target objects across the scene under false-alarm constraints. In other applications, pixel-level evaluation may be more appropriate, particularly when the emphasis is on pixel-wise target separation rather than full-scene object detection.</p>\n\n\n\n<h2><strong>Conclusion</strong></h2>\n\n\n\n<p>On the MUUFL Gulfport benchmark, a CNN single-spectrum detector trained on Clarity outperformed a family of classical baselines in most object-level comparisons across multiple cross-flight train–test scene pairs.</p>\n\n\n\n<p>More importantly, these results show that practical hyperspectral target detection does not always require large target datasets or complex supervision. A single reference spectrum can be enough to drive a strong detection workflow when combined with a learned model and a platform that supports the full process from data ingestion through evaluation and deployment.</p>\n\n\n\n<p>That is the broader takeaway from this study: the value is not only in the model, but in the ability to turn a single-spectrum detection problem into a repeatable, operational workflow.</p>\n","bodyHtml":"<p>Using a single reference spectrum per class, a CNN-based detector trained on Clarity outperformed the strongest tested classical baseline in most object-level comparisons on the MUUFL Gulfport dataset (Multi-Unit Spectroscopic Explorer and Hyperspectral Aerial Imagery for Gulfport), an airborne hyperspectral benchmark collected over the University of Southern Mississippi Gulf Park campus in Gulfport, Mississippi.</p>\n<p><strong>Introduction</strong></p>\n\n<p>Hyperspectral target detection is often framed as a practical question: if you know what a target spectrum looks like, can you find that target reliably in airborne imagery? In practice, that is not as simple as matching one clean signature to one clean pixel. The MUUFL Gulfport benchmark contains 64 cloth targets in three sizes; 0.5 m × 0.5 m, 1 m × 1 m, and 3 m × 3 m, while the hyperspectral imagery is delivered at 1 m ground sample distance. That means the benchmark includes targets that are clearly subpixel, targets that are roughly pixel-sized, and targets that span multiple pixels. Many pixels are also mixed pixels, containing not only part of the target signal but also background contributions from nearby vegetation, soil, pavement, rooftops, or other materials. On top of that, the dataset explicitly includes targets that are in shadow or partially or fully occluded by trees, which makes detection even harder.</p>\n<p>Classical detectors such as the matched filter (MF), adaptive cosine estimator (ACE), orthogonal subspace projection (OSP), and constrained energy minimization (CEM) remain strong baselines for this type of problem. But an important operational question is whether a learned model can do better when supervision is extremely sparse.</p>\n<p>That is what we explored on the MUUFL Gulfport benchmark.</p>\n<p>In our setup,each target class is represented by a single reference spectrum, and the task is to detect that target across cross-scene train–test pairs, where the model is trained on one flight image and evaluated on a different flight image. We evaluate three pairs shown in Table 1.. These scene pairs let us test the model across both scene changes and acquisition differences.</p>\n<p>Our results focus on four cloth target classes: brown, dark green, pea green, and faux vineyard green. These classes provide a consistent way to compare the learned model against classical baselines across the selected scene pairs.</p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Train scene</strong></td><td><strong>Test scene</strong></td><td><strong>Elevation change</strong></td><td><strong>Time difference between train and test scene</strong></td></tr><tr><td>Campus 1</td><td>Campus 3</td><td>3500 ft → 3500 ft</td><td>~18 hours</td></tr><tr><td>Campus 3</td><td>Campus 1</td><td>3500 ft → 3500 ft</td><td>~18 hours</td></tr><tr><td>Campus 1</td><td>Campus 4</td><td>3500 ft → 6700 ft</td><td>~47 minutes</td></tr></tbody></table><figcaption>Table 1. Train–test scene pairs</figcaption></figure>\n<p></p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Property</strong></td><td><strong>Value</strong></td></tr><tr><td>Bands</td><td>72</td></tr><tr><td>Wavelengths</td><td>367.7 nm to 1043.4 nm</td></tr><tr><td>Spatial resolution</td><td>1 m GSD</td></tr><tr><td>Target classes used here</td><td>Brown, dark green, pea green, faux vineyard green</td></tr></tbody></table><figcaption>Table 2. MUUFL dataset properties</figcaption></figure>\n<p>For this post, we focus on the evaluation view that is most relevant to a real scene-level detection problem: object-level detection quality under low false-alarm constraints. Figures 1 (A, B, and C)  gives visual context for the three test scenes emphasized in this post.</p>\n<div class=\"wp-container-4 wp-block-columns\">\n<div class=\"wp-container-3 wp-block-column\" style=\"flex-basis:100%\">\n<div class=\"wp-container-2 wp-block-columns\">\n<div class=\"wp-container-1 wp-block-column\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-2.png\" alt=\"\" class=\"wp-image-1918\" width=\"839\" height=\"809\" srcset=\"/api/media/file/image-2.png 674w, /api/media/file/image-2-600x579.png 600w\" sizes=\"(max-width: 839px) 100vw, 839px\"><figcaption><strong>Figure 1A</strong>. Campus 1</figcaption></figure>\n</div>\n</div>\n</div>\n</div>\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-4.png\" alt=\"\" class=\"wp-image-1920\" width=\"840\" height=\"801\" srcset=\"/api/media/file/image-4.png 690w, /api/media/file/image-4-600x572.png 600w\" sizes=\"(max-width: 840px) 100vw, 840px\"><figcaption><strong>Figure 1B.</strong> Campus 3</figcaption></figure>\n<p></p>\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"/api/media/file/image-5.png\" alt=\"\" class=\"wp-image-1921\" width=\"838\" height=\"809\" srcset=\"/api/media/file/image-5.png 690w, /api/media/file/image-5-600x579.png 600w\" sizes=\"(max-width: 838px) 100vw, 838px\"><figcaption><strong>Figure 1C</strong>.<strong> </strong>Campus 4</figcaption></figure>\n<h2 id=\"approach\"><strong>Approach</strong></h2>\n<p>We used a CNN spectral model trained on Clarity, Metaspectral’s hyperspectral artificial intelligence platform, for single-spectrum target detection on MUUFL. Here, “single-spectrum” means that each target class is represented by one reference spectrum, which serves as the starting point for model training. On Clarity, the training workflow expands that reference information by generating synthetic target signatures, allowing the detector to learn from a broader set of target-like examples than the original spectrum alone would provide. That matters on MUUFL because the measured image spectra are often not clean target-only signatures. Depending on target size, scene geometry, and local conditions, a pixel may contain a mixture of target and background materials, and the observed target response can also be altered by effects such as shadow or partial tree occlusion.</p>\n<p>The model was evaluated against four classical baselines:</p>\n<ul><li><strong>MF</strong> — matched filter</li><li><strong>ACE</strong> — adaptive cosine estimator</li><li><strong>OSP</strong> — orthogonal subspace projection</li><li><strong>CEM</strong> — constrained energy minimization</li></ul>\n<p>For the main result, we use object-level evaluation. Here, the model is judged as an object detector, not just as a pixel scorer. Under the Bullwinkle protocol, the model first produces a dense score map over the scene, and those scores are then converted into object-level detections. Those detections are compared with the known target locations, so performance is measured in terms of whether the detector finds the target objects while avoiding false detections elsewhere in the scene. Figure 2 shows this object-level evaluation for the same campus 1 → 3 dark green case, making the hits, false positives, and missed targets visible in the scene.</p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"989\" src=\"/api/media/file/image-1024x989.png\" alt=\"\" class=\"wp-image-1915\" srcset=\"/api/media/file/image-1024x989.png 1024w, /api/media/file/image-600x580.png 600w, /api/media/file/image-768x742.png 768w, /api/media/file/image.png 1185w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"><figcaption><strong>Figure 2. </strong>Object-level scoring overlay for the campus 1 → 3 dark green target case. Green marks hits, red marks false positives, blue marks missed targets, and black marks masked regions.</figcaption></figure>\n<p>We summarize object-level detection behavior with NAUC (normalized area under the curve). In the Bullwinkle setting, this curve is an operational ROC-style curve that relates probability of detection to false alarms per square meter. Like AUROC, NAUC is threshold-independent: it summarizes performance across all decision thresholds rather than at one fixed threshold. The difference is that AUROC uses the full curve, while NAUC in this study is computed only over the low-false-alarm region up to a cutoff of 0.001 false alarms per square meter. That makes it especially useful when false positives matter, since it rewards detectors that stay strong in the operating region most relevant for practical target detection. Figure 3 shows one example of this curve for the campus 1 → 3 dark green case.</p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"425\" src=\"/api/media/file/image-1-1024x425.png\" alt=\"\" class=\"wp-image-1916\" srcset=\"/api/media/file/image-1-1024x425.png 1024w, /api/media/file/image-1-600x249.png 600w, /api/media/file/image-1-768x319.png 768w, /api/media/file/image-1-1536x637.png 1536w, /api/media/file/image-1.png 1784w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"><figcaption><strong>Figure 3.</strong> Object-level detection curve for the campus 1 → 3 dark green target case. The Bullwinkle curve plots probability of detection against false alarms per square meter, with NAUC computed up to the 0.001 cutoff.</figcaption></figure>\n<p>The workflow was run on Clarity end to end: hyperspectral data can be uploaded, labeled, used to train and evaluate models, and then carried forward into deployment-oriented target-detection workflows. That broader workflow is part of what makes these results meaningful beyond a single benchmark run. It makes benchmark results easier to reproduce, methods easier to compare under a consistent setup, and successful models easier to move toward deployment.</p>\n<p>Figure 4 shows the CNN score maps before object-level post-processing or metric evaluation. Each panel corresponds to one target class and one train–test scene pair, with brighter regions indicating stronger target likelihood. These maps are useful because they show not just where the model responds, but how concentrated or diffuse those responses are across the scene. In turn, that helps explain why some class/scene combinations translate into cleaner object-level detections than others.</p>\n<figure class=\"wp-block-table\"><table><thead><tr><th scope=\"col\"> </th><th scope=\"col\"><strong>campus 1 → campus 3</strong></th><th scope=\"col\"><strong>campus 3 → campus 1</strong></th><th scope=\"col\"><strong>campus 1 → campus 4</strong></th></tr></thead><tbody><tr><td><strong>Dark Green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-3-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Brown</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-4-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-1-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-1-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Pea Green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-5-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-2-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-2-996x1024.png\" alt=\"\"></td></tr><tr><td><strong>Faux vineyard green</strong></td><td><img src=\"/api/media/file/muufl_gulfport_campus_3_raw_prediction-6-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_1_raw_prediction-3-996x1024.png\" alt=\"\"></td><td><img src=\"/api/media/file/muufl_gulfport_campus_5_raw_prediction-3-996x1024.png\" alt=\"\"></td></tr></tbody></table><figcaption><strong>Figure 4</strong>. Example raw prediction map from the CNN model.</figcaption></figure>\n<h2 id=\"key-findings\"><strong>Key Findings</strong></h2>\n<p>The strongest result in this study comes from the object-level evaluation described above, where the model is judged on whether its scene-level detections recover target objects while avoiding false alarms elsewhere in the image. We summarize that behavior with object-level NAUC, a normalized 0-to-1 score in which higher values indicate better low-false-alarm detection performance. Table 3 summarizes the overall outcome across all train–test scene pairs, while Table 4 (A, B and C) provides the class-by-class breakdown for each pair. Under this object-level measure, the CNN outperformed the best tested classical baseline in 9 of 12 comparisons. Here, the classical comparison is not tied to one fixed method; for each case, it refers to whichever of MF, ACE, OSP, or CEM performed best.</p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Train–Test scene pair</strong></td><td><strong>NAUC wins</strong></td></tr><tr><td>campus 1 → 3</td><td>4 / 4</td></tr><tr><td>campus 3 → 1</td><td>3 / 4</td></tr><tr><td>campus 1 → 4</td><td>2 / 4</td></tr><tr><td><strong>Overall</strong></td><td><strong>9 / 12</strong></td></tr></tbody></table><figcaption><strong>Table 3. </strong>Object-level summary across train–test scene pairs</figcaption></figure>\n<p><strong>Object-level results by train–test scene pair</strong></p>\n<p>The scene-pair comparisons make it easier to see how performance changes from one train–test setup to another.</p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical</strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.442</strong></td><td>MF</td><td>0.386</td><td><strong>+0.056</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.512</strong></td><td>MF</td><td>0.432</td><td><strong>+0.080</strong></td></tr><tr><td><strong>Pea green</strong></td><td><strong>0.310</strong></td><td>MF</td><td>0.294</td><td><strong>+0.016</strong></td></tr><tr><td><strong>Faux vineyard green</strong></td><td><strong>0.564</strong></td><td>CEM</td><td>0.428</td><td><strong>+0.136</strong></td></tr></tbody></table><figcaption><strong>Table 4A. </strong>Object-level comparison for campus 1 → 3</figcaption></figure>\n<p>In Table 4A, campus 1 → 3 train-test scene pair, the CNN is ahead in all four classes. This is the strongest and cleanest transfer result in the set.</p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical </strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.444</strong></td><td>ACE</td><td>0.423</td><td><strong>+0.021</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.715</strong></td><td>ACE</td><td>0.665</td><td><strong>+0.050</strong></td></tr><tr><td><strong>Pea green</strong></td><td>0.382</td><td>MF</td><td>0.435</td><td>-0.053</td></tr><tr><td><strong>Faux vineyard green</strong></td><td><strong>0.662</strong></td><td>ACE</td><td>0.613</td><td><strong>+0.049</strong></td></tr></tbody></table><figcaption><strong>Table 4B. </strong>Object-level comparison for campus 3 → 1</figcaption></figure>\n<p>In Table 4B, campus 3 → 1 train-test scene pair the same pattern largely holds: the CNN remains ahead in three of the four classes.</p>\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Class</strong></td><td><strong>CNN NAUC</strong></td><td><strong>Best classical</strong></td><td><strong>Classical NAUC</strong></td><td><strong>Δ</strong></td></tr><tr><td><strong>Dark green</strong></td><td><strong>0.401</strong></td><td>MF</td><td>0.311</td><td><strong>+0.090</strong></td></tr><tr><td><strong>Brown</strong></td><td><strong>0.595</strong></td><td>MF</td><td>0.561</td><td><strong>+0.034</strong></td></tr><tr><td><strong>Pea green</strong></td><td>0.272</td><td>MF</td><td>0.310</td><td>-0.038</td></tr><tr><td><strong>Faux vineyard green</strong></td><td>0.408</td><td>MF</td><td>0.432</td><td>-0.024</td></tr></tbody></table><figcaption><strong>Table 4C.</strong> Object-level comparison for campus 1 → 4</figcaption></figure>\n<p>In Table 4C, the campus 1 → 4 train–test scene pair is the toughest of the three because it introduces the largest scene and acquisition change, including a shift from the 3500 ft collection group to the 6700 ft group. This makes it the most distinct train–test pairing in the study and provides a likely explanation for the lower CNN performance: in a single-spectrum setting, larger differences in scene and acquisition conditions can make the observed target spectra less consistent with the training signatures, which in turn makes detection harder.</p>\n<h2 id=\"discussion\"><strong>Discussion</strong></h2>\n<p>The most important point in these results is not simply that a CNN outperformed several classical baselines.</p>\n<p>The more useful point is how little information the model needed to get there.</p>\n<p>This was a single-spectrum setup: one reference spectrum per class, applied across cross-flight train–test scene pairs. That lowers the barrier to building practical target-detection workflows. In many real Earth observation (EO) settings, assembling large, carefully curated target datasets is expensive or unrealistic. A workflow that can begin from a single target spectrum is therefore operationally attractive.</p>\n<p>That is where the platform angle becomes important. The value here is not only the CNN itself, but the full workflow that turns a single reference spectrum into an operational target-detection pipeline. On Clarity, that starts by expanding the reference spectrum into synthetic target signatures for training. This helps because a single measured spectrum does not fully represent how a target will appear in real airborne imagery, where the observed signal can shift because of mixing, illumination, shadow, and surrounding materials. By exposing the model to a broader set of target-like examples, the workflow makes training more robust than relying on the original spectrum alone. From there, the same platform supports data upload, labeling, model training, evaluation, and deployment, making the results easier to reproduce and the path to operational use much more direct.</p>\n<p>The results also highlight an important point about how target-detection systems should be evaluated. For this study, object-level evaluation is the most relevant measure because the task is to find target objects across the scene under false-alarm constraints. In other applications, pixel-level evaluation may be more appropriate, particularly when the emphasis is on pixel-wise target separation rather than full-scene object detection.</p>\n<h2 id=\"conclusion\"><strong>Conclusion</strong></h2>\n<p>On the MUUFL Gulfport benchmark, a CNN single-spectrum detector trained on Clarity outperformed a family of classical baselines in most object-level comparisons across multiple cross-flight train–test scene pairs.</p>\n<p>More importantly, these results show that practical hyperspectral target detection does not always require large target datasets or complex supervision. A single reference spectrum can be enough to drive a strong detection workflow when combined with a learned model and a platform that supports the full process from data ingestion through evaluation and deployment.</p>\n<p>That is the broader takeaway from this study: the value is not only in the model, but in the ability to turn a single-spectrum detection problem into a repeatable, operational workflow.</p>","updatedAt":"2026-06-23T19:40:13.609Z","createdAt":"2026-04-23T23:28:04.113Z","_status":"published"},{"id":21,"title":"Lithium Detection over the McDermitt Deposit Using Metaspectral’s Clarity Platform","slug":"lithium-detection-hyperspectral-imaging-metaspectral","excerpt":"Lithium detection pipeline at the McDermitt deposit using EnMAP hyperspectral data and Metaspectral’s Clarity analysis platform.","description":"Lithium detection pipeline at the McDermitt deposit using EnMAP hyperspectral data and Metaspectral’s Clarity analysis platform.","type":"Article","author":{"id":6,"name":"Guillaume Hans","slug":"guillaume-hans","email":null,"avatar":{"id":188,"alt":"Guillaume Hans author headshot","caption":null,"sourcePath":"src/assets/team-headshot_3.jpg","updatedAt":"2026-06-23T19:31:04.863Z","createdAt":"2026-06-23T19:31:04.863Z","url":"/api/media/file/author-guillaume-hans.jpg","thumbnailURL":"/api/media/file/author-guillaume-hans-320x320.jpg","filename":"author-guillaume-hans.jpg","mimeType":"image/jpeg","filesize":101598,"width":1024,"height":1024,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-guillaume-hans-320x320.jpg","width":320,"height":320,"mimeType":"image/jpeg","filesize":15637,"filename":"author-guillaume-hans-320x320.jpg"},"card":{"url":"/api/media/file/author-guillaume-hans-768x768.jpg","width":768,"height":768,"mimeType":"image/jpeg","filesize":60445,"filename":"author-guillaume-hans-768x768.jpg"}}},"title":"Senior Research Scientist","bio":null,"updatedAt":"2026-06-23T19:31:40.594Z","createdAt":"2026-04-23T23:27:03.623Z"},"category":null,"contentStage":null,"layout":"default","tags":[],"industries":[],"products":[],"heroImage":{"id":133,"alt":"Lithium Detection over the McDermitt Deposit Using Metaspectral’s Clarity Platform","caption":null,"sourcePath":"../src/content/blog/lithium-detection-hyperspectral-imaging-metaspectral/feature_img.jpg","updatedAt":"2026-04-23T23:27:16.043Z","createdAt":"2026-04-23T23:27:16.043Z","url":"/api/media/file/feature_img.jpg","thumbnailURL":"/api/media/file/feature_img-320x149.jpg","filename":"feature_img.jpg","mimeType":"image/jpeg","filesize":562960,"width":1916,"height":892,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/feature_img-320x149.jpg","width":320,"height":149,"mimeType":"image/jpeg","filesize":14951,"filename":"feature_img-320x149.jpg"},"card":{"url":"/api/media/file/feature_img-768x358.jpg","width":768,"height":358,"mimeType":"image/jpeg","filesize":77505,"filename":"feature_img-768x358.jpg"}}},"imageBackground":"dark","publishedAt":"2026-04-16T01:28:48.000Z","legacySourcePath":"../src/content/blog/lithium-detection-hyperspectral-imaging-metaspectral/index.md","bodyMarkdown":"<p>The global race for critical minerals is putting pressure on traditional exploration methods. The hunt for &#8220;white gold&#8221;, lithium, is shifting from traditional soil sampling toward advanced hyperspectral imaging to identify resources that are too remote or complex. Accelerating this discovery is vital for the green energy transition, but it requires tools that can process massive satellite datasets with geological precision.</p>\n\n\n\n<p>A landmark study by Asadzadeh &amp; Chabrillat (2025) demonstrates this potential in the McDermitt Caldera, the largest known lithium deposit in the United States, located in south-east Oregon at the Nevada border. Their research utilizes EnMAP satellite data and a methodology called “Mixture-Tuned Feature Matching” (MTFM) to accurately detect lithium-bearing minerals. MTFM works by isolating diagnostic absorption features through continuum removal, generating synthetic library mixtures at discrete increments, and performing least-square fitting to find the best spectral match for every image pixel.</p>\n\n\n\n<p>Metaspectral&#8217;s <a href=\"https://clarity.metaspectral.com/sandbox\" target=\"_blank\" rel=\"noreferrer noopener\">Clarity Platform</a> is designed to bring this level of academic rigor to the industrial scale. As a high-performance, cloud-native hyperspectral analysis platform, Clarity allows exploration teams to replicate this type of workflow while comparing it against Clarity’s internal deep learning tools. In this post, we walk through the replication of the MTFM lithium detection pipeline, from initial unmixing to sub-nanometer polynomial fitting, and show how AI-driven target detection can be used to rapidly identify high-potential zones before performing detailed spectral analysis.</p>\n\n\n\n<h2>Leveraging EnMAP Imagery</h2>\n\n\n\n<p>For this study, like Asadzadeh &amp; Chabrillat (2025), we utilize data from the Environmental Mapping and Analysis Program (EnMAP). EnMAP provides high-quality hyperspectral data with 242 bands across the visible and near-infrared (VNIR) and short-wave infrared (SWIR) regions (420 nm to 2450 nm). Its spectral sampling of approximately 6.5 nm in the VNIR and 10 nm in the SWIR makes it uniquely suited for mineral exploration. Clarity is designed to directly ingest EnMAP’s products, allowing us to focus directly on our task: lithium detection. Figure 1 shows the EnMAP image acquired over the McDermitt deposit.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/figure1b.jpg\"><img loading=\"lazy\" width=\"1024\" height=\"396\" src=\"/api/media/file/figure1b-1024x396.jpg\" alt=\"\" class=\"wp-image-1885\" srcset=\"/api/media/file/figure1b-1024x396.jpg 1024w, /api/media/file/figure1b-600x232.jpg 600w, /api/media/file/figure1b-768x297-1.jpg 768w, /api/media/file/figure1b.jpg 1103w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /></a><figcaption>Figure 1: EnMAP image acquired over the McDermitt deposit (OR &amp; NV, USA), acquired on June 22nd 2024.</figcaption></figure>\n\n\n\n<h2>Lithium detection workflow in Clarity</h2>\n\n\n\n<p>Lithium in the McDermitt deposit is primarily hosted in Hectorite, a lithium-rich smectite clay. The key to identifying it remotely lies in the SWIR spectrum, specifically the 2200–2400 nm region. This range contains diagnostic absorption features for lithium-bearing clays, which shift slightly depending on the substitution of Lithium (Li) for Magnesium (Mg) in the mineral lattice.</p>\n\n\n\n<p>To translate these geological markers into a digital map, we leverage the following workflow within the Clarity environment.</p>\n\n\n\n<h3>Vegetation masking</h3>\n\n\n\n<p>Before looking for minerals, we must remove &#8220;noise&#8221; from the landscape. In areas with sparse or dense vegetation, Photosynthetic Vegetation (PV) and Non-Photosynthetic Vegetation (NPV) can obscure mineral signatures. Using Clarity’s Linear Spectral Unmixing tool, we decompose each pixel into Soil, PV, and NPV components. This results in abundance maps shown in Figure 2, corresponding to each of these endmembers. All pixels from the ENMAP image for which the Soil fraction was smaller than 0.5 (50%) were masked.</p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"/api/media/file/Figure_2.jpg\"><img loading=\"lazy\" src=\"/api/media/file/Figure_2-1024x233.jpg\" alt=\"\" class=\"wp-image-1875\" width=\"836\" height=\"190\" srcset=\"/api/media/file/Figure_2-1024x233.jpg 1024w, /api/media/file/Figure_2-600x137.jpg 600w, /api/media/file/Figure_2-768x175-1.jpg 768w, /api/media/file/Figure_2-1500x343.jpg 1500w, /api/media/file/Figure_2.jpg 1507w\" sizes=\"(max-width: 836px) 100vw, 836px\" /></a><figcaption><a>Figure </a>2: Fractions (abundances) of Soil, Photosynthetic Vegetation (PV) and Non-Photosynthetic Vegetation (NPV).</figcaption></figure>\n\n\n\n<h3>Continuum Removal for Feature Enhancement</h3>\n\n\n\n<p>To compare mineral signatures accurately, we must isolate the absorption pits from the overall &#8220;slope&#8221; of the reflectance curve. This is achieved through Continuum Removal (CR).&nbsp;</p>\n\n\n\n<p>In raw spectra, the true shape of an absorption feature is often distorted by the background reflectance (“continuum”) caused by factors like grain size, surface moisture, or other non-target minerals. This background creates an overall slope that can shift the apparent position of an absorption minimum or make a deep feature appear shallow. By removing this continuum, we effectively &#8220;zoom in&#8221; on the chemical bonds of the mineral itself, effectively normalizing the data so that the depth and shape of the Hectorite absorption feature become the primary variables (as illustrated in Figure 3).</p>\n\n\n\n<p>In Clarity, CR is achieved using a fast convex hull computation algorithm. This process &#8220;flattens&#8221; the spectrum between 2200 and 2400 nm, allowing for precise comparison between image pixels and library standards.</p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture4.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture4.png\" alt=\"\" class=\"wp-image-1879\" width=\"760\" height=\"268\" srcset=\"/api/media/file/Picture4.png 624w, /api/media/file/Picture4-600x212.png 600w\" sizes=\"(max-width: 760px) 100vw, 760px\" /></a><figcaption><a>Figure </a>3: USGS reflectance spectra of Hectorite, Nontronite and Saponite before and after continuum removal.</figcaption></figure>\n\n\n\n<h3>Library Spectra and Synthetic Mixtures</h3>\n\n\n\n<p>The ENMAP image spectra are compared against gold-standard spectra from the USGS library. Following Asadzadeh &amp; Chabrillat (2025), spectra from three minerals were selected: Hectorite, Nontronite, and Saponite. Indeed, while Hectorite is the primary lithium-bearing mineral at McDermitt, it rarely occurs in isolation. It is typically found within a complex assemblage of smectite clays, including Nontronite (Fe-rich) and Saponite (Mg-rich). Identifying the specific &#8220;sweet spot&#8221; of lithium mineralization requires distinguishing Hectorite from these spectrally similar neighbors (Figure 3). To account for this, Clarity generates linear mixtures of these three primary minerals based on their spectra, automatically resamples them to match the specific wavelength intervals of ENMAP and applies the same CR pre-processing. This provides a comprehensive reference set for the complex mineralogies found at the McDermitt site (Figure 4).</p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture5.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture5.png\" alt=\"\" class=\"wp-image-1878\" width=\"780\" height=\"469\" /></a><figcaption><em>Figure 4:</em> <em>Hectorite &#8211; Nontronite – Saponite spectral mixtures representing the complex mineralogies found at the McDermitt site.</em></figcaption></figure>\n\n\n\n<h3>Mixture Tuned Feature Matching (MTFM)</h3>\n\n\n\n<p>This is the &#8220;engine room&#8221; of this lithium detection approach. MTFM performs a Least Square Fitting to match each image pixel against every synthetic mixture presented above (Figure 4) and computes the Pearson Correlation. The specific mixture that yielded the highest match is retained along with the correlation value. To maximize the signal-to-noise ratio and ensure high-confidence detections, we retain only pixels with a correlation higher than 90%. This procedure provides a robust estimate of mineral presence. The correlation value serves as a proxy for mineral abundance, allowing us to generate a heatmap ranging from low to high lithium potential. These heatmaps are presented in Figure 5 where pixels with a correlation lower than 90% were masked for visual interpretability purposes.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/Picture6.png\"><img loading=\"lazy\" width=\"1024\" height=\"696\" src=\"/api/media/file/Picture6-1024x696.png\" alt=\"\" class=\"wp-image-1880\" srcset=\"/api/media/file/Picture6-1024x696.png 1024w, /api/media/file/Picture6-600x408.png 600w, /api/media/file/Picture6-768x522-1.png 768w, /api/media/file/Picture6.png 1422w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /></a><figcaption><em>Figure 5: Heatmap of Pearson Correlation along with Hectorite, Nontronite and Saponite abundance as defined in the synthetic spectra mixtures. Pixels with correlation smaller then 0.9 were masked for clarity purposes.</em></figcaption></figure>\n\n\n\n<h2>Streamlining the Workflow with Deep Learning</h2>\n\n\n\n<p>While the MTFM approach is highly effective, the preprocessing required, the manual creation of synthetic mixtures and iterative least-square fitting can be computationally intensive and time-consuming. To accelerate discovery, Clarity offers a Deep Learning Target Detection model.</p>\n\n\n\n<p>By using the USGS Hectorite spectrum directly as a target, the deep learning model can generate an abundance map (Figure 6) that rivals the accuracy of the MTFM approach while bypassing the preprocessing, mixture creation, and fitting stages entirely. This reduces the time and effort required, thereby offering potential for rapid field deployment and decision-making.</p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture7.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture7.png\" alt=\"\" class=\"wp-image-1881\" width=\"829\" height=\"561\" /></a><figcaption><a>Figure </a>6: Hectorite abundance derived using Clarity’s deep learning-based target detection method.</figcaption></figure>\n\n\n\n<h2>Hectorite Lithium Richness</h2>\n\n\n\n<p>The final and most precise step involves finding the analytic minimum of the hectorite absorption pit. This analysis can be applied directly to the high-confidence pixels identified via the MTFM workflow or the Deep Learning model. Because lithium content causes a subtle shift in the position of the absorption pit, a 4th-order polynomial is fitted to the pixels with the highest hectorite abundance. Despite EnMAP&#8217;s 10 nm spectral sampling, polynomial fitting allows Clarity to estimate the exact wavelength of the minimum at a sub-nanometer scale. By mapping these precise wavelength positions across the deposit (Figure 7), Clarity effectively grades the lithium concentration of the Hectorite clays from space or aircraft. Higher Lithium content is translated by a shift of the absorption pit towards lower wavelengths.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/Picture8.png\"><img loading=\"lazy\" width=\"1024\" height=\"665\" src=\"/api/media/file/Picture8-1024x665.png\" alt=\"\" class=\"wp-image-1882\" srcset=\"/api/media/file/Picture8-1024x665.png 1024w, /api/media/file/Picture8-600x390.png 600w, /api/media/file/Picture8-768x499-1.png 768w, /api/media/file/Picture8.png 1431w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /></a><figcaption><em>Figure 7: Hectorite composition in terms of Lithium versus Magnesium content.</em><br></figcaption></figure>\n\n\n\n<h2>Conclusion</h2>\n\n\n\n<p>Metaspectral’s <a href=\"https://clarity.metaspectral.com/sandbox\" target=\"_blank\" rel=\"noreferrer noopener\">Clarity platform</a> moves your hyperspectral data from reflectance to actionable mineralogical maps. Clarity provides the flexibility to compare and combine industry-standard methodologies with modern AI-driven tools to replicate and scale state-of-the-art research. This dual-pathway approach ensures both operational efficiency and geological accuracy, securing the future of the global critical minerals and green energy sectors.</p>\n\n\n\n<p><strong>Are you exploring Lithium or other critical minerals?</strong> </p>\n\n\n\n<p><a href=\"https://metaspectral.com/contact/\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Metaspectral</a> to see how Clarity can accelerate your discovery timelines.</p>\n\n\n\n<p></p>\n\n\n\n<h4><strong>References</strong></h4>\n\n\n\n<p>Asadzadeh, S. &amp; Chabrillat, S. (2025). Leveraging EnMAP hyperspectral data for mineral exploration: Examples from different deposit types. Ore <em>Geology Reviews</em>, <em>186</em>, 106912. <a href=\"https://doi.org/10.1016/j.oregeorev.2025.106912\" target=\"_blank\" rel=\"noreferrer noopener\">https://doi.org/10.1016/j.oregeorev.2025.106912</a></p>","bodyHtml":"<p>The global race for critical minerals is putting pressure on traditional exploration methods. The hunt for “white gold”, lithium, is shifting from traditional soil sampling toward advanced hyperspectral imaging to identify resources that are too remote or complex. Accelerating this discovery is vital for the green energy transition, but it requires tools that can process massive satellite datasets with geological precision.</p>\n<p>A landmark study by Asadzadeh &#x26; Chabrillat (2025) demonstrates this potential in the McDermitt Caldera, the largest known lithium deposit in the United States, located in south-east Oregon at the Nevada border. Their research utilizes EnMAP satellite data and a methodology called “Mixture-Tuned Feature Matching” (MTFM) to accurately detect lithium-bearing minerals. MTFM works by isolating diagnostic absorption features through continuum removal, generating synthetic library mixtures at discrete increments, and performing least-square fitting to find the best spectral match for every image pixel.</p>\n<p>Metaspectral’s <a href=\"https://clarity.metaspectral.com/sandbox\" target=\"_blank\" rel=\"noreferrer noopener\">Clarity Platform</a> is designed to bring this level of academic rigor to the industrial scale. As a high-performance, cloud-native hyperspectral analysis platform, Clarity allows exploration teams to replicate this type of workflow while comparing it against Clarity’s internal deep learning tools. In this post, we walk through the replication of the MTFM lithium detection pipeline, from initial unmixing to sub-nanometer polynomial fitting, and show how AI-driven target detection can be used to rapidly identify high-potential zones before performing detailed spectral analysis.</p>\n<h2 id=\"leveraging-enmap-imagery\">Leveraging EnMAP Imagery</h2>\n<p>For this study, like Asadzadeh &#x26; Chabrillat (2025), we utilize data from the Environmental Mapping and Analysis Program (EnMAP). EnMAP provides high-quality hyperspectral data with 242 bands across the visible and near-infrared (VNIR) and short-wave infrared (SWIR) regions (420 nm to 2450 nm). Its spectral sampling of approximately 6.5 nm in the VNIR and 10 nm in the SWIR makes it uniquely suited for mineral exploration. Clarity is designed to directly ingest EnMAP’s products, allowing us to focus directly on our task: lithium detection. Figure 1 shows the EnMAP image acquired over the McDermitt deposit.</p>\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/figure1b.jpg\"><img loading=\"lazy\" width=\"1024\" height=\"396\" src=\"/api/media/file/figure1b-1024x396.jpg\" alt=\"\" class=\"wp-image-1885\" srcset=\"/api/media/file/figure1b-1024x396.jpg 1024w, /api/media/file/figure1b-600x232.jpg 600w, /api/media/file/figure1b-768x297-1.jpg 768w, /api/media/file/figure1b.jpg 1103w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"></a><figcaption>Figure 1: EnMAP image acquired over the McDermitt deposit (OR &#x26; NV, USA), acquired on June 22nd 2024.</figcaption></figure>\n<h2 id=\"lithium-detection-workflow-in-clarity\">Lithium detection workflow in Clarity</h2>\n<p>Lithium in the McDermitt deposit is primarily hosted in Hectorite, a lithium-rich smectite clay. The key to identifying it remotely lies in the SWIR spectrum, specifically the 2200–2400 nm region. This range contains diagnostic absorption features for lithium-bearing clays, which shift slightly depending on the substitution of Lithium (Li) for Magnesium (Mg) in the mineral lattice.</p>\n<p>To translate these geological markers into a digital map, we leverage the following workflow within the Clarity environment.</p>\n<h3 id=\"vegetation-masking\">Vegetation masking</h3>\n<p>Before looking for minerals, we must remove “noise” from the landscape. In areas with sparse or dense vegetation, Photosynthetic Vegetation (PV) and Non-Photosynthetic Vegetation (NPV) can obscure mineral signatures. Using Clarity’s Linear Spectral Unmixing tool, we decompose each pixel into Soil, PV, and NPV components. This results in abundance maps shown in Figure 2, corresponding to each of these endmembers. All pixels from the ENMAP image for which the Soil fraction was smaller than 0.5 (50%) were masked.</p>\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"/api/media/file/Figure_2.jpg\"><img loading=\"lazy\" src=\"/api/media/file/Figure_2-1024x233.jpg\" alt=\"\" class=\"wp-image-1875\" width=\"836\" height=\"190\" srcset=\"/api/media/file/Figure_2-1024x233.jpg 1024w, /api/media/file/Figure_2-600x137.jpg 600w, /api/media/file/Figure_2-768x175-1.jpg 768w, /api/media/file/Figure_2-1500x343.jpg 1500w, /api/media/file/Figure_2.jpg 1507w\" sizes=\"(max-width: 836px) 100vw, 836px\"></a><figcaption><a>Figure </a>2: Fractions (abundances) of Soil, Photosynthetic Vegetation (PV) and Non-Photosynthetic Vegetation (NPV).</figcaption></figure>\n<h3 id=\"continuum-removal-for-feature-enhancement\">Continuum Removal for Feature Enhancement</h3>\n<p>To compare mineral signatures accurately, we must isolate the absorption pits from the overall “slope” of the reflectance curve. This is achieved through Continuum Removal (CR). </p>\n<p>In raw spectra, the true shape of an absorption feature is often distorted by the background reflectance (“continuum”) caused by factors like grain size, surface moisture, or other non-target minerals. This background creates an overall slope that can shift the apparent position of an absorption minimum or make a deep feature appear shallow. By removing this continuum, we effectively “zoom in” on the chemical bonds of the mineral itself, effectively normalizing the data so that the depth and shape of the Hectorite absorption feature become the primary variables (as illustrated in Figure 3).</p>\n<p>In Clarity, CR is achieved using a fast convex hull computation algorithm. This process “flattens” the spectrum between 2200 and 2400 nm, allowing for precise comparison between image pixels and library standards.</p>\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture4.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture4.png\" alt=\"\" class=\"wp-image-1879\" width=\"760\" height=\"268\" srcset=\"/api/media/file/Picture4.png 624w, /api/media/file/Picture4-600x212.png 600w\" sizes=\"(max-width: 760px) 100vw, 760px\"></a><figcaption><a>Figure </a>3: USGS reflectance spectra of Hectorite, Nontronite and Saponite before and after continuum removal.</figcaption></figure>\n<h3 id=\"library-spectra-and-synthetic-mixtures\">Library Spectra and Synthetic Mixtures</h3>\n<p>The ENMAP image spectra are compared against gold-standard spectra from the USGS library. Following Asadzadeh &#x26; Chabrillat (2025), spectra from three minerals were selected: Hectorite, Nontronite, and Saponite. Indeed, while Hectorite is the primary lithium-bearing mineral at McDermitt, it rarely occurs in isolation. It is typically found within a complex assemblage of smectite clays, including Nontronite (Fe-rich) and Saponite (Mg-rich). Identifying the specific “sweet spot” of lithium mineralization requires distinguishing Hectorite from these spectrally similar neighbors (Figure 3). To account for this, Clarity generates linear mixtures of these three primary minerals based on their spectra, automatically resamples them to match the specific wavelength intervals of ENMAP and applies the same CR pre-processing. This provides a comprehensive reference set for the complex mineralogies found at the McDermitt site (Figure 4).</p>\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture5.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture5.png\" alt=\"\" class=\"wp-image-1878\" width=\"780\" height=\"469\"></a><figcaption><em>Figure 4:</em> <em>Hectorite – Nontronite – Saponite spectral mixtures representing the complex mineralogies found at the McDermitt site.</em></figcaption></figure>\n<h3 id=\"mixture-tuned-feature-matching-mtfm\">Mixture Tuned Feature Matching (MTFM)</h3>\n<p>This is the “engine room” of this lithium detection approach. MTFM performs a Least Square Fitting to match each image pixel against every synthetic mixture presented above (Figure 4) and computes the Pearson Correlation. The specific mixture that yielded the highest match is retained along with the correlation value. To maximize the signal-to-noise ratio and ensure high-confidence detections, we retain only pixels with a correlation higher than 90%. This procedure provides a robust estimate of mineral presence. The correlation value serves as a proxy for mineral abundance, allowing us to generate a heatmap ranging from low to high lithium potential. These heatmaps are presented in Figure 5 where pixels with a correlation lower than 90% were masked for visual interpretability purposes.</p>\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/Picture6.png\"><img loading=\"lazy\" width=\"1024\" height=\"696\" src=\"/api/media/file/Picture6-1024x696.png\" alt=\"\" class=\"wp-image-1880\" srcset=\"/api/media/file/Picture6-1024x696.png 1024w, /api/media/file/Picture6-600x408.png 600w, /api/media/file/Picture6-768x522-1.png 768w, /api/media/file/Picture6.png 1422w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"></a><figcaption><em>Figure 5: Heatmap of Pearson Correlation along with Hectorite, Nontronite and Saponite abundance as defined in the synthetic spectra mixtures. Pixels with correlation smaller then 0.9 were masked for clarity purposes.</em></figcaption></figure>\n<h2 id=\"streamlining-the-workflow-with-deep-learning\">Streamlining the Workflow with Deep Learning</h2>\n<p>While the MTFM approach is highly effective, the preprocessing required, the manual creation of synthetic mixtures and iterative least-square fitting can be computationally intensive and time-consuming. To accelerate discovery, Clarity offers a Deep Learning Target Detection model.</p>\n<p>By using the USGS Hectorite spectrum directly as a target, the deep learning model can generate an abundance map (Figure 6) that rivals the accuracy of the MTFM approach while bypassing the preprocessing, mixture creation, and fitting stages entirely. This reduces the time and effort required, thereby offering potential for rapid field deployment and decision-making.</p>\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"/api/media/file/Picture7.png\"><img loading=\"lazy\" src=\"/api/media/file/Picture7.png\" alt=\"\" class=\"wp-image-1881\" width=\"829\" height=\"561\"></a><figcaption><a>Figure </a>6: Hectorite abundance derived using Clarity’s deep learning-based target detection method.</figcaption></figure>\n<h2 id=\"hectorite-lithium-richness\">Hectorite Lithium Richness</h2>\n<p>The final and most precise step involves finding the analytic minimum of the hectorite absorption pit. This analysis can be applied directly to the high-confidence pixels identified via the MTFM workflow or the Deep Learning model. Because lithium content causes a subtle shift in the position of the absorption pit, a 4th-order polynomial is fitted to the pixels with the highest hectorite abundance. Despite EnMAP’s 10 nm spectral sampling, polynomial fitting allows Clarity to estimate the exact wavelength of the minimum at a sub-nanometer scale. By mapping these precise wavelength positions across the deposit (Figure 7), Clarity effectively grades the lithium concentration of the Hectorite clays from space or aircraft. Higher Lithium content is translated by a shift of the absorption pit towards lower wavelengths.</p>\n<figure class=\"wp-block-image size-large\"><a href=\"/api/media/file/Picture8.png\"><img loading=\"lazy\" width=\"1024\" height=\"665\" src=\"/api/media/file/Picture8-1024x665.png\" alt=\"\" class=\"wp-image-1882\" srcset=\"/api/media/file/Picture8-1024x665.png 1024w, /api/media/file/Picture8-600x390.png 600w, /api/media/file/Picture8-768x499-1.png 768w, /api/media/file/Picture8.png 1431w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"></a><figcaption><em>Figure 7: Hectorite composition in terms of Lithium versus Magnesium content.</em><br></figcaption></figure>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>Metaspectral’s <a href=\"https://clarity.metaspectral.com/sandbox\" target=\"_blank\" rel=\"noreferrer noopener\">Clarity platform</a> moves your hyperspectral data from reflectance to actionable mineralogical maps. Clarity provides the flexibility to compare and combine industry-standard methodologies with modern AI-driven tools to replicate and scale state-of-the-art research. This dual-pathway approach ensures both operational efficiency and geological accuracy, securing the future of the global critical minerals and green energy sectors.</p>\n<p><strong>Are you exploring Lithium or other critical minerals?</strong> </p>\n<p><a href=\"https://metaspectral.com/contact/\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Metaspectral</a> to see how Clarity can accelerate your discovery timelines.</p>\n<p></p>\n<h4 id=\"references\"><strong>References</strong></h4>\n<p>Asadzadeh, S. &#x26; Chabrillat, S. (2025). Leveraging EnMAP hyperspectral data for mineral exploration: Examples from different deposit types. Ore <em>Geology Reviews</em>, <em>186</em>, 106912. <a href=\"https://doi.org/10.1016/j.oregeorev.2025.106912\" target=\"_blank\" rel=\"noreferrer noopener\">https://doi.org/10.1016/j.oregeorev.2025.106912</a></p>","updatedAt":"2026-04-23T23:30:30.227Z","createdAt":"2026-04-23T23:27:16.494Z","_status":"published"},{"id":20,"title":"What is hyperspectral imaging and why does it matter?","slug":"what-is-hyperspectral-imaging-and-why-does-it-matter","excerpt":"If you’ve ever wondered how those jaw-dropping images of galaxies or nebulae are captured, the answer lies in hyperspectral imaging. This powerful tool allows us to see things that our eyes cannot, and it has a range of applications in both the scientific and commercial realms. Let’s take a closer look at hyperspectral imaging and how it works.","description":null,"type":"Article","author":{"id":2,"name":"Francis Doumet","slug":"francis-doumet","email":null,"avatar":{"id":187,"alt":"Francis Doumet author headshot","caption":null,"sourcePath":"src/assets/team-headshot_1.png","updatedAt":"2026-06-23T19:31:04.276Z","createdAt":"2026-06-23T19:31:04.275Z","url":"/api/media/file/author-francis-doumet.png","thumbnailURL":"/api/media/file/author-francis-doumet-320x320.png","filename":"author-francis-doumet.png","mimeType":"image/png","filesize":831841,"width":1000,"height":1000,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-francis-doumet-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":173960,"filename":"author-francis-doumet-320x320.png"},"card":{"url":"/api/media/file/author-francis-doumet-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":854456,"filename":"author-francis-doumet-768x768.png"}}},"title":"Co-Founder & CEO","bio":null,"updatedAt":"2026-06-23T19:31:39.891Z","createdAt":"2026-04-23T20:29:55.218Z"},"category":null,"contentStage":null,"layout":"default","tags":[],"industries":[],"products":[],"heroImage":{"id":184,"alt":"What is hyperspectral imaging and why does it matter?","caption":null,"sourcePath":"../src/content/blog/what-is-hyperspectral-imaging-and-why-does-it-matter/what-is-hyperspectral-imaging-and-why-does-it-matter.jpeg","updatedAt":"2026-04-23T23:28:05.330Z","createdAt":"2026-04-23T23:28:05.330Z","url":"/api/media/file/what-is-hyperspectral-imaging-and-why-does-it-matter-1.jpeg","thumbnailURL":"/api/media/file/what-is-hyperspectral-imaging-and-why-does-it-matter-1-320x109.jpg","filename":"what-is-hyperspectral-imaging-and-why-does-it-matter-1.jpeg","mimeType":"image/jpeg","filesize":583702,"width":2560,"height":870,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/what-is-hyperspectral-imaging-and-why-does-it-matter-1-320x109.jpg","width":320,"height":109,"mimeType":"image/jpeg","filesize":11082,"filename":"what-is-hyperspectral-imaging-and-why-does-it-matter-1-320x109.jpg"},"card":{"url":"/api/media/file/what-is-hyperspectral-imaging-and-why-does-it-matter-1-768x261.jpg","width":768,"height":261,"mimeType":"image/jpeg","filesize":60703,"filename":"what-is-hyperspectral-imaging-and-why-does-it-matter-1-768x261.jpg"}}},"imageBackground":"dark","publishedAt":"2022-11-07T08:00:00.000Z","legacySourcePath":"../src/content/blog/what-is-hyperspectral-imaging-and-why-does-it-matter/index.md","bodyMarkdown":"If you’ve ever wondered how those jaw-dropping images of galaxies or nebulae are captured, the answer lies in hyperspectral imaging. This powerful tool allows us to see things that our eyes cannot, and it has a range of applications in both the scientific and commercial realms. Let’s take a closer look at hyperspectral imaging and how it works.\n\n## How Hyperspectral Imaging Works\n\nHyperspectral imaging is a type of spectroscopy that captures the complete spectrum of light emitted by an object, rather than just the visible light that our eyes can see. This information is then processed to create an image that represents the different wavelengths of light as different colors.\n\n## Commercial Applications of Hyperspectral Imaging\n\nHyperspectral imaging is used in a variety of commercial applications, such as quality control for food and beverage industry, detecting counterfeit drugs, and analyzing minerals in mining operations. In the food and beverage industry, spectral imaging can be used to detect flaws or foreign objects in products on conveyor belts. In the pharmaceutical industry, hyperspectral images can be used to identify fake drugs based on differences in color when compared to known standards. And in mining operations, hyperspectral imaging can be used to map mineral content in rock samples. In recycling plants, hyperspectral imagery can help separate materials that were previously unidentifiable, thereby increase in the quality of recycled material.\n\n## Scientific Applications of Hyperspectral Imaging\n\nIn addition to its many commercial applications, hyperspectral imaging also has a number of scientific uses. One such use is astrobiology, where it’s used to study planets outside our solar system for signs of life. Another is astronomy, where it’s used to study distant galaxies and nebulae. And lastly, hyperspectral imaging is also used in medicine for cancer detection and tissue analysis.\n\n## Conclusion\n\nHyperspectral imaging is a versatile technology that has a wide range of applications in both quality control and data science. By controlling the collection of data across the electromagnetic spectrum, hyperspectral imaging systems can provide insights that would otherwise be unavailable. The versatility of hyperspectral imaging makes it an essential tool for industries that require accurate and detailed data. In the coming years, we are likely to see even more uses for this technology as its capabilities continue to grow.","bodyHtml":"<p>If you’ve ever wondered how those jaw-dropping images of galaxies or nebulae are captured, the answer lies in hyperspectral imaging. This powerful tool allows us to see things that our eyes cannot, and it has a range of applications in both the scientific and commercial realms. Let’s take a closer look at hyperspectral imaging and how it works.</p>\n<h2 id=\"how-hyperspectral-imaging-works\">How Hyperspectral Imaging Works</h2>\n<p>Hyperspectral imaging is a type of spectroscopy that captures the complete spectrum of light emitted by an object, rather than just the visible light that our eyes can see. This information is then processed to create an image that represents the different wavelengths of light as different colors.</p>\n<h2 id=\"commercial-applications-of-hyperspectral-imaging\">Commercial Applications of Hyperspectral Imaging</h2>\n<p>Hyperspectral imaging is used in a variety of commercial applications, such as quality control for food and beverage industry, detecting counterfeit drugs, and analyzing minerals in mining operations. In the food and beverage industry, spectral imaging can be used to detect flaws or foreign objects in products on conveyor belts. In the pharmaceutical industry, hyperspectral images can be used to identify fake drugs based on differences in color when compared to known standards. And in mining operations, hyperspectral imaging can be used to map mineral content in rock samples. In recycling plants, hyperspectral imagery can help separate materials that were previously unidentifiable, thereby increase in the quality of recycled material.</p>\n<h2 id=\"scientific-applications-of-hyperspectral-imaging\">Scientific Applications of Hyperspectral Imaging</h2>\n<p>In addition to its many commercial applications, hyperspectral imaging also has a number of scientific uses. One such use is astrobiology, where it’s used to study planets outside our solar system for signs of life. Another is astronomy, where it’s used to study distant galaxies and nebulae. And lastly, hyperspectral imaging is also used in medicine for cancer detection and tissue analysis.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>Hyperspectral imaging is a versatile technology that has a wide range of applications in both quality control and data science. By controlling the collection of data across the electromagnetic spectrum, hyperspectral imaging systems can provide insights that would otherwise be unavailable. The versatility of hyperspectral imaging makes it an essential tool for industries that require accurate and detailed data. In the coming years, we are likely to see even more uses for this technology as its capabilities continue to grow.</p>","updatedAt":"2026-04-23T23:30:52.702Z","createdAt":"2026-04-23T20:30:13.938Z","_status":"published"},{"id":19,"title":"Rust Detection with Hyperspectral Imaging","slug":"rust-detection-with-hyperspectral-imaging","excerpt":"Rust is a major problem for naval vessels because it causes structural damage and can lead to leaks. Because of this, detecting rust early is crucial for naval maintenance. However, traditional methods of rust detection, such as close visual inspection, are time-consuming and often ineffective.","description":null,"type":"Article","author":{"id":2,"name":"Francis Doumet","slug":"francis-doumet","email":null,"avatar":{"id":187,"alt":"Francis Doumet author headshot","caption":null,"sourcePath":"src/assets/team-headshot_1.png","updatedAt":"2026-06-23T19:31:04.276Z","createdAt":"2026-06-23T19:31:04.275Z","url":"/api/media/file/author-francis-doumet.png","thumbnailURL":"/api/media/file/author-francis-doumet-320x320.png","filename":"author-francis-doumet.png","mimeType":"image/png","filesize":831841,"width":1000,"height":1000,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/author-francis-doumet-320x320.png","width":320,"height":320,"mimeType":"image/png","filesize":173960,"filename":"author-francis-doumet-320x320.png"},"card":{"url":"/api/media/file/author-francis-doumet-768x768.png","width":768,"height":768,"mimeType":"image/png","filesize":854456,"filename":"author-francis-doumet-768x768.png"}}},"title":"Co-Founder & CEO","bio":null,"updatedAt":"2026-06-23T19:31:39.891Z","createdAt":"2026-04-23T20:29:55.218Z"},"category":null,"contentStage":null,"layout":"default","tags":[],"industries":[],"products":[],"heroImage":{"id":155,"alt":"Rust Detection with Hyperspectral Imaging","caption":null,"sourcePath":"../src/content/blog/rust-detection-with-hyperspectral-imaging/rust-detection-with-hyperspectral-imaging.jpg","updatedAt":"2026-04-23T23:27:45.555Z","createdAt":"2026-04-23T23:27:45.555Z","url":"/api/media/file/rust-detection-with-hyperspectral-imaging-1.jpg","thumbnailURL":"/api/media/file/rust-detection-with-hyperspectral-imaging-1-320x200.jpg","filename":"rust-detection-with-hyperspectral-imaging-1.jpg","mimeType":"image/jpeg","filesize":137091,"width":961,"height":600,"focalX":50,"focalY":50,"sizes":{"thumbnail":{"url":"/api/media/file/rust-detection-with-hyperspectral-imaging-1-320x200.jpg","width":320,"height":200,"mimeType":"image/jpeg","filesize":13784,"filename":"rust-detection-with-hyperspectral-imaging-1-320x200.jpg"},"card":{"url":"/api/media/file/rust-detection-with-hyperspectral-imaging-1-768x480.jpg","width":768,"height":480,"mimeType":"image/jpeg","filesize":54912,"filename":"rust-detection-with-hyperspectral-imaging-1-768x480.jpg"}}},"imageBackground":"dark","publishedAt":"2022-11-09T08:00:00.000Z","legacySourcePath":"../src/content/blog/rust-detection-with-hyperspectral-imaging/index.md","bodyMarkdown":"Rust is a major problem for naval vessels because it causes structural damage and can lead to leaks. Because of this, detecting rust early is crucial for naval maintenance. However, traditional methods of rust detection, such as close visual inspection, are time-consuming and often ineffective.\n\nHyperspectral imaging is a promising new technology that can be used for early detection of rust on naval vessels. Hyperspectral imaging works by collecting light from across the electromagnetic spectrum and using algorithms to analyze the data. This analysis can reveal the presence of rust, even when it is not visible to the naked eye.\n\nIn addition to being highly effective, hyperspectral imaging is also non-destructive and does not require physical contact with the surface being inspected. This makes it an ideal tool for detecting rust on naval vessels.\n\n## How Hyperspectral Imaging Works\n\nHyperspectral imaging works by using a special camera to capture images of an object at different wavelengths of light. These images are then analyzed using AI algorithms that are specifically designed to identify the presence of rust.\n\nThis technology is already being used by the military for a variety of applications, including detecting improvised explosive devices and land mines. It has also been used for medical diagnosis and agricultural monitoring.\n\nThe benefits of using hyperspectral imaging to detect rust are numerous. Perhaps the most important benefit is that it can detect very small changes in reflectance. This means that it can be used to identify problems before they become serious, such as detecting even minor changes in the chemical composition of a surface which can be an early indicator of rust formation. This saves time and money by avoiding the need for extensive repairs down the road.\n\nIn addition, hyperspectral imaging can be used to inspect hard-to-reach areas. This is especially important in the case of naval vessels, which often have large surfaces that are difficult to inspect visually. The use of hyperspectral imaging can help ensure that no area goes unchecked and that rust is detected as early as possible.\n\nFinally, another advantage of hyperspectral imaging is that it can be used to detect rust beneath paint or other coatings. This is because light reflects differently off of bare metal than it does off of paint or another coating. By analyzing the reflectance data, hyperspectral imaging can accurately detect rust even when it is hidden from view.\n\n## Conclusion\n\nHyperspectral imaging is a powerful tool for early detection of rust on naval vessels. It is non-destructive and does not require physical contact with the surface being inspected, making it ideal for regular monitoring of large surfaces. In addition, hyperspectral imaging can detect very small changes early, saving precious resources if material degradation is detected early. Because of these advantages, hyperspectral imaging is a prime candidate for use in naval maintenance programs.","bodyHtml":"<p>Rust is a major problem for naval vessels because it causes structural damage and can lead to leaks. Because of this, detecting rust early is crucial for naval maintenance. However, traditional methods of rust detection, such as close visual inspection, are time-consuming and often ineffective.</p>\n<p>Hyperspectral imaging is a promising new technology that can be used for early detection of rust on naval vessels. Hyperspectral imaging works by collecting light from across the electromagnetic spectrum and using algorithms to analyze the data. This analysis can reveal the presence of rust, even when it is not visible to the naked eye.</p>\n<p>In addition to being highly effective, hyperspectral imaging is also non-destructive and does not require physical contact with the surface being inspected. This makes it an ideal tool for detecting rust on naval vessels.</p>\n<h2 id=\"how-hyperspectral-imaging-works\">How Hyperspectral Imaging Works</h2>\n<p>Hyperspectral imaging works by using a special camera to capture images of an object at different wavelengths of light. These images are then analyzed using AI algorithms that are specifically designed to identify the presence of rust.</p>\n<p>This technology is already being used by the military for a variety of applications, including detecting improvised explosive devices and land mines. It has also been used for medical diagnosis and agricultural monitoring.</p>\n<p>The benefits of using hyperspectral imaging to detect rust are numerous. Perhaps the most important benefit is that it can detect very small changes in reflectance. This means that it can be used to identify problems before they become serious, such as detecting even minor changes in the chemical composition of a surface which can be an early indicator of rust formation. This saves time and money by avoiding the need for extensive repairs down the road.</p>\n<p>In addition, hyperspectral imaging can be used to inspect hard-to-reach areas. This is especially important in the case of naval vessels, which often have large surfaces that are difficult to inspect visually. The use of hyperspectral imaging can help ensure that no area goes unchecked and that rust is detected as early as possible.</p>\n<p>Finally, another advantage of hyperspectral imaging is that it can be used to detect rust beneath paint or other coatings. This is because light reflects differently off of bare metal than it does off of paint or another coating. By analyzing the reflectance data, hyperspectral imaging can accurately detect rust even when it is hidden from view.</p>\n<h2 id=\"conclusion\">Conclusion</h2>\n<p>Hyperspectral imaging is a powerful tool for early detection of rust on naval vessels. It is non-destructive and does not require physical contact with the surface being inspected, making it ideal for regular monitoring of large surfaces. In addition, hyperspectral imaging can detect very small changes early, saving precious resources if material degradation is detected early. Because of these advantages, hyperspectral imaging is a prime candidate for use in naval maintenance programs.</p>","updatedAt":"2026-04-23T23:30:46.069Z","createdAt":"2026-04-23T20:30:13.769Z","_status":"published"}],"hasNextPage":true,"hasPrevPage":false,"limit":10,"nextPage":2,"page":1,"pagingCounter":1,"prevPage":null,"totalDocs":28,"totalPages":3}