Skip to content

preproc filtering

Guillaume W. Bres edited this page Nov 19, 2023 · 2 revisions

Filtering

Use the -P interface to focus on data you're interested in.

SV filter

Retain the vehicles you're interested in, using a CSV list of vehicles.

Example: retain 08, 09, 10 from GPS :

rinex-cli \
    -i \
    -P "G08,G09,G10" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

Example: retain any vehicles but 08, 09, 10 from GPS :

rinex-cli \
    -i -P "!=G08,G09,G10" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

SV filter with operand

The filter operand does work when specifiying SV identities. In this case, it is used to filter (in or out) the PRN you want for a given Constellation.

Example (1): exclude GPS vehicles below 08 (excluded)

rinex-cli \
    -i -P ">G08" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

Example (2): retain PRN above 08 for GPS, and below 10 (included) for GAL :

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz \
    -P ">G08" \
    -P "<=E10"

Constellation filters

Retain specific constellations: for example, retain GPS only with:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz \
    -P GPS

Use CSV to describe several constellations at once:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz \
    -P GPS,BDS

Inequality is also supported. For example: retain everything but Glonass

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz \
    -P !=GLO

SBAS is a special case. If you use simply "SBAS", you can retain or discard SBAS systems, whatever their actual constellation. For example we retain all GPS and any SBAS with this:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz -P GPS,SBAS

If you want to retain specific SBAS, you have to name them precisely, we support all of them (see Constellation module API). For example, retain GPS, EGNOS and SDCM with this:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz -P GPS,EGNOS,SDCM 

Note that the following teqc equivalent filters are also supported.

  • -G removes GPS (equivalent to -P !=GPS)
  • -C removes BDS
  • -E removes Galileo
  • -R removes Glonnass
  • -J removes QZSS
  • -S removes all SBAS vehicles

If you want to remove specific SBAS constellations, for example EGNOS, you have to use -P:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz -P !=EGNOS

Epoch filter

Epoch filter can be used to perform time binning, i.e redefining the time frame of your data.

Any valid Hifitime::Epoch string description is supported.

Since equality is implied, if you do this you're left with a single Epoch in your context:

rinex-cli \
    -i -P "2020-06-25T04:00:00 UTC" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

Use the inequality operand to retain anything but that very Epoch

rinex-cli \
    -i -P "!=2020-06-25T04:00:00 UTC" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

Time windowing

Stack two Epoch filters to define a time window :

rinex-cli \
    -P ">2020-06-12T08:00:00 UTC" \
    -P "<=2020-06-25T16:00:00 UTC" \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz

Observables: physics and signals

Any valid RINEX Observable code is accepted.
In RINEX, Observables are the combination of a physical observation (like temperature or carrier phase) on a specific signal.

For example, retain only phase observations on L1 and L2 with:

rinex-cli \
    --fp test_resources/CRNX/V3/ESBC00DNK_R_20201770000_01D_30S_MO.crx.gz \
    -P L1C,l2c

Navigation frames

Retain specific types of navigation frames with a dedicated filter.

Here we retain Ephemeris and ION messages only

rinex-cli \
    -i -P eph,ion \
    --fp test_resources/NAV/V4/KMS300DNK_R_20221591000_01H_MN.rnx.gz

Retain Legacy NAV messages only:

rinex-cli \
    -i -P lnav \
    --fp test_resources/NAV/V4/KMS300DNK_R_20221591000_01H_MN.rnx.gz

Retain Modern NAV messages only:

rinex-cli \
    -i -P ">lnav" \
    --fp test_resources/NAV/V4/KMS300DNK_R_20221591000_01H_MN.rnx.gz

Elevation mask

Applying an elevation mask via the Preprocessor only applies such condition to the Broadcast ephemeris currently.

Use the prefix "e" to specify an elevation mask in degrees:

rinex-cli \
    -P "e> 10.0" \
    --fp test_resources/NAV/V3/ESBC00DNK_R_20201770000.crx.gz

Define an elevation range by stacking two elevation masks

rinex-cli \
    --fp test_resources/NAV/V3/ESBC00DNK_R_20201770000.crx.gz \
    -P "e> 10.0" \
    -P "e <= 45"
Clone this wiki locally