spinifex.ionospheric.ionex_manipulation ======================================= .. py:module:: spinifex.ionospheric.ionex_manipulation .. autoapi-nested-parse:: Module of ionex manipulation tools Classes ------- .. autoapisummary:: spinifex.ionospheric.ionex_manipulation.GroupedIPPs Functions --------- .. autoapisummary:: spinifex.ionospheric.ionex_manipulation.get_density_ionex spinifex.ionospheric.ionex_manipulation.interpolate_ionex Module Contents --------------- .. py:class:: GroupedIPPs Bases: :py:obj:`NamedTuple` Grouped IPPs .. py:attribute:: indices :type: list[numpy.typing.NDArray[numpy.int32]] .. py:attribute:: ipps :type: list[spinifex.geometry.get_ipp.IPP] .. py:function:: get_density_ionex(ipp: spinifex.geometry.get_ipp.IPP, ionex_options: spinifex.ionospheric.tec_data.IonexOptions | None = None) -> spinifex.ionospheric.tec_data.ElectronDensity read ionex files and interpolate values to ipp locations/times Parameters ---------- ipp : IPP ionospheric piercepoints ionex_options : IonexOptions, 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 .. py:function:: 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] 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 ---------- ionex : IonexData ionex object containing the information of the ionex file lons : NDArray longitudes (deg) of all points to interpolate to lats : NDArray lattitudes (deg) of all points to interpolate to times : Time times of all points to interpolate to apply_earth_rotation : float, 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_rms : bool, optional use rms values instead of tec values Returns ------- NDArray array with interpolated tec values