1 个不稳定版本
0.3.0 | 2023年8月10日 |
---|
#149 在 地理空间
每月 47 次下载
650KB
374 行
survex-dist
一个用于在Survex洞穴测量文件中计算两个点之间距离的命令行工具。 survex-dist
与 Survex项目 无关,尽管我对他们的辛勤工作非常感激!
特性
实现
- 处理Survex 3D文件以创建洞穴系统的图。
- 使用A*路径查找算法计算洞穴系统中任何两个测站之间的最短步行距离。
- 通过指定要通过或排除的测量站来强制通过洞穴的特定路线。
- 输出到不同的格式:纯文本、表格、JSON。
计划
- 生成洞穴系统和路径的图形表示。
- 提供一个Web界面,允许不本地安装即可使用应用程序。
- 提供洞穴系统的分析,例如环数、入口数等。
- 提供洞穴系统中各种穿越旅行的分析。
示例
> survex-dist tests/data/nottsii.3d nottsii.entrance entranceshaft.007
+-------------------+----------------------------+----------+------------+
| Station label | Coords | Leg Dist | Total Dist |
+-------------------+----------------------------+----------+------------+
| entrance | 66668.00, 78303.00, 319.00 | 0.00m | 0.00m |
| entranceshaft.002 | 66668.09, 78302.82, 319.00 | 0.20m | 0.20m |
| entranceshaft.003 | 66668.09, 78302.82, 317.93 | 1.07m | 1.27m |
| entranceshaft.004 | 66667.99, 78303.07, 317.93 | 0.27m | 1.54m |
| entranceshaft.005 | 66667.99, 78303.07, 306.40 | 11.53m | 13.07m |
| entranceshaft.006 | 66668.52, 78305.06, 305.16 | 2.40m | 15.47m |
| entranceshaft.007 | 66668.04, 78305.88, 304.03 | 1.48m | 16.95m |
+-------------------+----------------------------+----------+------------+
+------------------------+-----------------------------------------------+
| Metadata | Value |
+------------------------+-----------------------------------------------+
| Start station | entrance |
| End station | committeepotentrance.entranceshaft.007 |
| Path length | 7 |
| Path distance | 16.95m |
| Straight line distance | 15.24m |
| Time taken | 22.19ms |
+------------------------+-----------------------------------------------+
用法
安装
survex-dist
目前没有提供二进制文件。您可以使用 cargo
(Rust包管理器)自己构建和安装它。如果您需要安装 cargo
,请参阅 rustup.rs。
要在您的 cargo
二进制目录(通常是 ~/.cargo/bin
)中构建和安装 survex-dist
,请运行以下命令
cargo install survex-dist
通过和避免
survex-dist
可以通过指定通过站点来确保采取特定路线。这通过使用 --via
标志来完成。例如,为了确保路线通过测站 entranceshaft.005
,请使用以下命令
> survex-dist tests/data/nottsii.3d nottsii.entrance entranceshaft.007 --via entranceshaft.005
完全相同的方式,可以使用 --avoid
标志来确保路线不通过某个特定的站点。可以多次使用 --via
和 --avoid
。请注意,--via
站点按指定的顺序进行处理,可能会导致路线循环。
测站匹配
在指定测量站点时,您可以使用部分站点名称。
例如,以下站点 nottsii.committeepotentrance.entranceshaft.007
被指定为 entranceshaft.007
上方。只要匹配不模糊,部分匹配将被接受。如果部分匹配模糊,survex-dist
将打印可能的匹配列表并退出。
❯ survex-dist tests/data/nottsii.3d nottsii.entrance entranceshaft
There were 35 possible matches for the station name 'entranceshaft'.
The first 20 matches were:
nottsii.committeepotentrance.entranceshaft_2.15
nottsii.committeepotentrance.entranceshaft_2.14
nottsii.committeepotentrance.entranceshaft_2.13
nottsii.committeepotentrance.entranceshaft_2.12
... snip ...
输出格式
可以使用 --format
标志更改输出格式。以下格式受支持
table
(默认)文本
JSON
测量分析
survex-dist
将在将来提供使用 --analyse
标志的测量分析。目前,此标志没有作用。
其他选项
要获取完整选项列表,请运行 survex-dist --help
。
贡献
欢迎提交拉取请求和问题 - 如果您发现任何错误或对功能有建议,请告诉我。
另请参阅
survex-dist
使用 survex-rs 库来读取 Survex 3D 文件,该库反过来又直接使用 Survex 的 img.c
库。
依赖关系
约 10–25MB
约 324K SLoC