Data and code
Everything needed to reproduce the analysis, short of the 372 GB image cache. All files are served from this site; no external hosts.
Reports
- THEMIS_hot_springs_report.pdf — full technical report, corrected 2026-09-07 (16 MB, 27 pages, 24 figures).
- REPORT.md — the same report as Markdown.
- literature_review.md — literature review of THEMIS's hydrothermal objective.
- error_check.md — the 2026-09-07 error-check log (also rendered on the Error check page).
- THEMIS_hot_springs_report_v1_2026-07-06.pdf — original 2026-07-06 report, kept for the record (superseded).
Code
- themis_code.zip — all analysis scripts (Python 3.12; numpy, scipy, rasterio, matplotlib, pandas). Scripts write to
~/nvme-8tb-2/Themis/analysisand read the BTR cache at~/nvme-8tb-3/Themis_global/btr_cache; edit the two path constants at the top of each script for another machine.
| script | what it does |
|---|---|
thmlib.py, btrlib.py | Readers for THEMIS SNU radiance cubes and BTR brightness-temperature products (PDS3 attached and PDS4 detached labels); Planck inversion for band 9; rejection of byte-fill products. |
detection_limit.py, detection_depth.py | Sub-pixel detectability of a vent; invisible heat-flux ceiling and burial depth of warm water. |
anomaly_search.py, vet_candidates_v2.py | Nighttime warm-anomaly detector (background removal, MAD noise, morphology) and the regional vetting cascade (georeferencing corrected 2026-09-07). |
build_btr_worklist.py, btr_stream.py, aggregate_global_map.py | Global worklist, streaming search of all 136,564 nighttime images, atlas and persistent-candidate catalogue. |
global_maxbt_screen.py, deepdive_outliers.py, global_figure_v2.py | Warmest-pixel screen of the whole index and pixel analysis of the flagged images. |
coverage_map.py, injection_recovery.py, bayes_bound.py | Coverage and redundancy, injection-recovery detection efficiency, Poisson-zero Bayesian occurrence limit. |
depth_to_water.py, depth_atlas.py | Depth-to-liquid-water Monte Carlo and the GRS + MOLA 2-D atlas. |
resample_candidates_v2.py, fit_residual_v2.py, thermal_model.py | Day/night sampling at the detected pixels and the 1-D diurnal thermal-model fit (2026-09-07 redo). |
build_tref.py, grid_accumulate.py, combine_grids.py | Destriped global day+night mosaic and the every-cell endogenic screen. |
build_pdf.py | Renders REPORT.md plus figures to the PDF. |
Derived data
CSV unless noted. Coordinates are planetocentric latitude and east longitude in degrees; temperatures in kelvin.
| file | size | contents |
|---|---|---|
| global_persistent_candidates.csv | 1.0 MB | 21,385 persistent focused warm-at-night cells (0.05°): overpass count, max excess, position, minimum cluster size. |
| daynight_candidates_v2.csv | 16 MB | Per-cell night and day samples at the detected pixels (2026-09-07 redo): night peak BT and background, day window statistics with control calibration, image ids, local times, seasons. |
| endogenic_residual_v2.csv | 14 MB | Per-cell thermal-model fit: required endogenic warming ΔT_geo (2026-09-07 redo). |
| maxbt_outliers.csv | 57 kB | 833 index rows flagged by the warmest-pixel screen (z > 5) with local ceiling and excess. |
| outlier_analysis.csv | 45 kB | Pixel analysis of the 828 flagged images (194 of them are byte-fill products with σ = 0; see error check B1). |
| candidates_v2.csv, focused_candidates_v2.csv, image_stats_v2.csv, recurring_cells_v2.csv | 4.6 MB total | Regional search over 230 map-projected cubes with corrected georeferencing: all 33,365 warm clusters, the 1,369 focused ones, per-image noise. |
| injection_eta.npz | 15 kB | Single-look detection efficiency η(T_vent, A_vent), global and per 15° latitude band (NumPy). |
| coverage_looks.npy, coverage_lats.npy | 1.0 MB | Nighttime looks per 0.5° cell (NumPy). |
| depth_atlas.npz | 1.6 MB | GRS-derived heat flow, MOLA elevation and median depth to liquid water on a 1° grid (NumPy). |
| tref.npz | 210 kB | Reference-surface temperature lookup T_ref(lat, Ls, local time) used for destriping. |
| daynight_candidates.csv, night_abs.csv, endogenic_residual.csv, candidates_context.csv | ~1 MB each | The original (superseded) day/night samples and fit, kept for the record: these were sampled at cell-mean positions, a median of 3 pixels from the detected anomaly (error check C1). |
| candidates.csv, focused_candidates.csv, image_stats.csv | 3.8 MB | The original regional catalogue with flipped positions, kept for the record (error check C2). |
Not hosted here because of size: the 0.05° day+night mosaic grids (daynight_grids_v2.npz, 311 MB), the 6-million-sample depth draws (24 MB), the 7.88-million-row cluster shards (830 MB), and the 372 GB BTR cache. Ask if you need them.
Source data
- THEMIS IR: ASU PDS archive,
https://static.mars.asu.edu/pds/(bundlesODTGEO_v2map-projected cubes,ODTSDP_v1BTR products, indexTHMIDX_IR.TAB). - Mars Odyssey GRS thorium and potassium 5°×5° maps (PDS Geosciences,
ody-m-grs-5-elements-v1). - MOLA MEGDR topography, 4 pixels per degree (
mgs-m-mola-5-megdr-l3-v1). - MGS TES bolometric albedo (8 ppd) and nighttime thermal inertia (20 ppd).
Figures
Full-resolution PNGs of every figure are in downloads/figures/; the Figures page shows them with captions.