HEASARC/cfitsio
GitHub: HEASARC/cfitsio
一款用于读写FITS格式科学数据文件的C与Fortran库,解决天文观测数据的高效存储与解析问题。
Stars: 65 | Forks: 34
# CFITSIO 接口库
CFITSIO 是一组用于读写 FITS 格式数据文件的 ANSI C 例程。还包含一组可供 Fortran 程序员调用的包装例程,以方便使用。此 README 文件简要介绍了如何构建和测试 CFITSIO,但最新最完整的信息可在 CFITSIO 用户指南的 “docs” 文件夹中找到:
### C 程序员用户指南
* `cfitsio.tex`(LaTeX 源文件)
* `cfitsio.ps`(PostScript 文件)
* `cfitsio.pdf`(便携式文档格式)
### Fortran 程序员用户指南
* `fitsio.tex`(LaTeX 源文件)
* `fitsio.ps`(PostScript 文件)
* `fitsio.pdf`(便携式文档格式)
### 快速入门指南
* `quick.tex`(LaTeX 源文件)
* `quick.ps`(PostScript 文件)
* `quick.pdf`(便携式文档格式)
## 构建 CFITSIO
CFITSIO 代码(包含在 `*.c` 源文件和若干 `*.h` 头文件中)应该可以在大多数 Unix 平台上无需修改即可编译和运行。在 Unix 系统上构建库的标准方式是遵循通常的 GNU 风格方法,即首先输入:
```
% ./configure [--prefix=/target/installation/path]
```
在操作系统提示符下。输入 `./configure` 而不是简单的 `configure`,以确保运行当前目录中的 configure 脚本,而不是系统中的其他 configure 脚本。configure 的可选 `prefix` 参数指定了 CFITSIO 库和头文件应通过后续的 `make install` 命令安装的目录路径。例如,
```
% ./configure --prefix=/usr1/local
```
将导致后续的 `make install` 命令将库文件复制到 `/usr1/local/lib`,并将所需的头文件复制到 `/usr1/local/include`(当然前提是该进程具有写入这些目录的权限)。
可通过输入以下命令查看所有可用的 configure 选项:
```
% ./configure --help
```
configure 命令会为特定系统定制 Makefile,因此运行它之后,请输入:
```
% make
```
在提示符下,这将编译源文件并构建库(静态库 `libcfitsio.a` 以及共享库 `libcfitsio.so|.dylib`)和辅助工具(`fpack`、`funpack`、`fitscopy`、`imcopy` 等)以及测试程序(`testprog`)。要将库、头文件和工具复制到所选的安装位置,请输入以下命令:
```
% make check
% make install
```
在 Linux 和其他某些系统上安装到 /usr/local 时,可能需要重新运行链接器缓存构建命令:
```
% sudo ldconfig
```
另外,库和工具也可以在许多系统上使用 CMake 程序构建。在 Windows 平台使用 CMake 的具体说明可以在 `README.win` 文件中找到,但对于 Unix 系统(例如 Linux 或 macOS),过程应类似于以下操作:
在 CFITSIO 源代码目录中:
```
% mkdir cmbuild
% cd cmbuild
% cmake -G "Unix Makefiles" ..
% cmake --build .
% cmake --install . [--prefix /usr/local]
```
最后一步使用可选的安装前缀。
有关通过第三方软件包管理器或 XCode GUI 在 macOS 上安装 CFITSIO 的更多选项,请参见 `README.MacOS` 文件。
## 测试 CFITSIO
可通过构建并运行随发布包提供的 `testprog.c` 程序来测试 CFITSIO(该程序位于 `utilities` 文件夹中)。在 Unix 系统上,输入:
```
% make testprog
% ./testprog > testprog.lis
% diff testprog.lis testprog.out
% cmp testprog.fit testprog.std
```
`testprog` 程序应生成一个名为 `testprog.fit` 的 FITS 文件,该文件与发布包中包含的 `testprog.std` FITS 文件完全相同。输出到文件 `testprog.lis` 的诊断信息(在 Unix 示例中)应与包含在文件 `testprog.out` 中的列表完全一致。上述 `diff` 和 `cmp` 命令不应报告文件之间存在任何差异。
## 使用 CFITSIO
上述文件中包含的 CFITSIO 用户指南提供了关于如何构建和使用 CFITSIO 库的详细说明。它描述了 CFITSIO 接口中的每个可调用的例程。
`utilities` 文件夹中的 `cookbook.c` 文件提供了一些用于在各种类型的 FITS 文件上执行常见操作的示例例程。鼓励程序员查阅这些例程,以了解使用 CFITSIO 时的推荐编程实践。用户可以自由复制或修改这些例程以用于自身目的。
任何问题报告或改进建议都欢迎发送至 CFITSIO/CCFITS 帮助台:
[ccfits@heasarc.gsfc.nasa.gov](mailto:ccfits@heasarc.gsfc.nasa.gov)
William D. Pence
HEASARC, NASA/GSFC
标签:CFITSIO, configure, C库, FITS文件, Fortran, Fortran库, make install, 天文数据格式, 天文软件, 客户端加密, 开源库, 接口库, 搜索引擎爬虫, 数据交换, 文件读写, 文档, 源码编译, 用户指南, 科学计算, 编程接口