Stanford-NavLab / gnss_lib_py

Modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates
MIT License
127 stars 33 forks source link

Can't connect to gdc.cddis.eosdis.nasa.gov #168

Closed jake9wi closed 3 hours ago

jake9wi commented 4 hours ago

Also tried it in Firefox. Seems the domain no longer exists.

Traceback (most recent call last):
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 939, in _ftp_download
    ftp.retrbinary(
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 436, in retrbinary
    with self.transfercmd(cmd, rest) as conn:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 393, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 771, in ntransfercmd
    conn, size = super().ntransfercmd(cmd, rest)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 359, in ntransfercmd
    resp = self.sendcmd(cmd)
           ^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 281, in sendcmd
    return self.getresp()
           ^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 254, in getresp
    raise error_perm(resp)
ftplib.error_perm: 550 Failed to open file.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 205, in load_ephemeris
    downloaded_paths = _download_ephemeris(file_type,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 381, in _download_ephemeris
    _ftp_download(url, ftp_path, dest_path_with_extension,
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 943, in _ftp_download
    raise ftplib.error_perm(str(err) + ' Failed to retrieve ' \
ftplib.error_perm: 550 Failed to open file. Failed to retrieve /gnss/products/2333/COD0OPSRAP_20242660000_01D_05M_ORB.SP3.gz from gdc.cddis.eosdis.nasa.gov

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 939, in _ftp_download
    ftp.retrbinary(
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 436, in retrbinary
    with self.transfercmd(cmd, rest) as conn:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 393, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 771, in ntransfercmd
    conn, size = super().ntransfercmd(cmd, rest)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 359, in ntransfercmd
    resp = self.sendcmd(cmd)
           ^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 281, in sendcmd
    return self.getresp()
           ^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\ftplib.py", line 254, in getresp
    raise error_perm(resp)
ftplib.error_perm: 550 Failed to open file.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\MyScripts\gnsslibpy_rinex.py", line 6, in <module>
    full_states = glp.add_sv_states(rinex_data, source="precise", verbose=False)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\sv_models.py", line 54, in add_sv_states
    navdata_w_sv_states = add_sv_states_precise(navdata,
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\sv_models.py", line 92, in add_sv_states_precise
    sp3_paths = load_ephemeris("sp3", gps_millis = unique_gps_millis,
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 225, in load_ephemeris
    downloaded_paths = _download_ephemeris(file_type,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 381, in _download_ephemeris
    _ftp_download(url, ftp_path, dest_path_with_extension,
  File "F:\z0bin\miniconda3\envs\gnssslibpy\Lib\site-packages\gnss_lib_py\utils\ephemeris_downloader.py", line 943, in _ftp_download
    raise ftplib.error_perm(str(err) + ' Failed to retrieve ' \
ftplib.error_perm: 550 Failed to open file. Failed to retrieve /gnss/products/2333/COD0OPSRAP_20242660000_01D_05M_ORB.SP3.gz from gdc.cddis.eosdis.nasa.gov
betaBison commented 3 hours ago

Hi @jake9wi! Looks like you're trying to download a precise orbit file that doesn't yet exist. The SP3 precise orbit files take a while to compute so they're not ready immediately. You can go to the url directory shown in the error message to see that only an ultra-rapid solution is currently available, but not yet the rapid solution we rely on: https://cddis.nasa.gov/archive/gnss/products/2333/

I'm not sure what specific workflow you're currently using, but if real-time satellite positions are needed, I'd suggest checking out the RINEX navigation files which have satellite orbit information much closer to real-time. You'll want to change the file_type in the ephemeris downloader to rinex_nav. https://gnss-lib-py.readthedocs.io/en/latest/tutorials/utils/tutorials_ephemeris_downloader_notebook.html

"Final" SP3 precise orbit files actually take a couple of weeks to compute. If you're interested in a better understanding of how we download from different sources, you can check out the top of the ephemeris_downloader.py file or its more readable counterpart here: https://gnss-lib-py.readthedocs.io/en/latest/reference/utils/ephemeris_downloader.html

betaBison commented 3 hours ago

To be clear, if you can afford to wait, then the easiest solution is just waiting a day for the SP3 file to be calculated and become available.