4.7 KiB
4.7 KiB
Database Schema v1.0
Doel: PostGIS-first schema dat projecten, gebieden, datasets, analyses, AI-resultaten, QA/QC en exports ondersteunt.
1. projects
id UUID PRIMARY KEY
name TEXT NOT NULL
description TEXT
region TEXT DEFAULT 'Kempen'
created_at TIMESTAMP NOT NULL
updated_at TIMESTAMP NOT NULL
2. areas
id UUID PRIMARY KEY
project_id UUID REFERENCES projects(id)
name TEXT NOT NULL
geometry GEOMETRY(POLYGON, 4326) NOT NULL
area_m2 DOUBLE PRECISION
crs TEXT DEFAULT 'EPSG:4326'
created_at TIMESTAMP NOT NULL
3. datasets
id UUID PRIMARY KEY
project_id UUID REFERENCES projects(id)
name TEXT NOT NULL
dataset_type TEXT NOT NULL -- raster, vector, lidar, reference, model_output
source TEXT -- upload, GRB, OSM, Sentinel, DHMV
original_path TEXT
processed_path TEXT
crs TEXT
srid INTEGER
bounds GEOMETRY(POLYGON, 4326)
metadata_json JSONB
status TEXT NOT NULL
created_at TIMESTAMP NOT NULL
updated_at TIMESTAMP NOT NULL
4. dataset_versions
id UUID PRIMARY KEY
dataset_id UUID REFERENCES datasets(id)
version_label TEXT
path TEXT
metadata_json JSONB
created_at TIMESTAMP NOT NULL
5. vector_features
id UUID PRIMARY KEY
dataset_id UUID REFERENCES datasets(id)
source_feature_id TEXT
feature_type TEXT
properties JSONB
geometry GEOMETRY(GEOMETRY, 4326)
created_at TIMESTAMP NOT NULL
Spatial index required on geometry.
6. raster_assets
id UUID PRIMARY KEY
dataset_id UUID REFERENCES datasets(id)
asset_type TEXT -- original, clipped, tile, preview, index, mask
path TEXT NOT NULL
bounds GEOMETRY(POLYGON, 4326)
metadata_json JSONB
created_at TIMESTAMP NOT NULL
7. analysis_runs
id UUID PRIMARY KEY
project_id UUID REFERENCES projects(id)
area_id UUID REFERENCES areas(id)
analysis_type TEXT NOT NULL -- detection, segmentation, qaqc, change, raster_index
status TEXT NOT NULL
parameters_json JSONB
started_at TIMESTAMP
finished_at TIMESTAMP
error_message TEXT
created_at TIMESTAMP NOT NULL
8. detections
id UUID PRIMARY KEY
analysis_run_id UUID REFERENCES analysis_runs(id)
class_name TEXT NOT NULL
confidence DOUBLE PRECISION
bbox_json JSONB
source_tile_path TEXT
geometry GEOMETRY(POLYGON, 4326)
metadata_json JSONB
created_at TIMESTAMP NOT NULL
Spatial index required on geometry.
9. segmentations
id UUID PRIMARY KEY
analysis_run_id UUID REFERENCES analysis_runs(id)
class_name TEXT NOT NULL
confidence DOUBLE PRECISION
area_m2 DOUBLE PRECISION
raster_mask_path TEXT
geometry GEOMETRY(GEOMETRY, 4326)
metadata_json JSONB
created_at TIMESTAMP NOT NULL
10. metrics
id UUID PRIMARY KEY
analysis_run_id UUID REFERENCES analysis_runs(id)
metric_key TEXT NOT NULL
metric_value DOUBLE PRECISION
unit TEXT
metadata_json JSONB
created_at TIMESTAMP NOT NULL
11. quality_checks
id UUID PRIMARY KEY
analysis_run_id UUID REFERENCES analysis_runs(id)
reference_dataset_id UUID REFERENCES datasets(id)
check_type TEXT NOT NULL
score DOUBLE PRECISION
findings_json JSONB
created_at TIMESTAMP NOT NULL
12. quality_findings
id UUID PRIMARY KEY
quality_check_id UUID REFERENCES quality_checks(id)
finding_type TEXT NOT NULL -- false_positive, false_negative, low_iou, matched
class_name TEXT
score DOUBLE PRECISION
geometry GEOMETRY(GEOMETRY, 4326)
metadata_json JSONB
created_at TIMESTAMP NOT NULL
13. annotations
id UUID PRIMARY KEY
project_id UUID REFERENCES projects(id)
dataset_id UUID REFERENCES datasets(id)
class_name TEXT NOT NULL
annotation_type TEXT -- bbox, polygon, mask
geometry GEOMETRY(GEOMETRY, 4326)
metadata_json JSONB
created_at TIMESTAMP NOT NULL
14. model_registry
id UUID PRIMARY KEY
name TEXT NOT NULL
model_type TEXT -- yolo, sam, unet, custom_pytorch
version TEXT
artifact_path TEXT
classes_json JSONB
metrics_json JSONB
created_at TIMESTAMP NOT NULL
15. exports
id UUID PRIMARY KEY
project_id UUID REFERENCES projects(id)
analysis_run_id UUID REFERENCES analysis_runs(id)
export_type TEXT NOT NULL -- geojson, yolo, coco, mask, report
path TEXT NOT NULL
metadata_json JSONB
created_at TIMESTAMP NOT NULL
16. jobs
id UUID PRIMARY KEY
job_type TEXT NOT NULL
status TEXT NOT NULL
payload_json JSONB
result_json JSONB
error_message TEXT
created_at TIMESTAMP NOT NULL
started_at TIMESTAMP
finished_at TIMESTAMP
Indexen
- areas.geometry GIST
- datasets.bounds GIST
- vector_features.geometry GIST
- detections.geometry GIST
- segmentations.geometry GIST
- quality_findings.geometry GIST
- annotations.geometry GIST
Belangrijke regels
- Grote bestanden nooit in database opslaan.
- Geometrieën altijd met SRID opslaan.
- Iedere modeloutput moet gekoppeld zijn aan een analysis_run.
- Iedere analysis_run moet parameters opslaan voor reproduceerbaarheid.