Wcsprm公司#

class astropy.wcs.Wcsprm(header=None, key=' ', relax=False, naxis=2, keysel=0, colsel=None)#

基类:object

Wcsprm 执行核心WCS转换。

备注

此对象的成员大致对应于FITS标题中的键/值对。但是,它们通过多种方式进行调整和规范化,从而使WCS转换更容易执行。因此,不能依赖它们来获取头中的原始值。为此,使用 astropy.io.fits.Header 直接。

FITS头解析对第9列和第10列中出现的等号强制使用正确的FITS“keyword=value”语法。但是,它可以识别自由格式字符(NOST 100-2.0,第。5.2.1),整数(第。5.2.3)和浮点值(第。5.2.4)所有关键字。

警告

在修改基础C结构时,此类的许多属性需要额外的处理。需要时,此附加处理在属性设置器中实现。因此,对于可变属性,应该始终设置属性而不是其当前值(或其单个元素)的一部分,因为后者可能导致类实例处于无效状态。例如,属性 crpix 二维WCS的 Wcsprm 对象 wcs 应设置为 wcs.crpix = [crpix1, crpix2] 而不是 wcs.crpix[0] = crpix1; wcs.crpix[1] = crpix2]

参数:
header : Header, str ,或者一个也没有。HEADER、PYTHON:STR或无。

如果 None ,对象将初始化为默认值。

key : str ,可选Python:字符串,可选

在标头中引用特定WCS转换的键。这可能是 ' ''A' -“Z”和对应于 ``"a" 部分 "CTYPEia" .( key 仅在以下情况下提供 页眉 也提供了。)

relax : boolint ,可选Bool或python:int,可选

允许程度:

  • False :只识别符合发布的WCS标准定义的关键字。

  • True :允许所有公认的WCS标准非正式扩展。

  • int :选择要接受的特定扩展的位字段。看见 标头读数松弛常数 了解更多细节。

naxis : int ,可选PYTHON:int,可选

对象的世界坐标轴数。( 纳西族 仅在以下情况下提供 页眉None

keysel : sequence 标志位的数量,可选Python:标志位序列,可选

可用于限制考虑的关键字类型的标志位向量:

  • WCSHDR_IMGHEAD :图像标题关键字。

  • WCSHDR_BIMGARR :二进制表图像数组。

  • WCSHDR_PIXLIST :像素列表关键字。

如果为零,则没有限制。如果-1,则为底层wcslib函数 wcspih() 而不是 wcstbh() .

colsel : sequenceintPYTHON:PYTHON的序列:int

用于限制所考虑关键字的表列号序列。 None 表示无限制。

加薪:
MemoryError

内存分配失败。

ValueError

密钥无效。

KeyError

在FITS标题中找不到键。

属性摘要

alt 

str 交替坐标描述的字符代码。

aux 

Auxprm 专业性质的辅助坐标系信息。

axis_types 

int array[naxis] 每个轴的四位数类型代码的数组。

bepoch 

double 相当于 DATE-OBS .

cd 

double array[naxis][naxis] 这个 CDi_ja 线性变换矩阵。

cdelt 

double array[naxis] 坐标增量 (CDELTia )对于每个坐标轴。

cel 

Celprm 转换天体坐标所需的信息。

cel_offset 

boolean 有补偿吗?

cname 

list of strings 坐标轴名称的列表,从 CNAMEia .

colax 

int array[naxis] 记录像素列表中每个轴的列号的数组。

colnum 

int 与此WCS关联的FITS二进制表的列。

cperi 

double array[naxis] 相位轴的周期,CPERIia。

crder 

double array[naxis] 每个坐标轴的随机误差, CRDERia .

crota 

double array[naxis] CROTAia 每个坐标轴的关键值。

crpix 

double array[naxis] 参考坐标像素 (CRPIXja )对于每个像素轴。

crval 

double array[naxis] 坐标参考值 (CRVALia )对于每个坐标轴。

csyer 

double array[naxis] 坐标值轴的系统误差, CSYERia .

ctype 

list of strings[naxis] 名单 CTYPEia 键值。

cubeface 

int 索引到 pixcrd (像素坐标)数组 CUBEFACE 轴。

cunit 

list of astropy.UnitBase[naxis] 名单 CUNITia 键值作为 astropy.units.UnitBase 实例。

czphs 

double array[naxis] 相位轴零点的时间, CSPHSia .

dateavg 

string 观察日期的代表性中点。

datebeg 

string 观察开始时的日期。

dateend 

string 观察结束时的日期。

dateobs 

string 观察日期的开始。

dateref 

string 其他时间测量所参照的参考历元的日期。

equinox 

double 与赤道或黄道动态坐标系有关的春分点。

imgpix_matrix 

double array[2][2] (只读)的逆 CDELTPC 矩阵。

jepoch 

double 相当于 DATE-OBS .

lat 

int (只读)包含纬度值的世界坐标数组的索引。

latpole 

double 天极的本地纬度, LATPOLEa (度)。

lattyp 

string (只读)纬度的天轴类型。

lng 

int (只读)包含经度值的世界坐标数组的索引。

lngtyp 

string (只读)经度的天轴类型。

lonpole 

double 天极的本地经度。

mjdavg 

double 修改后的儒略日期对应于 DATE-AVG .

mjdbeg 

double 修改后的儒略日期对应于 DATE-BEG .

mjdend 

double 修改后的儒略日期对应于 DATE-END .

mjdobs 

double 修改后的儒略日期对应于 DATE-OBS .

mjdref 

double 修改后的儒略日期对应于 DATE-REF .

name 

string 指定给坐标表示的名称 WCSNAMEa .

naxis 

int (只读)轴数(像素和坐标)。

obsgeo 

double array[3] 在一个标准的地球参考系中观察者的位置。

obsorbit 

string 轨道星历文件的URI、URL或名称,给出与TREFPOS有关的航天器坐标。

pc 

double array[naxis][naxis] 这个 PCi_ja (像素坐标)变换矩阵。

phi0 

double 基准点的本地纬度。

piximg_matrix 

double array[2][2] (只读)包含 CDELTia 对角矩阵和 PCi_ja 矩阵。

plephem 

string 用于计算路径长度延迟的太阳系星历。

radesys 

string 赤道或黄道坐标系类型, RADESYSa .

restfrq 

double 静止频率(Hz) RESTFRQa .

restwav 

double 静止波长(m) RESTWAVa .

spec 

int (只读)包含光谱轴值的索引。

specsys 

string 光谱参考系(静止标准), SPECSYSa .

ssysobs 

string 光谱参考系。

ssyssrc 

string 红移光谱参考系。

tab 

list of Tabprm 表格坐标对象。

telapse 

double 相当于DATE-BEG和DATE-END之间经过的时间,以TIMEUNIT为单位。

theta0 

double 基准点的本地经度。

timedel 

double 时间戳的分辨率。

timeoffs 

double 时间偏移,例如,可用于提供统一的时钟校正

timepixr 

double 以二进制时间间隔表示的时间戳的相对位置,值介于0.0和1.0之间。

timesys 

string 时间刻度(UTC、TAI等),其中记录了所有其他与时间相关的辅助标题值。

timeunit 

string 表示以下标题值的时间单位: TSTARTTSTOPTIMEOFFSTIMSYERTIMRDERTIMEDEL .

timrder 

double 时间戳相对于彼此的准确度,以时间单位为单位。

timsyer 

double 时间值的绝对误差,以时间单位为单位。

trefdir 

string 用于计算路径长度延迟的参考方向。

trefpos 

string 空间中记录的时间有效的位置。

tstart 

double 相当于DATE-BEG,表示为相对于DATEREF+超时的时间单位。

tstop 

double 相当于DATE-END,表示为相对于DATEREF+TIMEOFFS的TIMEUNIT单位的时间。

velangl 

double 速度角。

velosys 

double 相对径向速度。

velref 

int AIPS速度代码。

wtb 

list of Wtbarr 对象从BINTABLE构造坐标查找表。

xposure 

double 以时间单位表示的有效曝光时间。

zsource 

double 红移, ZSOURCEa ,来源的。

方法总结

bounds_check(pix2world, world2pix)

启用/禁用边界检查。

cdfix \()

错误省略的修复 CDi_ja 关键词。

celfix 

翻译AIPS公约天体投影类型, -NCP-GLS .

compare(other[, cmp, tolerance])

比较两个Wcsprm对象是否相等。

cylfix \()

修复了格式错误的圆柱形投影的WCS键值。

datfix \()

翻译旧的 DATE-OBS 日期格式为2000年标准格式 (yyyy-mm-ddThh:mm:ss) 并衍生 MJD-OBS 如果还没有设置。

fix([translate_units, naxis])

应用由单独处理的所有更正 datfixunitfixcelfixspcfixcylfixcdfix .

get_cdelt \()

坐标增量 (CDELTia )对于每个坐标轴 double array[naxis] .

get_pc \()

返回 PC 只读形式的矩阵 double array[naxis][naxis] .

get_ps \()

返回 PSi_ma 每个关键字 im 作为元组列表。

get_pv \()

返回 PVi_ma 每个关键字 im 作为元组列表。

has_cd \()

返回 True 如果 CDi_ja 是存在的。

has_cdi_ja \()

Alias has_cd .

has_crota \()

返回 True 如果 CROTAia 是存在的。

has_crotaia \()

Alias has_crota .

has_pc \()

返回 True 如果 PCi_ja 是存在的。

has_pci_ja \()

Alias has_pc .

is_unity \()

返回 True 如果线性变换矩阵 (cd )就是团结。

mix(mixpix, mixcel, vspan, vstep, viter, ...)

给定天体经度或纬度加上像素坐标的元素,通过迭代未知的天体坐标元素来求解剩余元素 s2p .

p2s(pixcrd, origin)

将像素转换为世界坐标。

print_contents \()

打印 Wcsprm 对象到stdout。

s2p(world, origin)

将世界坐标转换为像素坐标。

set \()

根据提供的信息设置WCS对象以供使用。

set_ps \(PS)

集合 PSi_ma 每个关键字 im .

set_pv \(pV)

集合 PVi_ma 每个关键字 im .

spcfix \()

转换AIPS约定光谱坐标类型。

sptr(ctype[, i])

平移WCS对象中的光谱轴。

sub \(轴)

从中提取子图像的坐标描述 WCS 对象。

to_header([relax])

to_header 将WCS对象转换为FITS头。

unitfix([translate_units])

翻译非标准 CUNITia 键值。

属性文档

alt#

str 交替坐标描述的字符代码。

例如, "a" 在关键字名称中,例如 CTYPEia . 这是主坐标描述的空格字符,或26个大写字母a-Z之一。

aux#

Auxprm 专业性质的辅助坐标系信息。

axis_types#

int array[naxis] 每个轴的四位数类型代码的数组。

  • 第一位数(即1000秒):

    • 0:非特定坐标类型。

    • 1: 斯托克斯坐标。

    • 2: 天文坐标(包括 CUBEFACE

    • 3: 光谱坐标。

  • 第二位数(即100秒):

    • 0:线性轴。

    • 1: 量子化轴 (STOKESCUBEFACE

    • 2: 非线性天轴。

    • 3: 非线性谱轴。

    • 4: 对数轴。

    • 5: 表格轴。

  • 第三位数(即10秒):

    • 0:组号,如查表号

  • 第四位数字用作限定符,具体取决于轴类型。

    • 对于天轴:

      • 0:经度坐标。

      • 1: 纬度坐标。

      • 2: CUBEFACE 数字。

    • 对于查阅表格:多维表格中的轴号。

CTYPEia 在里面 "4-3" 将生成一个无法识别的表单1,并将其代码设置为无法识别。

bepoch#

double 相当于 DATE-OBS .

表现为贝塞尔时代。

cd#

double array[naxis][naxis] 这个 CDi_ja 线性变换矩阵。

为了实现历史兼容性,wcslib中提供了三种线性变换的替代规范。典型的 PCi_ja 具有 CDELTiaCDi_ja ,以及弃用的 CROTAia 关键词。尽管后者可能不会正式与 PCi_ja ,如果与 PCi_ja .

has_pchas_cdhas_crota 可用于确定标头中存在这些备选方案中的哪一个。

这些线性变换矩阵的替代规范立即转换为 PCi_ja 通过 set 在较低级别的程序中是看不到的。特别地, set 重置 cdelt 团结如果 CDi_ja 不存在 PCi_ja ). 如果没有 CROTAia 与纬度轴有关, set 恢复统一 PCi_ja 矩阵。

cdelt#

double array[naxis] 坐标增量 (CDELTia )对于每个坐标轴。

如果A CDi_ja 给出了线性变换矩阵,并给出了警告 cdelt 被忽略。这个 CDi_ja 可删除矩阵:

del wcs.wcs.cd

未定义的值用NaN表示。

cel#

Celprm 转换天体坐标所需的信息。

cel_offset#

boolean 有补偿吗?

如果 True ,偏移量将应用于 (x, y) 强迫 (x, y) = (0, 0) 在φ0点。默认为 False .

cname#

list of strings 坐标轴名称的列表,从 CNAMEia .

colax#

int array[naxis] 记录像素列表中每个轴的列号的数组。

colnum#

int 与此WCS关联的FITS二进制表的列。

如果坐标表示与FITS二进制表中的图像数组列相关联,则此属性可用于记录相关的列号。

对于图像标题或像素列表,应将其设置为零。

cperi#

double array[naxis] 相位轴的周期,CPERIia。

未定义的值用NaN表示。

crder#

double array[naxis] 每个坐标轴的随机误差, CRDERia .

未定义的值用NaN表示。

crota#

double array[naxis] CROTAia 每个坐标轴的关键值。

为了实现历史兼容性,wcslib中提供了三种线性变换的替代规范。典型的 PCi_ja 具有 CDELTiaCDi_ja ,以及弃用的 CROTAia 关键词。尽管后者可能不会正式与 PCi_ja ,如果与 PCi_ja .

has_pchas_cdhas_crota 可用于确定标头中存在这些备选方案中的哪一个。

这些线性变换矩阵的替代规范立即转换为 PCi_ja 通过 set 在较低级别的程序中是看不到的。特别地, set 重置 cdelt 团结如果 CDi_ja 不存在 PCi_ja ). 如果没有 CROTAia 与纬度轴有关, set 恢复统一 PCi_ja 矩阵。

crpix#

double array[naxis] 参考坐标像素 (CRPIXja )对于每个像素轴。

crval#

double array[naxis] 坐标参考值 (CRVALia )对于每个坐标轴。

csyer#

double array[naxis] 坐标值轴的系统误差, CSYERia .

未定义的值用NaN表示。

ctype#

list of strings[naxis] 名单 CTYPEia 键值。

这个 ctype 关键字值必须大写,并且必须有零个或一对匹配的天轴类型,以及零个或一个光谱轴。

cubeface#

int 索引到 pixcrd (像素坐标)数组 CUBEFACE 轴。

这用于四边形立方体投影,其中立方体面存储在单独的轴上。

四边形投影 (TSCCSCQSC )可以用以下两种方式之一表示:

  • 可将六个面布置在一个平面上,编号如下:

             0
    
    4  3  2  1  4  3  2
    
             5
    

    面2、3和4可能出现在一侧或另一侧(或同时出现)。“世界到像素”(world to pixel)例程将面2、3和4映射到左侧,但“像素到世界”(pixel to world)例程在任一侧接受它们。

  • 这个 COBE 将六个面存储在三维结构中的惯例 CUBEFACE 轴索引从0到5,如上所示。

这些例程支持这两种方法; set 确定由存在或不存在 CUBEFACE 轴输入 ctype . p2ss2p 翻译 CUBEFACE 轴表示为低级投影例程所理解的单平面表示。

cunit#

list of astropy.UnitBase[naxis] 名单 CUNITia 键值作为 astropy.units.UnitBase 实例。

这些定义了 CRVALiaCDELTiaCDi_ja 关键词。

AS CUNITia 是可选的标题关键字, cunit 可留空,但应包含WCS Paper I定义的标准单位规范。 unitfix 可用于转换常用的非标准单元规范,但必须在调用之前作为单独的步骤完成 set .

对于天轴,如果 cunit 不是空白, set 使用 wcsunits 来分析和缩放它 cdeltcrvalcd 小数点。然后复位 cunit"deg" .

对于光谱轴,如果 cunit 不是空白, set 使用 wcsunits 来分析和缩放它 cdeltcrvalcd 国际单位制。然后复位 cunit 因此。

set 忽略 cunit 对于其他坐标类型; cunit 可用于标记坐标值。

czphs#

double array[naxis] 相位轴零点的时间, CSPHSia .

未定义的值用NaN表示。

dateavg#

string 观察日期的代表性中点。

以ISO格式, yyyy-mm-ddThh:mm:ss .

datebeg#

string 观察开始时的日期。

以ISO格式, yyyy-mm-ddThh:mm:ss .

dateend#

string 观察结束时的日期。

以ISO格式, yyyy-mm-ddThh:mm:ss .

dateobs#

string 观察日期的开始。

以ISO格式, yyyy-mm-ddThh:mm:ss .

dateref#

string 其他时间测量所参照的参考历元的日期。

equinox#

double 与赤道或黄道动态坐标系有关的春分点。

EQUINOXa (或) EPOCH 在旧标题中)。不适用于ICRS赤道或黄道坐标。

未定义的值用NaN表示。

imgpix_matrix#

double array[2][2] (只读)的逆 CDELTPC 矩阵。

包含 CDELTia 对角矩阵和 PCi_ja 矩阵。

jepoch#

double 相当于 DATE-OBS .

表示为朱利安纪元。

lat#

int (只读)包含纬度值的世界坐标数组的索引。

latpole#

double 天极的本地纬度, LATPOLEa (度)。

lattyp#

string (只读)纬度的天轴类型。

例如,“RA”、“DEC”、“GLON”、“GLAT”等,它们是从“RA-”、“DEC-”、“GLON”、“GLAT”等中提取的 CTYPEia 删除了尾随的破折号。

lng#

int (只读)包含经度值的世界坐标数组的索引。

lngtyp#

string (只读)经度的天轴类型。

例如,“RA”、“DEC”、“GLON”、“GLAT”等,它们是从“RA-”、“DEC-”、“GLON”、“GLAT”等中提取的 CTYPEia 删除了尾随的破折号。

lonpole#

double 天极的本地经度。

LONPOLEa (度)。

mjdavg#

double 修改后的儒略日期对应于 DATE-AVG .

(MJD = JD - 2400000.5) .

未定义的值用NaN表示。

mjdbeg#

double 修改后的儒略日期对应于 DATE-BEG .

(MJD = JD - 2400000.5) .

未定义的值用NaN表示。

mjdend#

double 修改后的儒略日期对应于 DATE-END .

(MJD = JD - 2400000.5) .

未定义的值用NaN表示。

mjdobs#

double 修改后的儒略日期对应于 DATE-OBS .

(MJD = JD - 2400000.5) .

未定义的值用NaN表示。

mjdref#

double 修改后的儒略日期对应于 DATE-REF .

(MJD = JD - 2400000.5) .

未定义的值用NaN表示。

name#

string 指定给坐标表示的名称 WCSNAMEa .

naxis#

int (只读)轴数(像素和坐标)。

NAXISWCSAXESa 键值。

坐标轴的数量是在解析时确定的,以后不能更改。

它由以下最高值确定:

  1. NAXIS

  2. WCSAXESa

  3. 任何参数化WCS关键字中的最高轴数。keyvalue和关键字必须在语法上有效,否则将不考虑它。

如果这些关键字类型都不存在,也就是说,如果报头只包含特定坐标表示的辅助WCS关键字,则不会为其构造坐标描述。

对于同一图像的不同坐标表示,此值可能不同。

obsgeo#

double array[3] 在一个标准的地球参考系中观察者的位置。

OBSGEO-XOBSGEO-YOBSGEO-Z (单位:米)。

未定义的值用NaN表示。

obsorbit#

string 轨道星历文件的URI、URL或名称,给出与TREFPOS有关的航天器坐标。

pc#

double array[naxis][naxis] 这个 PCi_ja (像素坐标)变换矩阵。

顺序是:

[[PC1_1, PC1_2],
 [PC2_1, PC2_2]]

为了实现历史兼容性,wcslib中提供了三种线性变换的替代规范。典型的 PCi_ja 具有 CDELTiaCDi_ja ,以及弃用的 CROTAia 关键词。尽管后者可能不会正式与 PCi_ja ,如果与 PCi_ja .

has_pchas_cdhas_crota 可用于确定标头中存在这些备选方案中的哪一个。

这些线性变换矩阵的替代规范立即转换为 PCi_ja 通过 set 在较低级别的程序中是看不到的。特别地, set 重置 cdelt 团结如果 CDi_ja 不存在 PCi_ja ). 如果没有 CROTAia 与纬度轴有关, set 恢复统一 PCi_ja 矩阵。

phi0#

double 基准点的本地纬度。

天体坐标的点 ref[1:2] . 如果未定义(NaN)初始化例程, set ,将此设置为特定于投影的默认值。

piximg_matrix#

double array[2][2] (只读)包含 CDELTia 对角矩阵和 PCi_ja 矩阵。

plephem#

string 用于计算路径长度延迟的太阳系星历。

radesys#

string 赤道或黄道坐标系类型, RADESYSa .

restfrq#

double 静止频率(Hz) RESTFRQa .

未定义的值用NaN表示。

restwav#

double 静止波长(m) RESTWAVa .

未定义的值用NaN表示。

spec#

int (只读)包含光谱轴值的索引。

specsys#

string 光谱参考系(静止标准), SPECSYSa .

ssysobs#

string 光谱参考系。

光谱参考系,在该坐标系中,整个视野的光谱坐标没有差异变化, SSYSOBSa .

ssyssrc#

string 红移光谱参考系。

测量红移的光谱参考系(静止标准), SSYSSRCa .

tab#

list of Tabprm 表格坐标对象。

与此WCS关联的表格坐标对象的列表。

telapse#

double 相当于DATE-BEG和DATE-END之间经过的时间,以TIMEUNIT为单位。

theta0#

double 基准点的本地经度。

天体坐标的点 ref[1:2] . 如果未定义(NaN)初始化例程, set ,将此设置为特定于投影的默认值。

timedel#

double 时间戳的分辨率。

timeoffs#
double 时间偏移,例如,可用于提供统一的时钟校正

对于引用了DATEREF的时间。

timepixr#

double 以二进制时间间隔表示的时间戳的相对位置,值介于0.0和1.0之间。

timesys#

string 时间刻度(UTC、TAI等),其中记录了所有其他与时间相关的辅助标题值。CTYPEia还定义了时间轴的“设置时间”。

timeunit#

string 表示以下标题值的时间单位: TSTARTTSTOPTIMEOFFSTIMSYERTIMRDERTIMEDEL .

它还为 CUNITia 对于时间轴。

timrder#

double 时间戳相对于彼此的准确度,以时间单位为单位。

timsyer#

double 时间值的绝对误差,以时间单位为单位。

trefdir#

string 用于计算路径长度延迟的参考方向。

trefpos#

string 空间中记录的时间有效的位置。

tstart#

double 相当于DATE-BEG,表示为相对于DATEREF+超时的时间单位。

tstop#

double 相当于DATE-END,表示为相对于DATEREF+TIMEOFFS的TIMEUNIT单位的时间。

velangl#

double 速度角。

将观测到的速度分解为径向分量和横向分量的角度(以度为单位)。

未定义的值用NaN表示。

velosys#

double 相对径向速度。

观测者和选定的静止标准在天体参考坐标方向上的相对径向速度(m/s), VELOSYSa .

未定义的值用NaN表示。

velref#

int AIPS速度代码。

VELREF 关键字。

wtb#

list of Wtbarr 对象从BINTABLE构造坐标查找表。

xposure#

double 以时间单位表示的有效曝光时间。

zsource#

double 红移, ZSOURCEa ,来源的。

未定义的值用NaN表示。

方法文件

bounds_check(pix2world, world2pix)#

启用/禁用边界检查。

参数:
pix2world : bool ,可选可选的布尔

什么时候? True ,启用像素到世界(p2x)转换的边界检查。默认为 True .

world2pix : bool ,可选可选的布尔

什么时候? True ,为世界到像素(s2x)转换启用边界检查。默认为 True .

笔记

请注意,默认情况下(不调用 bounds_check )已启用严格边界检查。

cdfix()#

错误省略的修复 CDi_ja 关键词。

设置 CDi_ja 矩阵到统一 CDi_ja 与给定轴关联的关键字被省略。根据文件一,如果有的话 CDi_ja 所有的关键字都是在一个FITS标题中给出的,而那些没有给定的关键字默认为零。这将导致一个奇异矩阵与一行和一列零相交。

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。

celfix()#

翻译AIPS公约天体投影类型, -NCP-GLS .

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。

compare(other, cmp=0, tolerance=0.0)#

比较两个Wcsprm对象是否相等。

参数:
other : WcsprmWcsprm公司

要比较的另一个Wcsprm对象。

cmp : int ,可选PYTHON:int,可选

控制比较严格性的位域。当为0时(默认值),所有字段必须相同。

以下常量,在 astropy.wcs 模块,可以“或”在一起以放松比较。

  • WCSCOMPARE_ANCILLARY :忽略不会更改WCS转换的辅助关键字,例如 XPOSUREEQUINOX 。请注意,这也忽略了 DATE-OBS ,这在某些情况下确实会更改WCS转换。

  • WCSCOMPARE_TILING :忽略 CRPIXja . 这是“平铺”条件,其中两个WCSE覆盖相同地图投影的不同区域,并在同一地图网格上对齐。

  • WCSCOMPARE_CRPIX :忽略中的任何差异 CRPIXja . 两个WCSE覆盖同一地图投影的不同区域,但可能不会在同一栅格地图上对齐。覆盖 WCSCOMPARE_TILING .

tolerance : float ,可选Python:Float,可选

所需的公差量。例如,对于1e-6的值,对象中的所有浮点值都必须等于前6个小数位。0.0表示完全相等。

返回:
equal : bool布尔
cylfix()#

修复了格式错误的圆柱形投影的WCS键值。

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。

datfix()#

翻译旧的 DATE-OBS 日期格式为2000年标准格式 (yyyy-mm-ddThh:mm:ss) 并衍生 MJD-OBS 如果还没有设置。

或者,如果 mjdobs 设置和 dateobs 不是吗 datfix 派生 dateobs 从它。如果双方都已确定,但分歧超过半天 ValueError 提高了。

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。

fix(translate_units='', naxis=0)#

应用由单独处理的所有更正 datfixunitfixcelfixspcfixcylfixcdfix .

参数:
translate_units : str ,可选Python:字符串,可选

指定要执行的非标准单位字符串的潜在不安全转换。默认情况下,执行所有操作。

虽然 "S" 通常用于表示秒,其翻译为 "s" 由于标准认可 "S" 正式地说是西门子,但很少使用。同样适用于 "H" 几个小时(亨利),还有 "D" 好几天(黛比)。

此字符串控制在这种情况下要执行的操作,并且不区分大小写。

  • 如果字符串包含 "s" ,翻译 "S""s" .

  • 如果字符串包含 "h" ,翻译 "H""h" .

  • 如果字符串包含 "d" ,翻译 "D""d" .

因此 '' 不会做任何不安全的翻译 'shd' 所有的都可以。

naxis : int array ,可选Python:整型数组,可选

图像轴长度。如果此数组设置为零或 None 然后 cylfix 不会被调用。

返回:
status : dictPython :词典

返回一个包含以下键的字典,每个键都指向被调用的每个sub-fix函数的状态字符串:

get_cdelt() numpy.ndarray#

坐标增量 (CDELTia )对于每个坐标轴 double array[naxis] .

返回 CDELT 只读形式的偏移量。不像 cdelt 属性,即使在其中一个可选的标头中指定了线性变换矩阵,也可以这样做 CDi_jaCROTAia 形式。当您想要访问线性变换矩阵,但不关心它是如何在报头中指定的时,这很有用。

get_pc() numpy.ndarray#

返回 PC 只读形式的矩阵 double array[naxis][naxis] . 不像 pc 属性,即使在其中一个可选的标头中指定了线性变换矩阵,也可以这样做 CDi_jaCROTAia 形式。当您想要访问线性变换矩阵,但不关心它是如何在报头中指定的时,这很有用。

get_ps() list#

返回 PSi_ma 每个关键字 im 作为元组列表。

返回:
ps : listPython :列表

作为形式的元组列表返回( im价值 ):

  • i :内部轴号,如 PSi_ma ,(即1-相对)

  • m :int.参数编号,如 PSi_ma ,(即0-相对)

  • 价值 :字符串。参数值。

参见

astropy.wcs.Wcsprm.set_ps

集合 PSi_ma 价值观

get_pv() list#

返回 PVi_ma 每个关键字 im 作为元组列表。

返回:
sequence of tuple

作为形式的元组列表返回( im价值 ):

  • i :内部轴号,如 PVi_ma ,(即1-相对)

  • m :int.参数编号,如 PVi_ma ,(即0-相对)

  • 价值 :字符串。参数值。

参见

astropy.wcs.Wcsprm.set_pv

集合 PVi_ma 价值观

笔记

注意,如果不给他们, set 重置的条目 PVi_1aPVi_2aPVi_3aPVi_4a 对于经轴 i 相配 (phi_0theta_0 ),参考点的本地经度和纬度由 LONPOLEaLATPOLEa .

has_cd() bool#

返回 True 如果 CDi_ja 是存在的。

CDi_ja 是线性变换矩阵的另一个规范,为历史兼容性而维护。

IRAF公约中的矩阵元素与产品等效 CDi_ja = CDELTia * PCi_ja ,但默认值与 PCi_ja 矩阵。如果一个或多个 CDi_ja 关键字存在,则所有未指定 CDi_ja 默认为零。如果没有 CDi_ja (或) CROTAia )关键字存在,则假定头在 PCi_ja 无论是否有 PCi_ja 关键字存在,因为这会导致 CDELTia 与原配合规范一致。

同时 CDi_ja 不可能正式与 PCi_ja ,可能与 CDELTiaCROTAia 这些都将被忽略。

参见

astropy.wcs.Wcsprm.cd

吃生的 CDi_ja 价值观。

has_cdi_ja() bool#

Alias has_cd . 保持向后兼容性。

has_crota() bool#

返回 True 如果 CROTAia 是存在的。

CROTAia 是线性变换矩阵的另一个规范,为历史兼容性而维护。

在AIPS公约中, CROTAia 只能与天轴对的纬度轴相关联。它指定应用的图像平面中的旋转 之后 这个 CDELTia ;任何其他 CROTAia 关键字被忽略。

CROTAia 不可能正式与 PCi_ja . CROTAiaCDELTia 可能正式与 CDi_ja 但如果要忽略的话。

参见

astropy.wcs.Wcsprm.crota

吃生的 CROTAia 价值观

has_crotaia() bool#

Alias has_crota . 保持向后兼容性。

has_pc() bool#

返回 True 如果 PCi_ja 是存在的。 PCi_ja 是指定线性变换矩阵的推荐方法。

参见

astropy.wcs.Wcsprm.pc

吃生的 PCi_ja 价值观

has_pci_ja() bool#

Alias has_pc . 保持向后兼容性。

is_unity() bool#

返回 True 如果线性变换矩阵 (cd )就是团结。

mix(mixpix, mixcel, vspan, vstep, viter, world, pixcrd, origin)#

给定天体经度或纬度加上像素坐标的元素,通过迭代未知的天体坐标元素来求解剩余元素 s2p .

参数:
mixpix : intPython :整型

像素坐标上的哪个元素是给定的。

mixcel : intPython :整型

给出了天体坐标的哪个元素。如果 mixcel公司 = 1 ,天文经度用 world[self.lng] ,纬度返回 world[self.lat] . 如果 mixcel公司 = 2 ,天文纬度用 world[self.lat] ,经度返回 world[self.lng] .

vspan : (floatfloat )(float, float)

天体坐标的解区间,单位为度。这两个极限的顺序无关紧要。例如,经度范围可以通过任何方便的标准化来指定 (-120,+120) 是一样的 (240,480) ,但该解决方案将以相同的标准化返回,即在指定的间隔内。

vstep : floatPython :浮点

解决方案搜索的步长,以度为单位。如果 0 ,一个合理的,虽然可能不是最佳的默认值将被使用。

viter : intPython :整型

如果找不到解决方案,则步长将减半并重新开始搜索。 维特 控制步长减半的次数。允许的范围是5-10。

world : ndarray恩达雷

世界坐标元素作为 double array[naxis] . world[self.lng]world[self.lat] 是天体的经纬度,单位是度。给定的值和返回的值取决于 mixcel公司 . 给出了所有其他元素。结果将被写到这个数组中。

pixcrd : ndarray恩达雷

像素坐标为 double array[naxis] . 表示的元素 混合器 ,其余元素将被写入到位。

origin : intPython :整型

指定像素值的原点。Fortran和FITS标准使用原点1。Numpy和C使用原点为0的数组索引。

返回:
result : dictPython :词典

返回包含以下键的字典:

  • phi (double array[naxis])

  • theta (double array[naxis])

    • 投影的本地坐标系中的经度和纬度,以度为单位。

  • imgcrd (double array[naxis])

    • 图像坐标元素。 imgcrd[self.lng]imgcrd[self.lat] 是计划的吗 x -和 y -坐标,以十进制度数表示。

  • world (double array[naxis])

    • 另一个引用 世界 传入参数。

加薪:
MemoryError

内存分配失败。

SingularMatrixError

线性变换矩阵是奇异的。

InconsistentAxisTypesError

坐标轴类型不一致或无法识别。

ValueError

参数值无效。

InvalidTransformError

坐标转换参数无效。

InvalidTransformError

病态坐标变换参数。

InvalidCoordinateError

世界坐标无效。

NoSolutionError

在指定的时间间隔内找不到解决方案。

参见

astropy.wcs.Wcsprm.lat, astropy.wcs.Wcsprm.lng

获取经纬度的轴号

笔记

最初,检查指定的解决方案间隔,看它是否是“交叉”间隔。如果不是,则从解区间的上限开始迭代未知的天球坐标,并按指定的步长递减,搜索交叉解。如果像素坐标的尝试值步进指定的值,则表示交叉。如果找到一个交叉区间,则通过对交叉区间的“regula falsi”除法来确定解。如果在指定的解区间内未找到交叉区间,则搜索可能从切点产生的“非交叉”解。这个过程很复杂,因为必须考虑到所有地图投影中出现的不连续性。

一旦确定了一个解决方案,则可以通过随后调用 mix 具有适当限制的求解间隔。

注意当解点位于一个投影的固有极点时出现的情况,其中极点被表示为一条有限曲线,例如天顶点和圆锥曲线。在这种情况下,可能存在两个或多个有效解决方案,但是 mix 只回一个。

因为它的普遍性, mix 计算非常密集。对于计算有限的应用程序,可以为简单投影(例如非斜柱投影)编写更高效的特殊情况解算器。

p2s(pixcrd, origin)#

将像素转换为世界坐标。

参数:
pixcrd : ndarray恩达雷

像素坐标数组 double array[ncoord][nelem] .

origin : intPython :整型

指定像素值的原点。Fortran和FITS标准使用原点1。Numpy和C使用原点为0的数组索引。

返回:
result : dictPython :词典

返回包含以下键的字典:

  • IMGCRD :ndarray

    • 作为中间坐标数组 double array[ncoord][nelem] . 对于天轴, imgcrd[][self.lng]imgcrd[][self.lat] 是计划的吗 x -,和 y -坐标,以伪度数表示。对于光谱轴, imgcrd[][self.spec] 是中间光谱坐标,单位为国际单位制。

  • phi :ndarray

    • 阵列组件 double array[ncoord] .

  • 西塔 :ndarray

    • 投影本机坐标系中的经度和纬度,以度为单位,如 double array[ncoord] .

  • 世界 :ndarray

    • 世界坐标数组 double array[ncoord][nelem] . 对于天轴, world[][self.lng]world[][self.lat] 是天体的经纬度,单位是度。对于光谱轴, world[][self.spec] 是中间光谱坐标,单位为国际单位制。

  • stat :ndarray

    • 每个坐标的状态返回值为 int array[ncoord] . 0 为了成功, 1+ 无效像素坐标。

加薪:
MemoryError

内存分配失败。

SingularMatrixError

线性变换矩阵是奇异的。

InconsistentAxisTypesError

坐标轴类型不一致或无法识别。

ValueError

参数值无效。

ValueError

x -和 y -坐标阵列的大小不同。

InvalidTransformError

坐标转换参数无效。

InvalidTransformError

病态坐标变换参数。

参见

astropy.wcs.Wcsprm.lat, astropy.wcs.Wcsprm.lng

经纬度轴的定义

print_contents()#

打印 Wcsprm 对象到stdout。可能只对调试有用,以后可能会删除。

要获取内容的字符串,请使用 repr .

s2p(world, origin)#

将世界坐标转换为像素坐标。

参数:
world : ndarray恩达雷

世界坐标的十进制数组 double array[ncoord][nelem] .

origin : intPython :整型

指定像素值的原点。Fortran和FITS标准使用原点1。Numpy和C使用原点为0的数组索引。

返回:
result : dictPython :词典

返回包含以下键的字典:

  • phidouble array[ncoord]

  • θdouble array[ncoord]

    • 投影的本地坐标系中的经度和纬度,以度为单位。

  • imgcrd公司double array[ncoord][nelem]

    • 中间世界坐标数组。对于天轴, imgcrd[][self.lng]imgcrd[][self.lat] 是计划的吗 x -,和 y -坐标,以伪“度”表示。对于带有 CUBEFACE 轴,面编号也返回 imgcrd[][self.cubeface] . 对于光谱轴, imgcrd[][self.spec] 是中间光谱坐标,单位为国际单位制。

  • 皮克斯德double array[ncoord][nelem]

    • 像素坐标数组。像素坐标从零开始。

  • statint array[ncoord]

    • 每个坐标的状态返回值。 0 为了成功, 1+ 无效像素坐标。

加薪:
MemoryError

内存分配失败。

SingularMatrixError

线性变换矩阵是奇异的。

InconsistentAxisTypesError

坐标轴类型不一致或无法识别。

ValueError

参数值无效。

InvalidTransformError

坐标转换参数无效。

InvalidTransformError

病态坐标变换参数。

参见

astropy.wcs.Wcsprm.lat, astropy.wcs.Wcsprm.lng

经纬度轴的定义

set()#

根据提供的信息设置WCS对象以供使用。

请注意,不需要直接调用此例程;它将由 p2ss2p 如有必要。

一些基于其他属性的属性(例如 lattypctype )直到之后才可能是正确的 set 被称为。

set 去掉所有字符串成员中的尾随空格。

set 认识到 NCP 投影并将其转换为等效项 SIN 它也能识别 GLS 作为 SFL . 它为AIPS光谱类型执行别名转换 (FREQ-LSRFELO-HEL ,但不更改输入标题关键字。

加薪:
MemoryError

内存分配失败。

SingularMatrixError

线性变换矩阵是奇异的。

InconsistentAxisTypesError

坐标轴类型不一致或无法识别。

ValueError

参数值无效。

InvalidTransformError

坐标转换参数无效。

InvalidTransformError

病态坐标变换参数。

set_ps(ps)#

集合 PSi_ma 每个关键字 im .

参数:
ps : sequencetuplePYTHON:PYTHON的序列:元组

输入必须是表单的元组序列( im价值 ):

  • i :内部轴号,如 PSi_ma ,(即1-相对)

  • m :int.参数编号,如 PSi_ma ,(即0-相对)

  • 价值 :字符串。参数值。

set_pv(pv)#

集合 PVi_ma 每个关键字 im .

参数:
pv : listtuplePYTHON:PYTHON列表:元组

输入必须是表单的元组序列( im价值 ):

  • i :内部轴号,如 PVi_ma ,(即1-相对)

  • m :int.参数编号,如 PVi_ma ,(即0-相对)

  • 价值 :浮动。参数值。

spcfix() int#

转换AIPS约定光谱坐标类型。{FREQVELOFELO }-{OBSHELLSR }(例如。 FREQ-LSRVELO-OBSFELO-HEL

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。

sptr(ctype, i=-1)#

平移WCS对象中的光谱轴。

例如,a FREQ 轴可以转换为 ZOPT-F2W 反之亦然。

参数:
ctype : strPython :字符串

所需光谱 CTYPEia ,最多8个字符。前四个字符必须给出,并且永远不会被修改。剩下的四个,即算法代码,完全由前四个字符决定,并且必须与前四个字符一致。可以使用通配符,即如果最后三个字符指定为 "???" ,或者仅将第八个字符指定为 "?" ,则将替换并返回正确的算法代码。

i : intPython :整型

光谱轴的指数(0-相对)。如果 i < 0 (或未提供),它将被设置为从 CTYPE 配合标题中的键值。

加薪:
MemoryError

内存分配失败。

SingularMatrixError

线性变换矩阵是奇异的。

InconsistentAxisTypesError

坐标轴类型不一致或无法识别。

ValueError

参数值无效。

InvalidTransformError

坐标转换参数无效。

InvalidTransformError

病态坐标变换参数。

InvalidSubimageSpecificationError

子图像规范无效(无光谱轴)。

sub(axes)#

从中提取子图像的坐标描述 WCS 对象。

子图像的世界坐标系必须是可分离的,即子图像中任何点的世界坐标必须仅依赖于提取的轴的像素坐标。实际上,这意味着 PCi_ja 原始图像的矩阵不得包含将任何子图像轴与任何非子图像轴关联的非零非对角项。

sub 也可以向wcsprm对象添加轴。新轴将使用Wcsprm构造函数设置的默认值创建,该构造函数生成一个简单、未命名的线性轴,其世界坐标等于像素坐标。可以在调用之前更改这些默认值 set .

参数:
axes : inta 序列。PYTHON:int或序列。
  • 如果是int,则包括第一个 N 轴的原始顺序。

  • 如果序列包含图像轴编号(1-相对)或特殊轴标识符(见下文)的组合。顺序重要; axes[0] 是与子图像中的第一个轴相对应的输入图像的轴号,等等。使用0轴号可使用默认值创建新轴。

  • 如果 0[]None ,做一个深拷贝。

坐标轴类型可以使用字符串或特殊整数常量指定。可用类型包括:

  • 'longitude' / WCSSUB_LONGITUDE :天文经度

  • 'latitude' / WCSSUB_LATITUDE :天体纬度

  • 'cubeface' / WCSSUB_CUBEFACE :四边形立方体 CUBEFACE

  • 'spectral' / WCSSUB_SPECTRAL :光谱轴

  • 'stokes' / WCSSUB_STOKES :斯托克斯轴

  • 'temporal' / WCSSUB_TIME :时间轴(需要 WCSLIB 7.8版或更高版本)

  • 'celestial' / WCSSUB_CELESTIAL :组合的别名 'longitude''latitude''cubeface' .

返回:
new_wcs : WCS objectWCS对象
加薪:
MemoryError

内存分配失败。

InvalidSubimageSpecificationError

子图像规范无效(无光谱轴)。

NonseparableSubimageCoordinateSystemError

不可分离子像坐标系。

笔记

通过将整数常量与“二进制或”组合,可以按照在输入图像中出现的相同顺序提取特定类型的子图像轴的组合 (| )操作员。例如::

wcs.sub([WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_SPECTRAL])

将以与输入图像相同的顺序提取经度、纬度和光谱轴。如果每一个都存在,结果对象将有三个维度。

为了方便, WCSSUB_CELESTIAL 定义为组合 WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_CUBEFACE .

对于所有类型,也可以指定为“求反”的类型,例如:

wcs.sub([
  WCSSUB_LONGITUDE,
  WCSSUB_LATITUDE,
  WCSSUB_CUBEFACE,
  -(WCSSUB_SPECTRAL | WCSSUB_STOKES)])

最后一个指定除光谱或斯托克斯之外的所有轴类型。按照指定的顺序执行提取 axes ,即首先提取经轴(如果存在)(通过 axes[0] )而不是随后(通过 axes[3] ). 对于本例中的纬度轴和立方轴也是如此。

返回对象中的维度数可能小于或大于的长度 axes . 但是,它永远不会超过输入图像中的轴数。

to_header(relax=False)#

to_header 将WCS对象转换为FITS头。

标头的详细信息取决于上下文:

  • 如果 colnum 成员为非零,则将生成二进制表图像数组头。

  • 否则,如果 colax 成员设置为非零,则将生成像素列表标题。

  • 否则,将生成主映像或映像扩展头。

几乎可以肯定的是,输出标题在许多方面与输入不同:

  1. 输出标头仅包含与WCS相关的关键字。特别是,它不包含语法上需要的关键字,例如 SIMPLENAXISBITPIXEND .

  2. 不推荐(例如。 CROTAn )或者非标准用法将转换为标准(这部分取决于 fix 已应用)。

  3. 数量将被转换成内部使用的单位,基本上是SI加上度数。

  4. 浮点数可以采用不同的十进制精度。

  5. 元素 PCi_j 当且仅当它们与单位矩阵不同时,才会写出矩阵。因此,如果矩阵是统一的,那么就不会写出任何元素。

  6. 其他关键字,如 WCSAXESCUNITiaLONPOLEaLATPOLEa 可能会出现。

  7. 但是,原始的keycomments将丢失 to_header 努力写有意义的评论。

  8. 关键字顺序可以更改。

关键字可以在图像数组、二进制表和像素列表表单之间转换,方法是 colnumcolax 成员 WCS 对象。

参数:
relax : boolintBool或python:int

允许程度:

  • False :只识别符合发布的WCS标准定义的关键字。

  • True :允许所有公认的WCS标准非正式扩展。

  • int :选择要写入的特定扩展名的位字段。看见 标题写入松弛常数 了解更多细节。

返回:
header : strPython :字符串

Raw将标题设置为字符串。

unitfix(translate_units='')#

翻译非标准 CUNITia 键值。

例如, DEG > deg ,也去掉了不必要的空白。

参数:
translate_units : str ,可选Python:字符串,可选

对非标准单位字符串进行潜在的不安全转换。

虽然 "S" 通常用来表示秒,它可以识别 "S" 从形式上讲,尽管如此,这可能很少被翻译成 "s" 由于使用了标准,因此可能不安全。同样适用于 "H" 几个小时(亨利),还有 "D" 好几天(黛比)。

此字符串控制在这种情况下要执行的操作,并且不区分大小写。

  • 如果字符串包含 "s" ,翻译 "S""s" .

  • 如果字符串包含 "h" ,翻译 "H""h" .

  • 如果字符串包含 "d" ,翻译 "D""d" .

因此 '' 不会做任何不安全的翻译 'shd' 所有的都可以。

返回:
success : intPython :整型

返回 0 为了成功; -1 如果不需要更改。