MITgcm / xmitgcm

Read MITgcm mds binary files into xarray
http://xmitgcm.readthedocs.io
MIT License
56 stars 65 forks source link

llcreader seems not to work #321

Closed zrc-ouc closed 1 year ago

zrc-ouc commented 1 year ago

Hi, I was previously using the llcreader to download the LLC4320 data until two weeks ago when the ECCO Data Portal was maintained. Currently I see that the maintenance is over, but the download keeps reporting errors as follows: ValueError: Cannot seek streaming HTTP file

The following code worked two weeks ago and I'm guessing the download issue is still related to site maintenance?

from xmitgcm import llcreader

model = llcreader.ECCOPortalLLC4320Model()
start = model.iter_start
dt = model.iter_step
ds = model.get_dataset(varnames=['Eta'], k_levels=[0], type='latlon',
                                  iter_start=(start),
                                  iter_stop=(start + dt),
                                  read_grid=True)
ds[["Eta"]].reset_coords(drop=True).to_netcdf('Eta.nc')

I look forward to any response, thanks!

LiYfeng917 commented 1 year ago

I probably meet the same bug as zrc-ouc. The following code could not work now and i can't see the data size or Last Modification Size on the ECCO Data Porta

import xmitgcm.llcreader as llcreader
%matplotlib inline
import holoviews as hv
from holoviews.operation.datashader import regrid
hv.extension('bokeh')
model = llcreader.ECCOPortalLLC4320Model()
model
ds_sst = model.get_dataset(varnames=['Theta'], k_levels=[0], type='latlon')
ds_sst
print(model.varnames)
ds = model.get_dataset(varnames=['Theta'], k_levels=[0], type='latlon')
dataset = hv.Dataset(ds_sst.Theta.isel(k=0).astype('f4'))
hv_im = (dataset.to(hv.Image, ['i', 'j'], dynamic=True)
                .options(cmap='Magma', width=950, height=600, colorbar=True))
%output holomap='scrubber' fps=3
regrid(hv_im, precompute=True)

And the Error is

ValueError: Cannot seek streaming HTTP file

And I try the same code in the issue 'HTTP error when calling LLC4320 outputs' on Jun 7, 2021.It seems the same bug because of the module fsspec, and i try to use the method that you have provided.

import fsspec
url = "https://data.nas.nasa.gov/ecco/download_data.php?file=/eccodata/llc_4320/compressed/0000154224/Eta.0000154224.data.shrunk"
with fsspec.open(url, mode='rb') as fp:
    # test size works
    assert fp.size == 562551864
with fsspec.open(url, mode='rb') as fp:
    # test seek works
    fp.seek(2)

However, the bug was

 AssertionError.

Looking forward to any reply, thanks!

rabernat commented 1 year ago

It appears that the ECCO portal has been changed and is no longer compatible with the LLC reader. I recommend contacting the data curator listed on the website - ryan.c.spaulding@nasa.gov - and alerting them to this problem.

We (xmitgcm maintainers) have no control over or insight into how the ECCO data portal operates.

zrc-ouc commented 1 year ago

It appears that the ECCO portal has been changed and is no longer compatible with the LLC reader. I recommend contacting the data curator listed on the website - ryan.c.spaulding@nasa.gov - and alerting them to this problem.

We (xmitgcm maintainers) have no control over or insight into how the ECCO data portal operates.

Thanks, I'll try to contact the data curator.