Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

LaSRC in Rust

A reveal.js deck on porting the USGS ESPA LaSRC atmospheric correction library to Rust: why HLS needed it, how agentic development and an automated validation suite made it affordable, and how we would like to work with GSFC on algorithmic change going forward.

Structured and styled after NASA-IMPACT/esdis-spotlight-virtualization.

View

python3 -m http.server 8000

Then open http://localhost:8000. Press S for speaker notes, F for fullscreen.

Every slide carries a full presenter script in an <aside class="notes">.

Structure

27 slides in five acts, targeted at 15 to 20 minutes, driven by outline.md:

Slides Act
1 to 7 The dependency and what it costs Where LaSRC sits in HLS, why ESPA was the right choice in 2019, the science code versus production code framing, and what the gap costs around the codebase and inside the algorithm
8 to 11 Vision and trigger SNWG funded GSFC work, the community driven atmospheric correction vision, why Rust, and the GDAS requirement that forced the decision
12 to 14 The robot army Multi-agent porting, the compare-against-reference loop, and why the initial port was a foundation rather than a finished result
15 to 20 Validation and the humans The in-house validation suite, what it measures, one comparison in detail, the bugs the full run surfaced, and the cases where the port was arguably more correct than the reference
21 to 27 Results and the ask Equivalence and performance, what is next in priority order, the proposed GSFC collaboration loop, takeaways, and the longer horizon for validation

The argument turns on slide 4 (science code is not production code), slide 13 (the loop), and slide 25 (the collaboration proposal). Slide 20 exists on purpose: conceding that the port sometimes disagreed with the C reference and was right to is what makes slide 25 land.

Slide 27 is the closing note and carries the sign-off. It states the limit of everything before it: all validation in this deck uses ESPA LaSRC C output as the baseline, which buys continuity with the existing archive but cannot measure physical accuracy. It points at Chris Holden's ACIX-II and AERONET work as the direction of travel.

Before presenting

Two slides carry .todo blocks. Search the source for class="todo".

Slide What it needs
17 Re-export the granule comparison panel from the current validation run, replacing images/granule-panel-rows.png
23 Optional. Space reserved for a fuller performance picture: runtime table, memory profile or per-granule breakdown

Figures

File Source
granule-panel-rows.png Two band rows cropped from the per-granule comparison panel, hls-application notebooks/LaSRC_container_validation.ipynb
distribution_summary_immediate_20260922_150055.png Per-granule mean absolute difference by band against the 5 DN threshold, 2026-09-22 run
scatter_summary_immediate_20260922_150055.png Mean reflectance C against Rust, one panel per band, 353 granules, 2026-09-22 run
ODSI full light.png ODSI logo
rust-logo.png, rust-logo-blk.svg Rust Foundation, https://www.rust-lang.org/policies/media-guide

Two diagrams are drawn in the deck's own palette as inline SVG in index.html, not images: the HLS processing chain on slide 2, and the porting loop on slide 13.

Conventions

No em dashes anywhere in the deck text, by request.

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages