Install
openclaw skills install @ruiduobao/geoskill-profile-chart-generatorSample elevation or imagery values along a path and produce profile charts and CSV
openclaw skills install @ruiduobao/geoskill-profile-chart-generatorResamples a DEM at equal intervals along a polyline path, extracts elevation point by point using bilinear interpolation, computes cumulative ground distance, and outputs a profile chart PNG together with CSV/JSON sample tables. The number of sample points is determined automatically as path length / interval.
Distance uses an equirectangular approximation (longitudes scaled by the reference latitude); bilinear interpolation is exact for linear planar surfaces.
segment_lengths_m metric segment lengths → resample_path uniform resampling by arc length → bilinear_sample (from_bounds pixel-center convention) extracts elevation → cumulative distance → matplotlib profile chart.
pip install numpy rasterio scipy matplotlib geopandas shapely pillow
python geoskill-profile-chart-generator.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out
python geoskill-profile-chart-generator.py --input dem.tif --vertices "116.0,39.0" "116.5,39.8" "117.0,39.5"
python geoskill-profile-chart-generator.py --input dem.tif --interval 200
python geoskill-profile-chart-generator.py --input dem.tif --samples 200
python geoskill-profile-chart-generator.py --bbox 116 39 117 40 --synthetic --interval 500
| File | Format | Description |
|---|---|---|
profile.png | PNG | Profile chart (main output) |
profile.csv | CSV | Sample table index/distance/lon/lat/value |
profile.json | JSON | Structured profile data (verifiable output) |
profile_dem.tif | GeoTIFF | DEM used |
Each run also produces output-manifest.json (run manifest).
Local GeoTIFF / vector files; --synthetic mode generates physically consistent simulated data, fully offline.
--synthetic mode requires no network at all.MIT
沿折线路径对 DEM 做等距重采样,用双线性内插逐点提取高程,计算累计地面距离,输出剖面图 PNG 与 CSV/JSON 采样表。采样点数由“路径长度/间隔”自动确定。
距离用等距圆柱近似(经度按参考纬度缩放);双线性内插对线性平面结果精确。
segment_lengths_m 米制段长 → resample_path 按弧长等距重采样 → bilinear_sample(from_bounds 像元中心约定) 提取高程 → 累计距离 → matplotlib 剖面图。
pip install numpy rasterio scipy matplotlib geopandas shapely pillow
python geoskill-profile-chart-generator.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out
python geoskill-profile-chart-generator.py --input dem.tif --vertices "116.0,39.0" "116.5,39.8" "117.0,39.5"
python geoskill-profile-chart-generator.py --input dem.tif --interval 200
python geoskill-profile-chart-generator.py --input dem.tif --samples 200
python geoskill-profile-chart-generator.py --bbox 116 39 117 40 --synthetic --interval 500
| 文件 | 格式 | 说明 |
|---|---|---|
profile.png | PNG | 剖面图(主产物) |
profile.csv | CSV | 采样表 index/distance/lon/lat/value |
profile.json | JSON | 剖面结构化数据(可验证产物) |
profile_dem.tif | GeoTIFF | 所用 DEM |
每次运行还会产出 output-manifest.json(运行清单)。
本地 GeoTIFF / 矢量文件;--synthetic 模式生成物理一致的模拟数据,完全离线。
--synthetic 模式完全无网络。MIT