sertit / eoreader

Remote-sensing opensource python library reading optical and SAR sensors, loading and stacking bands, clouds, DEM and spectral indices in a sensor-agnostic way.
https://eoreader.readthedocs.io/en/latest/
Apache License 2.0
271 stars 22 forks source link

Avoid KeyError if a product metadata doesn't have a namespace #151

Closed jteulade closed 4 weeks ago

jteulade commented 4 weeks ago

For this product: s3://sertit-rms2/archives/rms/2013/R0009_CHARTE452_Senegal_Inondations_2013/images_crise/Dakar/RISAT-1/133330111.zip We have this error

Traceback (most recent call last):
  File "E:\JTeulade\repositories\stac\scripts\test.py", line 24, in <module>
    func()
  File "E:\JTeulade\repositories\stac\libs\sertit-utils\sertit\s3.py", line 99, in s3_env_wrapper
    return function(*_args, **_kwargs)
  File "E:\JTeulade\repositories\stac\scripts\test.py", line 16, in func
    prod: Product = Reader().open(tata, remove_tmp=True, method=CheckMethod.MTD)
  File "e:\jteulade\repositories\eoreader\eoreader\reader.py", line 528, in open
    prod = self._open_path(
  File "e:\jteulade\repositories\eoreader\eoreader\reader.py", line 690, in _open_path
    prod = create_product(
  File "e:\jteulade\repositories\eoreader\eoreader\reader.py", line 957, in create_product
    prod = class_(
  File "e:\jteulade\repositories\eoreader\eoreader\products\sar\sar_product.py", line 200, in __init__
    super().__init__(product_path, archive_path, output_path, remove_tmp, **kwargs)
  File "e:\jteulade\repositories\eoreader\eoreader\products\product.py", line 241, in __init__
    self._pre_init(**kwargs)
  File "e:\jteulade\repositories\eoreader\eoreader\products\sar\rs2_product.py", line 382, in _pre_init
    namespace = nsmap[None]
KeyError: None

We reuse code from iceye product here