#command-line-tool #survex #cave-survey #caves #caving

bin+lib survex-dist

用于计算Survex 3D文件中两个测站之间距离的工具

1 个不稳定版本

0.3.0 2023年8月10日

#149地理空间

每月 47 次下载

GPL-3.0-only

650KB
374

survex-dist

一个用于在Survex洞穴测量文件中计算两个点之间距离的命令行工具。 survex-distSurvex项目 无关,尽管我对他们的辛勤工作非常感激!

特性

实现

  • 处理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 文件,该库反过来又直接使用 Surveximg.c 库。

依赖关系

约 10–25MB
约 324K SLoC