umr-lops / xarray-safe-rcm

Read RADARSAT Constellation Mission (RCM) SAFE files using xarray
https://xarray-safe-rcm.readthedocs.io
MIT License
3 stars 3 forks source link

error on opening HH file #86

Open vincelhx opened 1 month ago

vincelhx commented 1 month ago

trying to open a RCM HH file

file = "/home/datawork-cersat-public/provider/asc-csa/satellite/l1/rcm/rcm2/SCSDA/GRD/2020/051/RCM2_OK1051101_PK1052225_1_SCSDA_20200220_090253_HH_GRD"
tree = safe_rcm.open_rcm(file, chunks={})
/home1/datahome/vlheureu/git/xarray-safe-rcm/safe_rcm/product/reader.py:59: UserWarning: Converting non-nanosecond precision datetime values to nanosecond precision. This behavior can eventually be relaxed in xarray, as it is an artifact from pandas which is now beginning to support non-nanosecond precision values. This warning is caused by passing non-nanosecond np.datetime64 or np.timedelta64 values to the DataArray or Variable constructor; it can be silenced by converting the values to nanosecond precision ahead of time.
  {"timeStamp": ds["timeStamp"].astype("datetime64")}
/home1/datahome/vlheureu/git/xarray-safe-rcm/safe_rcm/product/reader.py:68: UserWarning: Converting non-nanosecond precision datetime values to nanosecond precision. This behavior can eventually be relaxed in xarray, as it is an artifact from pandas which is now beginning to support non-nanosecond precision values. This warning is caused by passing non-nanosecond np.datetime64 or np.timedelta64 values to the DataArray or Variable constructor; it can be silenced by converting the values to nanosecond precision ahead of time.
  {"timeStamp": ds["timeStamp"].astype("datetime64")}
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[4], line 2
      1 file = "/home/datawork-cersat-public/provider/asc-csa/satellite/l1/rcm/rcm2/SCSDA/GRD/2020/051/RCM2_OK1051101_PK1052225_1_SCSDA_20200220_090253_HH_GRD"
----> 2 tree = safe_rcm.open_rcm(file, chunks={})

File ~/git/xarray-safe-rcm/safe_rcm/api.py:98, in open_rcm(url, backend_kwargs, manifest_ignores, **dataset_kwargs)
     92 if missing_files:
     93     raise ExceptionGroup(
     94         "not all files declared in the manifest are available",
     95         [ValueError(f"{p} does not exist") for p in missing_files],
     96     )
---> 98 tree = read_product(mapper, "metadata/product.xml")
    100 calibration_root = "metadata/calibration"
    101 lookup_table_structure = {
    102     "/incidenceAngles": {
    103         "path": "/imageReferenceAttributes",
   (...)
    136     },
    137 }

File ~/git/xarray-safe-rcm/safe_rcm/product/reader.py:275, in read_product(mapper, product_path)
     35 decoded = read_xml(mapper, product_path)
     37 layout = {
     38     "/": {
     39         "path": "/",
   (...)
    272     },
    273 }
--> 275 converted = valmap(
    276     lambda x: execute(**x)(decoded),
    277     layout,
    278 )
    279 return datatree.DataTree.from_dict(converted)

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:178, in cytoolz.dicttoolz.valmap()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:203, in cytoolz.dicttoolz.valmap()

File ~/git/xarray-safe-rcm/safe_rcm/product/reader.py:276, in read_product.<locals>.<lambda>(x)
     35 decoded = read_xml(mapper, product_path)
     37 layout = {
     38     "/": {
     39         "path": "/",
   (...)
    272     },
    273 }
    275 converted = valmap(
--> 276     lambda x: execute(**x)(decoded),
    277     layout,
    278 )
    279 return datatree.DataTree.from_dict(converted)

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:267, in cytoolz.functoolz.curry.__call__()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:263, in cytoolz.functoolz.curry.__call__()

File ~/git/xarray-safe-rcm/safe_rcm/product/reader.py:31, in execute(mapping, f, path)
     27 @curry
     28 def execute(mapping, f, path):
     29     subset = query(path, mapping)
---> 31     return compose_left(f, attach_path(path=path))(subset)

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:516, in cytoolz.functoolz.Compose.__call__()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:518, in cytoolz.functoolz.Compose.__call__()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:735, in genexpr()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:735, in genexpr()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/functoolz.pyx:518, in cytoolz.functoolz.Compose.__call__()

File ~/git/xarray-safe-rcm/safe_rcm/product/transformers.py:133, in extract_dataset(obj, dims, default_dims)
    129 variables_ = keymap(lambda k: k.lstrip("@"), variables)
    131 filtered_variables = valfilter(lambda x: not is_nested_dataset(x), variables_)
--> 133 data_vars = itemmap(
    134     lambda item: (
    135         item[0],
    136         extract_entry(*item, dims=dims, default_dims=default_dims),
    137     ),
    138     filtered_variables,
    139 )
    140 return xr.Dataset(data_vars=data_vars, attrs=attrs)

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:236, in cytoolz.dicttoolz.itemmap()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:261, in cytoolz.dicttoolz.itemmap()

File ~/git/xarray-safe-rcm/safe_rcm/product/transformers.py:136, in extract_dataset.<locals>.<lambda>(item)
    129 variables_ = keymap(lambda k: k.lstrip("@"), variables)
    131 filtered_variables = valfilter(lambda x: not is_nested_dataset(x), variables_)
    133 data_vars = itemmap(
    134     lambda item: (
    135         item[0],
--> 136         extract_entry(*item, dims=dims, default_dims=default_dims),
    137     ),
    138     filtered_variables,
    139 )
    140 return xr.Dataset(data_vars=data_vars, attrs=attrs)

File ~/git/xarray-safe-rcm/safe_rcm/product/transformers.py:116, in extract_entry(name, obj, dims, default_dims)
    114     return extract_variable(obj, dims=dims)
    115 elif is_nested_array(obj):
--> 116     return extract_nested_array(obj, dims=dims).pipe(rename, name)
    117 else:
    118     raise ValueError(f"unknown datastructure:\n{obj}")

File ~/git/xarray-safe-rcm/safe_rcm/product/transformers.py:209, in extract_nested_array(obj, dims)
    200     dims = ["$"]
    202 coords = itemmap(
    203     lambda it: (it[0], to_variable_tuple(*it, dims=dims)),
    204     indexes,
    205 )
    207 arr = xr.DataArray(
    208     data=preprocessed_data["$"],
--> 209     attrs=valmap(first, attrs_),
    210     dims=dims,
    211     coords=coords,
    212 )
    213 if originally_stacked:
    214     return arr

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:178, in cytoolz.dicttoolz.valmap()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/dicttoolz.pyx:203, in cytoolz.dicttoolz.valmap()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/itertoolz.pyx:549, in cytoolz.itertoolz.first()

File /home1/datawork/vlheureu/conda-env/xsar_N3/lib/python3.10/site-packages/cytoolz/itertoolz.pyx:556, in cytoolz.itertoolz.first()

TypeError: iteration over a 0-d array
vincelhx commented 1 month ago

also an error with this file RCM3_OK2472936_PK2473744_2_5MCP22_20230311_154345_CH_CV_GRD