support_nddata#

astropy.nddata.support_nddata(_func=None, accepts=<class 'astropy.nddata.nddata.NDData'>, repack=False, returns=None, keeps=None, **attribute_argument_mapping)[源代码]#

Decorator包装可以接受NDData实例的函数,其属性作为函数参数传递。

参数:
_func : callable()None ,可选PYTHON:Callable()、PYTHON:NONE、OPTIONAL

装饰或装饰的功能 None 如果作为工厂使用。第一个位置参数应该是 data 拿一个纽比阵列。可以覆盖名称,请参阅 attribute_argument_mapping 争论。默认为 None .

accepts可选类

类的类或子类 NDData 应该在调用函数之前解包。默认为 NDData

repack : bool ,可选可选的布尔

应该是 True 如果在包装函数调用之后,返回值应再次转换为输入类。默认为 False .

备注

必须是 True 如果 returnskeeps 指定。

returns : iterableNone ,可选PYTHON:可迭代,PYTHON:无,可选

一个iterable,它包含应在类上设置返回值的字符串。例如,如果一个函数返回数据和掩码,它应该是 ['data', 'mask'] .如果 None 假设函数只返回一个参数: 'data' . 默认是 None .

备注

必须是 None 如果 repack=False .

keeps : iterable. None ,可选可迭代。

包含字符串的iterable,该字符串指示应将哪些值从原始输入复制到返回的类。如果 None 假设没有复制任何属性。默认为 None .

备注

必须是 None 如果 repack=False .

attribute_argument_mapping

关键字参数,可选地指示应将哪个函数参数解释为输入的哪个属性。默认情况下,它假定函数接受 data 参数作为第一个参数,但如果调用第一个参数 input 一个人应该通过 support_nddata(..., data='input') 到函数。

返回:
decorator_factory or decorated_function : callable()Python:Callable()

如果 _func=None 它返回一个decorator,否则返回decorated _func .

笔记

如果属性 NDData 已设置,但没有相应的函数参数,将显示警告。

如果属性集 NDData 设置并给定显式参数,则使用显式给定的参数并显示警告。

支持的属性包括:

  • mask

  • unit

  • wcs

  • meta

  • uncertainty

  • flags

实例

此函数接受一个Numpy数组作为数据,并使用 wcs 关键字参数:

def downsample(data, wcs=None):
    # downsample data and optionally WCS here
    pass

但是,您可能有一个具有 wcs 属性集,并且您希望能够使用 downsample(my_nddata) 并将WCS信息(如果存在)自动传递给 wcs 关键字参数。

这个装饰器可以用来使这成为可能:

@support_nddata
def downsample(data, wcs=None):
    # downsample data and optionally WCS here
    pass

现在可以像以前一样调用此函数,分别指定数据和WCS,也可以将NDData实例传递给 data 争论。