Open-EO / openeo-geotrellis-extensions

Java/Scala extensions for Geotrellis, for use with OpenEO GeoPySpark backend.
Apache License 2.0
5 stars 3 forks source link

bug in resample_cube_spatial #209

Closed jdries closed 10 months ago

jdries commented 10 months ago

Error below, it seems to be related to this weird keybounds: Applying callback on time dimension of cube with partitioner: SpacePartitioner(KeyBounds(SpaceTimeKey(6,56,1519862400000),SpaceTimeKey(71,37,1540080000000))) - index: SparseSpaceTimePartitioner 3672 true and metadata TileLayerMetadata(uint16ud65535,LayoutDefinition(Extent(590610.0, 5551600.0, 693010.0, 5684720.0),CellSize(10.0,10.0),80x104 tiles,10240x13312 pixels),Extent(599493.3222276787, 5563005.311135495, 681626.4326507011, 5671718.643621054),EPSG:32631,KeyBounds(SpaceTimeKey(6,56,1519862400000),SpaceTimeKey(71,37,1540080000000))) j-319a65bac4754edebac92e0469304c38

 args = {name: convert_node(expr, env=env) for (name, expr) in sorted(args.items())}
  File "/opt/venv/lib64/python3.8/site-packages/openeo_driver/ProcessGraphDeserializer.py", line 1472, in <dictcomp>
    args = {name: convert_node(expr, env=env) for (name, expr) in sorted(args.items())}
  File "/opt/venv/lib64/python3.8/site-packages/openeo_driver/ProcessGraphDeserializer.py", line 380, in convert_node
    return convert_node(processGraph['node'], env=env)
  File "/opt/venv/lib64/python3.8/site-packages/openeo_driver/ProcessGraphDeserializer.py", line 368, in convert_node
    process_result = apply_process(process_id=process_id, args=processGraph.get('arguments', {}),
  File "/opt/venv/lib64/python3.8/site-packages/openeo_driver/ProcessGraphDeserializer.py", line 1504, in apply_process
    return process_function(args=ProcessArgs(args, process_id=process_id), env=env)
  File "/opt/venv/lib64/python3.8/site-packages/openeo_driver/ProcessGraphDeserializer.py", line 1274, in resample_cube_spatial
    return image_collection.resample_cube_spatial(target=target_image_collection, method=method)
  File "/opt/venv/lib64/python3.8/site-packages/openeogeotrellis/geopysparkdatacube.py", line 1174, in resample_cube_spatial
    level_rdd_tuple = get_jvm().org.openeo.geotrellis.OpenEOProcesses().resampleCubeSpatial(max_level.srdd.rdd(),target_max_level.srdd.rdd(),resample_method)
  File "/opt/spark3_4_0/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py", line 1322, in __call__
    return_value = get_return_value(
  File "/opt/spark3_4_0/python/lib/py4j-0.10.9.7-src.zip/py4j/protocol.py", line 326, in get_return_value
    raise Py4JJavaError(
py4j.protocol.Py4JJavaError: An error occurred while calling o13463.resampleCubeSpatial.
: java.lang.IllegalArgumentException: requirement failed: start: 56 >= end: 38
    at scala.Predef$.require(Predef.scala:281)
    at geotrellis.raster.package$$anon$2.<init>(package.scala:197)
    at geotrellis.raster.package$.integralIterator$mIc$sp(package.scala:195)
    at geotrellis.raster.GridBounds$mcI$sp.split$mcI$sp(GridBounds.scala:242)
    at geotrellis.spark.reproject.TileRDDReproject$.matchReprojectRasterExtent(TileRDDReproject.scala:350)
    at geotrellis.spark.reproject.TileRDDReproject$.apply(TileRDDReproject.scala:80)
    at geotrellis.spark.reproject.TileRDDReproject$.apply(TileRDDReproject.scala:322)
    at geotrellis.spark.reproject.TileRDDReprojectMethods.reproject(TileRDDReprojectMethods.scala:83)
    at org.openeo.geotrellis.OpenEOProcesses.resampleCubeSpatial(OpenEOProcesses.scala:663)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:374)
    at py4j.Gateway.invoke(Gateway.java:282)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
    at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
    at java.base/java.lang.Thread.run(Thread.java:829)
jdries commented 10 months ago

got fixed in aggregate_temporal