# Domain Model ## Project A project represents a GeoAI investigation. It is not just a folder. It defines the purpose, spatial areas, datasets, analysis runs, and outputs. Fields: - id - name - description - region - status - created_at - updated_at Relationships: - has many areas - has many datasets - has many analysis_runs - has many exports ## Area An area is a selected geometry, usually a polygon. It may represent a municipality, manually drawn polygon, bounding box, or uploaded GeoJSON geometry. Rules: - Must have valid geometry. - Must have a calculated area in square meters. - Must keep original input geometry if uploaded. - Must be convertible to GeoJSON. ## Dataset A dataset is any input or derived geospatial artifact. Dataset types: - raster - vector - reference - detection_output - segmentation_output - mask - tile_set - export Dataset statuses: - registered - uploaded - metadata_extracted - processed - failed ## AnalysisRun Tracks execution of a pipeline. Analysis types: - raster_metadata - raster_clip - raster_tile - vector_import - object_detection - segmentation - qaqc - change_detection - export ## Detection A model-detected object. V1 supports bounding boxes converted into geospatial polygons. Important fields: - class_name - confidence - geometry - bbox_pixel - bbox_geo - source_tile - model_id ## QualityCheck A measured comparison between predicted features and reference features. Core metrics: - precision - recall - f1 - mean_iou - matched_count - false_positive_count - false_negative_count