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.0engeointel.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:
readybeschrijft het overdrachtsmoment direct na de Phase-3-scan. Het Phase-4-harnas is inmiddels geïmplementeerd, maar de actuele productbenchmark is nognot_evaluable; de normatieve actuele status staat indocs/accuracy-program/status.json.