230 lines
3.2 KiB
Markdown
230 lines
3.2 KiB
Markdown
# API Specification v1.0
|
|
|
|
Basispad: `/api/v1`
|
|
|
|
## Projects
|
|
|
|
### GET /projects
|
|
|
|
Geeft alle projecten terug.
|
|
|
|
### POST /projects
|
|
|
|
Maakt een project aan.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"name": "Geel gebouwdetectie demo",
|
|
"description": "Detectie en QA/QC van gebouwen in Geel",
|
|
"region": "Kempen"
|
|
}
|
|
```
|
|
|
|
### GET /projects/{project_id}
|
|
|
|
Geeft projectdetails terug.
|
|
|
|
### DELETE /projects/{project_id}
|
|
|
|
Verwijdert een project en gekoppelde metadata. Bestanden moeten veilig afgehandeld worden.
|
|
|
|
## Areas
|
|
|
|
### GET /projects/{project_id}/areas
|
|
|
|
Geeft analysegebieden van een project.
|
|
|
|
### POST /projects/{project_id}/areas
|
|
|
|
Maakt analysegebied aan.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"name": "Geel Centrum",
|
|
"geometry": { "type": "Polygon", "coordinates": [] }
|
|
}
|
|
```
|
|
|
|
### GET /areas/{area_id}
|
|
|
|
Geeft gebieddetails.
|
|
|
|
## Datasets
|
|
|
|
### POST /projects/{project_id}/datasets/upload
|
|
|
|
Uploadt raster of vector dataset.
|
|
|
|
Multipart:
|
|
|
|
- file
|
|
- name
|
|
- dataset_type
|
|
- source
|
|
|
|
### GET /projects/{project_id}/datasets
|
|
|
|
Lijst datasets.
|
|
|
|
### GET /datasets/{dataset_id}
|
|
|
|
Datasetdetails.
|
|
|
|
### GET /datasets/{dataset_id}/metadata
|
|
|
|
Metadata.
|
|
|
|
### POST /datasets/{dataset_id}/extract-metadata
|
|
|
|
Start metadata extraction job.
|
|
|
|
## Reference Data
|
|
|
|
### POST /projects/{project_id}/reference/grb/fetch
|
|
|
|
Haalt GRB-data op voor een area.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"area_id": "uuid",
|
|
"layers": ["buildings"]
|
|
}
|
|
```
|
|
|
|
### POST /projects/{project_id}/reference/osm/fetch
|
|
|
|
Haalt OSM-data op voor een area.
|
|
|
|
## Raster
|
|
|
|
### POST /datasets/{dataset_id}/raster/clip
|
|
|
|
Clipt raster op area.
|
|
|
|
### POST /datasets/{dataset_id}/raster/tile
|
|
|
|
Maakt tiles voor AI-inference.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"tile_size": 640,
|
|
"overlap": 64,
|
|
"area_id": "uuid"
|
|
}
|
|
```
|
|
|
|
### POST /datasets/{dataset_id}/raster/indices/ndvi
|
|
|
|
V2: berekent NDVI.
|
|
|
|
## Vector
|
|
|
|
### POST /datasets/{dataset_id}/vector/clip
|
|
|
|
Clipt vectorlaag op area.
|
|
|
|
### POST /datasets/{dataset_id}/vector/buffer
|
|
|
|
Maakt buffers.
|
|
|
|
### POST /datasets/{dataset_id}/vector/validate
|
|
|
|
Valideert geometrieën.
|
|
|
|
## Analysis
|
|
|
|
### POST /analysis/object-detection
|
|
|
|
Start objectdetectie.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"project_id": "uuid",
|
|
"area_id": "uuid",
|
|
"dataset_id": "uuid",
|
|
"model_id": "uuid-or-default",
|
|
"classes": ["building"],
|
|
"confidence_threshold": 0.35
|
|
}
|
|
```
|
|
|
|
### POST /analysis/segmentation
|
|
|
|
Start segmentatie.
|
|
|
|
### POST /analysis/change-detection
|
|
|
|
Start change detection.
|
|
|
|
### GET /analysis/{analysis_run_id}
|
|
|
|
Geeft runstatus en resultaten.
|
|
|
|
### GET /analysis/{analysis_run_id}/detections
|
|
|
|
Geeft detecties als GeoJSON FeatureCollection.
|
|
|
|
### GET /analysis/{analysis_run_id}/segmentations
|
|
|
|
Geeft segmentaties als GeoJSON FeatureCollection.
|
|
|
|
## QA/QC
|
|
|
|
### POST /analysis/{analysis_run_id}/quality-check
|
|
|
|
Vergelijkt AI-resultaten met referentiedataset.
|
|
|
|
Body:
|
|
|
|
```json
|
|
{
|
|
"reference_dataset_id": "uuid",
|
|
"iou_threshold": 0.5,
|
|
"class_mapping": {
|
|
"building": "building"
|
|
}
|
|
}
|
|
```
|
|
|
|
### GET /quality-checks/{quality_check_id}
|
|
|
|
Geeft QA/QC-resultaten.
|
|
|
|
## Exports
|
|
|
|
### POST /exports/geojson
|
|
|
|
Exporteert analysis output naar GeoJSON.
|
|
|
|
### POST /exports/yolo
|
|
|
|
Exporteert annotaties naar YOLO-formaat.
|
|
|
|
### POST /exports/coco
|
|
|
|
Exporteert annotaties naar COCO-formaat.
|
|
|
|
### GET /exports/{export_id}/download
|
|
|
|
Download exportbestand.
|
|
|
|
## Jobs
|
|
|
|
### GET /jobs/{job_id}
|
|
|
|
Geeft jobstatus.
|
|
|
|
### GET /projects/{project_id}/jobs
|
|
|
|
Geeft jobs van een project.
|