标题数据单元#
标题数据单元是FITS格式的基本容器结构,由 data
成员及其关联元数据。 header
。它们在中定义 astropy.io.fits.hdu
。
这个 ImageHDU
和 CompImageHDU
类在 图像 .
这个 TableHDU
和 BinTableHDU
类在 桌子 .
PrimaryHDU
#
- class astropy.io.fits.PrimaryHDU(data=None, header=None, do_not_scale_image_data=False, ignore_blank=False, uint=True, scale_back=None)[源代码]#
基类:
_ImageBaseHDU
适合主HDU类。
构建主HDU。
- 参数:
- data :
array
或astropy.io.fits.hdu.base.DELAYED
,可选数组或Asterpy.io.fits.hdu.base.DELAYED,可选 HDU中的数据。
- 页眉 :
Header
可选标题,可选 要使用的标头(作为模板)。如果
header
是None
,将提供最小页眉。- do_not_scale_image_data : bool ,可选可选的布尔
如果
True
,读取图像数据时不使用b缩放/b零值缩放图像数据。(默认值:False)- ignore_blank : bool ,可选可选的布尔
如果
True
,则将忽略空白标头关键字(如果存在)。否则,等于该值的像素将被替换为nan。(默认值:False)- uint : bool ,可选可选的布尔
解释有符号整数数据,其中
BZERO
是核心价值观BSCALE == 1
作为无符号整数数据。例如,int16
数据与BZERO = 32768
和BSCALE = 1
会被视为uint16
数据。(默认值:True)- scale_back : bool ,可选可选的布尔
如果
True
,保存对包含缩放图像数据的文件所做的更改时,将数据还原为原始类型并重新应用原始b缩放/b零值。如果在对数据执行浮点运算后缩小到整数值,这可能会导致精度损失。除非scale_back显式设置为,否则伪无符号整数将自动重新缩放False
. (默认值:无)
- 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数据部分的大小(以字节为单位)。
- 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)#
将HDU写入新文件。如果只需要将一个HDU写入一个文件,这是一种方便的方法,可以为用户提供更简单的输出接口。
- 参数:
- name : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
输出适合文件。如果文件对象已经打开,则必须以可写模式打开。
- output_verify :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,"+warn"
,或"+exception"
(例如:"fix+warn"
)。看见 验证选项 更多信息。- overwrite : bool ,可选可选的布尔
如果
True
,覆盖输出文件(如果存在)。引发OSError
如果False
并且输出文件存在。默认为False
.- checksum : bool布尔
什么时候?
True
两者相加DATASUM
和CHECKSUM
卡写入文件时,将卡写入HDU的头。
笔记
本地支持GZIP、ZIP和BZIP2压缩算法。压缩模式由文件扩展名(分别为‘.gz’、‘.zip’或‘.bz2’)确定。也可以传递压缩文件对象,例如
gzip.GzipFile
。
GroupsHDU
#
- class astropy.io.fits.GroupsHDU(data=None, header=None)[源代码]#
基类:
PrimaryHDU
,_TableLikeHDU
适合随机组HDU类。
请参阅 随机访问组 部分,了解有关使用这种类型的HDU的更多详细信息。
构建主HDU。
- 参数:
- data :
array
或astropy.io.fits.hdu.base.DELAYED
,可选数组或Asterpy.io.fits.hdu.base.DELAYED,可选 HDU中的数据。
- 页眉 :
Header
可选标题,可选 要使用的标头(作为模板)。如果
header
是None
,将提供最小页眉。- do_not_scale_image_data : bool ,可选可选的布尔
如果
True
,读取图像数据时不使用b缩放/b零值缩放图像数据。(默认值:False)- ignore_blank : bool ,可选可选的布尔
如果
True
,则将忽略空白标头关键字(如果存在)。否则,等于该值的像素将被替换为nan。(默认值:False)- uint : bool ,可选可选的布尔
解释有符号整数数据,其中
BZERO
是核心价值观BSCALE == 1
作为无符号整数数据。例如,int16
数据与BZERO = 32768
和BSCALE = 1
会被视为uint16
数据。(默认值:True)- scale_back : bool ,可选可选的布尔
如果
True
,保存对包含缩放图像数据的文件所做的更改时,将数据还原为原始类型并重新应用原始b缩放/b零值。如果在对数据执行浮点运算后缩小到整数值,这可能会导致精度损失。除非scale_back显式设置为,否则伪无符号整数将自动重新缩放False
. (默认值:无)
- 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#
随机分组FITS文件的数据将类似于二进制表的数据。
- 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 :
- property parnames#
标题中描述的组参数的名称。
- 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数据部分的大小(以字节为单位)。
- 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)#
将HDU写入新文件。如果只需要将一个HDU写入一个文件,这是一种方便的方法,可以为用户提供更简单的输出接口。
- 参数:
- name : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
输出适合文件。如果文件对象已经打开,则必须以可写模式打开。
- output_verify :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,"+warn"
,或"+exception"
(例如:"fix+warn"
)。看见 验证选项 更多信息。- overwrite : bool ,可选可选的布尔
如果
True
,覆盖输出文件(如果存在)。引发OSError
如果False
并且输出文件存在。默认为False
.- checksum : bool布尔
什么时候?
True
两者相加DATASUM
和CHECKSUM
卡写入文件时,将卡写入HDU的头。
笔记
本地支持GZIP、ZIP和BZIP2压缩算法。压缩模式由文件扩展名(分别为‘.gz’、‘.zip’或‘.bz2’)确定。也可以传递压缩文件对象,例如
gzip.GzipFile
。
GroupData
#
- class astropy.io.fits.GroupData(input=None, bitpix=None, pardata=None, parnames=[], bscale=None, bzero=None, parbscales=None, parbzeros=None)[源代码]#
基类:
FITS_rec
随机分组数据对象。
允许以类似于表的方式对FITS组数据进行结构化访问。
- 参数:
- input :
array
或FITS_rec
实例数组或FITSrec实例 输入数据,或者是组数据本身(a
numpy.ndarray
)或者记录数组 (FITS_rec
)它将包含组参数信息和数据。其余的参数只用于第一种情况。- bitpix :
int
Python :整型 以FITS表示的数据类型
BITPIX
值(8、16、32、64、-32或-64)- pardata : sequence 的
array
Python:数组序列 参数数据,作为(数值)数组的列表。
- parnames : sequence 的
str
PYTHON:PYTHON的序列:字符串 参数名称列表。
- bscale :
int
Python :整型 BSCALE
数据的- bzero :
int
Python :整型 BZERO
数据的- parbscales : sequence 的
int
PYTHON:PYTHON的序列:int 参数的bSales列表
- parbzeros : sequence 的
int
PYTHON:PYTHON的序列:int 参数的b0列表
- input :
- property data#
原始组数据表示为多维
numpy.ndarray
数组。
Group
#
- class astropy.io.fits.Group(input, row=0, start=None, end=None, step=None, base=None)[源代码]#
基类:
FITS_record
一组随机分组数据。
- 参数:
StreamingHDU
#
- class astropy.io.fits.StreamingHDU(name, header)[源代码]#
基类:
object
一个类,它提供将数据流式传输到FITS文件的能力,而不是要求一次写入所有数据。
以下伪代码说明了它的用法:
header = astropy.io.fits.Header() for all the cards you need in the header: header[key] = (value, comment) shdu = astropy.io.fits.StreamingHDU('filename.fits', header) for each piece of data: shdu.write(data) shdu.close()
构建一个
StreamingHDU
对象指定了文件名和头。- 参数:
- name : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
标头和数据将流式传输到的文件。如果打开,文件对象必须以可写二进制模式打开,例如‘wb’或‘ab+’。
- 页眉 :
Header
实例标头实例 与要写入文件的数据关联的头对象。
笔记
文件将被打开并将头附加到文件末尾。如果文件不存在,则会创建它,如果头表示主头,则会将其写入文件的开头。如果文件不存在,并且提供的头不是主头文件,则将在文件的开头插入默认的主HDU,并将提供的头添加为第一个扩展名。如果文件已经存在,但提供的头表示主头,则该头将被修改为图像扩展头并附加到文件末尾。
- property size#
返回HDU数据部分的大小(以字节为单位)。