cate icon indicating copy to clipboard operation
cate copied to clipboard

Cannot perform coregistration with Land Cover dataset

Open HelenClifton opened this issue 7 years ago • 3 comments

Expected behavior

@forman @JanisGailis Expect to be able to coregister Land Cover dataset with other datasets

Actual behavior

1. Using Land Cover as master dataset

Invalid input message is displayed: Oops, cate couldn't carry out the request Executing operation "coregister" because: The master dataset grid is not equidistant, can not perform coregistration

Example traceback :

Traceback (most recent call last): File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\util\web\jsonrpchandler.py", line 209, in send_service_method_result result = future.result() File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures_base.py", line 425, in result return self.__get_result() File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures_base.py", line 384, in __get_result raise self._exception File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures\thread.py", line 56, in run result = self.fn(*self.args, **self.kwargs) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\util\web\jsonrpchandler.py", line 306, in call_service_method result = method(*method_params, monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\webapi\websocket.py", line 292, in set_workspace_resource monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\wsmanag.py", line 320, in set_workspace_resource workspace.execute_workflow(res_name=res_name, monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workspace.py", line 662, in execute_workflow self.workflow.invoke_steps(steps, context=self._new_context(), monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 632, in invoke_steps step.invoke(context=context, monitor=monitor.child(work=1)) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 318, in invoke self._invoke_impl(_new_context(context, step=self), monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 980, in _invoke_impl return_value = self._op(monitor=monitor, **input_values) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\op.py", line 216, in call return_value = self._wrapped_op(**input_values) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\ops\coregistration.py", line 129, in coregister ' coregistration'.format(array[0])) cate.core.types.ValidationError: The master dataset grid is not equidistant, can not perform coregistration

2. Using Land Cover as slave dataset

Invalid input message is displayed: Oops, cate couldn't carry out the request Executing operation "coregister" because: The slave dataset grid is not equidistant, can not perform coregistration

Example traceback :

Traceback (most recent call last): File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\util\web\jsonrpchandler.py", line 209, in send_service_method_result result = future.result() File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures_base.py", line 425, in result return self.__get_result() File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures_base.py", line 384, in __get_result raise self._exception File "C:\Users\HClifton\cate-2.0.0.dev20\lib\concurrent\futures\thread.py", line 56, in run result = self.fn(*self.args, **self.kwargs) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\util\web\jsonrpchandler.py", line 306, in call_service_method result = method(*method_params, monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\webapi\websocket.py", line 292, in set_workspace_resource monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\wsmanag.py", line 320, in set_workspace_resource workspace.execute_workflow(res_name=res_name, monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workspace.py", line 662, in execute_workflow self.workflow.invoke_steps(steps, context=self._new_context(), monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 632, in invoke_steps step.invoke(context=context, monitor=monitor.child(work=1)) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 318, in invoke self._invoke_impl(_new_context(context, step=self), monitor=monitor) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\workflow.py", line 980, in _invoke_impl return_value = self._op(monitor=monitor, **input_values) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\core\op.py", line 216, in call return_value = self._wrapped_op(**input_values) File "C:\Users\HClifton\cate-2.0.0.dev20\lib\site-packages\cate\ops\coregistration.py", line 129, in coregister ' coregistration'.format(array[0])) cate.core.types.ValidationError: The slave dataset grid is not equidistant, can not perform coregistration

Steps to reproduce the problem

  1. Download / open esacci.LC.5-yrs.L4.LCCS.multi-sensor.multi-platform.Map.1-6-1.r1
  2. Download / open other dataset
  3. Select coregistration operation, select master and slave datasets and use default parameters.

Specifications

cate-2.0.0-dev.20 Windows 7 Professional

HelenClifton avatar Nov 01 '18 15:11 HelenClifton

@JanisGailis the LC dataset should be equirectangular WGS-84, so it should be equidistant.

forman avatar Nov 30 '18 10:11 forman

Yes, it is, I checked this quickly. This seems to be due to floating point precision, a single LC pixel is a rounding error for the other dataset. It should be possible to solve this by checking for lat/lon lengths and doing things differently if one of the datasets is on a very fine grid.

JanisGailis avatar Nov 30 '18 10:11 JanisGailis

It's a shame that we got a working LC dataset into the portal and started testing with it so late in the process.

JanisGailis avatar Nov 30 '18 10:11 JanisGailis