From 76c19c7921b28668936a64a1aa3ce7016697816c Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Tue, 4 Aug 2026 15:01:13 +0200 Subject: [PATCH 01/19] - bia file parser --- .../precise_corrections/bia/bia_processing.py | 60 ++++++++++++++++++ .../bia/test/test_bia_processing.py | 38 +++++++++++ .../COD0MGXFIN_20220010000_01D_01D_OSB.BIA.gz | Bin 0 -> 59199 bytes 3 files changed, 98 insertions(+) create mode 100644 src/prx/precise_corrections/bia/bia_processing.py create mode 100644 src/prx/precise_corrections/bia/test/test_bia_processing.py create mode 100644 src/prx/rinex_nav/test/datasets/COD0MGXFIN_20220010000_01D_01D_OSB.BIA.gz diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py new file mode 100644 index 0000000..a56c810 --- /dev/null +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -0,0 +1,60 @@ +from pathlib import Path +import polars as pl +from prx import constants, converters + + +def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: + """ + Parse gzipped BIA file and returns a pl.DataFrame with columns: + - sat_id + - one column per obs identifier (e.g. "C1C", "L2X", etc), containing the bias value in meters + + Example: + ┌────────┬──────────┬──────────┬─────────┬───┬──────────┬──────────┬──────────┬──────────┐ + │ sat_id ┆ C1C ┆ C1W ┆ C2L ┆ … ┆ L2X ┆ L2W ┆ L5Q ┆ L5X │ + │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │ + │ str ┆ f64 ┆ f64 ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │ + ╞════════╪══════════╪══════════╪═════════╪═══╪══════════╪══════════╪══════════╪══════════╡ + │ G01 ┆ 9.2018 ┆ 10.5943 ┆ 16.1153 ┆ … ┆ 0.22928 ┆ 0.22928 ┆ null ┆ null │ + │ G02 ┆ -10.2757 ┆ -11.9688 ┆ null ┆ … ┆ 0.70426 ┆ 0.70426 ┆ null ┆ null │ + │ G03 ┆ 6.7032 ┆ 7.3863 ┆ 12.852 ┆ … ┆ 0.69414 ┆ 0.69414 ┆ null ┆ null │ + │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │ + └────────┴──────────┴──────────┴─────────┴───┴──────────┴──────────┴──────────┴──────────┘ + + """ + filepath_bia = converters.compressed_to_uncompressed(filepath_bia_gz) + with open(filepath_bia, "r") as f: + sat_id_list = [] + obs1_list = [] + val_list = [] + # find beginning of block BIAS/SOLUTION + for line in f: + if line.startswith("+BIAS/SOLUTION"): + break + + for line in f: + if line.startswith("-BIAS/SOLUTION"): # escape loop + break + if line.startswith("*BIAS"): # skip header + continue + bias_type = line[0:4].strip() + station = line[15:24].strip() + if (station == "") and ( + bias_type == "OSB" + ): # keep only OSB and satellite biases + unit = line[64:69].strip() + assert unit == "ns", f"Wrong unit in file. Expected 'ns', read '{unit}'" + sat_id = line[11:14].strip() + obs1 = line[25:29].strip() + estimated_value = ( + float(line[70:91]) + / constants.cNanoSecondsPerSecond + * constants.cGpsSpeedOfLight_mps + ) + sat_id_list.append(sat_id) + obs1_list.append(obs1) + val_list.append(estimated_value) + bia_df = pl.DataFrame( + {"sat_id": sat_id_list, "obs1": obs1_list, "val": val_list} + ).pivot(on="obs1", index="sat_id", values="val") + return bia_df diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py new file mode 100644 index 0000000..bfcc872 --- /dev/null +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -0,0 +1,38 @@ +import shutil +import polars as pl + +import pytest + +from prx import util, constants +import prx.precise_corrections.bia.bia_processing as bia + + +@pytest.fixture(scope="session") +def input_for_test(tmp_path_factory): + test_directory = tmp_path_factory.mktemp("test_inputs") + test_files = { + "bia": test_directory / "COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz", + } + for key, test_file_path in test_files.items(): + shutil.copy( + util.prx_src_directory().joinpath( + "test", "datasets", "TLSE_2023001", test_file_path.name + ), + test_file_path, + ) + assert test_file_path.exists() + yield test_files + shutil.rmtree(test_directory) + + +def test_bia_parsing(input_for_test): + bia_df = bia.parse_bia_file(input_for_test["bia"]) + # manual check in file + assert ( + bia_df.filter(pl.col("sat_id") == "G01").get_column("C1C").item() + == 9.2018 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps + ) + assert ( + bia_df.filter(pl.col("sat_id") == "G01").get_column("C1W").item() + == 10.5943 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps + ) diff --git a/src/prx/rinex_nav/test/datasets/COD0MGXFIN_20220010000_01D_01D_OSB.BIA.gz b/src/prx/rinex_nav/test/datasets/COD0MGXFIN_20220010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..9fa4cd3140ae5bb10af10e5df3d229661c826ac7 GIT binary patch literal 59199 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 literal 0 HcmV?d00001 From d9f0ffcc32190e646ddcba071efa0f00df85459a Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Thu, 6 Aug 2026 15:57:28 +0200 Subject: [PATCH 02/19] - change dataframe outline --- .../precise_corrections/bia/bia_processing.py | 37 +++++++++++-------- .../bia/test/test_bia_processing.py | 8 +++- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py index a56c810..1522fcf 100644 --- a/src/prx/precise_corrections/bia/bia_processing.py +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -5,21 +5,26 @@ def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: """ - Parse gzipped BIA file and returns a pl.DataFrame with columns: - - sat_id - - one column per obs identifier (e.g. "C1C", "L2X", etc), containing the bias value in meters + Parse gzipped BIA file and returns a pl.DataFrame with columns: + - sat_id: + - obs_id: rinex obs identifier + - sat_hw_bias_m: bias value in meters - Example: - ┌────────┬──────────┬──────────┬─────────┬───┬──────────┬──────────┬──────────┬──────────┐ - │ sat_id ┆ C1C ┆ C1W ┆ C2L ┆ … ┆ L2X ┆ L2W ┆ L5Q ┆ L5X │ - │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │ - │ str ┆ f64 ┆ f64 ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │ - ╞════════╪══════════╪══════════╪═════════╪═══╪══════════╪══════════╪══════════╪══════════╡ - │ G01 ┆ 9.2018 ┆ 10.5943 ┆ 16.1153 ┆ … ┆ 0.22928 ┆ 0.22928 ┆ null ┆ null │ - │ G02 ┆ -10.2757 ┆ -11.9688 ┆ null ┆ … ┆ 0.70426 ┆ 0.70426 ┆ null ┆ null │ - │ G03 ┆ 6.7032 ┆ 7.3863 ┆ 12.852 ┆ … ┆ 0.69414 ┆ 0.69414 ┆ null ┆ null │ - │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │ - └────────┴──────────┴──────────┴─────────┴───┴──────────┴──────────┴──────────┴──────────┘ + Example: + ┌────────┬────────┬───────────────┐ + │ sat_id ┆ obs_id ┆ sat_hw_bias_m │ + │ --- ┆ --- ┆ --- │ + │ str ┆ str ┆ f64 │ + ╞════════╪════════╪═══════════════╡ + │ G01 ┆ C1C ┆ 2.75863 │ + │ G01 ┆ C1W ┆ 3.176091 │ + │ G01 ┆ C2L ┆ 4.831245 │ + │ … ┆ … ┆ … │ + │ E36 ┆ L1C ┆ 0.074504 │ + │ E36 ┆ L1X ┆ 0.074504 │ + │ E36 ┆ L5Q ┆ 0.136439 │ + │ E36 ┆ L5X ┆ 0.136439 │ + └────────┴────────┴───────────────┘ """ filepath_bia = converters.compressed_to_uncompressed(filepath_bia_gz) @@ -55,6 +60,6 @@ def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: obs1_list.append(obs1) val_list.append(estimated_value) bia_df = pl.DataFrame( - {"sat_id": sat_id_list, "obs1": obs1_list, "val": val_list} - ).pivot(on="obs1", index="sat_id", values="val") + {"sat_id": sat_id_list, "obs_id": obs1_list, "sat_hw_bias_m": val_list} + ) return bia_df diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index bfcc872..88fa73d 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -29,10 +29,14 @@ def test_bia_parsing(input_for_test): bia_df = bia.parse_bia_file(input_for_test["bia"]) # manual check in file assert ( - bia_df.filter(pl.col("sat_id") == "G01").get_column("C1C").item() + bia_df.filter((pl.col("sat_id") == "G01") & (pl.col("obs_id") == "C1C")).item( + 0, "sat_hw_bias_m" + ) == 9.2018 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) assert ( - bia_df.filter(pl.col("sat_id") == "G01").get_column("C1W").item() + bia_df.filter((pl.col("sat_id") == "G01") & (pl.col("obs_id") == "C1W")).item( + 0, "sat_hw_bias_m" + ) == 10.5943 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) From af6c38bf7ad07c3d12463ee9c87ff949ddf2459a Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Fri, 7 Aug 2026 12:38:43 +0200 Subject: [PATCH 03/19] - bia file download - local bia file database management --- .../bia/bia_file_discovery.py | 99 ++++++++++++++++++ .../bia/test/test_bia_discovery.py | 64 +++++++++++ .../COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz | Bin 0 -> 117520 bytes 3 files changed, 163 insertions(+) create mode 100644 src/prx/precise_corrections/bia/bia_file_discovery.py create mode 100644 src/prx/precise_corrections/bia/test/test_bia_discovery.py create mode 100644 src/prx/test/datasets/TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz diff --git a/src/prx/precise_corrections/bia/bia_file_discovery.py b/src/prx/precise_corrections/bia/bia_file_discovery.py new file mode 100644 index 0000000..88f5157 --- /dev/null +++ b/src/prx/precise_corrections/bia/bia_file_discovery.py @@ -0,0 +1,99 @@ +import ftplib +import logging +import urllib +from pathlib import Path + +import pandas as pd + +from prx import util + +log = logging.getLogger(__name__) + + +def bia_file_database_folder(): + """ + Returns the path to the folder where ATX database files are stored. + """ + db_folder = util.prx_src_directory() / "precise_corrections/bia/bia_files" + db_folder.mkdir(exist_ok=True, parents=True) + return db_folder + + +def build_bia_file_name(year: int, doy: int, analysis_center: str): + return f"{analysis_center}0OPSFIN_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" + + +def bia_file_folder(year: int, doy: int): + folder = bia_file_database_folder() / f"{year}/{doy:03d}" + folder.mkdir(parents=True, exist_ok=True) + return folder + + +def get_local_bia_file(year: int, doy: int, analysis_center: str) -> Path | None: + local_file = bia_file_folder(year, doy) / build_bia_file_name( + year, doy, analysis_center + ) + if local_file.exists(): + return local_file + else: + return None + + +def check_online_availability(year: int, doy: int, analysis_center: str) -> Path | None: + """ + Need to keep the same inputs as try_downloading_bia_ftp, in order to be able to use `unittest.mock.patch` in tests + """ + server = "gssc.esa.int" + gps_week, _ = util.timestamp_to_gps_week_and_dow( + pd.Timestamp(year=year, month=1, day=1) + pd.Timedelta(days=doy - 1) + ) + remote_folder = f"gnss/products/{gps_week}" + file = build_bia_file_name(year, doy, analysis_center) + ftp = ftplib.FTP(server) + ftp.login() + ftp.cwd(remote_folder) + try: + ftp.size(file) + return bia_file_folder(year, doy) / build_bia_file_name( + year, doy, analysis_center + ) + except ftplib.error_perm: + log.warning(f"{file} not available on {server}") + return None + + +def try_downloading_bia_ftp(year: int, doy: int, analysis_center: str) -> Path | None: + server = "gssc.esa.int" + file = build_bia_file_name(year, doy, analysis_center) + gps_week, _ = util.timestamp_to_gps_week_and_dow( + pd.Timestamp(year=year, month=1, day=1) + pd.Timedelta(days=doy - 1) + ) + remote_folder = f"gnss/products/{gps_week}" + ftp_file = f"ftp://{server}/{remote_folder}/{file}" + local_file = bia_file_folder(year, doy) / build_bia_file_name( + year, doy, analysis_center + ) + urllib.request.urlretrieve(ftp_file, local_file) + if not local_file.exists(): + log.warning(f"Could not download {ftp_file}") + return None + log.info(f"Downloaded bia file: {ftp_file}") + return local_file + + +def discover_or_download_bia_file(sp3_file_path: Path) -> Path | None: + log.info(f"Finding bia files for {sp3_file_path} ...") + year = int(sp3_file_path.name[11:15]) + doy = int(sp3_file_path.stem[15:18]) + analysis_center = sp3_file_path.name[0:3] + + local_file = get_local_bia_file(year, doy, analysis_center) + if local_file: + log.info(f"Found local bia file: {local_file}") + return local_file + + downloaded_file = try_downloading_bia_ftp(year, doy, analysis_center) + if downloaded_file: + return downloaded_file + + return None diff --git a/src/prx/precise_corrections/bia/test/test_bia_discovery.py b/src/prx/precise_corrections/bia/test/test_bia_discovery.py new file mode 100644 index 0000000..4be78d0 --- /dev/null +++ b/src/prx/precise_corrections/bia/test/test_bia_discovery.py @@ -0,0 +1,64 @@ +import os +import shutil +from pathlib import Path + +import pandas as pd +import pytest + +from prx import util +from prx.precise_corrections.sp3.sp3_file_discovery import sp3_file_folder + +from prx.precise_corrections.bia import bia_file_discovery as discovery + + +@pytest.fixture +def set_up_test(tmp_path_factory): + test_sp3_file = ( + sp3_file_folder(pd.Timestamp("2023-01-01")) + / "COD0MGXFIN_20230010000_01D_05M_ORB.SP3.gz" + ) + shutil.copy( + util.prx_src_directory().joinpath( + "test", + "datasets", + "TLSE_2023001", + "COD0MGXFIN_20230010000_01D_05M_ORB.SP3.gz", + ), + test_sp3_file, + ) + assert test_sp3_file.exists() + + yield { + "year": 2023, + "doy": 1, + "analysis_center": "COD", + "sp3": test_sp3_file, + } + + +def test_bia_file_online_availability(set_up_test): + year = set_up_test["year"] + doy = set_up_test["doy"] + ac = set_up_test["analysis_center"] + assert discovery.check_online_availability( + year, doy, ac + ) == discovery.bia_file_folder(year, doy) / discovery.build_bia_file_name( + year, doy, ac + ) + + +def test_download_bia_file(): + # delete local file to trigger download + path_local = discovery.bia_file_folder(2023, 1) / discovery.build_bia_file_name( + 2023, 1, "COD" + ) + path_local.unlink(missing_ok=True) + file = discovery.discover_or_download_bia_file( + Path("COD0MGXFIN_20230010000_01D_05M_ORB.SP3.gz") + ) + assert file.exists() + + +def test_find_local_bia_file(set_up_test): + file = discovery.discover_or_download_bia_file(set_up_test["sp3"]) + assert file.exists() diff --git a/src/prx/test/datasets/TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz b/src/prx/test/datasets/TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..c36579a553e7b84d6ddfc2dd1fcf73a070476d00 GIT binary patch literal 117520 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 $wA>loEhskx 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
OSV z^9H%V5OmXKasPE2hTAvMTgpVvT1}yT*K5CSog7*Hb*l#ZN0no%+rlXIp5Q7~ml5(0 z1lE{0!#IzNw*=|s^qfue6Yf`P2X8S{j>)>8?tk3%gUBi~KFr#G{VSEeUS`jK_aP+r zPL;}bDSq+Zg~E||%l~y{xy8jH>1&U!4Ers!r(NDNMVwP3U6FesOZ?m@&b#Dq*QE62 z;u=Z)|9@#oT`~MDsOpt1|LgbE=mZ!nKPdFV^N?Nbj?v1Rt;0MD<_?b#H^X4^#kQHb z9JvcZ?<4) z;NA1|R;e;D6nh7S+wakyseYPJd^Sy#9iQrguV@!k&C|3!^+%n zfs-!8{2Qp1)vm9^rO8@w>qH6G85r))k0pPB=%d6;>=7#Ip*_iMvxYLPU1v|^x}6T~ zM;Gb^>ZtI1xYl?+@9CWZsUfSAI4gsz6g2lF))??Ybwk+RNUsCu14jCKE4=n(#;4Y( zaVvx>x)pLfpdPo11pkQ4Bd*y2iV<0!^ejAq%*1)G%&~4T8C&Of9yy?K)){l^TmmTZ zM5V+u(e?Yeea-jmbbvSSm@IensW#FbpR~>8+#-|gIWe@l^o=cipEBzAs9GO4_NpA) zqcIF>9qxp+n~Q0{Nxl~T;k|MSUM8m7K!Z&bV3mO>yeGIcV0(%C2w4KxN zc;zBz&lx_`@EF>c(scy!4`M!^D`}$n=oVRhvHC_N{OoT`h{AYyB-e;Nck`15hG}3g zhG}FsMuc^nE{18_tzv)7Z}y9Nj?w4ouCt3>7$g&q#2h_$I9%`|ihX+++o$NjD3OKDv)+ zYsNig|JW6N)-7`E4iPscWJ`d~NB95t_hcKcp1f{b`uVU~kysJFZnwoCsSRlgYucmT zqS*1tCOT@m+4*joDt&)ooOT}=Zs%ib^nd;RfoDBN`(>Hjo2seSP2O)4^m2G_xbE$0 zxp`FA`F+BzIq`gr0y9#d3ie5sjHt`}^rT%R?=$m4=m)-M-YWL`5Ao3yi>~&(_gi1= z6#jB%R_KK;1$JxuwK1=ii#=y}IG)pWR!qAmbe!pPh4ZNHVyi}aBm{DYlqqj#Vj{0G z6Xlvks8=W!1Ftc(W(yJa~PC;GpYxL&LQd5yLHl z>!1pFmi9wHb(*Nv(%1@sR_F3=%zkC^m%FipA5lEc^_ZpI;=kT2E@)2rS+-)R(RFHk zZMn>I1kf6OlG-N4Ffm4e4ehK8-nxokko2fU@c<8TsqVCCcQ)>$RG@*||GIw#y; Date: Fri, 7 Aug 2026 14:04:17 +0200 Subject: [PATCH 04/19] - retrieve satellite code and carrier biases during the main processing - add test on iono-free satellite code biases --- src/prx/main.py | 74 +++++++++++++------ .../bia/test/test_bia_processing.py | 33 +++++++++ src/prx/test/test_main.py | 28 +++---- 3 files changed, 94 insertions(+), 41 deletions(-) diff --git a/src/prx/main.py b/src/prx/main.py index 28e3a3d..103c200 100644 --- a/src/prx/main.py +++ b/src/prx/main.py @@ -11,6 +11,7 @@ import prx.util as util from prx import atmospheric_corrections as atmo from prx.constants import carrier_frequencies_hz, cDegPerRad +from prx.precise_corrections.bia import bia_file_discovery, bia_processing from prx.rinex_obs.parser import parse_rinex_obs_file, get_glonass_slot from prx.util import is_rinex_3_obs_file, is_rinex_3_nav_file, configure_logging from prx.rinex_nav import nav_file_discovery @@ -435,11 +436,12 @@ def build_records_levels_12( def build_records_level_3( - rinex_3_obs_file, - sp3_orbit_files, - atx_file, - approximate_receiver_ecef_position_m, - model_tropo, + rinex_3_obs_file: Path, + sp3_orbit_files: list[Path], + atx_file: Path, + bia_files: list[Path], + approximate_receiver_ecef_position_m: list, + model_tropo: str, ): """ Creates a flat_obs dataframe including columns for prx processing level 3. @@ -528,12 +530,13 @@ def build_records_level_3( }, ) - # Compute broadcast position, velocity, clock offset, clock offset rate and TGDs + # Compute broadcast position, velocity, clock offset, clock offset rate and hardware biases sat_states_per_day = [] - for file in sp3_orbit_files: + for file_sp3, file_bia in zip(sp3_orbit_files, bia_files): # get year and doy from sp3 orb filename - year = int(file.name[11:15]) - doy = int(file.name[15:18]) + year = int(file_sp3.name[11:15]) + doy = int(file_sp3.name[15:18]) + # create query for single day day_query = query.loc[ ( query.query_time_isagpst @@ -547,17 +550,38 @@ def build_records_level_3( if day_query.empty: continue + # compute satellite position, velocity and clock log.info(f"Computing satellite states for {year}-{doy:03d}") - sat_states_per_day.append( - sp3_evaluate.compute( - file, - day_query, - atx_file, - ).assign( # TODO: add hw satellite biases - sat_code_bias_m=np.nan, - sat_carrier_bias_m=np.nan, + sat_states_single_day = sp3_evaluate.compute(file_sp3, day_query, atx_file) + # add satellite hardware biases + bia_df = bia_processing.parse_bia_file(file_bia).to_pandas() + sat_code_bias = ( + sat_states_single_day.merge( + bia_df, + left_on=["sv", "signal"], + right_on=["sat_id", "obs_id"], + how="left", ) + .drop(columns=["sat_id", "obs_id"])["sat_hw_bias_m"] + .to_numpy() ) + sat_carrier_bias = ( + sat_states_single_day.assign(signal=lambda d: "L" + d["signal"].str[1:]) + .merge( + bia_df, + left_on=["sv", "signal"], + right_on=["sat_id", "obs_id"], + how="left", + ) + .drop(columns=["sat_id", "obs_id"])["sat_hw_bias_m"] + .to_numpy() + ) + sat_states_single_day = sat_states_single_day.assign( + sat_code_bias_m=sat_code_bias, + sat_carrier_bias_m=sat_carrier_bias, + ) + # collect satellite states per day + sat_states_per_day.append(sat_states_single_day) sat_states = pd.concat(sat_states_per_day) sat_states = sat_states.rename( @@ -567,12 +591,11 @@ def build_records_level_3( "query_time_isagpst": "time_of_emission_isagpst", }, ) - ( - sat_states["elevation_rad"], - sat_states["azimuth_rad"], - ) = util.compute_satellite_elevation_and_azimuth( - sat_states[["sat_pos_x_m", "sat_pos_y_m", "sat_pos_z_m"]].to_numpy(), - approximate_receiver_ecef_position_m, + (sat_states["elevation_rad"], sat_states["azimuth_rad"]) = ( + util.compute_satellite_elevation_and_azimuth( + sat_states[["sat_pos_x_m", "sat_pos_y_m", "sat_pos_z_m"]].to_numpy(), + approximate_receiver_ecef_position_m, + ) ) # Compute anything else that is satellite-specific @@ -693,6 +716,10 @@ def process( aux_files["atx"] = antex_file_discovery.discover_or_download_atx_file( rinex_3_obs_file ) + aux_files["bia"] = [ + bia_file_discovery.discover_or_download_bia_file(sp3_file) + for sp3_file in aux_files["sp3_orb"] + ] # define metadata metadata = build_metadata({"obs_file": rinex_3_obs_file, "nav_file": []}) @@ -704,6 +731,7 @@ def process( rinex_3_obs_file, aux_files["sp3_orb"], aux_files["atx"], + aux_files["bia"], metadata["approximate_receiver_ecef_position_m"], model_tropo, ) diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index 88fa73d..0680758 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -40,3 +40,36 @@ def test_bia_parsing(input_for_test): ) == 10.5943 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) + + +def test_iono_free_code_bias(input_for_test): + """ + The iono-free combination of the satellite hardware code biases should be close to 0 + (or close to a constant across all satellites from the same constellation) + """ + threshold = 1e-4 + bia_df = bia.parse_bia_file(input_for_test["bia"]).pivot( + on="obs_id", index="sat_id", values="sat_hw_bias_m" + ) + # Iono-free combination of COD for GPS uses C1W and C2W + f1 = constants.carrier_frequencies_hz()["G"]["L1"][1] + f2 = constants.carrier_frequencies_hz()["G"]["L2"][1] + bia_if_gps = bia_df.filter(pl.col("sat_id").str.starts_with("G")).select( + pl.col("sat_id"), + ((f1**2 * pl.col("C1W") - f2**2 * pl.col("C2W")) / (f1**2 - f2**2)).alias( + "if_code_bias" + ), + ) + print(f"Maximum iono-free code bias for GPS: {bia_if_gps['if_code_bias'].max()} m") + assert (bia_if_gps["if_code_bias"] < threshold).all() + # Iono-free combination of COD for Galileo uses C1W and C2W + f1 = constants.carrier_frequencies_hz()["E"]["L1"][1] + f2 = constants.carrier_frequencies_hz()["E"]["L5"][1] + bia_if_gal = bia_df.filter(pl.col("sat_id").str.starts_with("E")).select( + pl.col("sat_id"), + ((f1**2 * pl.col("C1C") - f2**2 * pl.col("C5Q")) / (f1**2 - f2**2)).alias( + "if_code_bias" + ), + ) + print(f"Maximum iono-free code bias for GAL: {bia_if_gal['if_code_bias'].max()} m") + assert (bia_if_gal["if_code_bias"] < threshold).all() diff --git a/src/prx/test/test_main.py b/src/prx/test/test_main.py index 55e5d30..1ae98e2 100644 --- a/src/prx/test/test_main.py +++ b/src/prx/test/test_main.py @@ -12,6 +12,7 @@ from prx.main import write_prx_file from prx.precise_corrections.antex.antex_file_discovery import atx_file_database_folder from prx.precise_corrections.sp3.sp3_file_discovery import sp3_file_database_folder +from prx.precise_corrections.bia.bia_file_discovery import bia_file_database_folder from prx.rinex_nav import nav_file_discovery log = logging.getLogger(__name__) @@ -38,10 +39,7 @@ def input_for_test_tlse(tmp_path_factory): ) rnx_nav = datasets_directory / "TLSE_2023001/BRDC00IGS_R_20230010000_01D_MN.rnx.gz" for file in [compressed_crx, rnx_nav]: - shutil.copy( - file, - test_directory / file.name, - ) + shutil.copy(file, test_directory / file.name) # copy and uncompress precise correction files to local database os.makedirs(sp3_file_database_folder() / "2023/001/", exist_ok=True) @@ -66,6 +64,11 @@ def input_for_test_tlse(tmp_path_factory): atx_local = shutil.copy(atx, atx_file_database_folder() / atx.name) assert atx_local.exists() + os.makedirs(bia_file_database_folder() / "2023/001/", exist_ok=True) + bia = datasets_directory / "TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz" + bia_local = shutil.copy(bia, bia_file_database_folder() / "2023/001" / bia.name) + assert bia_local.exists() + yield test_directory / compressed_crx.name shutil.rmtree(test_directory) @@ -89,10 +92,7 @@ def input_for_test_tlse_2024(tmp_path_factory): datasets_directory / "TLSE00FRA_R_2024001/BRDC00IGS_R_20240010000_01D_MN.rnx.gz" ) for file in [compressed_compact_rinex_file, ephemerides_file]: - shutil.copy( - file, - test_directory / file.name, - ) + shutil.copy(file, test_directory / file.name) yield test_directory / compressed_compact_rinex_file.name shutil.rmtree(test_directory) @@ -269,11 +269,7 @@ def test_spp_lsq_nist(input_for_test_nist): == df.time_of_reception_in_receiver_time.min() ] for constellations_to_use in [ - ( - "G", - "E", - "C", - ), + ("G", "E", "C"), ("G", "S"), ("G",), ("E",), @@ -305,11 +301,7 @@ def test_spp_lsq_tlse(input_for_test_tlse): & (df.sat_elevation_deg > 10) ] for constellations_to_use in [ - ( - "G", - "E", - "C", - ), + ("G", "E", "C"), ("G", "S"), ("G",), ("E",), From e70a19d567169d4065ad35b6cf6b518b0a6c8c21 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Fri, 7 Aug 2026 14:31:53 +0200 Subject: [PATCH 05/19] - change bia test file to use COD MGX file --- .../bia/bia_file_discovery.py | 2 +- .../bia/test/test_bia_processing.py | 39 ++---------------- .../COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz | Bin 0 -> 60443 bytes .../COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz | Bin 117520 -> 0 bytes 4 files changed, 4 insertions(+), 37 deletions(-) create mode 100644 src/prx/test/datasets/TLSE_2023001/COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz delete mode 100644 src/prx/test/datasets/TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz diff --git a/src/prx/precise_corrections/bia/bia_file_discovery.py b/src/prx/precise_corrections/bia/bia_file_discovery.py index 88f5157..28fc2a5 100644 --- a/src/prx/precise_corrections/bia/bia_file_discovery.py +++ b/src/prx/precise_corrections/bia/bia_file_discovery.py @@ -20,7 +20,7 @@ def bia_file_database_folder(): def build_bia_file_name(year: int, doy: int, analysis_center: str): - return f"{analysis_center}0OPSFIN_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" + return f"{analysis_center}0MGXFIN_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" def bia_file_folder(year: int, doy: int): diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index 0680758..02afbd0 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -11,7 +11,7 @@ def input_for_test(tmp_path_factory): test_directory = tmp_path_factory.mktemp("test_inputs") test_files = { - "bia": test_directory / "COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz", + "bia": test_directory / "COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz", } for key, test_file_path in test_files.items(): shutil.copy( @@ -32,44 +32,11 @@ def test_bia_parsing(input_for_test): bia_df.filter((pl.col("sat_id") == "G01") & (pl.col("obs_id") == "C1C")).item( 0, "sat_hw_bias_m" ) - == 9.2018 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps + == -1.4198 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) assert ( bia_df.filter((pl.col("sat_id") == "G01") & (pl.col("obs_id") == "C1W")).item( 0, "sat_hw_bias_m" ) - == 10.5943 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps + == -0.0000 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) - - -def test_iono_free_code_bias(input_for_test): - """ - The iono-free combination of the satellite hardware code biases should be close to 0 - (or close to a constant across all satellites from the same constellation) - """ - threshold = 1e-4 - bia_df = bia.parse_bia_file(input_for_test["bia"]).pivot( - on="obs_id", index="sat_id", values="sat_hw_bias_m" - ) - # Iono-free combination of COD for GPS uses C1W and C2W - f1 = constants.carrier_frequencies_hz()["G"]["L1"][1] - f2 = constants.carrier_frequencies_hz()["G"]["L2"][1] - bia_if_gps = bia_df.filter(pl.col("sat_id").str.starts_with("G")).select( - pl.col("sat_id"), - ((f1**2 * pl.col("C1W") - f2**2 * pl.col("C2W")) / (f1**2 - f2**2)).alias( - "if_code_bias" - ), - ) - print(f"Maximum iono-free code bias for GPS: {bia_if_gps['if_code_bias'].max()} m") - assert (bia_if_gps["if_code_bias"] < threshold).all() - # Iono-free combination of COD for Galileo uses C1W and C2W - f1 = constants.carrier_frequencies_hz()["E"]["L1"][1] - f2 = constants.carrier_frequencies_hz()["E"]["L5"][1] - bia_if_gal = bia_df.filter(pl.col("sat_id").str.starts_with("E")).select( - pl.col("sat_id"), - ((f1**2 * pl.col("C1C") - f2**2 * pl.col("C5Q")) / (f1**2 - f2**2)).alias( - "if_code_bias" - ), - ) - print(f"Maximum iono-free code bias for GAL: {bia_if_gal['if_code_bias'].max()} m") - assert (bia_if_gal["if_code_bias"] < threshold).all() diff --git a/src/prx/test/datasets/TLSE_2023001/COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz b/src/prx/test/datasets/TLSE_2023001/COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..29a23f9bdfd48bec1c87f9b7ee8e96cc2496d4c6 GIT binary patch literal 60443 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 z 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

EE1(650Lt027zDFvZ}6?g3#(!IJmYyG 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 $wA>loEhskx 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
OSV z^9H%V5OmXKasPE2hTAvMTgpVvT1}yT*K5CSog7*Hb*l#ZN0no%+rlXIp5Q7~ml5(0 z1lE{0!#IzNw*=|s^qfue6Yf`P2X8S{j>)>8?tk3%gUBi~KFr#G{VSEeUS`jK_aP+r zPL;}bDSq+Zg~E||%l~y{xy8jH>1&U!4Ers!r(NDNMVwP3U6FesOZ?m@&b#Dq*QE62 z;u=Z)|9@#oT`~MDsOpt1|LgbE=mZ!nKPdFV^N?Nbj?v1Rt;0MD<_?b#H^X4^#kQHb z9JvcZ?<4) z;NA1|R;e;D6nh7S+wakyseYPJd^Sy#9iQrguV@!k&C|3!^+%n zfs-!8{2Qp1)vm9^rO8@w>qH6G85r))k0pPB=%d6;>=7#Ip*_iMvxYLPU1v|^x}6T~ zM;Gb^>ZtI1xYl?+@9CWZsUfSAI4gsz6g2lF))??Ybwk+RNUsCu14jCKE4=n(#;4Y( zaVvx>x)pLfpdPo11pkQ4Bd*y2iV<0!^ejAq%*1)G%&~4T8C&Of9yy?K)){l^TmmTZ zM5V+u(e?Yeea-jmbbvSSm@IensW#FbpR~>8+#-|gIWe@l^o=cipEBzAs9GO4_NpA) zqcIF>9qxp+n~Q0{Nxl~T;k|MSUM8m7K!Z&bV3mO>yeGIcV0(%C2w4KxN zc;zBz&lx_`@EF>c(scy!4`M!^D`}$n=oVRhvHC_N{OoT`h{AYyB-e;Nck`15hG}3g zhG}FsMuc^nE{18_tzv)7Z}y9Nj?w4ouCt3>7$g&q#2h_$I9%`|ihX+++o$NjD3OKDv)+ zYsNig|JW6N)-7`E4iPscWJ`d~NB95t_hcKcp1f{b`uVU~kysJFZnwoCsSRlgYucmT zqS*1tCOT@m+4*joDt&)ooOT}=Zs%ib^nd;RfoDBN`(>Hjo2seSP2O)4^m2G_xbE$0 zxp`FA`F+BzIq`gr0y9#d3ie5sjHt`}^rT%R?=$m4=m)-M-YWL`5Ao3yi>~&(_gi1= z6#jB%R_KK;1$JxuwK1=ii#=y}IG)pWR!qAmbe!pPh4ZNHVyi}aBm{DYlqqj#Vj{0G z6Xlvks8=W!1Ftc(W(yJa~PC;GpYxL&LQd5yLHl z>!1pFmi9wHb(*Nv(%1@sR_F3=%zkC^m%FipA5lEc^_ZpI;=kT2E@)2rS+-)R(RFHk zZMn>I1kf6OlG-N4Ffm4e4ehK8-nxokko2fU@c<8TsqVCCcQ)>$RG@*||GIw#y; Date: Fri, 7 Aug 2026 16:03:02 +0200 Subject: [PATCH 06/19] - add caching --- .../precise_corrections/bia/bia_processing.py | 80 ++++++++++--------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py index 1522fcf..5df44e8 100644 --- a/src/prx/precise_corrections/bia/bia_processing.py +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -1,6 +1,6 @@ from pathlib import Path import polars as pl -from prx import constants, converters +from prx import constants, converters, util def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: @@ -27,39 +27,47 @@ def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: └────────┴────────┴───────────────┘ """ - filepath_bia = converters.compressed_to_uncompressed(filepath_bia_gz) - with open(filepath_bia, "r") as f: - sat_id_list = [] - obs1_list = [] - val_list = [] - # find beginning of block BIAS/SOLUTION - for line in f: - if line.startswith("+BIAS/SOLUTION"): - break - for line in f: - if line.startswith("-BIAS/SOLUTION"): # escape loop - break - if line.startswith("*BIAS"): # skip header - continue - bias_type = line[0:4].strip() - station = line[15:24].strip() - if (station == "") and ( - bias_type == "OSB" - ): # keep only OSB and satellite biases - unit = line[64:69].strip() - assert unit == "ns", f"Wrong unit in file. Expected 'ns', read '{unit}'" - sat_id = line[11:14].strip() - obs1 = line[25:29].strip() - estimated_value = ( - float(line[70:91]) - / constants.cNanoSecondsPerSecond - * constants.cGpsSpeedOfLight_mps - ) - sat_id_list.append(sat_id) - obs1_list.append(obs1) - val_list.append(estimated_value) - bia_df = pl.DataFrame( - {"sat_id": sat_id_list, "obs_id": obs1_list, "sat_hw_bias_m": val_list} - ) - return bia_df + @util.disk_cache.cache(ignore=["filepath_bia_gz"]) + def cached_load(filepath_bia_gz: Path, file_hash: str): + filepath_bia = converters.compressed_to_uncompressed(filepath_bia_gz) + with open(filepath_bia, "r") as f: + sat_id_list = [] + obs1_list = [] + val_list = [] + # find beginning of block BIAS/SOLUTION + for line in f: + if line.startswith("+BIAS/SOLUTION"): + break + + for line in f: + if line.startswith("-BIAS/SOLUTION"): # escape loop + break + if line.startswith("*BIAS"): # skip header + continue + bias_type = line[0:4].strip() + station = line[15:24].strip() + if (station == "") and ( + bias_type == "OSB" + ): # keep only OSB and satellite biases + unit = line[64:69].strip() + assert unit == "ns", ( + f"Wrong unit in file. Expected 'ns', read '{unit}'" + ) + sat_id = line[11:14].strip() + obs1 = line[25:29].strip() + estimated_value = ( + float(line[70:91]) + / constants.cNanoSecondsPerSecond + * constants.cGpsSpeedOfLight_mps + ) + sat_id_list.append(sat_id) + obs1_list.append(obs1) + val_list.append(estimated_value) + bia_df = pl.DataFrame( + {"sat_id": sat_id_list, "obs_id": obs1_list, "sat_hw_bias_m": val_list} + ) + return bia_df + + file_content_hash = util.hash_of_file_content(filepath_bia_gz) + return cached_load(filepath_bia_gz, file_content_hash) From aa90bb368fb5eec098abdbe6134360a5f0e057af Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Fri, 7 Aug 2026 17:06:41 +0200 Subject: [PATCH 07/19] - re-add test on iono-free code biases --- .../bia/test/test_bia_processing.py | 35 +++++++++++++++++++ src/prx/test/test_main.py | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index 02afbd0..8ed3804 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -40,3 +40,38 @@ def test_bia_parsing(input_for_test): ) == -0.0000 / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) + + +def test_iono_free_code_bias(input_for_test): + """ + The iono-free combination of the satellite hardware code biases should be close to 0 + (or close to a constant across all satellites from the same constellation) + + TODO: not relevant for COD (biases are equal to 0), but maybe for different ACs + """ + threshold = 1e-4 + bia_df = bia.parse_bia_file(input_for_test["bia"]).pivot( + on="obs_id", index="sat_id", values="sat_hw_bias_m" + ) + # Iono-free combination of COD for GPS uses C1W and C2W + f1 = constants.carrier_frequencies_hz()["G"]["L1"][1] + f2 = constants.carrier_frequencies_hz()["G"]["L2"][1] + bia_if_gps = bia_df.filter(pl.col("sat_id").str.starts_with("G")).select( + pl.col("sat_id"), + ((f1**2 * pl.col("C1W") - f2**2 * pl.col("C2W")) / (f1**2 - f2**2)).alias( + "if_code_bias" + ), + ) + print(f"Maximum iono-free code bias for GPS: {bia_if_gps['if_code_bias'].max()} m") + assert (bia_if_gps["if_code_bias"] < threshold).all() + # Iono-free combination of COD for Galileo uses C1W and C2W + f1 = constants.carrier_frequencies_hz()["E"]["L1"][1] + f2 = constants.carrier_frequencies_hz()["E"]["L5"][1] + bia_if_gal = bia_df.filter(pl.col("sat_id").str.starts_with("E")).select( + pl.col("sat_id"), + ((f1**2 * pl.col("C1C") - f2**2 * pl.col("C5Q")) / (f1**2 - f2**2)).alias( + "if_code_bias" + ), + ) + print(f"Maximum iono-free code bias for GAL: {bia_if_gal['if_code_bias'].max()} m") + assert (bia_if_gal["if_code_bias"] < threshold).all() diff --git a/src/prx/test/test_main.py b/src/prx/test/test_main.py index 1ae98e2..f52ba6a 100644 --- a/src/prx/test/test_main.py +++ b/src/prx/test/test_main.py @@ -367,7 +367,7 @@ def test_spp_lsq_tlse_single_freq(input_for_test_tlse): assert np.max(np.abs(velocity_offset)) < 3e-2 -def test_spp_lsq_tlse_with_precise_corrections(input_for_test_tlse): +def test_spp_lsq_tlse_iono_free_with_precise_corrections(input_for_test_tlse): """ Use iono-free combinations considered by IGS conventions (CODE Analysis Center): | Constellation | Frequency pair | From 3e751fe57773729cad95270f2b8a2310262b4dbb Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Fri, 7 Aug 2026 17:10:54 +0200 Subject: [PATCH 08/19] - ruff --- src/prx/precise_corrections/bia/test/test_bia_discovery.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/prx/precise_corrections/bia/test/test_bia_discovery.py b/src/prx/precise_corrections/bia/test/test_bia_discovery.py index 4be78d0..d272d35 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_discovery.py +++ b/src/prx/precise_corrections/bia/test/test_bia_discovery.py @@ -1,4 +1,3 @@ -import os import shutil from pathlib import Path From 86a2aa96a7b5fa05c4012ec1a3780ce02e16087c Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Fri, 7 Aug 2026 17:54:29 +0200 Subject: [PATCH 09/19] - change reference to bia file --- src/prx/test/test_main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/prx/test/test_main.py b/src/prx/test/test_main.py index f52ba6a..30d58b5 100644 --- a/src/prx/test/test_main.py +++ b/src/prx/test/test_main.py @@ -65,7 +65,7 @@ def input_for_test_tlse(tmp_path_factory): assert atx_local.exists() os.makedirs(bia_file_database_folder() / "2023/001/", exist_ok=True) - bia = datasets_directory / "TLSE_2023001/COD0OPSFIN_20230010000_01D_01D_OSB.BIA.gz" + bia = datasets_directory / "TLSE_2023001/COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz" bia_local = shutil.copy(bia, bia_file_database_folder() / "2023/001" / bia.name) assert bia_local.exists() From 47331025592f57601b7eeefffa9c589d722db038 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Mon, 10 Aug 2026 09:31:45 +0200 Subject: [PATCH 10/19] - specify encoding of bia file, to avoid bug on Linux --- src/prx/precise_corrections/bia/bia_processing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py index 5df44e8..6e332bf 100644 --- a/src/prx/precise_corrections/bia/bia_processing.py +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -31,7 +31,7 @@ def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: @util.disk_cache.cache(ignore=["filepath_bia_gz"]) def cached_load(filepath_bia_gz: Path, file_hash: str): filepath_bia = converters.compressed_to_uncompressed(filepath_bia_gz) - with open(filepath_bia, "r") as f: + with open(filepath_bia, "r", encoding="cp1250") as f: sat_id_list = [] obs1_list = [] val_list = [] From fff7fb2be7b98b67cc08139702b87dfda62109f6 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Mon, 10 Aug 2026 15:54:19 +0200 Subject: [PATCH 11/19] - add bia files from other analysis centers - add validity period to retrieve sat hw biases --- src/prx/main.py | 41 +++-- .../precise_corrections/bia/bia_processing.py | 59 ++++--- .../bia/test/test_bia_processing.py | 159 ++++++++++++++---- .../GRG0MGXFIN_20240010000_01D_01D_OSB.BIA.gz | Bin 0 -> 8483 bytes .../WUM0MGXRAP_20240010000_01D_01D_OSB.BIA.gz | Bin 0 -> 67138 bytes .../GFZ0MGXRAP_20230010000_01D_01D_OSB.BIA.gz | Bin 0 -> 5430 bytes 6 files changed, 184 insertions(+), 75 deletions(-) create mode 100644 src/prx/test/datasets/TLSE00FRA_R_2024001/GRG0MGXFIN_20240010000_01D_01D_OSB.BIA.gz create mode 100644 src/prx/test/datasets/TLSE00FRA_R_2024001/WUM0MGXRAP_20240010000_01D_01D_OSB.BIA.gz create mode 100644 src/prx/test/datasets/TLSE_2023001/GFZ0MGXRAP_20230010000_01D_01D_OSB.BIA.gz diff --git a/src/prx/main.py b/src/prx/main.py index 103c200..0fd8576 100644 --- a/src/prx/main.py +++ b/src/prx/main.py @@ -555,27 +555,26 @@ def build_records_level_3( sat_states_single_day = sp3_evaluate.compute(file_sp3, day_query, atx_file) # add satellite hardware biases bia_df = bia_processing.parse_bia_file(file_bia).to_pandas() - sat_code_bias = ( - sat_states_single_day.merge( - bia_df, - left_on=["sv", "signal"], - right_on=["sat_id", "obs_id"], - how="left", - ) - .drop(columns=["sat_id", "obs_id"])["sat_hw_bias_m"] - .to_numpy() - ) - sat_carrier_bias = ( - sat_states_single_day.assign(signal=lambda d: "L" + d["signal"].str[1:]) - .merge( - bia_df, - left_on=["sv", "signal"], - right_on=["sat_id", "obs_id"], - how="left", - ) - .drop(columns=["sat_id", "obs_id"])["sat_hw_bias_m"] - .to_numpy() - ) + sat_code_bias = pd.merge_asof( + query.sort_values("query_time_isagpst"), + bia_df.sort_values("start"), + left_on="query_time_isagpst", + right_on="start", + left_by=["sv", "signal"], + right_by=["sat_id", "obs_id"], + direction="backward", + )["sat_hw_bias_m"] + sat_carrier_bias = pd.merge_asof( + query.assign(signal=lambda d: "L" + d["signal"].str[1:]).sort_values( + "query_time_isagpst" + ), + bia_df.sort_values("start"), + left_on="query_time_isagpst", + right_on="start", + left_by=["sv", "signal"], + right_by=["sat_id", "obs_id"], + direction="backward", + )["sat_hw_bias_m"] sat_states_single_day = sat_states_single_day.assign( sat_code_bias_m=sat_code_bias, sat_carrier_bias_m=sat_carrier_bias, diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py index 6e332bf..9161fbd 100644 --- a/src/prx/precise_corrections/bia/bia_processing.py +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -1,30 +1,30 @@ from pathlib import Path import polars as pl from prx import constants, converters, util +from datetime import datetime, timedelta def parse_bia_file(filepath_bia_gz: Path) -> pl.DataFrame: """ - Parse gzipped BIA file and returns a pl.DataFrame with columns: - - sat_id: - - obs_id: rinex obs identifier - - sat_hw_bias_m: bias value in meters + Parse gzipped BIA file and returns a pl.DataFrame with columns: + - sat_id: + - obs_id: rinex obs identifier + - sat_hw_bias_m: bias value in meters + - start: timestamp + - end: timestamp - Example: - ┌────────┬────────┬───────────────┐ - │ sat_id ┆ obs_id ┆ sat_hw_bias_m │ - │ --- ┆ --- ┆ --- │ - │ str ┆ str ┆ f64 │ - ╞════════╪════════╪═══════════════╡ - │ G01 ┆ C1C ┆ 2.75863 │ - │ G01 ┆ C1W ┆ 3.176091 │ - │ G01 ┆ C2L ┆ 4.831245 │ - │ … ┆ … ┆ … │ - │ E36 ┆ L1C ┆ 0.074504 │ - │ E36 ┆ L1X ┆ 0.074504 │ - │ E36 ┆ L5Q ┆ 0.136439 │ - │ E36 ┆ L5X ┆ 0.136439 │ - └────────┴────────┴───────────────┘ + Example: + ┌────────┬────────┬───────────────┬─────────────────────┬─────────────────────┐ + │ sat_id ┆ obs_id ┆ sat_hw_bias_m ┆ start ┆ end │ + │ --- ┆ --- ┆ --- ┆ --- ┆ --- │ + │ str ┆ str ┆ f64 ┆ datetime[ns] ┆ datetime[ns] │ + ╞════════╪════════╪═══════════════╪═════════════════════╪═════════════════════╡ + │ G01 ┆ C1C ┆ -0.425645 ┆ 2023-01-01 00:00:00 ┆ 2023-01-02 00:00:00 │ + │ G01 ┆ C1W ┆ -0.0 ┆ 2023-01-01 00:00:00 ┆ 2023-01-02 00:00:00 │ + │ … ┆ … ┆ … ┆ … ┆ … │ + │ E36 ┆ L5Q ┆ -0.018269 ┆ 2023-01-01 00:00:00 ┆ 2023-01-02 00:00:00 │ + │ E36 ┆ L5X ┆ -0.018269 ┆ 2023-01-01 00:00:00 ┆ 2023-01-02 00:00:00 │ + └────────┴────────┴───────────────┴─────────────────────┴─────────────────────┘ """ @@ -35,6 +35,8 @@ def cached_load(filepath_bia_gz: Path, file_hash: str): sat_id_list = [] obs1_list = [] val_list = [] + start_list = [] + end_list = [] # find beginning of block BIAS/SOLUTION for line in f: if line.startswith("+BIAS/SOLUTION"): @@ -61,11 +63,28 @@ def cached_load(filepath_bia_gz: Path, file_hash: str): / constants.cNanoSecondsPerSecond * constants.cGpsSpeedOfLight_mps ) + start = datetime(int(line[35:39]), 1, 1) + timedelta( + days=int(line[40:43]) - 1, seconds=int(line[44:49]) + ) + end = datetime(int(line[50:54]), 1, 1) + timedelta( + days=int(line[55:58]) - 1, seconds=int(line[59:64]) + ) sat_id_list.append(sat_id) obs1_list.append(obs1) val_list.append(estimated_value) + start_list.append(start) + end_list.append(end) bia_df = pl.DataFrame( - {"sat_id": sat_id_list, "obs_id": obs1_list, "sat_hw_bias_m": val_list} + { + "sat_id": sat_id_list, + "obs_id": obs1_list, + "sat_hw_bias_m": val_list, + "start": start_list, + "end": end_list, + }, + ).with_columns( + pl.col("start").cast(pl.Datetime("ns")), + pl.col("end").cast(pl.Datetime("ns")), ) return bia_df diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index 8ed3804..3afdb70 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -1,4 +1,7 @@ import shutil + +import numpy as np +import pandas as pd import polars as pl import pytest @@ -9,24 +12,37 @@ @pytest.fixture(scope="session") def input_for_test(tmp_path_factory): - test_directory = tmp_path_factory.mktemp("test_inputs") + temp_directory = tmp_path_factory.mktemp("test_inputs") + src_dir = util.prx_src_directory() + test_dir = src_dir.joinpath("test", "datasets") test_files = { - "bia": test_directory / "COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz", + "cod": temp_directory / "COD0MGXFIN_20230010000_01D_01D_OSB.BIA.gz", + "gfz": temp_directory / "GFZ0MGXRAP_20230010000_01D_01D_OSB.BIA.gz", + "grg": temp_directory / "GRG0MGXFIN_20240010000_01D_01D_OSB.BIA.gz", + "wum": temp_directory / "WUM0MGXRAP_20240010000_01D_01D_OSB.BIA.gz", } - for key, test_file_path in test_files.items(): - shutil.copy( - util.prx_src_directory().joinpath( - "test", "datasets", "TLSE_2023001", test_file_path.name - ), - test_file_path, - ) + shutil.copy( + test_dir.joinpath("TLSE_2023001", test_files["cod"].name), test_files["cod"] + ) + shutil.copy( + test_dir.joinpath("TLSE_2023001", test_files["gfz"].name), test_files["gfz"] + ) + shutil.copy( + test_dir.joinpath("TLSE00FRA_R_2024001", test_files["grg"].name), + test_files["grg"], + ) + shutil.copy( + test_dir.joinpath("TLSE00FRA_R_2024001", test_files["wum"].name), + test_files["wum"], + ) + for test_file_path in test_files.values(): assert test_file_path.exists() yield test_files - shutil.rmtree(test_directory) + shutil.rmtree(temp_directory) def test_bia_parsing(input_for_test): - bia_df = bia.parse_bia_file(input_for_test["bia"]) + bia_df = bia.parse_bia_file(input_for_test["cod"]) # manual check in file assert ( bia_df.filter((pl.col("sat_id") == "G01") & (pl.col("obs_id") == "C1C")).item( @@ -46,32 +62,107 @@ def test_iono_free_code_bias(input_for_test): """ The iono-free combination of the satellite hardware code biases should be close to 0 (or close to a constant across all satellites from the same constellation) - - TODO: not relevant for COD (biases are equal to 0), but maybe for different ACs """ threshold = 1e-4 - bia_df = bia.parse_bia_file(input_for_test["bia"]).pivot( - on="obs_id", index="sat_id", values="sat_hw_bias_m" + obs_used_for_if = { + "cod": { + "G": ["C1W", "C2W"], + "E": ["C1C", "C5Q"], + "C": ["C2I", "C6I"], + "J": ["C1C", "C2L"], + }, + "gfz": { + "G": ["C1W", "C2W"], + "E": ["C1C", "C5Q"], + "C": ["C2I", "C6I"], + # "J": ["C1C", "C2L"], + }, + "grg": { + "G": ["L1W", "L2W"], + "E": ["L1X", "L5X"], + "C": ["L2I", "L6I"], + }, + "wum": { + "G": ["C1W", "C2W"], + "R": ["C1P", "C2P"], + "E": ["C1C", "C5Q"], + "C": ["C2I", "C6I"], + # "J": ["C1X", "C2X"], + }, + } + for ac in obs_used_for_if: + print(f"=== Testing analysis center {ac} ===") + bia_df = ( + bia.parse_bia_file(input_for_test[ac]) + .filter(pl.col("start") == pl.col("start").unique().min()) + .pivot(on="obs_id", index="sat_id", values="sat_hw_bias_m") + ) + for const in obs_used_for_if[ac]: + # Iono-free combination of COD for GPS uses C1W and C2W + freq_id1 = obs_used_for_if[ac][const][0][1] + freq_id2 = obs_used_for_if[ac][const][1][1] + f1 = constants.carrier_frequencies_hz()[const]["L" + freq_id1][1] + f2 = constants.carrier_frequencies_hz()[const]["L" + freq_id2][1] + bia_if_gps = bia_df.filter(pl.col("sat_id").str.starts_with(const)).select( + pl.col("sat_id"), + ( + ( + f1**2 * pl.col(obs_used_for_if[ac][const][0]) + - f2**2 * pl.col(obs_used_for_if[ac][const][1]) + ) + / (f1**2 - f2**2) + ).alias("if_code_bias"), + ) + print( + f"Maximum iono-free code bias for {const}: {bia_if_gps['if_code_bias'].max()} m" + ) + assert (bia_if_gps["if_code_bias"] < threshold).all() + + +def test_retrieve_satellite_biases(input_for_test): + bia_df = bia.parse_bia_file(input_for_test["wum"]).to_pandas() + # choose a query where 2 different biases exists for the same sat/sig at different times + query = pd.DataFrame( + { + "sv": ["G03", "G03"], + "signal": ["C5Q", "C5Q"], + "query_time_isagpst": [ + pd.Timestamp("2024-01-01 00:00:00"), + pd.Timestamp("2024-01-01 00:15:00"), + ], + } ) - # Iono-free combination of COD for GPS uses C1W and C2W - f1 = constants.carrier_frequencies_hz()["G"]["L1"][1] - f2 = constants.carrier_frequencies_hz()["G"]["L2"][1] - bia_if_gps = bia_df.filter(pl.col("sat_id").str.starts_with("G")).select( - pl.col("sat_id"), - ((f1**2 * pl.col("C1W") - f2**2 * pl.col("C2W")) / (f1**2 - f2**2)).alias( - "if_code_bias" + + sat_code_bias = pd.merge_asof( + query.sort_values("query_time_isagpst"), + bia_df.sort_values("start"), + left_on="query_time_isagpst", + right_on="start", + left_by=["sv", "signal"], + right_by=["sat_id", "obs_id"], + direction="backward", + )["sat_hw_bias_m"] + + sat_carrier_bias = pd.merge_asof( + query.assign(signal=lambda d: "L" + d["signal"].str[1:]).sort_values( + "query_time_isagpst" ), + bia_df.sort_values("start"), + left_on="query_time_isagpst", + right_on="start", + left_by=["sv", "signal"], + right_by=["sat_id", "obs_id"], + direction="backward", + )["sat_hw_bias_m"] + + query = query.assign( + sat_code_bias_m=sat_code_bias, + sat_carrier_bias_m=sat_carrier_bias, ) - print(f"Maximum iono-free code bias for GPS: {bia_if_gps['if_code_bias'].max()} m") - assert (bia_if_gps["if_code_bias"] < threshold).all() - # Iono-free combination of COD for Galileo uses C1W and C2W - f1 = constants.carrier_frequencies_hz()["E"]["L1"][1] - f2 = constants.carrier_frequencies_hz()["E"]["L5"][1] - bia_if_gal = bia_df.filter(pl.col("sat_id").str.starts_with("E")).select( - pl.col("sat_id"), - ((f1**2 * pl.col("C1C") - f2**2 * pl.col("C5Q")) / (f1**2 - f2**2)).alias( - "if_code_bias" - ), + + assert "sat_code_bias_m" in query.columns + assert "sat_carrier_bias_m" in query.columns + # manual check in bia file + assert query[["sat_code_bias_m", "sat_carrier_bias_m"]].to_numpy() == pytest.approx( + np.array([[1.84671646, 0.38192426], [1.84671646, 0.39412953]]) ) - print(f"Maximum iono-free code bias for GAL: {bia_if_gal['if_code_bias'].max()} m") - assert (bia_if_gal["if_code_bias"] < threshold).all() diff --git a/src/prx/test/datasets/TLSE00FRA_R_2024001/GRG0MGXFIN_20240010000_01D_01D_OSB.BIA.gz b/src/prx/test/datasets/TLSE00FRA_R_2024001/GRG0MGXFIN_20240010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..abf9be430370eea15994b0af1b36bde96f1f4997 GIT binary patch literal 8483 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 TB+>LBVXN@)$S+CGmM#AWWEq3u literal 0 HcmV?d00001 diff --git a/src/prx/test/datasets/TLSE00FRA_R_2024001/WUM0MGXRAP_20240010000_01D_01D_OSB.BIA.gz b/src/prx/test/datasets/TLSE00FRA_R_2024001/WUM0MGXRAP_20240010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..ff83ce68e2c753849270509006dff1bc44712a34 GIT binary patch literal 67138 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 literal 0 HcmV?d00001 diff --git a/src/prx/test/datasets/TLSE_2023001/GFZ0MGXRAP_20230010000_01D_01D_OSB.BIA.gz b/src/prx/test/datasets/TLSE_2023001/GFZ0MGXRAP_20230010000_01D_01D_OSB.BIA.gz new file mode 100644 index 0000000000000000000000000000000000000000..756d79577613d6e28528300d4cede13850271c31 GIT binary patch literal 5430 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 literal 0 HcmV?d00001 From dccfa747269fc4b557b72afe8a65ad01c984ccf2 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Mon, 10 Aug 2026 16:01:21 +0200 Subject: [PATCH 12/19] - specify product type for each AC --- src/prx/precise_corrections/bia/bia_file_discovery.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/prx/precise_corrections/bia/bia_file_discovery.py b/src/prx/precise_corrections/bia/bia_file_discovery.py index 28fc2a5..f5235d8 100644 --- a/src/prx/precise_corrections/bia/bia_file_discovery.py +++ b/src/prx/precise_corrections/bia/bia_file_discovery.py @@ -20,7 +20,14 @@ def bia_file_database_folder(): def build_bia_file_name(year: int, doy: int, analysis_center: str): - return f"{analysis_center}0MGXFIN_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" + # look-up table providing type of product for each analysic center + ac2type = { + "cod": "FIN", + "gfz": "RAP", + "grg": "FIN", + "wum": "RAP", + } + return f"{analysis_center}0MGX{ac2type[analysis_center]}_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" def bia_file_folder(year: int, doy: int): From 363c50292306def086d2bbc8c16f6e6457678bc9 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Tue, 11 Aug 2026 09:13:28 +0200 Subject: [PATCH 13/19] - force AC code to upper case. --- src/prx/precise_corrections/bia/bia_file_discovery.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/prx/precise_corrections/bia/bia_file_discovery.py b/src/prx/precise_corrections/bia/bia_file_discovery.py index f5235d8..43f6b31 100644 --- a/src/prx/precise_corrections/bia/bia_file_discovery.py +++ b/src/prx/precise_corrections/bia/bia_file_discovery.py @@ -22,11 +22,12 @@ def bia_file_database_folder(): def build_bia_file_name(year: int, doy: int, analysis_center: str): # look-up table providing type of product for each analysic center ac2type = { - "cod": "FIN", - "gfz": "RAP", - "grg": "FIN", - "wum": "RAP", + "COD": "FIN", + "GFZ": "RAP", + "GRG": "FIN", + "WUM": "RAP", } + analysis_center = analysis_center.upper() return f"{analysis_center}0MGX{ac2type[analysis_center]}_{year}{doy:03d}0000_01D_01D_OSB.BIA.gz" From 059b6f202eb2557525c3e545ebcd86ba71fda417 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Tue, 11 Aug 2026 13:51:36 +0200 Subject: [PATCH 14/19] - function to add sat biases to query df --- src/prx/main.py | 31 ++++----------- .../precise_corrections/bia/bia_processing.py | 38 +++++++++++++++++++ .../bia/test/test_bia_processing.py | 36 ++++-------------- 3 files changed, 52 insertions(+), 53 deletions(-) diff --git a/src/prx/main.py b/src/prx/main.py index 0fd8576..acbf1fb 100644 --- a/src/prx/main.py +++ b/src/prx/main.py @@ -22,6 +22,7 @@ from prx.precise_corrections.sp3 import sp3_file_discovery from prx.precise_corrections.antex import antex_file_discovery + log = logging.getLogger(__name__) @@ -554,31 +555,13 @@ def build_records_level_3( log.info(f"Computing satellite states for {year}-{doy:03d}") sat_states_single_day = sp3_evaluate.compute(file_sp3, day_query, atx_file) # add satellite hardware biases - bia_df = bia_processing.parse_bia_file(file_bia).to_pandas() - sat_code_bias = pd.merge_asof( - query.sort_values("query_time_isagpst"), - bia_df.sort_values("start"), - left_on="query_time_isagpst", - right_on="start", - left_by=["sv", "signal"], - right_by=["sat_id", "obs_id"], - direction="backward", - )["sat_hw_bias_m"] - sat_carrier_bias = pd.merge_asof( - query.assign(signal=lambda d: "L" + d["signal"].str[1:]).sort_values( - "query_time_isagpst" - ), - bia_df.sort_values("start"), - left_on="query_time_isagpst", - right_on="start", - left_by=["sv", "signal"], - right_by=["sat_id", "obs_id"], - direction="backward", - )["sat_hw_bias_m"] - sat_states_single_day = sat_states_single_day.assign( - sat_code_bias_m=sat_code_bias, - sat_carrier_bias_m=sat_carrier_bias, + sat_bias = bia_processing.compute_sat_hw_biases( + sat_states_single_day, bia_processing.parse_bia_file(file_bia) + ).to_pandas() + sat_states_single_day = sat_states_single_day.merge( + sat_bias, on=["sv", "signal", "query_time_isagpst"], how="left" ) + # collect satellite states per day sat_states_per_day.append(sat_states_single_day) diff --git a/src/prx/precise_corrections/bia/bia_processing.py b/src/prx/precise_corrections/bia/bia_processing.py index 9161fbd..646eabe 100644 --- a/src/prx/precise_corrections/bia/bia_processing.py +++ b/src/prx/precise_corrections/bia/bia_processing.py @@ -1,5 +1,6 @@ from pathlib import Path import polars as pl +import pandas as pd from prx import constants, converters, util from datetime import datetime, timedelta @@ -90,3 +91,40 @@ def cached_load(filepath_bia_gz: Path, file_hash: str): file_content_hash = util.hash_of_file_content(filepath_bia_gz) return cached_load(filepath_bia_gz, file_content_hash) + + +def compute_sat_hw_biases(query: pd.DataFrame, bia_df: pl.DataFrame) -> pd.DataFrame: + query_sorted = pl.from_pandas(query).sort("query_time_isagpst") + bia_sorted = bia_df.sort("start") + + sat_code_bias = query_sorted.join_asof( + bia_sorted, + left_on="query_time_isagpst", + right_on="start", + by_left=["sv", "signal"], + by_right=["sat_id", "obs_id"], + strategy="backward", + ).get_column("sat_hw_bias_m") + + sat_carrier_bias = ( + query_sorted.with_columns( + (pl.lit("L") + pl.col("signal").str.slice(1)).alias("signal") + ) + .join_asof( + bia_sorted, + left_on="query_time_isagpst", + right_on="start", + by_left=["sv", "signal"], + by_right=["sat_id", "obs_id"], + strategy="backward", + ) + .get_column("sat_hw_bias_m") + ) + + sat_bias = query_sorted.with_columns( + sat_code_bias.alias("sat_code_bias_m"), + sat_carrier_bias.alias("sat_carrier_bias_m"), + ) + return sat_bias[ + ["sv", "signal", "query_time_isagpst", "sat_code_bias_m", "sat_carrier_bias_m"] + ] diff --git a/src/prx/precise_corrections/bia/test/test_bia_processing.py b/src/prx/precise_corrections/bia/test/test_bia_processing.py index 3afdb70..9ade6ba 100644 --- a/src/prx/precise_corrections/bia/test/test_bia_processing.py +++ b/src/prx/precise_corrections/bia/test/test_bia_processing.py @@ -120,7 +120,6 @@ def test_iono_free_code_bias(input_for_test): def test_retrieve_satellite_biases(input_for_test): - bia_df = bia.parse_bia_file(input_for_test["wum"]).to_pandas() # choose a query where 2 different biases exists for the same sat/sig at different times query = pd.DataFrame( { @@ -133,36 +132,15 @@ def test_retrieve_satellite_biases(input_for_test): } ) - sat_code_bias = pd.merge_asof( - query.sort_values("query_time_isagpst"), - bia_df.sort_values("start"), - left_on="query_time_isagpst", - right_on="start", - left_by=["sv", "signal"], - right_by=["sat_id", "obs_id"], - direction="backward", - )["sat_hw_bias_m"] - - sat_carrier_bias = pd.merge_asof( - query.assign(signal=lambda d: "L" + d["signal"].str[1:]).sort_values( - "query_time_isagpst" - ), - bia_df.sort_values("start"), - left_on="query_time_isagpst", - right_on="start", - left_by=["sv", "signal"], - right_by=["sat_id", "obs_id"], - direction="backward", - )["sat_hw_bias_m"] - - query = query.assign( - sat_code_bias_m=sat_code_bias, - sat_carrier_bias_m=sat_carrier_bias, + sat_bias = bia.compute_sat_hw_biases( + query, bia.parse_bia_file(input_for_test["wum"]) ) - assert "sat_code_bias_m" in query.columns - assert "sat_carrier_bias_m" in query.columns + assert "sat_code_bias_m" in sat_bias.columns + assert "sat_carrier_bias_m" in sat_bias.columns # manual check in bia file - assert query[["sat_code_bias_m", "sat_carrier_bias_m"]].to_numpy() == pytest.approx( + assert sat_bias[ + ["sat_code_bias_m", "sat_carrier_bias_m"] + ].to_numpy() == pytest.approx( np.array([[1.84671646, 0.38192426], [1.84671646, 0.39412953]]) ) From d57097d05c34ef5bf84a261fc3b976aaa92c052f Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Tue, 11 Aug 2026 17:14:55 +0200 Subject: [PATCH 15/19] - add cli argument to specify analysis center --- src/prx/main.py | 20 ++++++++- .../sp3/sp3_file_discovery.py | 43 ++++++++++--------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/prx/main.py b/src/prx/main.py index acbf1fb..99fe0f9 100644 --- a/src/prx/main.py +++ b/src/prx/main.py @@ -657,6 +657,7 @@ def process( observation_file_path: Path, prx_level=2, model_tropo="saastamoinen", + analysis_center="COD", joblib_backend: str = "loky", ): t0 = pd.Timestamp.now() @@ -693,7 +694,9 @@ def process( aux_files = {} # define auxiliary files aux_files["sp3_orb"], aux_files["sp3_clk"] = ( - sp3_file_discovery.discover_or_download_sp3_file(rinex_3_obs_file) + sp3_file_discovery.discover_or_download_sp3_file( + rinex_3_obs_file, analysis_center + ) ) aux_files["atx"] = antex_file_discovery.discover_or_download_atx_file( rinex_3_obs_file @@ -748,6 +751,13 @@ def process( choices=[1, 2, 3], default=2, ) + parser.add_argument( + "--analysis_center", + type=str, + help="Analysis center as source for precise correction (cod, gfz, grg, wum)", + choices=["cod", "gfz", "grg", "wum"], + default="cod", + ) parser.add_argument( "--tropo", type=str, @@ -763,6 +773,7 @@ def process( required=False, ) args = parser.parse_args() + configure_logging(args.log_level) if args.observation_file_path is None: log.error("No observation file path provided.") @@ -770,4 +781,9 @@ def process( if not Path(args.observation_file_path).exists(): log.error(f"Observation file {args.observation_file_path} does not exist.") sys.exit(1) - process(Path(args.observation_file_path), args.prx_level, args.tropo) + process( + Path(args.observation_file_path), + args.prx_level, + args.tropo, + args.analysis_center, + ) diff --git a/src/prx/precise_corrections/sp3/sp3_file_discovery.py b/src/prx/precise_corrections/sp3/sp3_file_discovery.py index 7999850..9fe7855 100644 --- a/src/prx/precise_corrections/sp3/sp3_file_discovery.py +++ b/src/prx/precise_corrections/sp3/sp3_file_discovery.py @@ -143,6 +143,7 @@ def try_downloading_sp3_ftp(gps_week: int, folder: Path, file: str) -> Path | No def get_sp3_files( mid_day_start: pd.Timestamp, mid_day_end: pd.Timestamp, + analysis_center: str, db_folder=sp3_file_database_folder(), ) -> tuple[list[Path | None], list[Path | None]]: sp3_orb_files = [] @@ -151,31 +152,33 @@ def get_sp3_files( gps_week, _ = timestamp_to_gps_week_and_dow(date) while date <= mid_day_end: for p in priority: - sp3_filename, clk_filename = build_sp3_filename(date, p) - file_orb = get_local_sp3(date, sp3_filename, db_folder) - file_clk = get_local_sp3(date, clk_filename, db_folder) - if file_orb is None: - file_orb = try_downloading_sp3_ftp( - gps_week, sp3_file_folder(date, db_folder), sp3_filename - ) - if file_clk is None: - file_clk = try_downloading_sp3_ftp( - gps_week, sp3_file_folder(date, db_folder), clk_filename - ) - if file_orb is not None and file_clk is not None: - sp3_orb_files.append(file_orb) - sp3_clk_files.append(file_clk) - break - # If we reach the end of the priority list without success - if file_orb is None and file_clk is None and p == priority[-1]: - sp3_orb_files.append(None) - sp3_clk_files.append(None) + if analysis_center == p[0]: + sp3_filename, clk_filename = build_sp3_filename(date, p) + file_orb = get_local_sp3(date, sp3_filename, db_folder) + file_clk = get_local_sp3(date, clk_filename, db_folder) + if file_orb is None: + file_orb = try_downloading_sp3_ftp( + gps_week, sp3_file_folder(date, db_folder), sp3_filename + ) + if file_clk is None: + file_clk = try_downloading_sp3_ftp( + gps_week, sp3_file_folder(date, db_folder), clk_filename + ) + if file_orb is not None and file_clk is not None: + sp3_orb_files.append(file_orb) + sp3_clk_files.append(file_clk) + break + # If we reach the end of the priority list without success + if file_orb is None and file_clk is None and p == priority[-1]: + sp3_orb_files.append(None) + sp3_clk_files.append(None) date += pd.Timedelta(1, unit="days") return sp3_orb_files, sp3_clk_files def discover_or_download_sp3_file( observation_file_path=Path, + analysis_center="COD", ) -> tuple[list[Path | None], list[Path | None]]: """ Returns the path to a valid SP3 file (local or downloaded) corresponding to the observation file. @@ -193,5 +196,5 @@ def discover_or_download_sp3_file( util.rinex_header_time_string_2_timestamp_ns(header["TIME OF LAST OBS"]) ) - sp3_orb_files, sp3_clk_files = get_sp3_files(t_start, t_end) + sp3_orb_files, sp3_clk_files = get_sp3_files(t_start, t_end, analysis_center) return sp3_orb_files, sp3_clk_files From 75577d5ff3f5d31a6ba1507d6c7ac1b91a11b60b Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Tue, 11 Aug 2026 17:22:10 +0200 Subject: [PATCH 16/19] - documentation --- README.md | 12 ++++++++---- documents/dev_status.md | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 0ad1840..10c12b3 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,14 @@ From the `prx` repository root, run uv run python src/prx/main.py --observation_file_path ``` -You can specify `--prx_level` according to the type of computation you need. `--prx_level 1` is adapted for DGNSS or RTK -processing, `--prx_level 2` is adapted for SPP processing and is the default value. - -There is an optional argument to select the tropospheric delay model, by adding `--tropo saastamoinen` (default) or `--tropo unb3m` +You can specify `--prx_level` according to the type of computation you need. +`--prx_level 1` is adapted for DGNSS or RTK processing. +`--prx_level 2` is adapted for SPP processing and is the default value. +`--prx_level 3` uses precises corrections from IGS products, adapted for PPP processing. +You can specify the analysis center (among COD, GFZ, GRG, WUM) with the option `--analysis_center GRG`. + +There is an optional argument to select the tropospheric delay model, by adding `--tropo saastamoinen` (default) +or `--tropo unb3m` You might have to add `/src/prx` to your `PYTHONPATH` environment variable if you run into import errors. diff --git a/documents/dev_status.md b/documents/dev_status.md index 0e75f74..786a6a2 100644 --- a/documents/dev_status.md +++ b/documents/dev_status.md @@ -52,18 +52,18 @@ Same as level 1 and 2, with the following additional parameters. The parameters uv run python src/prx/main.py --observation_file_path --prx_level 3 ``` -| Parameters | Name in PRX file | Status | -|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|--------| -| Satellite antenna phase center position and velocity | `sat_pos_x_m`, `sat_pos_y_m`, `sat_pos_z_m`,
`sat_vel_x_mps`, `sat_vel_y_mps`, `sat_vel_z_mps` | ✅ | -| Satellite center of mass position (computed using `sp3` orbit files) | `sat_pos_com_x_m`, `sat_pos_com_y_m`, `sat_pos_com_z_m` | ✅ | -| Satellite clock offset and drift (including relativistic effect) (computed using `sp3` clock files) | `sat_clock_offset_m`, `sat_clock_drift_mps` | ✅ | -| Tropospheric delay (computed using `tropex` files) | `tropo_delay_m` | ❌ | -| Tropospheric mapping function | to be completed | ❌ | -| Ionospheric delay (computed using `ionex` files) | `iono_delay_m` | ❌ | -| Satellite code & phase bias (computed using `bia` files) | `sat_code_bias_m` | ❌ | -| Satellite & receiver phase center offset (computed using `antex` files) | `sat_pco_x_m`, `sat_pco_y_m`, `sat_pco_z_m` | ✅ | -| Satellite & receiver phase center variation (computed using `antex` files) | to be completed | ❌ | -| Solid Earth Tide | to be completed | ❌ | +| Parameters | Name in PRX file | Status | +|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|--------| +| Satellite antenna phase center position and velocity | `sat_pos_x_m`, `sat_pos_y_m`, `sat_pos_z_m`,
`sat_vel_x_mps`, `sat_vel_y_mps`, `sat_vel_z_mps` | ✅ | +| Satellite center of mass position (computed using `sp3` orbit files) | `sat_pos_com_x_m`, `sat_pos_com_y_m`, `sat_pos_com_z_m` | ✅ | +| Satellite clock offset and drift (including relativistic effect) (computed using `sp3` clock files) | `sat_clock_offset_m`, `sat_clock_drift_mps` | ✅ | +| Tropospheric delay (computed using `tropex` files) | `tropo_delay_m` | ❌ | +| Tropospheric mapping function | to be completed | ❌ | +| Ionospheric delay (computed using `ionex` files) | `iono_delay_m` | ❌ | +| Satellite code & phase bias (computed using `bia` files) | `sat_code_bias_m` , `sat_carrier_bias_m` | ✅ | +| Satellite & receiver phase center offset (computed using `antex` files) | `sat_pco_x_m`, `sat_pco_y_m`, `sat_pco_z_m` | ✅ | +| Satellite & receiver phase center variation (computed using `antex` files) | to be completed | ❌ | +| Solid Earth Tide | to be completed | ❌ | From bdca8e7cbd1de6c575131989d0472cded566d9cd Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Wed, 12 Aug 2026 10:08:57 +0200 Subject: [PATCH 17/19] - apply change to tests --- .../sp3/test/test_sp3_file_discovey.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py b/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py index 935e9fe..e126bb3 100644 --- a/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py +++ b/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py @@ -110,7 +110,7 @@ def test_get_sp3_files(set_up_test): return_value=None, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, "COD", local_db) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name @@ -141,7 +141,7 @@ def test_get_sp3_files_multiple_days(set_up_test): return_value=None, ), ): - sp3_files = sp3.get_sp3_files(t_start, t_end, local_db) + sp3_files = sp3.get_sp3_files(t_start, t_end, "COD", local_db) assert len(sp3_files) == 2 for ind_day in range(2): @@ -176,7 +176,7 @@ def test_download_FIN_when_local_RAP_is_available(set_up_test): new=prx.precise_corrections.sp3.sp3_file_discovery.check_online_availability, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, "COD", local_db) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name @@ -205,6 +205,7 @@ def test_match_CLK_and_ORB(set_up_test): _, file_clk_expected = sp3.build_sp3_filename( t_start, sp3.priority[idx_priority] ) + ac_code = sp3.priority[idx_priority][0] if not list(local_db.glob("**/file_clk_expected")): break @@ -218,7 +219,7 @@ def test_match_CLK_and_ORB(set_up_test): new=prx.precise_corrections.sp3.sp3_file_discovery.check_online_availability, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, ac_code, local_db) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name From b988ba7227c71edade4c24fafd01cd35b54dcf41 Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Wed, 12 Aug 2026 10:43:25 +0200 Subject: [PATCH 18/19] - ruff --- .../sp3/test/test_sp3_file_discovey.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py b/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py index e126bb3..4573edc 100644 --- a/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py +++ b/src/prx/precise_corrections/sp3/test/test_sp3_file_discovey.py @@ -110,7 +110,9 @@ def test_get_sp3_files(set_up_test): return_value=None, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, "COD", local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files( + t_start, t_end, "COD", local_db + ) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name @@ -176,7 +178,9 @@ def test_download_FIN_when_local_RAP_is_available(set_up_test): new=prx.precise_corrections.sp3.sp3_file_discovery.check_online_availability, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, "COD", local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files( + t_start, t_end, "COD", local_db + ) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name @@ -219,7 +223,9 @@ def test_match_CLK_and_ORB(set_up_test): new=prx.precise_corrections.sp3.sp3_file_discovery.check_online_availability, ), ): - sp3_orb_files, sp3_clk_files = sp3.get_sp3_files(t_start, t_end, ac_code, local_db) + sp3_orb_files, sp3_clk_files = sp3.get_sp3_files( + t_start, t_end, ac_code, local_db + ) file_orb = sp3_orb_files[0].name file_clk = sp3_clk_files[0].name From 76773e04321a75a63aa3d86c1536db4e7287fc6a Mon Sep 17 00:00:00 2001 From: Paul Thevenon Date: Thu, 13 Aug 2026 15:08:17 +0200 Subject: [PATCH 19/19] - error hanling for sp3 file download --- src/prx/precise_corrections/sp3/sp3_file_discovery.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/prx/precise_corrections/sp3/sp3_file_discovery.py b/src/prx/precise_corrections/sp3/sp3_file_discovery.py index 9fe7855..8c479ce 100644 --- a/src/prx/precise_corrections/sp3/sp3_file_discovery.py +++ b/src/prx/precise_corrections/sp3/sp3_file_discovery.py @@ -130,8 +130,9 @@ def try_downloading_sp3_ftp(gps_week: int, folder: Path, file: str) -> Path | No remote_folder = f"/gnss/products/{gps_week}/mgex" ftp_file = f"ftp://{server}/{remote_folder}/{file}" local_compressed_file = folder / file - urllib.request.urlretrieve(ftp_file, local_compressed_file) - if not local_compressed_file.exists(): + try: + urllib.request.urlretrieve(ftp_file, local_compressed_file) + except urllib.request.URLError: log.warning(f"Could not download {ftp_file}") return None local_file = converters.compressed_to_uncompressed(local_compressed_file)