Install
openclaw skills install @ruiduobao/geoskill-urban-ventilation-corridorDerive aerodynamic roughness and ventilation potential from building morphology and extract least-resistance ventilation corridors.
openclaw skills install @ruiduobao/geoskill-urban-ventilation-corridorDerives aerodynamic roughness and ventilation potential from building morphology and extracts least-resistance ventilation corridors, supporting urban ventilation planning and thermal environment mitigation.
Core algorithm: roughness follows the simplified Macdonald empirical formula z0 = 0.1×building height×plan area density; ventilation potential VP = exp(−k×z0), monotonically decreasing with roughness; an 8-neighborhood Dijkstra on the resistance raster (1−VP+ε) finds the least-resistance path from the upwind edge to the downwind edge as the ventilation corridor. Corridor geometry is built with shapely and output as GeoJSON.
pip install 'numpy' 'rasterio' 'shapely'
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 [other parameters]
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out
python geoskill-urban-ventilation-corridor.py --input height.tif --footprints fp.tif --output-dir ./out
python geoskill-urban-ventilation-corridor.py --bbox 121.0 31.0 122.0 32.0 --decay-k 0.8 --output-dir ./out --quiet
python geoskill-urban-ventilation-corridor.py --input height.tif --roughness-coeff 0.15 --output-dir ./out
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out --quiet
| File | Format | Description |
|---|---|---|
ventilation.tif | GeoTIFF | Two bands: band1=roughness z0, band2=ventilation potential VP |
corridor.geojson | GeoJSON | Least-resistance ventilation corridor (LineString, built with shapely) |
ventilation_stats.json | JSON | Mean roughness, mean ventilation potential, corridor cost/vertex count |
output-manifest.json | JSON | Run manifest |
Local building height + plan area density GeoTIFFs; --synthetic mode generates an urban scene containing a low-rise ventilation green belt.
--synthetic mode requires no network at all.MIT
从建筑形态推导空气动力学粗糙度与通风潜力,并提取最小阻力通风廊道,服务于城市通风规划与热环境缓解。
核心算法:粗糙度采用 Macdonald 经验式简化 z0 = 0.1×建筑高度×平面面积密度;通风潜力 VP = exp(−k×z0),随粗糙度单调递减;在阻力栅格(1−VP+ε)上用 8 邻域 Dijkstra 求上风缘到下风缘的最小阻力路径作为通风廊道。廊道几何用 shapely 构建并输出 GeoJSON。
pip install 'numpy' 'rasterio' 'shapely'
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 [其他参数]
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out
python geoskill-urban-ventilation-corridor.py --input height.tif --footprints fp.tif --output-dir ./out
python geoskill-urban-ventilation-corridor.py --bbox 121.0 31.0 122.0 32.0 --decay-k 0.8 --output-dir ./out --quiet
python geoskill-urban-ventilation-corridor.py --input height.tif --roughness-coeff 0.15 --output-dir ./out
python geoskill-urban-ventilation-corridor.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out --quiet
| 文件 | 格式 | 说明 |
|---|---|---|
ventilation.tif | GeoTIFF | 双波段:band1=粗糙度 z0,band2=通风潜力 VP |
corridor.geojson | GeoJSON | 最小阻力通风廊道(LineString,shapely 构建) |
ventilation_stats.json | JSON | 平均粗糙度、平均通风潜力、廊道代价/顶点数 |
output-manifest.json | JSON | 运行清单 |
本地建筑高度 + 平面面积密度 GeoTIFF;--synthetic 模式生成含低矮通风绿带的城区场景。
--synthetic 模式完全无网络。MIT