Data types in the Android’s GNSSStatus messages are documented on
their website [1].
Parameters:
input_path (string or path-like) – Path to measurement csv or txt file.
filter_measurements (bool) – Filter noisy measurements based on known conditions.
measurement_filters (dict) – Conditions under which measurements should be filtered. An
emptry dictionary passed into measurement_filters is
equivalent to setting filter_measurements to False. See the
docstring for filter_raw_measurements for details.
remove_rx_b_from_pr (bool) – If true, removes the estimated initial receiver clock bias
from the pseudorange values.
verbose (bool) – If true, prints extra debugging statements.
Filter conditions are set in the AndroidRawGnss()
initialization with the measurement_filters variable. The
general framework for measurement filters is taken from Google’s
ION GNSS+ 2023 workshop presentation [4]. Google’s
gps-measurement-tools opensource software shows a couple of
their implementations with example values [5][6].
The possible keys to include in the measurement_filters
dictionary variable include:
bias_valid : If true, measurements where FullBiasNanos is
greater or equal to zero will be removed.
bias_uncertainty : Any measurements will be
re where BiasUncertaintyNanos is greater than
the set value.
arrival_time : If true, measurements where the arrival time
(t_rx_secs) is negative or unrealistically large will be
removed.
unknown_constellations : If true, measurements with an
unknown_constellation will be removed.
time_valid : If true, measurements with where TimeNanos is
empty will be removed.
state_decoded : If true, will filter measurements that don’t
have the time-of-week decoded [7].
sv_time_uncertainty : Any measurements will be
removed where ReceivedSvTimeUncertaintyNanos is greater than
the set value.
adr_valid : If true, measurements where
AccumulatedDeltaRangeState is not valid will be removed.
adr_uncertainty : Any measurements will be
removed where ReceivedSvTimeUncertaintyNanos is greater than
the set value.
Only keys present in the measurement_filters dictionary
will be used for the filter. For example if
``measurement_filters={``bias_valid : True}, then only
measurements will invalid FullBiasNanos will be filtered and no
other measurements will be filtered.
Parameters:
t_rx_secs (np.ndarray) – arrival time computed in AndroidRawGnss.postprocess().