Source code for africanus.coordinates.dask

# -*- coding: utf-8 -*-


try:
    import dask.array as da
except ImportError as e:
    dask_import_error = e
else:
    dask_import_error = None


from africanus.util.requirements import requires_optional
from africanus.coordinates.coordinates import (
    radec_to_lmn as np_radec_to_lmn,
    radec_to_lm as np_radec_to_lm,
    lmn_to_radec as np_lmn_to_radec,
    lm_to_radec as np_lm_to_radec,
    RADEC_TO_LMN_DOCS,
    LMN_TO_RADEC_DOCS,
)


def _radec_to_lmn(radec, phase_centre):
    return np_radec_to_lmn(radec[0], phase_centre[0] if phase_centre else None)


[docs] @requires_optional("dask.array", dask_import_error) def radec_to_lmn(radec, phase_centre=None): phase_centre_dims = ("radec",) if phase_centre is not None else None return da.core.blockwise( _radec_to_lmn, ("source", "lmn"), radec, ("source", "radec"), phase_centre, phase_centre_dims, new_axes={"lmn": 3}, dtype=radec.dtype, )
def _lmn_to_radec(lmn, phase_centre): return np_lmn_to_radec(lmn[0], phase_centre)
[docs] @requires_optional("dask.array", dask_import_error) def lmn_to_radec(lmn, phase_centre=None): phase_centre_dims = ("radec",) if phase_centre is not None else None return da.core.blockwise( _lmn_to_radec, ("source", "radec"), lmn, ("source", "lmn"), phase_centre, phase_centre_dims, new_axes={"radec": 2}, dtype=lmn.dtype, )
def _radec_to_lm(radec, phase_centre): return np_radec_to_lm(radec[0], phase_centre[0] if phase_centre else None)
[docs] @requires_optional("dask.array", dask_import_error) def radec_to_lm(radec, phase_centre=None): phase_centre_dims = ("radec",) if phase_centre is not None else None return da.core.blockwise( _radec_to_lm, ("source", "lm"), radec, ("source", "radec"), phase_centre, phase_centre_dims, new_axes={"lm": 2}, dtype=radec.dtype, )
def _lm_to_radec(lm, phase_centre): return np_lm_to_radec(lm[0], phase_centre)
[docs] @requires_optional("dask.array", dask_import_error) def lm_to_radec(lm, phase_centre=None): phase_centre_dims = ("radec",) if phase_centre is not None else None return da.core.blockwise( _lm_to_radec, ("source", "radec"), lm, ("source", "lm"), phase_centre, phase_centre_dims, new_axes={"radec": 2}, dtype=lm.dtype, )
try: radec_to_lmn.__doc__ = RADEC_TO_LMN_DOCS.substitute( lm_components="3", array_type=":class:`dask.array.Array`" ) radec_to_lm.__doc__ = RADEC_TO_LMN_DOCS.substitute( lm_components="2", array_type=":class:`dask.array.Array`" ) lmn_to_radec.__doc__ = LMN_TO_RADEC_DOCS.substitute( lm_name="lmn", lm_components="3", array_type=":class:`dask.array.Array`" ) lm_to_radec.__doc__ = LMN_TO_RADEC_DOCS.substitute( lm_name="lm", lm_components="2", array_type=":class:`dask.array.Array`" ) except AttributeError: pass