3 个版本 (重大更改)
使用旧的 Rust 2015
0.3.0 | 2017 年 8 月 11 日 |
---|---|
0.2.0 | 2017 年 8 月 2 日 |
0.1.0 | 2017 年 7 月 20 日 |
#13 in #fits
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
中找到此二进制文件。
不幸的是,一些扩展是二进制的。