Files
geointel/docs/accuracy-program/09-full-data-scan.md
T
Jens f41392a415
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
docs(accuracy): publish phase 4 benchmark evidence
2026-08-02 05:10:05 +02:00

5.6 KiB

Fase 3 — Volledige datascan en quarantaine

Resultaat

De reproduceerbare scan scripts/run_accuracy_phase3_full_data_scan.py is read-only uitgevoerd over de veilige lokale scope models/, datasets/, data/, storage/, artifacts/ en output/. De scan schrijft uitsluitend bewijs naar artifacts/evidence/accuracy/P3/; bronbestanden zijn niet gewijzigd.

Telling Aantal
Onderzochte bestanden 295
Overgeslagen bestanden 0
Onbereikbare scope-items 3
Geïnventariseerd totaal 298
Reconciliatie groen (295 + 0 + 3 = 298)

De drie expliciet onbereikbare items zijn de niet-gemounte Tower-corpora, gemounte modelvolumes en een productie-PostGIS/API-endpoint. Elk staat als unreachable in het volledige manifest met concrete reden; er is geen stilzwijgende skip.

De scan leverde 172 anomalieën op. Dat is geen geldigheidsclaim: 163 items zijn daarom in de logische quarantine-manifest opgenomen. De scanner promoot geen enkel foutief item tot ground truth en voert geen automatische reparatie uit. De huidige bevindingen zijn:

Categorie Aantal Standaardactie
Onleesbare/corrupte GeoTIFF 96 quarantine
Afgeleide artefacten zonder expliciete lineage 58 quarantine
Bronlabel zonder declared freshness 9 requires review
Manifest met nul-bounding-box 6 quarantine
Niet-bereikbare externe scope 3 unavailable or unreadable

De eerdere P1-splitinventaris blijft zichtbaar in leakage-report.json: 24 AOI-paren lagen onder 2 km en split-onafhankelijkheid was niet bewezen. De scan rapporteert dat als attention; bestandsnamen alleen kunnen AOI-onafhankelijkheid niet bewijzen. Er was geen toegankelijke GRB-snapshot in de lokale scope, zodat geen afgeleid resultaat als GRB-ground-truth is gemarkeerd.

Scancontract

Iedere inventarisregel bevat een immutable padidentiteit, bestandsgrootte en SHA-256 (waar leesbaar), typecontract, bronclassificatie, lineage, schema/CRS, resolutie/eenheden, ruimtelijke en temporele dekking, freshness, geometrie- of rasterstatus, duplicaatinformatie, anomalieën, ernst en aanbevolen actie. Ondersteunde typecontracten zijn:

  • geointel.vector.geojson@1.0.0 — GeoJSON-schema, geometrievaliditeit en EPSG:4326-bounds;
  • geointel.raster.geotiff@1.0.0 — leesbaarheid, CRS, dimensies, resolutie, bounds, nodata en sample-validiteit;
  • geointel.label.yolo@1.1.0 — genormaliseerde YOLO-labelregels en expliciete achtergrondreview;
  • geointel.model.pytorch@1.0.0 — immutable modelartefact-identiteit;
  • geointel.manifest.json@1.0.0 — CRS, bounds, tile-paden en bron-ID's;
  • geointel.database.sqlite@1.0.0 en geointel.artifact.generic@1.0.0 — veilige byte-/schema-inventaris voor runtime- en bewijsartefacten.

Er zijn vijf vaste ernstniveaus (blocker, critical, major, minor, informational) en zeven vaste acties (accept, repairable automatically, requires review, quarantine, exclude from training, exclude from evaluation, unavailable or unreadable). Een anomaly wordt nooit automatisch als waarheid gebruikt.

Hervatbaarheid en determinisme

De scanner bouwt eerst een gesorteerde inventory-hash. Per batch wordt scan-checkpoint.json atomair bijgewerkt. Met dezelfde inventory en --resume worden onveranderde records hergebruikt; gewijzigde records worden opnieuw gelezen. De inhoudshash sluit alleen uitvoertimestamps uit. Twee opeenvolgende runs gaven dezelfde scan-ID en content-hash:

p3-46ee3f8d3a2dc52b / 1a219362c6cb2ac00489625f1a9b36e2fd4809ab58ee55ab1f67c3cc34773f3e

Bewijsartefacten

  • artifacts/evidence/accuracy/P3/full-scan-manifest.json — volledige machineleesbare scan;
  • artifacts/evidence/accuracy/P3/anomaly-manifest.json — alle afwijkingen;
  • artifacts/evidence/accuracy/P3/quarantine-manifest.json — veilige logische quarantine;
  • artifacts/evidence/accuracy/P3/duplicates-report.json — exacte en genormaliseerde near-duplicategroepen;
  • artifacts/evidence/accuracy/P3/leakage-report.json — checksum-/splitsignalen en P1-splitinventaris;
  • artifacts/evidence/accuracy/P3/source-freshness-report.json — bron/freshness-kruistabel;
  • artifacts/evidence/accuracy/P3/dataset-summary.json — samenvatting per contracttype;
  • artifacts/evidence/accuracy/P3/scan-checkpoint.json — hervatbare batchstaat.

Reproduceerbare uitvoering

python scripts/run_accuracy_phase3_full_data_scan.py --batch-size 40
python scripts/run_accuracy_phase3_full_data_scan.py --batch-size 40 --resume
python -m pytest backend/tests/test_accuracy_phase3_full_data_scan.py -q -p no:cacheprovider
python -m ruff check scripts/run_accuracy_phase3_full_data_scan.py backend/tests/test_accuracy_phase3_full_data_scan.py

De fixturetest controleert geldige en foutieve GeoJSON, corrupte rasterinput, exacte duplicaten, quarantine en identieke herhaling. Productie- of brondata wordt door deze tests niet aangeraakt.

Fasebeslissing

Fase 3 is done voor de afgebakende projectomgeving: alle 295 veilige lokale bestanden zijn verwerkt en de drie niet-bereikbare externe grenzen zijn expliciet geregistreerd. Fase 4 is ready voor verdere beoordeling van de gevonden quarantine- en leakage-signalen. Dit is geen modelpromotie- of nationale kwaliteitsclaim; de inhoudelijke anomalieën moeten eerst door de volgende fase worden hersteld of menselijk beoordeeld.

Historische handoff: ready beschrijft het overdrachtsmoment direct na de Phase-3-scan. Het Phase-4-harnas is inmiddels geïmplementeerd, maar de actuele productbenchmark is nog not_evaluable; de normatieve actuele status staat in docs/accuracy-program/status.json.