Files
geointel/docs/accuracy-program/09-full-data-scan.md
T

6.5 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 1013
Overgeslagen bestanden 0
Onbereikbare scope-items 3
Geïnventariseerd totaal 1016
Reconciliatie groen (1013 + 0 + 3 = 1016)

De drie expliciet onbereikbare items zijn grenzen van deze lokale Windows-scan: de niet lokaal gemounte Tower-corpora, modelvolumes en het productie-PostGIS/API-endpoint. Elk staat als unreachable in het volledige manifest met concrete reden; er is geen stilzwijgende skip. Dit betekent niet dat de server zelf onbereikbaar is. Een afzonderlijke gecontroleerde productiescan moet die remote scopes beoordelen voordat een nationale volledigheidsclaim mogelijk is.

De scan leverde 711 anomalieën op. Dat is geen geldigheidsclaim: 682 items zijn daarom in het logische quarantainemanifest 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 unavailable or unreadable
Afgeleide artefacten zonder expliciete lineage 577 quarantine
Bronlabel zonder declared freshness 29 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-eb67185e61107cc7 / f4ea193d2bdd96a5b391cf7d9d93685cc58e98742c40e4513bcbc434907e720a

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

De lokale Fase-3-scan is volledig voor de afgebakende projectomgeving: alle 1013 veilige lokale bestanden zijn verwerkt en de drie niet-gemounte grenzen zijn expliciet geregistreerd. Fase 3 blijft voor de totale operationele omgeving production_inventory_pending totdat de servervolumes en database in een gecontroleerde productiescan zijn gereconcilieerd. Fase 4 kan de lokale quarantine- en leakage-signalen al beoordelen. Dit is geen modelpromotie- of nationale kwaliteitsclaim; de inhoudelijke anomalieën moeten eerst worden hersteld of representatief 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.

Accuracy-handoff na de scan

De onafhankelijke AI-visuele triage van 30 augustus is vastgelegd in artifacts/evidence/accuracy/model-training/20260830-independent-ai-visual-review.json. Daarin blijven human_reviewer=false, corpusacceptatie, training en promotie expliciet geblokkeerd. Een model kan bovendien pas worden geactiveerd wanneer de exacte candidate key en model-SHA-256 overeenkomen met een geslaagd governed Phase-4/5 release-gaterapport dat ook de benchmarkmanifest-SHA-256 bindt. De taakgeschikte officiële bron blijft doorslaggevend voor productresultaten.