added vegetation
This commit is contained in:
@@ -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))
|
||||
Reference in New Issue
Block a user