spinifex.ionospheric.ionex_manipulation

Module of ionex manipulation tools

Classes

GroupedIPPs

Grouped IPPs

Functions

get_density_ionex(...)

read ionex files and interpolate values to ipp locations/times

interpolate_ionex(→ numpy.typing.NDArray[numpy.float64])

Interpolate ionex data to a given lon/lat/height grid.

Module Contents

class spinifex.ionospheric.ionex_manipulation.GroupedIPPs[source]

Bases: NamedTuple

Grouped IPPs

indices: list[numpy.typing.NDArray[numpy.int32]][source]
ipps: list[spinifex.geometry.get_ipp.IPP][source]
spinifex.ionospheric.ionex_manipulation.get_density_ionex(ipp: spinifex.geometry.get_ipp.IPP, ionex_options: spinifex.ionospheric.tec_data.IonexOptions | None = None) spinifex.ionospheric.tec_data.ElectronDensity[source]

read ionex files and interpolate values to ipp locations/times

Parameters

ippIPP

ionospheric piercepoints

ionex_optionsIonexOptions, optional

optional arguments for the ionospheric model, by default None

Returns

ElectronDensity

object with arrays of tec and tec_rms values for every entry in ipp

Raises

FileNotFoundError

if ionex file cannot be downloaded

spinifex.ionospheric.ionex_manipulation.interpolate_ionex(ionex: spinifex.ionospheric.ionex_parser.IonexData, lons: numpy.typing.NDArray[numpy.float64], lats: numpy.typing.NDArray[numpy.float64], times: astropy.time.Time, apply_earth_rotation: float = 1, get_rms: bool = False) numpy.typing.NDArray[numpy.float64][source]

Interpolate ionex data to a given lon/lat/height grid. lons, lats, times all should have the same length

apply_earth_rotation: This is assuming that the TEC maps move according to the rotation Earth (following method 3 of interpolation described in the IONEX document). Experiments with high time resolution ROB data show that this is not really the case, resulting in strange wavelike structures when applying this smart interpolation. TODO: implement smoothing filters for interpolation

Parameters

ionexIonexData

ionex object containing the information of the ionex file

lonsNDArray

longitudes (deg) of all points to interpolate to

latsNDArray

lattitudes (deg) of all points to interpolate to

timesTime

times of all points to interpolate to

apply_earth_rotationfloat, optional

specify (with a number between 0 and 1) how much of the earth rotation is taken in to account in the interpolation step., by default 1

get_rmsbool, optional

use rms values instead of tec values

Returns

NDArray

array with interpolated tec values