【问题标题】:FITS creating compressed image dataFITS 创建压缩图像数据
【发布时间】:2014-05-18 04:36:27
【问题描述】:

我正在尝试使用压缩将数据写入FITS format。这是我尝试过的:

#include <vector>
#include "fitsio.h"
#define DIM 100
int main(int argc, char *argv[]) {
    fitsfile *fptr;       /* pointer to the FITS file, defined in fitsio.h */
    std::vector<double> data(DIM*DIM);
    for (unsigned int i=0; i<data.size();i++) data[i]=i;
    int s=0, status;
    fits_create_file(&fptr, "!test3.fits", &s); status+=s;
    fits_set_compression_type(fptr, GZIP_2, &s); status+=s;
    std::vector<long> naxes(2); naxes[0]=DIM; naxes[1]=DIM;
    fits_create_img(fptr,  DOUBLE_IMG, naxes.size(), &naxes[0], &s); status+=s;
    fits_write_img(fptr, TDOUBLE, 1, data.size(), &data[0], &s); status+=s;
    fits_close_file(fptr, &status); status+=s;
    return status;
}

因为返回状态为零,所以它可以工作。但我无法用任何东西打开文件。而且file test3.fits返回

test3.fits: FITS image data, 16-bit, two's complement binary integer

如果我删除fits_set_compression_type 行...我得到

test3.fits: FITS image data, 64-bit, floating point, double precision

没错(我可以打开图片)

我在这里做错了什么?

【问题讨论】:

    标签: c++ compression image-compression data-compression fits


    【解决方案1】:

    看起来我创建了一个有效的 fit 文件,只是 imageJ 没有正确读取它。下载ds9,效果很好。

    【讨论】:

      【解决方案2】:

      有些较旧的 FITS 库无法处理 FITS 切片压缩标准。基于最近的 cfitsio(和 CCfits)和 nom.tam.fits 的软件通常符合该约定。

      【讨论】:

        猜你喜欢
        • 2011-02-09
        • 2016-07-08
        • 2012-04-26
        • 2014-04-15
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多