文件处理和便利功能#
open()
#
- astropy.io.fits.open(name, mode='readonly', memmap=None, save_backup=False, cache=True, lazy_load_hdus=None, ignore_missing_simple=False, *, use_fsspec=None, fsspec_kwargs=None, decompress_in_memory=False, **kwargs)#
函数打开FITS文件并返回
HDUList
对象。- 参数:
- name :
str
, file-like object 或pathlib.Path
PYTHON:字符串,PYTHON:类似文件的对象或路径 要打开的文件。
- mode :
str
,可选Python:字符串,可选 打开模式、“readonly”、“update”、“append”、“denywrite”或“ostream”。默认值为“只读”。
如果
name
是已打开的文件对象,mode
必须与打开文件时使用的模式匹配:只读(rb)、更新(rb+)、追加(ab+)、ostream(w)、denywrite(rb))。- memmap : bool ,可选可选的布尔
是否要使用内存映射?此值从配置项获得
astropy.io.fits.Conf.use_memmap
. 默认是True
.- save_backup : bool ,可选可选的布尔
如果文件是在更新或追加模式下打开的,这将确保在刷新任何更改之前保存原始文件的备份。备份与原始文件同名,并附加“.bak”。如果“文件.bak“那时已经存在”文件.bak使用0.1“,以此类推。默认为
False
.- cache : bool ,可选可选的布尔
如果文件名是URL,
download_file
用于打开文件。这将指定是否将文件本地保存到Astropy的下载缓存中。默认为True
.- lazy_load_hdus : bool ,可选可选的布尔
避免在打开FITS文件时立即读取所有hdu和头文件。这是一个对大文件特别有用的优化,因为FITS无法在不扫描文件和读取所有头文件的情况下确定文件中所有hdu的数量和偏移量。默认为
True
.要禁用延迟加载并立即读取所有hdu(旧行为),请使用
lazy_load_hdus=False
. 这可以减少意外情况——例如启用延迟加载,len(hdul)
可能很慢,因为这意味着需要读取整个FITS文件才能确定hdu的数量。lazy_load_hdus=False
确保在打开文件后已加载所有HDU。在 1.3 版本加入.
- uint : bool ,可选可选的布尔
解释有符号整数数据,其中
BZERO
是核心价值观BSCALE == 1
作为无符号整数数据。例如,int16
数据与BZERO = 32768
和BSCALE = 1
会被视为uint16
数据。默认为True
因此假定采用伪无符号整数约定。- ignore_missing_end : bool ,可选可选的布尔
打开缺少
END
最后一个页眉中的卡片。默认值为False
。- ignore_missing_simple : bool ,可选可选的布尔
不要在缺少Simple关键字时引发异常。请注意,如果存在简单的卡,但其写入方式不符合FITS标准,则io.fit将发出警告。缺省值为
False
。在 4.2 版本加入.
- checksum : bool ,
str
,可选Bool,python:str,可选 如果
True
,验证两者DATASUM
和CHECKSUM
卡值(当HDU头中存在时)与文件中所有HDU的头和数据相匹配。对已具有校验和的文件的更新将保留和更新现有校验和,除非此参数的值为“remove”,在这种情况下,校验和和和数据的值不会被检查,并且在保存对文件的更改时会被删除。默认为False
.- disable_image_compression : bool ,可选可选的布尔
- do_not_scale_image_data : bool ,可选可选的布尔
- character_as_bytes : bool ,可选可选的布尔
是否返回字符串列的字节,否则返回unicode字符串,但这不考虑内存映射,并在访问时将整个列加载到内存中。默认为
False
.- ignore_blank : bool ,可选可选的布尔
- scale_back : bool ,可选可选的布尔
如果
True
,保存对包含缩放图像数据的文件所做的更改时,将数据还原为原始类型并重新应用原始b缩放/b零值。如果在对数据执行浮点运算后缩小到整数值,这可能会导致精度损失。默认为False
.- output_verify :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,+warn
,或+exception" (e.g. `` “修复+警告”
)。看见 验证选项 更多信息。- use_fsspec : bool ,可选可选的布尔
使用
fsspec.open
打开文件吗?默认为False
除非name
以Amazon S3存储前缀开头s3://
或者谷歌云存储前缀gs://
。也可用于具有其他前缀的路径(例如,http://
),但在这种情况下,您必须显式地传递use_fsspec=True
。使用此功能需要可选的fsspec
包裹。一个ModuleNotFoundError
如果缺少依赖项,则将引发。在 5.2 版本加入.
- fsspec_kwargs :
dict
,可选Python:Dict,可选 关键字参数传递到
fsspec.open
。这可用于配置云存储凭据和缓存行为。例如,传递fsspec_kwargs={"anon": True}
启用对Amazon S3开放数据桶的匿名访问。看见fsspec
有关可用参数的文档。在 5.2 版本加入.
- decompress_in_memory : bool ,可选可选的布尔
默认情况下,根据需要的数据逐步解压缩文件。这对内存使用有好处,避免了对整个文件进行解压缩,但可能会很慢。如果DEMPRESS_IN_MEMORY=True,则可以将内存中的整个文件解压缩。
在 6.0 版本加入.
- name :
- 返回:
writeto()
#
- astropy.io.fits.writeto(filename, data, header=None, output_verify='exception', overwrite=False, checksum=False)[源代码]#
使用提供的/创建新的文件头。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
要写入的文件。如果打开,则必须以可写二进制模式打开,如‘wb’或‘ab+’。
- data :
array
或recarray
或Group
阵列或重新阵列或组 要写入新文件的数据
- header :
Header
object
,可选Header对象,可选 与关联的标头
data
.如果None
,为提供的数据创建适当类型的标头。此参数是可选的。- output_verify :
str
Python :字符串 输出验证选项。一定是其中之一
"fix"
,"silentfix"
,"ignore"
,"warn"
,或"exception"
。也可以是以下各项的任意组合"fix"
或"silentfix"
使用"+ignore"
,+warn
,或+exception" (e.g. `` “修复+警告”
)。看见 验证选项 更多信息。- overwrite : bool ,可选可选的布尔
如果
True
,覆盖输出文件(如果存在)。引发OSError
如果False
并且输出文件存在。默认为False
.- checksum : bool ,可选可选的布尔
如果
True
,两者相加DATASUM
和CHECKSUM
卡到所有HDU的标题写入文件。
笔记
本地支持GZIP、ZIP和BZIP2压缩算法。压缩模式由文件扩展名(分别为‘.gz’、‘.zip’或‘.bz2’)确定。也可以传递压缩文件对象,例如
gzip.GzipFile
。
info()
#
- astropy.io.fits.info(filename, output=None, **kwargs)[源代码]#
在FITS文件上打印摘要信息。
这包括每个HDU的名称、类型、标题长度、数据形状和类型。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
适合从中获取信息的文件。如果打开,模式必须是以下模式之一:rb、rb+或ab+(即文件必须可读)。
- output : file object , bool ,可选Python:文件对象,bool,可选
要将输出写入的类似文件的对象。如果
False
,不输出到文件,而是返回表示HDU信息的元组列表。写信给sys.stdout
默认情况下。- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
. 注: 此函数设置ignore_missing_end=True
默认情况下。
printdiff()
#
- astropy.io.fits.printdiff(inputa, inputb, *args, **kwargs)[源代码]#
比较配合文件的两个部分,包括整个配合文件,配合
HDUList
对象和配合HDU
物体。- 参数:
- inputa :
str
,HDUList
object
,或HDU
object
Python:字符串、HDUList对象或HDU对象 FITS文件的文件名,
HDUList
或HDU
要比较的对象inputb
.- inputb :
str
,HDUList
object
,或HDU
object
Python:字符串、HDUList对象或HDU对象 FITS文件的文件名,
HDUList
或HDU
要比较的对象inputa
.- 外景,外景,外景
如果您的输入是字符串文件名,则其他位置参数用于HDU规范(在以下情况下不起作用
inputa
和inputb
是HDU
对象或HDUList
对象)。它们是灵活的,并通过示例得到了最好的说明。除了按位置使用这些参数外,还可以直接调用关键字参数ext
,extname
。按HDU编号::
printdiff('inA.fits', 'inB.fits', 0) # the primary HDU printdiff('inA.fits', 'inB.fits', 2) # the second extension HDU printdiff('inA.fits', 'inB.fits', ext=2) # the second extension HDU
按姓名,即。,
EXTNAME
值(如果唯一)。EXTNAME
值不区分大小写:printdiff('不合时宜', '内部配合','sci')printdiff('不合时宜', '内部配合',extname='sci')
结合
EXTNAME
和EXTVER
作为独立参数或元组::printdiff('inA.fits', 'inB.fits', 'sci', 2) # EXTNAME='SCI' # & EXTVER=2 printdiff('inA.fits', 'inB.fits', extname='sci', extver=2) # equivalent printdiff('inA.fits', 'inB.fits', ('sci', 2)) # equivalent
不明确或冲突的规范将引发异常:
printdiff('inA.fits', 'inB.fits', ext=('sci', 1), extname='err', extver=2)
- **kwargs
要传递给的任何其他关键字参数
FITSDiff
.
- inputa :
笔记
主要用途
printdiff
功能是允许快速打印出配合差异报告并将其写入sys.stdout
. 要将差异报告保存到文件中,请使用FITSDiff
直接。
append()
#
- astropy.io.fits.append(filename, data, header=None, checksum=False, verify=True, **kwargs)[源代码]#
如果文件名存在,将头/数据附加到FITS文件中,如果不存在,则创建。
只要
data
提供时,将创建最小标头。- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
要写入的文件。如果打开,则必须打开以进行更新(rb+),除非它是新文件,否则必须为append(ab+)打开它。文件或
GzipFile
为更新而打开的对象将在返回后关闭。- data :
array
,Table
,或Group
数组、表或组 用于追加的新数据。
- header :
Header
object
,可选Header对象,可选 与关联的标头
data
. 如果None
,将为提供的数据对象创建适当的标头。- checksum : bool ,可选可选的布尔
什么时候?
True
两者相加DATASUM
和CHECKSUM
卡写入文件时,将卡写入HDU的头。- verify : bool ,可选可选的布尔
什么时候?
True
,则在附加之前,将读入现有的FITS文件以验证其正确性。什么时候?False
,内容只是附加到文件的末尾。设置verify
到False
可以快得多。- **kwargs
其他参数传递给:
update()
#
- astropy.io.fits.update(filename, data, *args, **kwargs)[源代码]#
使用输入数据/标头更新指定的HDU。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
要更新的文件。如果打开,模式必须为更新(rb+)。打开的文件对象或
GzipFile
对象将在返回时关闭。- data :
array
,Table
,或Group
数组、表或组 用于更新的新数据。
- header :
Header
object
,可选Header对象,可选 与关联的标头
data
. 如果None
,将为提供的数据对象创建适当的标头。- 外景,外景,外景
其余参数是灵活的:第三个参数可以是与数据关联的头。如果第三个参数不是
Header
,it(和其他位置参数)被假定为HDU规范。Header和HDU规范也可以是关键字参数。例如::update(file, dat, hdr, 'sci') # update the 'sci' extension update(file, dat, 3) # update the 3rd extension HDU update(file, dat, hdr, 3) # update the 3rd extension HDU update(file, dat, 'sci', 2) # update the 2nd extension HDU named 'sci' update(file, dat, 3, header=hdr) # update the 3rd extension HDU update(file, dat, header=hdr, ext=5) # update the 5th extension HDU
- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
.
getdata()
#
- astropy.io.fits.getdata(filename, *args, header=None, lower=None, upper=None, view=None, **kwargs)[源代码]#
从FITS文件(以及可选的标题)的HDU中获取数据。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
要从中获取数据的文件。如果打开,模式必须是以下rb、rb+或ab+之一。
- ext
其余参数是针对HDU规范的。它们是灵活的,并通过示例得到了最好的说明。
没有额外参数表示主HDU::
getdata('in.fits')
备注
专属于
getdata
:如果ext
未指定且主标头不包含任何数据,getdata
尝试从第一扩展HDU检索数据。按HDU编号::
getdata('in.fits', 0) # the primary HDU getdata('in.fits', 2) # the second extension HDU getdata('in.fits', ext=2) # the second extension HDU
按姓名,即。,
EXTNAME
值(如果唯一):getdata('in.fits', 'sci') getdata('in.fits', extname='sci') # equivalent
注意
EXTNAME
值不区分大小写结合
EXTNAME
和EXTVER ``作为单独的参数或元组:getdata('in.fits', 'sci', 2) # EXTNAME='SCI' & EXTVER=2 getdata('in.fits', extname='sci', extver=2) # equivalent getdata('in.fits', ('sci', 2)) # equivalent
不明确或冲突的规范将引发异常:
getdata('in.fits', ext=('sci',1), extname='err', extver=2)
- header : bool ,可选可选的布尔
如果
True
,以元组的形式返回指定HDU的数据和标头。- lower, upper : bool ,可选可选的布尔
如果
lower
或upper
是True
,则返回的数据对象中的字段名将分别转换为小写或大写。- view :
ndarray
,可选ndarray,可选 如果给定,则返回的数据将包装在给定的ndarray子类中,方法是调用:
data.view(view)
- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
.
- 返回:
- 加薪:
IndexError
如果在搜索的HDU中找不到数据。
getheader()
#
- astropy.io.fits.getheader(filename, *args, **kwargs)[源代码]#
从FITS文件的HDU中获取标题。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
要从中获取标头的文件。如果是打开的文件对象,其模式必须是以下rb、rb+或ab+之一。
- 外景,外景,外景
其余参数是针对HDU规范的。请参阅
getdata
有关解释/示例的文档。- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
.
- 返回:
getval()
#
- astropy.io.fits.getval(filename, keyword, *args, **kwargs)[源代码]#
从FITS文件的头中获取关键字的值。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
FITS文件或文件对象的名称(如果打开,模式必须是以下rb、rb+或ab+之一。
- keyword :
str
Python :字符串 关键字名称
- 外景,外景,外景
其余参数是针对HDU规范的。看见
getdata
以获取解释/示例。- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
. 注: 此函数自动指定do_not_scale_image_data = True
当打开文件以便可以从未修改的头中检索值时。
- 返回:
setval()
#
- astropy.io.fits.setval(filename, keyword, *args, value=None, comment=None, before=None, after=None, savecomment=False, **kwargs)[源代码]#
从FITS文件的标题设置关键字的值。
如果关键字已经存在,它的值/注释将被更新。如果不存在,将创建一个新卡,并将其放置在指定位置之前或之后。如果没有
before
或after
,则将在末尾追加。当更新一个文件中的多个关键字时,与打开文件进行更新、修改头文件和关闭文件相比,此便利函数的效率要低得多。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
FITS文件或文件对象的名称如果打开,模式必须为update(rb+)。打开的文件对象或
GzipFile
对象将在返回时关闭。- keyword :
str
Python :字符串 关键字名称
- value :
str
,int
,float
,可选派生:字符串,派生:整型,派生:浮点,可选 关键字值(默认值:
None
,表示不修改)- comment :
str
,可选Python:字符串,可选 关键字注释(默认值:
None
,表示不修改)- before :
str
,int
,可选PYTHON:字符串,PYTHON:INT,可选 关键字的名称,或新卡将放在其前面的索引。争论
before
优先于after
如果两者都已指定(默认值:None
)- after :
str
,int
,可选PYTHON:字符串,PYTHON:INT,可选 关键字的名称或卡片的索引,新卡片将放在该索引之后。(默认值:
None
)- savecomment : bool ,可选可选的布尔
什么时候?
True
,保留现有关键字的当前注释。争论savecomment
优先于comment
如果两者都有规定。如果comment
如果未指定,则将自动保留当前注释(默认值:False
)- 外景,外景,外景
其余参数是针对HDU规范的。看见
getdata
以获取解释/示例。- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
. 注: 此函数自动指定do_not_scale_image_data = True
当打开文件以便可以从未修改的头中检索值时。
delval()
#
- astropy.io.fits.delval(filename, keyword, *args, **kwargs)[源代码]#
从FITS文件的头中删除关键字的所有实例。
- 参数:
- filename : path-like object 或 file-like objectPYTHON:类路径对象或PYTHON:类文件对象
FITS文件或文件对象的名称如果打开,模式必须为update(rb+)。打开的文件对象或
GzipFile
对象将在返回时关闭。- keyword :
str
,int
PYTHON:字符串,PYSTON:INT 关键字名称或索引
- 外景,外景,外景
其余参数是针对HDU规范的。看见
getdata
以获取解释/示例。- **kwargs
要传递给的任何其他关键字参数
astropy.io.fits.open
. 注: 此函数自动指定do_not_scale_image_data = True
当打开文件以便可以从未修改的头中检索值时。