spinifex.geometry.get_ipp

Module for getting the Ionospheric Piercepoints

Classes

IPP

Ionospheric Piercepoints

Functions

_get_ipp_simple(→ tuple[list[astropy.units.Quantity], ...)

helper function to calculate ionospheric piercepoints using a simple spherical earth model

_make_dimensions_match(→ astropy.coordinates.AltAz)

Helper function to change time dimensions suchthat they correspond to the altaz dimension

get_ipp_from_altaz(→ IPP)

get ionospheric piercepoints from azimuth elevations

get_ipp_from_skycoord(→ IPP)

Get ionospheric piercepoints

Module Contents

class spinifex.geometry.get_ipp.IPP[source]

Bases: NamedTuple

Ionospheric Piercepoints

airmass: numpy.typing.NDArray[numpy.float64][source]

airmass factor to convert to slant values

altaz: astropy.coordinates.AltAz[source]

azimuth elevation

loc: astropy.coordinates.EarthLocation[source]

location of the piercepoints, dimension: times x altitudes. All altitudes are assumed to be equal

los: numpy.typing.NDArray[numpy.float64][source]

Line of sight direction in ITRS coordinates, normalized

station_loc: astropy.coordinates.EarthLocation[source]

Observer Location

times: astropy.time.Time[source]

array of times

spinifex.geometry.get_ipp._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]][source]

helper function to calculate ionospheric piercepoints using a simple spherical earth model

|loc + alphas * los_dir| = R_earth + height_array

solve for alphas using abc formula

Parameters

height_arrayu.Quantity

array of altitudes

locEarthLocation

observer location

los_dirITRS

line of sight, unit vector

Returns

tuple(list[u.Quantity], NDArray)

ipp.x, ipp.y, ipp.z positions, airmass

spinifex.geometry.get_ipp._make_dimensions_match(altaz: astropy.coordinates.AltAz) astropy.coordinates.AltAz[source]

Helper function to change time dimensions suchthat they correspond to the altaz dimension

Parameters

altazAltAz

the altaz object

Returns

AltAz

altaz object with matching obstime dimension

Raises

NotImplementedError

multiple times with different shape than altaz is not implemented yet

spinifex.geometry.get_ipp.get_ipp_from_altaz(loc: astropy.coordinates.EarthLocation, altaz: astropy.coordinates.AltAz, height_array: astropy.units.Quantity) IPP[source]

get ionospheric piercepoints from azimuth elevations

Parameters

locEarthLocation

observer location

altazAltAz

azimuth and elevations for all times

height_arrayu.Quantity

array of altitudes

Returns

IPP

ionospheric piercepoints

spinifex.geometry.get_ipp.get_ipp_from_skycoord(loc: astropy.coordinates.EarthLocation, times: astropy.time.Time, source: astropy.coordinates.SkyCoord, height_array: astropy.units.Quantity) IPP[source]

Get ionospheric piercepoints

Parameters

locEarthLocation

observer location

timesTime

observation times

sourceSkyCoord

source location

height_arrayu.Quantity

array of altitudes

Returns

IPP

Ionospheric piercepoints