Mineral prospecting on a shoestring

A registered gold claim sits in the Mberengwa (Belingwe) greenstone belt near Zvishavane, Zimbabwe. The holder has walked the ground, has the Geological Survey sheet, and has zero budget for trenching, geophysics, or commercial remote sensing. The question is not "can satellites find gold" (they cannot) but a narrower, answerable one: can free satellite and DEM data narrow ~300 hectares down to the few hundred metres worth sampling next?

This report works that question end to end on free, cloud-native data, with every figure produced by a re-runnable folia.fetch recipe. It is organized as the holder's three questions.

True-colour Sentinel-2 over the claim
Sentinel-2 true colour over the claim, 2025-06-21 (0% cloud). The greenstone belt reads as the darker vegetated ground; granite surrounds it.

The location, and a correction worth seeing

The holder supplied corner coordinates labelled UTM Zone 36S. Taken at face value, the claim centroid lands at ~36°E on the Mozambique coast, about 615 km from Zvishavane. The eastings near 30°E are a Zone 35S signature: read as EPSG:32735 the claim sits ~19 km north of Zvishavane, in the greenstone belt, which the supplied geology sheet confirms. The Sentinel-2 tile that covers it is T35KRT, MGRS zone 35, an independent check.

One wrong zone label silently relocates the whole analysis 615 km. The fix is to make the coordinate system explicit and check it against a known landmark. This is the entire "inspectable, no magic" idea in one example. The corrected AOI is built reproducibly in research/mineral-prospecting/aoi/build_aoi.py.

Data sources

All free. Tier-1 was already in the Folia catalog; Tier-2 was registered for this report. Heavy reads use windowed folia.fetch (only the COG blocks touching the AOI), so the whole study pulled about 15 MB, not gigabytes.

Source Folia id Role
Sentinel-2 L2A @esa/sentinel-2/l2a iron oxide, broad alteration, vegetation + cloud masks
Landsat C2-L2 @usgs/landsat/c2-l2 cross-check; long historical record
Copernicus DEM GLO-30 @esa/copernicus-dem/glo-30 structure: hillshade, slope, curvature, lineaments
Sentinel-1 RTC @esa/sentinel-1/rtc radar texture, cloud-proof structural read
ASTER L1T @nasa/aster/l1t pre-2008 SWIR for real alteration-mineral ratios
EMIT L2A @nasa/emit/l2a-reflectance hyperspectral ceiling (coverage check)
NISAR GCOV @nasa/nisar/gcov L-band, vegetation-penetrating (coverage check)

What the three questions resolved

Question Short answer Detail
1. Gossans / iron oxide Yes, as a prioritization layer. S2 B04/B02, B11/B08, Crosta PCA. Laterite is the main false positive. Iron oxide & gossans →
2a. Alteration without a spectral library An anomaly, yes; a mineral ID, no, not from Sentinel-2. ASTER (5 pre-2008 scenes here) and EMIT (7 granules) reach the ceiling. Alteration mapping →
2b. Gold-bearing structures The strongest free layer. DEM lineaments resolve below the 1:100k map; dominant NW-SE grain. Structure & lineaments →
3. Free tools for a beginner QGIS, Copernicus Browser, GEE, STAC + Python, SNAP, and where Folia fits. Tools & platforms →

Honest framing

Prioritization, not discovery. Every layer here is a where-to-walk-first surface, never a mineral map and never "dig here". The greenstone gold here is orogenic (sericite-chlorite-carbonate, structurally controlled), not the epithermal alunite-kaolinite style most online tutorials assume. Tropical laterite and dense canopy are the dominant confounds, so indices are relative and vegetation-masked.
No ground truth yet. Without the holder's rock samples and strike/dip readings, these anomaly maps are unsupervised. His observations are the single biggest quality lever and convert anomalies into calibrated priorities. The recipes already include a dormant calibration hook that activates the moment real sample points arrive.

Reproducibility

The recipes live in research/mineral-prospecting/ in the Folia repo, one directory per arm, each a working Python script over folia.fetch. Re-running any arm is a cache hit (windows are keyed by AOI), so it costs no new download. One implementation note surfaced along the way: folia.fetch currently returns only the first band of a multiband COG, which matters for ASTER (its SWIR ships as one six-band file); the alteration recipe documents the workaround.