added vegetation
This commit is contained in:
@@ -14,6 +14,7 @@ from app.core.surface import SurfaceProfile, build_surface_profile
|
||||
from app.models.common import DataSources
|
||||
from app.models.terrain import (
|
||||
ElevationResponse,
|
||||
FresnelProfileSample,
|
||||
LosRequest,
|
||||
LosResponse,
|
||||
Obstruction,
|
||||
@@ -117,6 +118,23 @@ def los(
|
||||
type=sample.obstruction_type,
|
||||
)
|
||||
|
||||
def convert_fresnel_sample(i: int, sample: LosSample) -> FresnelProfileSample:
|
||||
return FresnelProfileSample(
|
||||
i=i,
|
||||
lat=sample.lat,
|
||||
lon=sample.lon,
|
||||
distance_m=sample.distance_m,
|
||||
surface_m=sample.surface_m,
|
||||
path_height_m=sample.path_height_m,
|
||||
obstacle_height_m=sample.obstacle_height_m,
|
||||
clearance_m=sample.clearance_m,
|
||||
fresnel_radius_m=sample.fresnel_radius_m,
|
||||
required_clearance_m=sample.required_clearance_m,
|
||||
fresnel_lower_60pct_m=sample.path_height_m - sample.required_clearance_m,
|
||||
fresnel_lower_100pct_m=sample.path_height_m - sample.fresnel_radius_m,
|
||||
type=sample.obstruction_type,
|
||||
)
|
||||
|
||||
geometric_obstructions = [
|
||||
sample for sample in result.obstructions if sample.clearance_m < 0
|
||||
]
|
||||
@@ -133,6 +151,9 @@ def los(
|
||||
worst_obstruction=convert(result.worst_sample) if result.worst_sample else None,
|
||||
obstructions=[convert(sample) for sample in result.obstructions],
|
||||
geometric_obstructions=[convert(sample) for sample in geometric_obstructions],
|
||||
fresnel_profile=[
|
||||
convert_fresnel_sample(i, sample) for i, sample in enumerate(result.samples)
|
||||
],
|
||||
fresnel_violations_count=len(result.obstructions),
|
||||
geometric_obstructions_count=len(geometric_obstructions),
|
||||
building_obstructions_count=len(building_obstructions),
|
||||
|
||||
Reference in New Issue
Block a user