xcube-dev / xcube-cci

An xcube plugin to allow generating data cubes from the ESA CCI Open Data Portal
MIT License
2 stars 0 forks source link

"esacci.LAKES.day.L3S.LK_PRODUCTS.multi-sensor.multi-platform.MERGED.2-0-1.r1" leads to crs is invalid: Invalid projection: latitude_longitude: (Internal Proj Error: proj_create: unrecognized format / unknown name) #59

Closed AliceBalfanz closed 2 years ago

AliceBalfanz commented 2 years ago

"esacci.LAKES.day.L3S.LK_PRODUCTS.multi-sensor.multi-platform.MERGED.2-0-1.r1" leads to crs is invalid: Invalid projection: latitude_longitude: (Internal Proj Error: proj_create: unrecognized format / unknown name)

with xcube 0.11.1 (in nb), xcube 0.10.1 in generator

from xcube.core.gen2 import InputConfig
from xcube.core.gen2 import CubeConfig
from xcube.core.gen2 import OutputConfig
from xcube.core.gen2 import CubeGeneratorRequest
from xcube.core.gen2 import CubeGenerator
from xcube.core.gen2 import ServiceConfig
from xcube.core.gen2 import CubeGeneratorError
from xcube.core.store import new_data_store

# utilities
import os
import xcube
import IPython.display
import shapely.geometry
%matplotlib inline
service_config_json = {
  "endpoint_url": os.getenv("XCUBE_GEN_API_SERVER_URL") + "/api/v2", 
  "client_id": os.getenv("XCUBE_GEN_AUTH_CLIENT_ID"), 
  "client_secret": os.getenv("XCUBE_GEN_AUTH_CLIENT_SECRET") 
}

service_config = ServiceConfig.from_dict(service_config_json)

input_config = InputConfig(
    store_id="@cciodp",
    data_id="esacci.LAKES.day.L3S.LK_PRODUCTS.multi-sensor.multi-platform.MERGED.2-0-1.r1",
)

cube_config = CubeConfig(
   variable_names=["LSWT"],
   bbox = [-180, -90, 180, 90],      
   time_range=["2008-06-11", "2008-07-01"],
   time_period = "1D",
   chunks= {"time": 1,
             "lat": 1024,
            "lon": 1024
           }
)

output_config = OutputConfig(
    store_id="@eurodatacube_scratch",
    replace=True,
    data_id="cci-lakes.zarr"
)
request = CubeGeneratorRequest(
    input_config=input_config,
    cube_config=cube_config,
    output_config=output_config
)

generator_service = CubeGenerator.new(service_config=service_config, verbosity=1)

generator_service.get_cube_info(request)

image

logs from the pod:

$ kubectl logs ad63ccfbbbf39389de5bdb7871fc7e70a-32eb6c1e-28b0-4991-6sqqs -n xc-gen
2022-05-04 13:18:08 XCUBE GEN START
/opt/conda/envs/xcube/lib/python3.9/site-packages/xcube_cci/cciodp.py:462: UserWarning: Could not convert grid mapping "latitude_longitude" into CRS
  warnings.warn(f'Could not convert grid mapping '
Error: crs is invalid: Invalid projection: latitude_longitude: (Internal Proj Error: proj_create: unrecognized format / unknown name)
Cube generator request loaded from /data/user-code/ad63ccfbbbf39389de5bdb7871fc7e70a-32eb6c1e-28b0-4991.yaml.
Result written to /data/results/ad63ccfbbbf39389de5bdb7871fc7e70a-32eb6c1e-28b0-4991.json
Traceback (most recent call last):
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/xcube-0.10.2-py3.9.egg/xcube/cli/main.py", line 66, in main
    exit_code = cli.main(args=args, obj=ctx_obj, standalone_mode=False)
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/envs/xcube/lib/python3.9/site-packages/xcube-0.10.2-py3.9.egg/xcube/cli/gen2.py", line 174, in gen2
    raise click_error from error
click.exceptions.ClickException: crs is invalid: Invalid projection: latitude_longitude: (Internal Proj Error: proj_create: unrecognized format / unknown name)
TonioF commented 2 years ago

This issue is due to an error in the data. The CRS cannot be parsed properly, in consequence the crs is not determined. A workaround would be really ugly, so I'd like this to be fixed in the data.

AliceBalfanz commented 2 years ago

Ok, so closing this for now. The data provider is informed.