added conopy
This commit is contained in:
@@ -153,7 +153,7 @@ curl -s -X POST http://localhost:5603/api/v1/terrain/profile \
|
||||
- `samples`: массив точек профиля.
|
||||
- `ground_m`: высота DEM.
|
||||
- `building_m`: высота здания над землёй.
|
||||
- `canopy_m`: высота кроны, пока всегда `0`.
|
||||
- `canopy_m`: высота кроны из `CANOPY_PATH`, если canopy raster доступен.
|
||||
- `surface_m`: `ground_m + max(building_m, canopy_m)`.
|
||||
- `path_geojson`: GeoJSON LineString.
|
||||
|
||||
@@ -263,6 +263,34 @@ curl -s -X POST http://localhost:5603/api/v1/terrain/los \
|
||||
- `fresnel_lower_100pct_m` и `fresnel_upper_100pct_m` как полная первая зона Френеля.
|
||||
- точки, где `clearance_m < required_clearance_m`, подсветить как нарушения.
|
||||
|
||||
### `POST /api/v1/terrain/fresnel-slice`
|
||||
|
||||
Возвращает горизонтальную GeoJSON-геометрию зоны Френеля и здания, которые
|
||||
пересекают эту область. Endpoint нужен для визуального анализа потенциальных
|
||||
отражающих объектов рядом с трассой.
|
||||
|
||||
```bash
|
||||
curl -s -X POST http://localhost:5603/api/v1/terrain/fresnel-slice \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"tx": {"lat": 59.935, "lon": 30.305, "height_agl": 30},
|
||||
"rx": {"lat": 59.945, "lon": 30.325, "height_agl": 2},
|
||||
"frequency_mhz": 433,
|
||||
"fresnel_fraction": 0.6,
|
||||
"include_buildings": true,
|
||||
"include_canopy": true,
|
||||
"samples": 128,
|
||||
"building_limit": 5000
|
||||
}' | jq '.fresnel_geojson.geometry.type, (.buildings_geojson.features | length)'
|
||||
```
|
||||
|
||||
Ключевые поля:
|
||||
|
||||
- `path_geojson`: линия TX-RX.
|
||||
- `fresnel_geojson`: Polygon/MultiPolygon горизонтального среза зоны Френеля.
|
||||
- `buildings_geojson`: здания PostGIS, пересекающие `fresnel_geojson`, с `intersection_area_m2`.
|
||||
- `profile`: тот же набор точек Френеля, что удобно использовать для вертикального графика.
|
||||
|
||||
## Buildings
|
||||
|
||||
### `POST /api/v1/buildings/query`
|
||||
@@ -462,7 +490,11 @@ curl -s -X POST http://localhost:5603/api/v1/landcover/path \
|
||||
|
||||
### `POST /api/v1/viewshed`
|
||||
|
||||
Ставит async job в Celery. Viewshed считается через `gdal_viewshed` по DEM, результат — GeoJSON или GeoTIFF в `JOBS_OUTPUT_PATH`.
|
||||
Ставит async job в Celery. Viewshed считается через `gdal_viewshed` по DEM,
|
||||
результат — GeoJSON или GeoTIFF в `JOBS_OUTPUT_PATH`. `radius_m` остаётся
|
||||
основным радиусом запроса, а опциональный `calc_radius_m` позволяет отдельно
|
||||
задать радиус DEM-мозаики и параметр `gdal_viewshed -md`; если он не задан,
|
||||
используется `radius_m`.
|
||||
|
||||
```bash
|
||||
curl -s -X POST http://localhost:5603/api/v1/viewshed \
|
||||
@@ -470,6 +502,7 @@ curl -s -X POST http://localhost:5603/api/v1/viewshed \
|
||||
-d '{
|
||||
"observer": {"lat": 59.935, "lon": 30.305, "height_agl": 30},
|
||||
"radius_m": 15000,
|
||||
"calc_radius_m": 20000,
|
||||
"target_height_agl": 2,
|
||||
"surface": "dsm",
|
||||
"k_factor": 1.333,
|
||||
|
||||
Reference in New Issue
Block a user