added fresnel zone

This commit is contained in:
2026-06-23 15:44:31 +03:00
parent b230f7277c
commit b9a1ca4125
7 changed files with 10 additions and 2 deletions
+4 -2
View File
@@ -246,6 +246,8 @@ curl -s -X POST http://localhost:5603/api/v1/terrain/los \
"clearance_m": 11.28,
"fresnel_radius_m": 11.9,
"required_clearance_m": 7.14,
"fresnel_upper_60pct_m": 36.84,
"fresnel_upper_100pct_m": 41.6,
"fresnel_lower_60pct_m": 22.56,
"fresnel_lower_100pct_m": 17.8,
"type": "terrain"
@@ -257,8 +259,8 @@ curl -s -X POST http://localhost:5603/api/v1/terrain/los \
- `distance_m` по X.
- `surface_m` как земля/DSM.
- `path_height_m` как прямая TX-RX.
- `fresnel_lower_60pct_m` как нижняя граница требуемой свободной зоны.
- `fresnel_lower_100pct_m` как нижняя граница полной первой зоны Френеля.
- `fresnel_lower_60pct_m` и `fresnel_upper_60pct_m` как требуемая свободная зона.
- `fresnel_lower_100pct_m` и `fresnel_upper_100pct_m` как полная первая зона Френеля.
- точки, где `clearance_m < required_clearance_m`, подсветить как нарушения.
## Buildings
Binary file not shown.
+2
View File
@@ -70,6 +70,8 @@ class FresnelProfileSample(BaseModel):
clearance_m: float
fresnel_radius_m: float
required_clearance_m: float
fresnel_upper_60pct_m: float
fresnel_upper_100pct_m: float
fresnel_lower_60pct_m: float
fresnel_lower_100pct_m: float
type: Literal["terrain", "building", "canopy"]
Binary file not shown.
+2
View File
@@ -130,6 +130,8 @@ def los(
clearance_m=sample.clearance_m,
fresnel_radius_m=sample.fresnel_radius_m,
required_clearance_m=sample.required_clearance_m,
fresnel_upper_60pct_m=sample.path_height_m + sample.required_clearance_m,
fresnel_upper_100pct_m=sample.path_height_m + sample.fresnel_radius_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,
+2
View File
@@ -86,6 +86,8 @@ def test_los_endpoint_returns_obstruction_summary_fields() -> None:
"path_height_m",
"fresnel_radius_m",
"required_clearance_m",
"fresnel_upper_60pct_m",
"fresnel_upper_100pct_m",
"fresnel_lower_60pct_m",
"fresnel_lower_100pct_m",
}.issubset(data["fresnel_profile"][0])