1+ from __future__ import annotations
2+ import typing as T
13from pathlib import Path
24import xarray
3- from typing import Union , Tuple , Dict , Sequence
4- from typing .io import TextIO
55from datetime import datetime , timedelta
66import logging
77
1818
1919
2020def load (
21- rinexfn : Union [ TextIO , str , Path ] ,
21+ rinexfn : T . TextIO | str | Path ,
2222 out : Path = None ,
23- use : Sequence [str ] = None ,
24- tlim : Tuple [datetime , datetime ] = None ,
23+ use : list [str ] = None ,
24+ tlim : tuple [datetime , datetime ] = None ,
2525 useindicators : bool = False ,
26- meas : Sequence [str ] = None ,
26+ meas : list [str ] = None ,
2727 verbose : bool = False ,
2828 * ,
2929 overwrite : bool = False ,
3030 fast : bool = True ,
31- interval : Union [ float , int , timedelta ] = None ,
32- ) -> Union [ xarray .Dataset , Dict [str , xarray .Dataset ] ]:
31+ interval : float | int | timedelta = None ,
32+ ) -> xarray .Dataset | dict [str , xarray .Dataset ]:
3333 """
3434 Reads OBS, NAV in RINEX 2.x and 3.x
3535
@@ -67,9 +67,7 @@ def load(
6767 )
6868 return None
6969
70- if info ["rinextype" ] == "sp3" :
71- return load_sp3 (rinexfn , outfn )
72- elif info ["rinextype" ] == "nav" :
70+ if info ["rinextype" ] == "nav" :
7371 return rinexnav (rinexfn , outfn , use = use , tlim = tlim , overwrite = overwrite )
7472 elif info ["rinextype" ] == "obs" :
7573 return rinexobs (
@@ -84,6 +82,11 @@ def load(
8482 fast = fast ,
8583 interval = interval ,
8684 )
85+
86+ assert isinstance (rinexfn , Path )
87+
88+ if info ["rinextype" ] == "sp3" :
89+ return load_sp3 (rinexfn , outfn )
8790 elif rinexfn .suffix == ".nc" :
8891 # outfn not used here, because we already have the converted file!
8992 try :
@@ -112,10 +115,10 @@ def batch_convert(
112115 path : Path ,
113116 glob : str ,
114117 out : Path ,
115- use : Sequence [str ] = None ,
116- tlim : Tuple [datetime , datetime ] = None ,
118+ use : list [str ] = None ,
119+ tlim : tuple [datetime , datetime ] = None ,
117120 useindicators : bool = False ,
118- meas : Sequence [str ] = None ,
121+ meas : list [str ] = None ,
119122 verbose : bool = False ,
120123 * ,
121124 fast : bool = True ,
@@ -142,15 +145,15 @@ def batch_convert(
142145
143146
144147def rinexnav (
145- fn : Union [ TextIO , str , Path ] ,
148+ fn : T . TextIO | str | Path ,
146149 outfn : Path = None ,
147- use : Sequence [str ] = None ,
150+ use : list [str ] = None ,
148151 group : str = "NAV" ,
149- tlim : Tuple [datetime , datetime ] = None ,
152+ tlim : tuple [datetime , datetime ] = None ,
150153 * ,
151154 overwrite : bool = False ,
152155) -> xarray .Dataset :
153- """ Read RINEX 2 or 3 NAV files"""
156+ """Read RINEX 2 or 3 NAV files"""
154157
155158 if isinstance (fn , (str , Path )):
156159 fn = Path (fn ).expanduser ()
@@ -186,18 +189,18 @@ def rinexnav(
186189
187190
188191def rinexobs (
189- fn : Union [ TextIO , str , Path ] ,
192+ fn : T . TextIO | Path ,
190193 outfn : Path = None ,
191- use : Sequence [str ] = None ,
194+ use : list [str ] = None ,
192195 group : str = "OBS" ,
193- tlim : Tuple [datetime , datetime ] = None ,
196+ tlim : tuple [datetime , datetime ] = None ,
194197 useindicators : bool = False ,
195- meas : Sequence [str ] = None ,
198+ meas : list [str ] = None ,
196199 verbose : bool = False ,
197200 * ,
198201 overwrite : bool = False ,
199202 fast : bool = True ,
200- interval : Union [ float , int , timedelta ] = None ,
203+ interval : float | int | timedelta = None ,
201204) -> xarray .Dataset :
202205 """
203206 Read RINEX 2.x and 3.x OBS files in ASCII or GZIP (or Hatanaka)
0 commit comments