图像#
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 :
array
数组 HDU中的数据。
- 页眉 :
Header
标题 要使用的标头(作为模板)。如果
header
是None
,将提供最小页眉。- name :
str
,可选Python:字符串,可选 HDU的名称,将是关键字的值
EXTNAME
.- do_not_scale_image_data : bool ,可选可选的布尔
如果
True
,读取图像数据时不使用b缩放/b零值缩放图像数据。(默认值:False)- uint : bool ,可选可选的布尔
解释有符号整数数据,其中
BZERO
是核心价值观BSCALE == 1
作为无符号整数数据。例如,int16
数据与BZERO = 32768
和BSCALE = 1
会被视为uint16
数据。(默认值:True)- scale_back : bool ,可选可选的布尔
如果
True
,保存对包含缩放图像数据的文件所做的更改时,将数据还原为原始类型并重新应用原始b缩放/b零值。如果在对数据执行浮点运算后缩小到整数值,这可能会导致精度损失。除非scale_back显式设置为,否则伪无符号整数将自动重新缩放False
. (默认值:无)- ver :
int
>0或None
,可选PYTHON:int>0或PYTHON:NONE,可选 HDU的ver,将是关键字的值
EXTVER
. 如果未给定或无,则默认为EXTVER
卡header
或1。(默认值:无)
- data :
- add_checksum(when=None, override_datasum=False, checksum_keyword='CHECKSUM', datasum_keyword='DATASUM')#
添加
CHECKSUM
和DATASUM
将这些值设置为分别为HDU和数据计算的校验和的卡。添加DATASUM
卡可能被覆盖。- 参数:
笔记
出于测试目的,先打电话
add_datasum
用一个when
争论,然后打电话add_checksum
用一个when
论证与override_datasum
设置为True
. 这将为两张卡提供一致的注释,并使生成CHECKSUM
价值一致的卡片。
- add_datasum(when=None, datasum_keyword='DATASUM')#
添加
DATASUM
将该值设置为为为数据计算的校验和的值。- 参数:
- 返回:
- checksum :
int
Python :整型 计算数据
- checksum :
笔记
出于测试目的,提供一个
when
参数使卡中的注释值保持一致。这将使CHECKSUM
价值一致的卡片。
- copy()#
复制HDU,头和数据都被复制。
- property data#
图像/阵列数据作为
ndarray
.请记住,Numpy数组中轴的顺序与FITS文件中指定的顺序相反。例如,对于二维图像,“行”或y轴是第一维,“列”或x轴是第二维。
如果使用BZERO和BSCALE参数缩放数据,则除非文件是用
do_not_scale_image_data=True
.
- filebytes()#
计算并返回此HDU将写入文件的字节数。
- classmethod fromstring(data, checksum=False, ignore_missing_end=False, **kwargs)#
从包含HDU的整个头和(可选)其数据的字符串创建适当类型的新HDU对象。
注意:当从没有备份文件对象的字符串创建新的HDU时,该HDU的数据可能是只读的。它取决于底层字符串是不可变的Python str/bytes对象,还是某种读写内存缓冲区,例如
memoryview
.- 参数:
- data :
str
,bytes
,memoryview
,ndarray
Python:字符串、字节、内存视图、ndarray 包含HDU的头和数据的字节字符串。
- checksum : bool ,可选可选的布尔
检查HDU的校验和和/或数据。
- ignore_missing_end : bool ,可选可选的布尔
忽略头数据中缺少的端卡。请注意,如果没有端卡,标头的结尾可能不明确,并导致HDU损坏。在这种情况下,假设第一个不是以有效的FITS头数据开头的2880块是数据的开始。
- **kwargs可选择的
可能由特定于HDU类型的附加关键字参数组成——这些参数对应于由不同HDU类的构造函数识别的关键字,例如
PrimaryHDU
,ImageHDU
或BinTableHDU
. 任何无法识别的关键字参数都将被忽略。
- data :
- classmethod readfrom(fileobj, checksum=False, ignore_missing_end=False, **kwargs)#
从文件中读取HDU。通常,HDU应使用
open()
它读取FITS文件中的整个HDU列表。但这种方法仍然适用于writeto()
.- 参数:
- fileobj : file-like objectPython:类似文件的对象
输入适合文件。假定文件的seek指针位于HDU的开头。
- checksum : bool布尔
如果
True
,验证两者DATASUM
和CHECKSUM
卡值(当HDU头中存在时)与文件中所有HDU的头和数据相匹配。- ignore_missing_end : bool布尔
打开缺少的文件时不要发出异常
END
最后一个标题中的卡。
- req_cards(keyword, pos, test, fix_value, option, errlist)#
检查所需的
Card
.- 参数:
- keyword :
str
Python :字符串 要验证的关键字
- pos :
int
,callable()
PYTHON:INT,PYTHON:Callable() 如果一个
int
,指定该卡在标头中的确切位置。记住Python是零索引的,所以这意味着pos=0
要求卡是标题中的第一张卡。如果给了一个可调用的,它应该接受一个参数——关键字的实际位置——并返回True
或False
. 这可用于自定义评估。例如,如果pos=lambda idx: idx > 10
这将检查关键字的索引是否大于10。- test :
callable()
Python:Callable() 这应该是一个可调用的(通常是一个函数),它传递给定关键字的值并返回
True
或False
. 这可用于验证与给定关键字关联的值。- fix_value :
str
,int
,float
,complex
, bool ,None
派生:字符串,派生:整型,派生:浮点,复杂,布尔,派生:无 Fits关键字的有效值,如果给定
test
无法替换无效值。换句话说,如果关键字的当前值无效,这将提供一个缺省值作为替代。如果None
,则没有替换值,且关键字不可修复。- option :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,+warn
,或+exception" (e.g. `` “修复+警告”
)。看见 验证选项 更多信息。- errlist :
list
Python :列表 在FITS文件中已经找到的验证错误列表;这主要用于验证系统跨多个hdu和多个调用来收集错误
req_cards
.
- keyword :
笔记
如果
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
并更新BSCALE
和BZERO
在HDU的头部。此方法只应在写入输出文件之前使用,因为数据将被缩放,因此在调用后不太可用。- 参数:
- type :
str
,可选Python:字符串,可选 目标数据类型,使用一个表示numpy数据类型名称的字符串(例如。
'uint8'
,'int16'
,'float32'
等等)。如果是None
,使用当前数据类型。- option :
str
,可选Python:字符串,可选 如何缩放数据:
"old"
uses the originalBSCALE
andBZERO
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-specifiedbscale
/bzero
值总是优先的。- bscale, bzero :
int
,可选PYTHON:int,可选 用户指定的
BSCALE
和BZERO
价值观
- type :
- property section#
访问图像数组的一部分,而不将整个数组加载到内存中。这个
Section
此属性返回的对象本身不可直接使用。相反,节的片段返回适当的数据片段,并加载 only 记忆中的那个部分。节可用于从已使用
use_fsspec=True
参数。例如,您可以使用此功能从Amazon S3云中托管的大FITS图像下载小剪报(请参阅 使用远程和云托管文件 有关更多详细信息,请参阅Astroy文档部分。)对于本地文件,Memmap支持大部分部分已过时,但仍应用于处理非常大的图像。
请注意,当前不能写入节。此外,对映像的内存中的任何更新
.data
属性可能不会反映在通过.section
。请参阅 数据段 部分了解更多详细信息。
- property shape#
图像数组的形状--应等效于
self.data.shape
.
- property size#
HDU数据部分的大小(以字节为单位)。
- update_header()#
更新标题关键字以与数据一致。
- verify(option='warn')#
验证实例中的所有值。
- verify_checksum()#
验证
CHECKSUM
关键字与为当前HDU校验和计算的值相匹配。- 返回:
- valid :
int
Python :整型 0-失败
1-成功
2-否
CHECKSUM
关键字存在
- valid :
- verify_datasum()#
验证
DATASUM
关键字与为DATASUM
当前HDU数据。- 返回:
- valid :
int
Python :整型 0-失败
1-成功
2-否
DATASUM
关键字存在
- valid :
- 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_shape=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, tile_size=None)[源代码]#
基类:
BinTableHDU
压缩图像HDU类。
- 参数:
- data :
array
,可选可选数组 未压缩图像数据
- 页眉 :
Header
可选标题,可选 要与图像关联的标头;从文件读取HDU时(数据=延迟),从文件中读取的标头
- name :
str
,可选Python:字符串,可选 这个
EXTNAME
值;如果此值为None
,则将使用输入图像标头中的名称;如果输入图像标头中没有名称,则使用默认名称COMPRESSED_IMAGE
使用。- compression_type :
str
,可选Python:字符串,可选 压缩算法:以下算法之一
'RICE_1'
,'RICE_ONE'
,'PLIO_1'
,'GZIP_1'
,'GZIP_2'
,'HCOMPRESS_1'
,'NOCOMPRESS'
- tile_shape :
tuple
,可选Python:元组,可选 压缩平铺形状,应使用阵列形状的默认Numpy约定(C顺序)指定。默认情况下,将每行图像视为平铺。
- hcomp_scale :
float
,可选Python:Float,可选 HCOMPRESS scale参数
- hcomp_smooth :
float
,可选Python:Float,可选 HCOMPRESS平滑参数
- quantize_level :
float
,可选Python:Float,可选 浮点量化电平;见下面的注释
- quantize_method :
int
,可选PYTHON:int,可选 浮点量化抖动方法;可以是
NO_DITHER
(-1;默认),SUBTRACTIVE_DITHER_1
(1) ,或SUBTRACTIVE_DITHER_2
(2) ;见下面的注释- dither_seed :
int
,可选PYTHON:int,可选 随机种子范围可以是1000;随机种子可以是1,
DITHER_SEED_CLOCK
(0;默认),或DITHER_SEED_CHECKSUM
(-1);见下文注释
- data :
笔记
这个astropy.io.适合软件包支持2种图像压缩方法:
整个FITS文件可以用gzip或pkzip实用程序进行外部压缩,生成一个
*.gz
或*.zip
分别归档。当读取这种类型的压缩文件时,Astropy在执行请求的读取操作之前,首先将整个文件解压到一个临时文件中。这个astropy.io.适合包不支持写入这些类型的压缩文件。中支持这种类型的压缩_File
班级,不是CompImageHDU
班级。文件压缩类型由识别.gz
或.zip
文件扩展名。这个
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、莱斯和Plio算法,默认情况下将图像的每一行视为平铺。HCOMPRESS算法本质上是2维的,因此本例中的默认设置是每个平铺获取16行图像。在大多数情况下,使用什么平铺图案几乎没有区别,因此默认平铺通常就足够了。在图像非常小的情况下,将整个图像压缩为单个平铺图像可能会更有效。请注意,图像尺寸不需要是平铺尺寸的整数倍;如果不是,则图像边缘的平铺将小于其他平铺。这个
tile_shape
参数可以作为平铺大小列表提供,图像中的每个维度一个平铺大小。例如,一个tile_shape
的价值(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')#
添加
CHECKSUM
和DATASUM
将这些值设置为分别为HDU和数据计算的校验和的卡。添加DATASUM
卡可能被覆盖。- 参数:
笔记
出于测试目的,先打电话
add_datasum
用一个when
争论,然后打电话add_checksum
用一个when
论证与override_datasum
设置为True
. 这将为两张卡提供一致的注释,并使生成CHECKSUM
价值一致的卡片。
- add_datasum(when=None, datasum_keyword='DATASUM')#
添加
DATASUM
将该值设置为为为数据计算的校验和的值。- 参数:
- 返回:
- checksum :
int
Python :整型 计算数据
- checksum :
笔记
出于测试目的,提供一个
when
参数使卡中的注释值保持一致。这将使CHECKSUM
价值一致的卡片。
- property compression_type#
压缩算法的名称。
- copy()#
复制表HDU,头和数据都被复制。
- dump(datafile=None, cdfile=None, hfile=None, overwrite=False)#
将表HDU转储到ASCII格式的文件中。表可以转储在三个单独的文件中,一个包含列定义,一个包含头参数,另一个用于表数据。
- 参数:
- datafile : path-like object 或 file-like object ,可选Python:类似路径的对象或Python:类似文件的对象,可选
输出数据文件。默认值是附加扩展名的与此HDU关联的fits文件的根名称
.txt
.- cdfile : path-like object 或 file-like object ,可选Python:类似路径的对象或Python:类似文件的对象,可选
输出列定义文件。默认值为
None
,不生成列定义输出。- hfile : path-like object 或 file-like object ,可选Python:类似路径的对象或Python:类似文件的对象,可选
输出头参数文件。默认值是
None
,不生成头参数输出。- overwrite : bool ,可选可选的布尔
如果
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将写入文件的字节数。
- classmethod from_columns(columns, header=None, nrows=0, fill=False, character_as_bytes=False, **kwargs)#
给一个
ColDefs
对象,序列Column
对象或其他表HDU或表数据(aFITS_rec
或多场numpy.ndarray
或numpy.recarray
对象,返回使用输入中的列定义调用此方法的类的新表HDU。- 参数:
- columns : sequence 的
Column
,ColDefs
astropy:-likePython :列的顺序,ColDefs Asty:-Like 从中创建表数据的列,或具有类似于列的结构的对象
ColDefs
可以实例化。这包括现有BinTableHDU
或TableHDU
,或者numpy.recarray
举几个例子。如果这些列附加了数据数组,则可以在初始化新表时使用这些数据。否则,输入列将被用作具有请求行数的新表的模板。
- 页眉 :
Header
标题 可选的
Header
对象来实例化新的HDU。与定义表结构特别相关的头关键字(例如“txxn”关键字,如TTYPEn)将被提供的列定义覆盖,但保留所有其他信息和数据模型特定的关键字。- nrows :
int
Python :整型 新表中的行数。如果输入列有关联的数据,则使用最大输入列的大小。否则,默认值为0。
- fill : bool布尔
- character_as_bytes : bool布尔
从HDU访问时是否返回字符串列的字节。默认情况下是
False
返回和(unicode)字符串,但对于大型表,这可能会占用大量内存。
- columns : sequence 的
笔记
HDU类的
__init__
也可以作为关键字参数传入。
- classmethod fromstring(data, checksum=False, ignore_missing_end=False, **kwargs)#
从包含HDU的整个头和(可选)其数据的字符串创建适当类型的新HDU对象。
注意:当从没有备份文件对象的字符串创建新的HDU时,该HDU的数据可能是只读的。它取决于底层字符串是不可变的Python str/bytes对象,还是某种读写内存缓冲区,例如
memoryview
.- 参数:
- data :
str
,bytes
,memoryview
,ndarray
Python:字符串、字节、内存视图、ndarray 包含HDU的头和数据的字节字符串。
- checksum : bool ,可选可选的布尔
检查HDU的校验和和/或数据。
- ignore_missing_end : bool ,可选可选的布尔
忽略头数据中缺少的端卡。请注意,如果没有端卡,标头的结尾可能不明确,并导致HDU损坏。在这种情况下,假设第一个不是以有效的FITS头数据开头的2880块是数据的开始。
- **kwargs可选择的
可能由特定于HDU类型的附加关键字参数组成——这些参数对应于由不同HDU类的构造函数识别的关键字,例如
PrimaryHDU
,ImageHDU
或BinTableHDU
. 任何无法识别的关键字参数都将被忽略。
- data :
- classmethod load(datafile, cdfile=None, hfile=None, replace=False, header=None)#
从输入的ASCII文件创建表。输入最多来自三个单独的文件,一个包含列定义,一个包含头参数,另一个包含列数据。
不需要列定义和头参数文件。如果不存在列定义和/或头参数,则从header参数中给定的header对象获取;否则将推断出合理的默认值(尽管不建议使用此模式)。
- 参数:
- datafile : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
输入包含ASCII格式表数据的数据文件。
- cdfile : path-like object 或 file-like object ,可选Python:类似路径的对象或Python:类似文件的对象,可选
输入列定义文件,其中包含与表中列关联的名称、格式、显示格式、物理单位、多维数组维度、未定义的值、比例因子和偏移量。如果
None
,列定义取自此对象中的当前值。- hfile : path-like object 或 file-like object ,可选Python:类似路径的对象或Python:类似文件的对象,可选
输入参数定义文件,其中包含要与表关联的头参数定义。如果
None
,标头参数定义取自此对象标头中的当前值。- replace : bool ,可选可选的布尔
什么时候?
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 readfrom(fileobj, checksum=False, ignore_missing_end=False, **kwargs)#
从文件中读取HDU。通常,HDU应使用
open()
它读取FITS文件中的整个HDU列表。但这种方法仍然适用于writeto()
.- 参数:
- fileobj : file-like objectPython:类似文件的对象
输入适合文件。假定文件的seek指针位于HDU的开头。
- checksum : bool布尔
如果
True
,验证两者DATASUM
和CHECKSUM
卡值(当HDU头中存在时)与文件中所有HDU的头和数据相匹配。- ignore_missing_end : bool布尔
打开缺少的文件时不要发出异常
END
最后一个标题中的卡。
- req_cards(keyword, pos, test, fix_value, option, errlist)#
检查所需的
Card
.- 参数:
- keyword :
str
Python :字符串 要验证的关键字
- pos :
int
,callable()
PYTHON:INT,PYTHON:Callable() 如果一个
int
,指定该卡在标头中的确切位置。记住Python是零索引的,所以这意味着pos=0
要求卡是标题中的第一张卡。如果给了一个可调用的,它应该接受一个参数——关键字的实际位置——并返回True
或False
. 这可用于自定义评估。例如,如果pos=lambda idx: idx > 10
这将检查关键字的索引是否大于10。- test :
callable()
Python:Callable() 这应该是一个可调用的(通常是一个函数),它传递给定关键字的值并返回
True
或False
. 这可用于验证与给定关键字关联的值。- fix_value :
str
,int
,float
,complex
, bool ,None
派生:字符串,派生:整型,派生:浮点,复杂,布尔,派生:无 Fits关键字的有效值,如果给定
test
无法替换无效值。换句话说,如果关键字的当前值无效,这将提供一个缺省值作为替代。如果None
,则没有替换值,且关键字不可修复。- option :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,+warn
,或+exception" (e.g. `` “修复+警告”
)。看见 验证选项 更多信息。- errlist :
list
Python :列表 在FITS文件中已经找到的验证错误列表;这主要用于验证系统跨多个hdu和多个调用来收集错误
req_cards
.
- keyword :
笔记
如果
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)[源代码]#
使用缩放图像数据
BSCALE
和BZERO
.调用此方法将缩放
self.data
并更新BSCALE
和BZERO
在里面self._header
和self._image_header
. 此方法只应在写入输出文件之前使用,因为数据将被缩放,因此在调用后不太可用。- 参数:
- type :
str
,可选Python:字符串,可选 目标数据类型,使用一个表示numpy数据类型名称的字符串(例如。
'uint8'
,'int16'
,'float32'
等等)。如果是None
,使用当前数据类型。- option :
str
,可选Python:字符串,可选 如何缩放数据:如果
"old"
,使用原件BSCALE
和BZERO
读取/创建数据时的值。如果"minmax"
,使用数据的最小值和最大值进行缩放。此选项将被任何用户指定的b缩放/b零值覆盖。- bscale, bzero :
int
,可选PYTHON:int,可选 用户指定的
BSCALE
和BZERO
价值观。
- type :
- property section#
有效地访问图像阵列的一部分
此属性可用于访问一段数据,而无需将整个数组加载并解压缩到内存中。
这个
CompImageSection
此属性返回的对象不应由其本身直接使用。相反,该节的切片返回相应的数据切片,并加载 only 把那一节写进记忆里。任何有效的基本块状索引都可用于切片CompImageSection
。请注意,使用访问数据
CompImageHDU.section
将始终从磁盘一次加载一个切片,因此在访问大部分数据(或以会导致加载大多数切片的方式对数据进行切片)时,您可以使用CompImageHDU.data
。
- property shape#
图像数组的形状--应等效于
self.data.shape
.
- property size#
HDU数据部分的大小(以字节为单位)。
- property tile_shape#
用于平铺压缩的平铺形状。
此形状以NumPy/C顺序给出
- update()#
自 v6.0 版本弃用: UPDATE函数已弃用,可能会在将来的版本中删除。请改用UPDATE_HEADER。
- update_header()#
更新标题关键字以反映列的最近更改。
- verify(option='warn')#
验证实例中的所有值。
- verify_checksum()#
验证
CHECKSUM
关键字与为当前HDU校验和计算的值相匹配。- 返回:
- valid :
int
Python :整型 0-失败
1-成功
2-否
CHECKSUM
关键字存在
- valid :
- verify_datasum()#
验证
DATASUM
关键字与为DATASUM
当前HDU数据。- 返回:
- valid :
int
Python :整型 0-失败
1-成功
2-否
DATASUM
关键字存在
- valid :
- writeto(name, output_verify='exception', overwrite=False, checksum=False)#
工作原理与普通writeto()类似,但在其前面添加了一个默认值
PrimaryHDU
是扩展HDU所必需的(它不能独立工作)。