图像

ImageHDU

class astropy.io.fits.ImageHDU(data=None, header=None, name=None, do_not_scale_image_data=False, uint=True, scale_back=None, ver=None)[源代码]

基类:_ImageBaseHDU, ExtensionHDU

适合图像扩展HDU类。

构建一个图像HDU。

参数
data数组

HDU中的数据。

页眉Header标题

要使用的标头(作为模板)。如果 headerNone ,将提供最小页眉。

name可选的STR

HDU的名称,将是关键字的值 EXTNAME .

do_not_scale_image_data可选的布尔

如果 True ,读取图像数据时不使用b缩放/b零值缩放图像数据。(默认值:False)

uint可选的布尔

解释有符号整数数据,其中 BZERO 是核心价值观 BSCALE == 1 作为无符号整数数据。例如, int16 数据与 BZERO = 32768BSCALE = 1 会被视为 uint16 数据。(默认值:True)

scale_back可选的布尔

如果 True ,保存对包含缩放图像数据的文件所做的更改时,将数据还原为原始类型并重新应用原始b缩放/b零值。如果在对数据执行浮点运算后缩小到整数值,这可能会导致精度损失。除非scale_back显式设置为,否则伪无符号整数将自动重新缩放 False . (默认值:无)

verint>0或无,可选

HDU的ver,将是关键字的值 EXTVER . 如果未给定或无,则默认为 EXTVERheader 或1。(默认值:无)

add_checksum(when=None, override_datasum=False, checksum_keyword='CHECKSUM', datasum_keyword='DATASUM')

添加 CHECKSUMDATASUM 将这些值设置为分别为HDU和数据计算的校验和的卡。添加 DATASUM 卡可能被覆盖。

参数
when可选的STR

卡片的注释字符串;默认情况下,注释将表示计算校验和的时间

override_datasum可选的布尔

添加 CHECKSUM 仅限卡片

checksum_keyword可选的STR

要在其中存储校验和值的头关键字的名称;根据惯例,这通常是“checksum”,但在某些情况下,应该使用不同的关键字

datasum_keyword可选的STR

checksum_keyword

笔记

出于测试目的,先打电话 add_datasum 用一个 when 争论,然后打电话 add_checksum 用一个 when 论证与 override_datasum 设置为 True . 这将为两张卡提供一致的注释,并使生成 CHECKSUM 价值一致的卡片。

add_datasum(when=None, datasum_keyword='DATASUM')

添加 DATASUM 将该值设置为为为数据计算的校验和的值。

参数
when可选的STR

卡的注释字符串,默认情况下表示计算校验和的时间

datasum_keyword可选的STR

要在其中存储datasum值的头关键字的名称;根据惯例,这通常是“datasum”,但在某些情况下,应该使用不同的关键字

返回
checksum利息

计算数据

笔记

出于测试目的,提供一个 when 参数使卡中的注释值保持一致。这将使 CHECKSUM 价值一致的卡片。

copy()

复制HDU,头和数据都被复制。

property data

图像/阵列数据作为 ndarray .

请记住,Numpy数组中轴的顺序与FITS文件中指定的顺序相反。例如,对于二维图像,“行”或y轴是第一维,“列”或x轴是第二维。

如果使用BZERO和BSCALE参数缩放数据,则除非文件是用 do_not_scale_image_data=True .

filebytes()

计算并返回此HDU将写入文件的字节数。

fileinfo()

返回一个字典,详细说明此HDU在任何关联文件中的位置信息。这些值只有在读取或写入关联文件之后才有效,而不会对 HDUList .

返回
不记名

字典详细说明了这个HDU在相关文件中的位置信息。退换商品 None 当HDU不与文件关联时。

字典内容:

价值

文件

与HDU关联的文件对象

文件格式

打开文件的模式(readonly、copyonfrite、update、append、ostream)

hdrLoc公司

文件头的起始字节位置

达洛克

文件中数据块的起始字节位置

数据跨度

数据大小(包括填充)

classmethod fromstring(data, checksum=False, ignore_missing_end=False, **kwargs)

从包含HDU的整个头和(可选)其数据的字符串创建适当类型的新HDU对象。

注意:当从没有备份文件对象的字符串创建新的HDU时,该HDU的数据可能是只读的。它取决于底层字符串是不可变的Python str/bytes对象,还是某种读写内存缓冲区,例如 memoryview .

参数
datastr,bytearray,内存视图,ndarray

包含HDU的头和数据的字节字符串。

checksum可选的布尔

检查HDU的校验和和/或数据。

ignore_missing_end可选的布尔

忽略头数据中缺少的端卡。请注意,如果没有端卡,标头的结尾可能不明确,并导致HDU损坏。在这种情况下,假设第一个不是以有效的FITS头数据开头的2880块是数据的开始。

**kwargs可选择的

可能由特定于HDU类型的附加关键字参数组成——这些参数对应于由不同HDU类的构造函数识别的关键字,例如 PrimaryHDUImageHDUBinTableHDU . 任何无法识别的关键字参数都将被忽略。

classmethod match_header(header)[源代码]

_ImageBaseHDU是包含图像数据(与表数据相对)的HDU的一种抽象类,不应直接使用。

classmethod readfrom(fileobj, checksum=False, ignore_missing_end=False, **kwargs)

从文件中读取HDU。通常,HDU应使用 open() 它读取FITS文件中的整个HDU列表。但这种方法仍然适用于 writeto() .

参数
fileobj文件状

输入适合文件。假定文件的seek指针位于HDU的开头。

checksum布尔

如果 True ,验证两者 DATASUMCHECKSUM 卡值(当HDU头中存在时)与文件中所有HDU的头和数据相匹配。

ignore_missing_end布尔

打开缺少的文件时不要发出异常 END 最后一个标题中的卡。

req_cards(keyword, pos, test, fix_value, option, errlist)

检查所需的 Card .

参数
keywordSTR

要验证的关键字

pos内景,可赎回

如果一个 int ,指定该卡在标头中的确切位置。记住Python是零索引的,所以这意味着 pos=0 要求卡是标题中的第一张卡。如果给了一个可调用的,它应该接受一个参数——关键字的实际位置——并返回 TrueFalse . 这可用于自定义评估。例如,如果 pos=lambda idx: idx > 10 这将检查关键字的索引是否大于10。

test可赎回的

这应该是一个可调用的(通常是一个函数),它传递给定关键字的值并返回 TrueFalse . 这可用于验证与给定关键字关联的值。

fix_valuestr,int,float,complex,bool,无

如果给定 test 无法替换无效值。换句话说,这提供了一个默认值,当关键字的当前值无效时用作替换。如果 None ,没有替换值,关键字不可更改。

optionSTR

输出验证选项。一定是其中之一 "fix""silentfix""ignore""warn" ,或 "exception" 。也可以是以下各项的任意组合 "fix""silentfix" 使用 "+ignore"+warn ,或 +exception" (e.g. `` “修复+警告”)。看见 astropy:verify 更多信息。

errlist列表

在FITS文件中已经找到的验证错误列表;这主要用于验证系统跨多个hdu和多个调用来收集错误 req_cards .

笔记

如果 pos=None ,卡可以在页眉中的任何位置。如果卡不存在,新卡将具有 fix_value 作为它的价值。还可以使用 test 争论。

run_option(option='warn', err_text='', fix_text='Fixed.', fix=None, fixable=True)

使用所选选项执行验证。

scale(type=None, option='old', bscale=None, bzero=None)

使用缩放图像数据 BSCALE/BZERO .

调用此方法将缩放 data 并更新 BSCALEBZERO 在HDU的头部。此方法只应在写入输出文件之前使用,因为数据将被缩放,因此在调用后不太可用。

参数
type可选的STR

目标数据类型,使用一个表示numpy数据类型名称的字符串(例如。 'uint8''int16''float32' 等等)。如果是 None ,使用当前数据类型。

option可选的STR

如何缩放数据: "old" uses the original BSCALE and BZERO values from when the data was read/created (defaulting to 1 and 0 if they don't exist). For integer data only, "minmax" uses the minimum and maximum of the data to scale. User-specified bscale/bzero 值总是优先的。

B标度,B0可选的

用户指定的 BSCALEBZERO 价值观

property section

访问图像数组的一部分,而不将整个数组加载到内存中。这个 Section 此属性返回的对象本身不可直接使用。相反,节的片段返回适当的数据片段,并加载 only 记忆中的那个部分。

分区大部分已被Memmap支持淘汰,但仍应用于处理非常大的图像。请参阅 astropy:data-sections 部分,以获取更多详细信息。

property shape

图像数组的形状--应等效于 self.data.shape .

property size

HDU数据部分的大小(以字节为单位)。

update_header()

更新标题关键字以与数据一致。

verify(option='warn')

验证实例中的所有值。

参数
optionSTR

输出验证选项。一定是其中之一 "fix""silentfix""ignore""warn" ,或 "exception" 。也可以是以下各项的任意组合 "fix""silentfix" 使用 "+ignore""+warn" ,或 "+exception" (例如: "fix+warn" )。看见 astropy:verify 更多信息。

verify_checksum()

验证 CHECKSUM 关键字与为当前HDU校验和计算的值相匹配。

返回
valid利息
  • 0-失败

  • 1-成功

  • 2-否 CHECKSUM 关键字存在

verify_datasum()

验证 DATASUM 关键字与为 DATASUM 当前HDU数据。

返回
valid利息
  • 0-失败

  • 1-成功

  • 2-否 DATASUM 关键字存在

writeto(name, output_verify='exception', overwrite=False, checksum=False)

工作原理与普通writeto()类似,但在其前面添加了一个默认值 PrimaryHDU 是扩展HDU所必需的(它不能独立工作)。

CompImageHDU

class astropy.io.fits.CompImageHDU(data=None, header=None, name=None, compression_type='RICE_1', tile_size=None, hcomp_scale=0, hcomp_smooth=0, quantize_level=16.0, quantize_method=-1, dither_seed=0, do_not_scale_image_data=False, uint=False, scale_back=False, **kwargs)[源代码]

基类:BinTableHDU

压缩图像HDU类。

参数
data可选数组

未压缩图像数据

页眉Header 可选标题,可选

要与图像关联的标头;从文件读取HDU时(数据=延迟),从文件中读取的标头

name可选的STR

这个 EXTNAME 值;如果此值为 None ,则将使用输入图像标头中的名称;如果输入图像标头中没有名称,则使用默认名称 COMPRESSED_IMAGE 使用。

compression_type可选的STR

压缩算法:其中之一 'RICE_1''RICE_ONE''PLIO_1''GZIP_1''GZIP_2''HCOMPRESS_1'

tile_size可选的

压缩瓷砖尺寸。默认情况下,将图像的每一行视为平铺。

hcomp_scale可选浮动

HCOMPRESS scale参数

hcomp_smooth可选浮动

HCOMPRESS平滑参数

quantize_level可选浮动

浮点量化电平;见下面的注释

quantize_method可选的

浮点量化抖动方法;可以是 NO_DITHER (-1;默认), SUBTRACTIVE_DITHER_1 (1) ,或 SUBTRACTIVE_DITHER_2 (2) ;见下面的注释

dither_seed可选的

随机种子范围可以是1000;随机种子可以是1, DITHER_SEED_CLOCK (0;默认),或 DITHER_SEED_CHECKSUM (-1);见下文注释

笔记

这个astropy.io.适合软件包支持2种图像压缩方法:

  1. 整个FITS文件可以用gzip或pkzip实用程序进行外部压缩,生成一个 *.gz*.zip 分别归档。当读取这种类型的压缩文件时,Astropy在执行请求的读取操作之前,首先将整个文件解压到一个临时文件中。这个astropy.io.适合包不支持写入这些类型的压缩文件。中支持这种类型的压缩 _File 班级,不是 CompImageHDU 班级。文件压缩类型由识别 .gz.zip 文件扩展名。

  2. 这个 CompImageHDU class supports the FITS tiled image compression convention in which the image is subdivided into a grid of rectangular tiles, and each tile of pixels is individually compressed. The details of this FITS compression convention are described at the FITS Support Office web site . 基本上,压缩图像块存储在FITS二进制表中可变长度数组列的行中。这个astropy.io.适合识别此二进制表扩展名包含图像,并将其视为图像扩展名。在这种平铺压缩格式下,FITS头关键字保持未压缩状态。此时,Astropy不支持在不解压缩整个图像的情况下提取和解压缩图像部分的能力。

这个astropy.io.适合该软件包支持3种通用压缩算法和一种其他专用压缩技术,该技术是为正整数像素值的数据掩码设计的。三种通用算法分别是GZIP、Rice和HCOMPRESS,专用技术是IRAF像素列表压缩技术(PLIO)。这个 compression_type 参数定义要使用的压缩算法。

FITS图像可以细分为任何所需的压缩块矩形网格。对于GZIP、Rice和PLIO算法,默认情况下是将图像的每一行作为一个平铺。HCOMPRESS算法本质上是二维的,所以在这种情况下,默认情况下是每个平铺获取16行图像。在大多数情况下,使用什么样的平铺模式差别不大,所以默认的平铺通常就足够了。对于非常小的图像,将整个图像压缩为单个平铺可能更有效。请注意,图像尺寸不需要是平铺尺寸的整数倍;如果不是,则图像边缘的平铺将比其他平铺小。这个 tile_size 参数可以作为平铺尺寸的列表提供,图像中的每个尺寸都有一个。例如a tile_size 价值 [100,100] 将一个300 X 300的图像分成9个100 X 100块。

支持的4种图像压缩算法在应用于整数拟合图像时都是“无损”的;在压缩和解压缩过程中,像素值被精确地保留,不会丢失信息。此外,HCOMPRESS算法支持“有损”压缩模式,这将产生更大的图像压缩量。这是通过为 hcomp_scale 参数。由于所实现的压缩量直接取决于图像中的RMS噪声,因此通常更方便地指定 hcomp_scale 与均方根噪声相关的系数。设置 hcomp_scale = 2.5 表示使用图像块中计算的均方根噪声的2.5倍的比例因子。在某些情况下,可能需要指定要使用的精确缩放比例,而不是相对于计算的噪波值指定它。这可以通过指定所需比例值的负值(通常在-2到-100范围内)来完成。

使用大 hcomp_scale 但是,这可能会在压缩图像中产生不需要的“块状”瑕疵。在这种情况下,可以使用HCOMPRESS算法(称为HSCOMPRESS)的变体,以便在图像未压缩时对图像进行少量平滑处理,以帮助掩盖这些伪影。这种平滑纯粹是表面的,不会对图像像素值造成任何显著的变化。设置 hcomp_smooth 参数为1将启用平滑算法。

浮点匹配图像(其中 BITPIX =-32或-64)通常在像素值尾数的最低有效位中包含太多的“噪声”,无法使用任何无损算法进行有效压缩。因此,在使用指定的算法(GZIP、RICE或HCOMPRESS)进行压缩之前,浮点图像首先被量化为按比例的整数像素值(从而丢弃了大部分噪声)。与简单地使用GZIP实用程序对外压缩整个FITS文件相比,这种技术产生的压缩因子要高得多,但这也意味着原始的浮点值像素值没有完全保留。如果处理得当,这种整数缩放技术只会丢弃无关紧要的噪声,同时仍然保留图像中的所有真实信息。保留在像素值中的精度由 quantize_level 参数。较大的值将导致压缩图像的像素更接近浮点像素值,但同时实现的压缩量将减少。用户应该对该参数进行不同的实验,以确定一个最佳值,该值可以保留图像中所有有用的信息,而不必保留所有会影响压缩效率的“噪声”。

的默认值 quantize_level 比例因子是16,这意味着缩放的整数像素值将被量化,使得相邻整数值之间的差将是图像背景中噪声级的1/16。采用优化算法对图像中的噪声进行精确估计。例如,如果图像背景像素中的RMS噪声=32.0,则相邻缩放整数像素值之间的间距默认为2.0。请注意,RMS噪声是为图像的每个分片独立计算的,因此,对于每个分片,得到的整数比例因子可能会略有波动。在一些情况下,可能需要指定要使用的精确量化电平,而不是相对于计算出的噪声值来指定它。这可以通过指定期望量化电平的负值来实现 quantize_level . 在前面的示例中,可以指定 quantize_level = -2.0 因此,量化整数级相差2.0。的较大负值 quantize_level 这意味着级别的间距更粗,将产生更高的压缩因子。

量化算法还可以应用两种随机抖动方法中的一种,以减少背景区域的测量强度偏差。使用常量指定的默认方法 SUBTRACTIVE_DITHER_1 将抖动添加到量化阵列本身的零点,而不是向实际图像添加噪声。随机噪声是逐像素添加的,因此为了将每个像素从其整数值恢复到其浮点值,有必要为每个像素重放相同的随机数序列(见下文)。另一种方法, SUBTRACTIVE_DITHER_2 ,与第一个完全相同,只是在抖动任何浮点值为的像素之前 0.0 替换为特殊整数值 -2147483647 . 当图像解压缩时,具有此值的像素将恢复为 0.0 确切地。最后,一个值 NO_DITHER 完全禁用抖动。

如上所述,当使用减法抖动算法时,必须能够为每个像素生成(伪)随机噪声序列,并且在解压缩时重放该序列。为了实现这一点,使用1到10000(含)之间的随机种子对随机数生成器进行种子设定,并且该种子存储在 ZDITHER0 压缩的HDU的头中的关键字。为了使用该种子生成相同的随机数序列,必须在压缩和解压缩时使用相同的随机数生成器;因此,平铺图像约定提供了一个非常简单的伪随机数生成器的实现。种子本身可以通过以下三种方式之一提供,由 dither_seed 参数:可以手工指定,也可以根据系统时钟任意生成 (DITHER_SEED_CLOCK )或者基于图像第一块中像素的校验和 (DITHER_SEED_CHECKSUM ). 基于时钟的方法是默认的,并且足以确保值是合理的“任意”的,并且不太可能按顺序生成相同的种子。另一方面,校验和方法确保每次对特定图像使用相同的种子。这对于软件测试特别有用,因为它可以确保同一图像始终使用相同的种子。

add_checksum(when=None, override_datasum=False, checksum_keyword='CHECKSUM', datasum_keyword='DATASUM')

添加 CHECKSUMDATASUM 将这些值设置为分别为HDU和数据计算的校验和的卡。添加 DATASUM 卡可能被覆盖。

参数
when可选的STR

卡片的注释字符串;默认情况下,注释将表示计算校验和的时间

override_datasum可选的布尔

添加 CHECKSUM 仅限卡片

checksum_keyword可选的STR

要在其中存储校验和值的头关键字的名称;根据惯例,这通常是“checksum”,但在某些情况下,应该使用不同的关键字

datasum_keyword可选的STR

checksum_keyword

笔记

出于测试目的,先打电话 add_datasum 用一个 when 争论,然后打电话 add_checksum 用一个 when 论证与 override_datasum 设置为 True . 这将为两张卡提供一致的注释,并使生成 CHECKSUM 价值一致的卡片。

add_datasum(when=None, datasum_keyword='DATASUM')

添加 DATASUM 将该值设置为为为数据计算的校验和的值。

参数
when可选的STR

卡的注释字符串,默认情况下表示计算校验和的时间

datasum_keyword可选的STR

要在其中存储datasum值的头关键字的名称;根据惯例,这通常是“datasum”,但在某些情况下,应该使用不同的关键字

返回
checksum利息

计算数据

笔记

出于测试目的,提供一个 when 参数使卡中的注释值保持一致。这将使 CHECKSUM 价值一致的卡片。

property columns

这个 ColDefs 对象描述此表中的列。

copy()

复制表HDU,头和数据都被复制。

dump(datafile=None, cdfile=None, hfile=None, overwrite=False)

将表HDU转储到ASCII格式的文件中。表可以转储在三个单独的文件中,一个包含列定义,一个包含头参数,另一个用于表数据。

参数
datafile路径式或文件式,可选

输出数据文件。默认值是附加扩展名的与此HDU关联的fits文件的根名称 .txt .

cdfile路径式或文件式,可选

输出列定义文件。默认值为 None ,不生成列定义输出。

hfile路径式或文件式,可选

输出头参数文件。默认值是 None ,不生成头参数输出。

overwrite可选的布尔

如果 True ,覆盖输出文件(如果存在)。引发 OSError 如果 False 并且输出文件存在。默认为 False .

笔记

主要用途 dump 方法允许在标准文本编辑器中查看和编辑表数据和参数。这个 load 方法可用于从三个纯文本(ASCII)文件创建新表。

  • 数据文件: 数据文件的每一行表示一行表数据。数据按列顺序一次输出一列。如果一列包含一个数组,则在移到下一列之前,输出当前行中列数组的每个元素。每行以新行结尾。

    整数数据在21个字符的字段中右对齐,后跟空白。浮点数据在21个字符的字段中以“g”格式右对齐输出,精度为15位,后跟空白。不包含空格的字符串数据在其宽度与中指定的宽度匹配的字段中左对齐 TFORM 列的标题参数,后跟空白。当字符串数据包含空白字符时,字符串用引号括起来 ("" ). 对于行中的最后一个数据元素,字段中的尾随空白将替换为新行字符。

    对于包含可变长度数组('P'格式)的列数据,数组数据前面有字符串 'VLA_Length= ' 以及该行的数组的整数长度,在21个字符的字段中左对齐,后跟空白。

    备注

    这种格式可以 not 由于难以克服歧义,支持使用('Q'格式)的可变长度数组。这意味着这种文件格式不能支持存储在大于2GB文件中的表中的VLA列。

    对于表示位字段('X'格式)的列数据,该字段中的每个位值在21个字符的字段中右对齐输出为1(表示真)或0(表示假)。

  • CD文件: 列定义文件的每一行提供表中一列的定义。16个字符被分解成8个字符。第一个字段提供列名 (TTYPEn ). 第二个字段提供列格式 (TFORMn ). 第三个字段提供显示格式 (TDISPn ). 第四个字段提供物理单位 (TUNITn ). 第五个字段提供多维数组的维度 (TDIMn ). 第六个字段提供表示未定义值的值 (TNULLn ). 第七个字段提供比例因子 (TSCALn ). 第八个字段提供偏移值 (TZEROn ). 字段值 "" 用于表示未提供值的情况。

  • H文件: 头参数文件的每一行提供由卡映像表示的单个HDU头卡的定义。

filebytes()

计算并返回此HDU将写入文件的字节数。

fileinfo()

返回一个字典,详细说明此HDU在任何关联文件中的位置信息。这些值只有在读取或写入关联文件之后才有效,而不会对 HDUList .

返回
不记名

字典详细说明了这个HDU在相关文件中的位置信息。退换商品 None 当HDU不与文件关联时。

字典内容:

价值

文件

与HDU关联的文件对象

文件格式

打开文件的模式(readonly、copyonfrite、update、append、ostream)

hdrLoc公司

文件头的起始字节位置

达洛克

文件中数据块的起始字节位置

数据跨度

数据大小(包括填充)

classmethod from_columns(columns, header=None, nrows=0, fill=False, character_as_bytes=False, **kwargs)

给一个 ColDefs 对象,序列 Column 对象或其他表HDU或表数据(a FITS_rec 或多场 numpy.ndarraynumpy.recarray 对象,返回使用输入中的列定义调用此方法的类的新表HDU。

也见 FITS_rec.from_columns .

参数
:顺序 ColumnColDefs -喜欢顺序

从中创建表数据的列,或具有类似于列的结构的对象 ColDefs 可以实例化。这包括现有 BinTableHDUTableHDU ,或者 numpy.recarray 举几个例子。

如果这些列附加了数据数组,则可以在初始化新表时使用这些数据。否则,输入列将被用作具有请求行数的新表的模板。

页眉Header标题

可选的 Header 对象来实例化新的HDU。与定义表结构特别相关的头关键字(例如“txxn”关键字,如TTYPEn)将被提供的列定义覆盖,但保留所有其他信息和数据模型特定的关键字。

nrows利息

新表中的行数。如果输入列有关联的数据,则使用最大输入列的大小。否则,默认值为0。

fill布尔

如果 True ,将用零或空格填充所有单元格。如果 False ,从输入复制数据,未定义的单元格仍将填充零/空格。

character_as_bytes布尔

从HDU访问时是否返回字符串列的字节。默认情况下是 False 返回和(unicode)字符串,但对于大型表,这可能会占用大量内存。

笔记

HDU类的 __init__ 也可以作为关键字参数传入。

classmethod fromstring(data, checksum=False, ignore_missing_end=False, **kwargs)

从包含HDU的整个头和(可选)其数据的字符串创建适当类型的新HDU对象。

注意:当从没有备份文件对象的字符串创建新的HDU时,该HDU的数据可能是只读的。它取决于底层字符串是不可变的Python str/bytes对象,还是某种读写内存缓冲区,例如 memoryview .

参数
datastr,bytearray,内存视图,ndarray

包含HDU的头和数据的字节字符串。

checksum可选的布尔

检查HDU的校验和和/或数据。

ignore_missing_end可选的布尔

忽略头数据中缺少的端卡。请注意,如果没有端卡,标头的结尾可能不明确,并导致HDU损坏。在这种情况下,假设第一个不是以有效的FITS头数据开头的2880块是数据的开始。

**kwargs可选择的

可能由特定于HDU类型的附加关键字参数组成——这些参数对应于由不同HDU类的构造函数识别的关键字,例如 PrimaryHDUImageHDUBinTableHDU . 任何无法识别的关键字参数都将被忽略。

classmethod load(datafile, cdfile=None, hfile=None, replace=False, header=None)

从输入的ASCII文件创建表。输入最多来自三个单独的文件,一个包含列定义,一个包含头参数,另一个包含列数据。

不需要列定义和头参数文件。如果不存在列定义和/或头参数,则从header参数中给定的header对象获取;否则将推断出合理的默认值(尽管不建议使用此模式)。

参数
datafile类似路径或类似文件

输入包含ASCII格式表数据的数据文件。

cdfile路径式或文件式,可选

输入列定义文件,其中包含与表中列关联的名称、格式、显示格式、物理单位、多维数组维度、未定义的值、比例因子和偏移量。如果 None ,列定义取自此对象中的当前值。

hfile路径式或文件式,可选

输入参数定义文件,其中包含要与表关联的头参数定义。如果 None ,标头参数定义取自此对象标头中的当前值。

replace可选的布尔

什么时候? True ,指示应将整个标头替换为ASCII文件的内容,而不是仅更新当前标头。

页眉Header 可选标题,可选

当cdfile和hfile丢失时,在创建新表和HDU时使用这个头对象。除非此标题中的关键字取代此标题中的值,否则不使用此关键字 replace=True 其中,此标头的值将完全替换为来自hfile的值。

笔记

主要用途 load 方法是允许输入在表数据和参数的标准文本编辑器中编辑的ASCII数据。这个 dump 方法可用于创建初始ASCII文件。

  • 数据文件: 数据文件的每一行表示一行表数据。数据按列顺序一次输出一列。如果一列包含一个数组,则在移到下一列之前,输出当前行中列数组的每个元素。每行以新行结尾。

    整数数据在21个字符的字段中右对齐,后跟空白。浮点数据在21个字符的字段中以“g”格式右对齐输出,精度为15位,后跟空白。不包含空格的字符串数据在其宽度与中指定的宽度匹配的字段中左对齐 TFORM 列的标题参数,后跟空白。当字符串数据包含空白字符时,字符串用引号括起来 ("" ). 对于行中的最后一个数据元素,字段中的尾随空白将替换为新行字符。

    对于包含可变长度数组('P'格式)的列数据,数组数据前面有字符串 'VLA_Length= ' 以及该行的数组的整数长度,在21个字符的字段中左对齐,后跟空白。

    备注

    这种格式可以 not 由于难以克服歧义,支持使用('Q'格式)的可变长度数组。这意味着这种文件格式不能支持存储在大于2GB文件中的表中的VLA列。

    对于表示位字段('X'格式)的列数据,该字段中的每个位值在21个字符的字段中右对齐输出为1(表示真)或0(表示假)。

  • CD文件: 列定义文件的每一行提供表中一列的定义。16个字符被分解成8个字符。第一个字段提供列名 (TTYPEn ). 第二个字段提供列格式 (TFORMn ). 第三个字段提供显示格式 (TDISPn ). 第四个字段提供物理单位 (TUNITn ). 第五个字段提供多维数组的维度 (TDIMn ). 第六个字段提供表示未定义值的值 (TNULLn ). 第七个字段提供比例因子 (TSCALn ). 第八个字段提供偏移值 (TZEROn ). 字段值 "" 用于表示未提供值的情况。

  • H文件: 头参数文件的每一行提供由卡映像表示的单个HDU头卡的定义。

classmethod match_header(header)[源代码]

这是一种抽象类型,实现了ASCII和二进制表格HDU类型的共享功能,应该使用这两种类型来代替它。

classmethod readfrom(fileobj, checksum=False, ignore_missing_end=False, **kwargs)

从文件中读取HDU。通常,HDU应使用 open() 它读取FITS文件中的整个HDU列表。但这种方法仍然适用于 writeto() .

参数
fileobj文件状

输入适合文件。假定文件的seek指针位于HDU的开头。

checksum布尔

如果 True ,验证两者 DATASUMCHECKSUM 卡值(当HDU头中存在时)与文件中所有HDU的头和数据相匹配。

ignore_missing_end布尔

打开缺少的文件时不要发出异常 END 最后一个标题中的卡。

req_cards(keyword, pos, test, fix_value, option, errlist)

检查所需的 Card .

参数
keywordSTR

要验证的关键字

pos内景,可赎回

如果一个 int ,指定该卡在标头中的确切位置。记住Python是零索引的,所以这意味着 pos=0 要求卡是标题中的第一张卡。如果给了一个可调用的,它应该接受一个参数——关键字的实际位置——并返回 TrueFalse . 这可用于自定义评估。例如,如果 pos=lambda idx: idx > 10 这将检查关键字的索引是否大于10。

test可赎回的

这应该是一个可调用的(通常是一个函数),它传递给定关键字的值并返回 TrueFalse . 这可用于验证与给定关键字关联的值。

fix_valuestr,int,float,complex,bool,无

如果给定 test 无法替换无效值。换句话说,这提供了一个默认值,当关键字的当前值无效时用作替换。如果 None ,没有替换值,关键字不可更改。

optionSTR

输出验证选项。一定是其中之一 "fix""silentfix""ignore""warn" ,或 "exception" 。也可以是以下各项的任意组合 "fix""silentfix" 使用 "+ignore"+warn ,或 +exception" (e.g. `` “修复+警告”)。看见 astropy:verify 更多信息。

errlist列表

在FITS文件中已经找到的验证错误列表;这主要用于验证系统跨多个hdu和多个调用来收集错误 req_cards .

笔记

如果 pos=None ,卡可以在页眉中的任何位置。如果卡不存在,新卡将具有 fix_value 作为它的价值。还可以使用 test 争论。

run_option(option='warn', err_text='', fix_text='Fixed.', fix=None, fixable=True)

使用所选选项执行验证。

scale(type=None, option='old', bscale=1, bzero=0)[源代码]

使用缩放图像数据 BSCALEBZERO .

调用此方法将缩放 self.data 并更新 BSCALEBZERO 在里面 self._headerself._image_header . 此方法只应在写入输出文件之前使用,因为数据将被缩放,因此在调用后不太可用。

参数
type可选的STR

目标数据类型,使用一个表示numpy数据类型名称的字符串(例如。 'uint8''int16''float32' 等等)。如果是 None ,使用当前数据类型。

option可选的STR

如何缩放数据:如果 "old" ,使用原件 BSCALEBZERO 读取/创建数据时的值。如果 "minmax" ,使用数据的最小值和最大值进行缩放。此选项将被任何用户指定的b缩放/b零值覆盖。

B标度,B0可选的

用户指定的 BSCALEBZERO 价值观。

property shape

图像数组的形状--应等效于 self.data.shape .

property size

HDU数据部分的大小(以字节为单位)。

update()

更新标题关键字以反映列的最近更改。

verify(option='warn')

验证实例中的所有值。

参数
optionSTR

输出验证选项。一定是其中之一 "fix""silentfix""ignore""warn" ,或 "exception" 。也可以是以下各项的任意组合 "fix""silentfix" 使用 "+ignore""+warn" ,或 "+exception" (例如: "fix+warn" )。看见 astropy:verify 更多信息。

verify_checksum()

验证 CHECKSUM 关键字与为当前HDU校验和计算的值相匹配。

返回
valid利息
  • 0-失败

  • 1-成功

  • 2-否 CHECKSUM 关键字存在

verify_datasum()

验证 DATASUM 关键字与为 DATASUM 当前HDU数据。

返回
valid利息
  • 0-失败

  • 1-成功

  • 2-否 DATASUM 关键字存在

writeto(name, output_verify='exception', overwrite=False, checksum=False)

工作原理与普通writeto()类似,但在其前面添加了一个默认值 PrimaryHDU 是扩展HDU所必需的(它不能独立工作)。

Section

class astropy.io.fits.Section(hdu)[源代码]

基类:object

图像部分。

此对象的切片从磁盘上的底层FITS文件加载图像数组的相应部分,并应用任何b缩放/b零因子。

无法将节切片分配给,并且对节的修改不会保存回基础文件。

请参阅 astropy:data-sections 部分,以获取更多详细信息。