3 个版本 (重大更改)

使用旧的 Rust 2015

0.3.0 2017 年 8 月 11 日
0.2.0 2017 年 8 月 2 日
0.1.0 2017 年 7 月 20 日

#13 in #fits

MIT 许可证

11MB
1K SLoC

fits-rs 构建状态 包

FITS 编码器和解码器,Rust 实现。

请务必查看此包的文档

FITS

灵活图像传输系统 (FITS) 是

一个开放标准,定义了一种数字文件格式,适用于存储、传输和处理科学和其他图像。

FITS 标准的参考文档可以在 NASA 的FITS 页面找到。您可以执行以下命令获取一份副本:

wget --output-document=fits-reference.pdf "https://www.aanda.org/articles/aa/pdf/2010/16/aa15362-10.pdf"

读取主头信息

尽管 FITS 文件的头信息是 ASCII 格式,但您可以使用此包读取主头信息。

    let args: Vec<String> = env::args().collect();
    let filename = &args[1];
    let header_index = u64:from_str(&args[2]).expect("should be a non-negative number");

    let mut f = File::open(filename).expect("file not found");
    let mut buffer: Vec<u8> = vec!();
    let _ = f.read_to_end(&mut buffer);

    let result = fits(&buffer);

    match result {
        IResult::Done(_, trappist1) => {
            let header: &Header = if header_index = 0 {
                &trappist1.primary_hdu.header
            } else {
                &trappist1.extensions[header_index].header
            }

            for record in header.keyword_records {
                println!("{:?}", record);
            }
        },
        _ => panic!("Whoops, something went wrong")
    }

您可以在src/bin/headers.rs中找到此二进制文件。

不幸的是,一些扩展是二进制的。

依赖项