added bootstrap

This commit is contained in:
2026-06-23 09:32:36 +03:00
parent 47e8fb3f87
commit 3b15045fb7
9 changed files with 252 additions and 22 deletions
+19 -1
View File
@@ -1,5 +1,9 @@
from __future__ import annotations
import numpy as np
from app.config import get_settings
from app.core import dem
from app.core.diffraction import deygout
from app.core.fresnel import los_analysis
from app.core.geo import GeoPoint, linestring_geojson, sample_path
@@ -16,7 +20,9 @@ from app.models.terrain import (
def elevation_at(lat: float, lon: float, surface: str) -> ElevationResponse:
raise NotImplementedError("DEM COG sampling is not configured yet")
settings = get_settings()
elevation_m = dem.elevation_at(lat, lon, surface=surface, dem_path=settings.dem_path)
return ElevationResponse(lat=lat, lon=lon, elevation_m=elevation_m, surface=surface)
def terrain_profile(request: TerrainProfileRequest) -> TerrainProfileResponse:
@@ -25,8 +31,14 @@ def terrain_profile(request: TerrainProfileRequest) -> TerrainProfileResponse:
GeoPoint(lat=request.end.lat, lon=request.end.lon),
request.samples,
)
try:
ground_elevations = dem.elevations_along(points, dem_path=get_settings().dem_path).tolist()
except dem.DemNotConfiguredError:
ground_elevations = np.zeros(len(points), dtype=float).tolist()
profile = build_surface_profile(
points,
ground_elevations=ground_elevations,
include_buildings=request.include_buildings,
include_canopy=request.include_canopy,
)
@@ -51,8 +63,14 @@ def los(request: LosRequest) -> LosResponse:
GeoPoint(lat=request.rx.lat, lon=request.rx.lon),
request.samples,
)
try:
ground_elevations = dem.elevations_along(points, dem_path=get_settings().dem_path).tolist()
except dem.DemNotConfiguredError:
ground_elevations = np.zeros(len(points), dtype=float).tolist()
surface_profile = build_surface_profile(
points,
ground_elevations=ground_elevations,
include_buildings=request.include_buildings,
include_canopy=request.include_canopy,
)