spinifex.geometry.get_ipp ========================= .. py:module:: spinifex.geometry.get_ipp .. autoapi-nested-parse:: Module for getting the Ionospheric Piercepoints Classes ------- .. autoapisummary:: spinifex.geometry.get_ipp.IPP Functions --------- .. autoapisummary:: spinifex.geometry.get_ipp._get_ipp_simple spinifex.geometry.get_ipp._make_dimensions_match spinifex.geometry.get_ipp.get_ipp_from_altaz spinifex.geometry.get_ipp.get_ipp_from_skycoord Module Contents --------------- .. py:class:: IPP Bases: :py:obj:`NamedTuple` Ionospheric Piercepoints .. py:attribute:: airmass :type: numpy.typing.NDArray[numpy.float64] airmass factor to convert to slant values .. py:attribute:: altaz :type: astropy.coordinates.AltAz azimuth elevation .. py:attribute:: loc :type: astropy.coordinates.EarthLocation location of the piercepoints, dimension: times x altitudes. All altitudes are assumed to be equal .. py:attribute:: los :type: numpy.typing.NDArray[numpy.float64] Line of sight direction in ITRS coordinates, normalized .. py:attribute:: station_loc :type: astropy.coordinates.EarthLocation Observer Location .. py:attribute:: times :type: astropy.time.Time array of times .. py:function:: _get_ipp_simple(height_array: astropy.units.Quantity, loc: astropy.coordinates.EarthLocation, los_dir: astropy.coordinates.SkyCoord) -> tuple[list[astropy.units.Quantity], numpy.typing.NDArray[numpy.float64]] helper function to calculate ionospheric piercepoints using a simple spherical earth model .. code-block:: |loc + alphas * los_dir| = R_earth + height_array solve for alphas using abc formula Parameters ---------- height_array : u.Quantity array of altitudes loc : EarthLocation observer location los_dir : ITRS line of sight, unit vector Returns ------- tuple(list[u.Quantity], NDArray) ipp.x, ipp.y, ipp.z positions, airmass .. py:function:: _make_dimensions_match(altaz: astropy.coordinates.AltAz) -> astropy.coordinates.AltAz Helper function to change time dimensions suchthat they correspond to the altaz dimension Parameters ---------- altaz : AltAz the altaz object Returns ------- AltAz altaz object with matching obstime dimension Raises ------ NotImplementedError multiple times with different shape than altaz is not implemented yet .. py:function:: get_ipp_from_altaz(loc: astropy.coordinates.EarthLocation, altaz: astropy.coordinates.AltAz, height_array: astropy.units.Quantity) -> IPP get ionospheric piercepoints from azimuth elevations Parameters ---------- loc : EarthLocation observer location altaz : AltAz azimuth and elevations for all times height_array : u.Quantity array of altitudes Returns ------- IPP ionospheric piercepoints .. py:function:: get_ipp_from_skycoord(loc: astropy.coordinates.EarthLocation, times: astropy.time.Time, source: astropy.coordinates.SkyCoord, height_array: astropy.units.Quantity) -> IPP Get ionospheric piercepoints Parameters ---------- loc : EarthLocation observer location times : Time observation times source : SkyCoord source location height_array : u.Quantity array of altitudes Returns ------- IPP Ionospheric piercepoints