Skip to content

UpdateParameters() fails due to FTP timeout while downloading OMNI data #28

@astronuma2020

Description

@astronuma2020

Hi, thank you for maintaining this useful library!

I encountered an issue while running gp.Params.UpdateParameters(SkipWParameters=True) using PyGeopack.
The process fails during the OMNI data update step, throwing a TimeoutError.

Here is the traceback (standard Python output):

Traceback (most recent call last):

import PyGeopack as gp
gp.Params.UpdateParameters(SkipWParameters=True)

This process may take a while, please be patient
Updating Kp Indices
Downloading file 1 of 1
[==================================================]
Converting to binary
Saved file: Kp-2025.bin
Done
Updating OMNI Data
  File "script.py", line 3, in <module>
    gp.Params.UpdateParameters(SkipWParameters=True)
  File "/Users/username/.pyenv/versions/3.12.7/envs/3.12.7_project_env/lib/python3.12/site-packages/PyGeopack/Params/UpdateParameters.py", line 41, in UpdateParameters
    omni.UpdateLocalData()
  File "/Users/username/.pyenv/versions/3.12.7/envs/3.12.7_project_env/lib/python3.12/site-packages/pyomnidata/UpdateLocalData.py", line 23, in UpdateLocalData
    status = _DownloadFTPIndex(ftp)
  File "/Users/username/.pyenv/versions/3.12.7/envs/3.12.7_project_env/lib/python3.12/site-packages/pyomnidata/_DownloadFTPIndex.py", line 20, in _DownloadFTPIndex
    for file in files:
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/ftplib.py", line 584, in mlsd
    self.retrlines(cmd, lines.append)
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/ftplib.py", line 459, in retrlines
    with self.transfercmd(cmd) as conn, \
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/ftplib.py", line 393, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/ftplib.py", line 771, in ntransfercmd
    conn, size = super().ntransfercmd(cmd, rest)
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/ftplib.py", line 354, in ntransfercmd
    conn = socket.create_connection((host, port), self.timeout,
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/socket.py", line 865, in create_connection
    raise exceptions[0]
  File "/Users/username/.pyenv/versions/3.12.7/lib/python3.12/socket.py", line 850, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 60] Operation timed out

It seems the issue is caused by a timeout when trying to connect to NASA's FTP server (likely spdf.gsfc.nasa.gov).
This may be due to the server being temporarily unavailable or due to firewall/proxy/VPN restrictions.


Environment:

  • Python: 3.12.7
  • PyGeopack: 1.2.6
  • pyomnidata: 1.0.2
  • OS: macOS 14.7 (Intel)

Suggestions:

  1. Add an option to skip OMNI data update (e.g., SkipOMNI=True)
  2. (Preferably) Switch from FTP to HTTPS when downloading OMNI data from NASA

As a workaround, I’ve manually downloaded the OMNI .asc files and placed them in Globals.DataPath, which works.
But a more robust built-in solution would be much appreciated.

Thanks again for this great library!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions