48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# Backend Service IO Contracts
|
|
|
|
## ProjectService
|
|
`create_project(input: ProjectCreate) -> ProjectRead`
|
|
`list_projects() -> list[ProjectRead]`
|
|
`get_project(project_id: str) -> ProjectRead`
|
|
|
|
## AreaService
|
|
`create_area(project_id: str, input: AreaCreate) -> AreaRead`
|
|
`list_areas(project_id: str) -> FeatureCollection`
|
|
`validate_geometry(geojson: dict) -> GeometryValidationResult`
|
|
|
|
## DatasetService
|
|
`register_upload(project_id: str, file) -> DatasetRead`
|
|
`extract_metadata(dataset_id: str) -> DatasetMetadataResult`
|
|
`list_datasets(project_id: str) -> list[DatasetRead]`
|
|
`get_dataset(dataset_id: str) -> DatasetRead`
|
|
|
|
## RasterService
|
|
`read_metadata(path: Path) -> RasterMetadata`
|
|
`clip(dataset_id: str, area_id: str) -> JobRead`
|
|
`tile(dataset_id: str, parameters: TileParameters) -> JobRead`
|
|
`calculate_index(dataset_id: str, index_type: str, bands: dict) -> JobRead`
|
|
|
|
## VectorService
|
|
`read_metadata(path: Path) -> VectorMetadata`
|
|
`clip(dataset_id: str, area_id: str) -> JobRead`
|
|
`buffer(dataset_id: str, distance_m: float) -> JobRead`
|
|
`intersect(left_dataset_id: str, right_dataset_id: str) -> JobRead`
|
|
|
|
## DetectionService
|
|
`create_run(project_id: str, input: DetectionRunCreate) -> AnalysisRunRead`
|
|
`execute_run(run_id: str) -> DetectionRunResult`
|
|
|
|
## SegmentationService
|
|
`create_run(project_id: str, input: SegmentationRunCreate) -> AnalysisRunRead`
|
|
`execute_run(run_id: str) -> SegmentationRunResult`
|
|
|
|
## QAQCService
|
|
`create_quality_check(input: QualityCheckCreate) -> QualityCheckRead`
|
|
`calculate_iou_matrix(candidate_layer_id: str, reference_layer_id: str) -> IoUMatrix`
|
|
`calculate_metrics(matches: list[Match]) -> QualityMetrics`
|
|
|
|
## ExportService
|
|
`create_export(input: ExportCreate) -> ExportRead`
|
|
`write_geojson(layer_id: str) -> Path`
|
|
`write_metrics_csv(analysis_run_id: str) -> Path`
|