added vegetation

This commit is contained in:
2026-06-23 13:57:33 +03:00
parent 0c9fc22d22
commit c7435955c3
32 changed files with 336 additions and 15 deletions
+35
View File
@@ -0,0 +1,35 @@
from sqlalchemy import text
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import Session
from app.config import get_settings
from app.core.raster_sampling import raster_files
from app.models.status import DataStatusResponse, PostgisStatus, RasterStatus
def data_status(db: Session) -> DataStatusResponse:
settings = get_settings()
return DataStatusResponse(
dem=_raster_status(settings.dem_path),
landcover=_raster_status(settings.landcover_path),
canopy=_raster_status(settings.canopy_path),
postgis=_postgis_status(db),
)
def _raster_status(path: object) -> RasterStatus:
files = raster_files(path)
return RasterStatus(
configured=bool(files),
path=str(path),
files_count=len(files),
)
def _postgis_status(db: Session) -> PostgisStatus:
try:
buildings_count = db.execute(text("SELECT count(*) FROM buildings")).scalar_one()
except SQLAlchemyError as exc:
db.rollback()
return PostgisStatus(configured=False, error=str(exc))
return PostgisStatus(configured=True, buildings_count=int(buildings_count))