7个版本

0.0.7 2024年8月24日
0.0.6 2024年8月22日

75科学 分类中

Download history 695/week @ 2024-08-16

695 每月下载量

MIT/Apache

4.5MB
3K SLoC

star-catalog

此crate提供二进制文件和库。

star-catalog库管理恒星目录,其中包含具有位置的恒星(来自赤经和赤纬、距离、星等、颜色和id)。

star_catalog二进制文件

star_catalog二进制文件读取恒星目录文件的一部分(通常是JSON文件,例如包含的hipparcos.json文件),并允许查询内容或绘制星图的一部分(如果启用了'图像'功能)。

该二进制文件使用'clap',并期望子命令来执行操作。

要加载的恒星选择

star_catalog命令期望一个内置目录或目录文件名,从该文件名中加载恒星。这通常是JSON文件或Postcard文件(.pst扩展名)。

如果启用了hipp_bright功能,则从star_catalog二进制文件本身加载星等8或更亮的恒星目录。

仅对'Postcard'功能启用Postcard支持。

如果构建二进制文件时启用了'csv'功能,则可以加载Hipparcos CSV文件;这可以用于读取'hippparcos-voidmain.csv'等文件。通常用于读取CSV文件并将JSON文件写入以供将来使用。

该命令有几个选项,用于管理从目录中选择要加载的恒星

  • 星等:'-m'选项选择星等为-N或更亮的恒星

  • 位置:'-r'、'-d'和'-a'选项选择一个圆锥的中心和角度,目录外的恒星将被忽略。RA、DE和ANGLE(赤经、赤纬和圆锥角度)以度为单位指定。

恒星命名

可以指定一个名称映射文件,它必须是一个包含(id, name)对列表的JSON文件,加载后允许通过名称识别恒星。

子命令

支持的子命令有

  • list:列出目录中恒星的数据

  • find:通过名称或id查找单个恒星的数据

  • write:将恒星目录写入JSON文件或Postcard文件

  • image:生成天空图像

  • cubemap:生成天空立方体贴图(4x3图像中的6个完整面)

  • angle_between: 打印一组恒星之间的角度

  • triangle: 从三个角度(在角度差范围内)中找出一个恒星三角形

如果没有提供子命令,则该命令仅打印出目录中读取的恒星数量。

子命令 list

'list' 子命令按 ID 排序打印恒星数据。

格式是

<id> : <ra>, <de> : <distance> : <mag>

ID 是特定于目录的,并且是一个 'usize'。赤经和赤纬以度为单位打印,距离以光年为单位。星等是目录中的星等,通常是视星等。

子命令 find

'find' 子命令打印出多个恒星的星数据,使用 ID 或名称(如果目录也加载了名称文件,则名称才有意义;参见上文)。

star_catalog find [*]

star_catalog --names find <id|name> [<id|name>*]

输出格式如 'list' 命令中所示

子命令 angle_between

'angle_between' 子命令接受多个 ID 或名称(如果是有名称的目录),并打印出每对之间的角度,以度为单位。

子命令 write

'write' 子命令将已加载目录的子集写入一个新的 JSON 文件或 poscard 文件,该文件由 '--output' 选项指定。

这可以用来缩小目录文件 - 例如

star_catalog hipparcos.json -m 2.5 write --output bright.json

输出目录将只包含视星等为 -2.5 或更亮的恒星。

如果启用了 postcard 功能,则具有 '.pst' 扩展名的文件将输出为 Postcard(二进制)文件(这些文件的大小约为 JSON 文件的 40%)

子命令 triangle

此命令需要三个角度作为参数,以度为单位,这些角度是天空中的三个恒星之间的角度(从 a 到 b,从 a 到 c,从 b 到 c)。

它使用 --angle 参数为这些角度提供增量(角度的最大误差)。

这将搜索目录以查找具有所需角度(加上或减去角度增量)的恒星三角形。

结果是三个三角形 ID 的列表(以及恒星之间的角度)

支持的最大搜索角度为 90 度。

子命令 image

这仅在二进制文件编译了 'image' 功能时才受支持。

'image' 子命令生成星图区域的图像;目前它相当基础。恒星根据 B-V(温度)着色,根据星等大小。

要显示的区域由 'image' 子命令的选项 -r、-d 指定,用于提供方向;-a 旋转从北方的 'up' 向量;-W 和 -H 提供图像的宽度和高度;-f 提供图像 宽度 的视野。生成的图像将写入由 -o 提供的输出文件名。

支持 jpeg 和 png 图像

子命令 cubemap

这仅在二进制文件编译了 'image' 功能时才受支持。

'cubemap' 子命令生成整个星图的图像。

默认情况下,星图中心是黄道;如果指定了方向,则星图的一个面具有该方向,并相应地构建其余的星图。

与图像相同的选项适用于星图(除视野外)。

支持 jpeg 和 png 图像

可以通过 ID 搜索目录,并可以找到特定赤经和赤纬最近的恒星。

目录支持 serde。

库包括 Hipparcos 恒星目录,以及与 IAU 命名恒星相关的 Hipparcos ID 值。

这是一个早期版本;库的初始目的是允许从星星的照片中描述相机镜头(因为星星具有已知的固定相对方向,相机传感器上星星之间的角度可以映射到现实世界中的角度)。

使用方法

cargo add star-catalog

功能

'csv' 功能可以添加以允许读取(例如)Hipparcos CSV目录文件。在正常使用中不需要此功能,因为包含的Hipparcos目录使用JSON。

'image' 功能允许在star_catalog二进制文件中写入天空图的图像

'postcard' 功能允许在star_catalog二进制文件中读取和写入星表

'hipp_bright' 功能包括亮度为8或更高的Hipparcos星星目录,作为hipparcos::HIPP_BRIGHT_PST;在star_catalog二进制文件中提供此作为内置目录

版本发布

发布说明可在RELEASES.md中找到。

许可证

许可协议为以下之一

由您选择。

贡献

除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义的工作,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~2.2–4MB
~73K SLoC