Conversation
Pull Request Test Coverage Report for Build 1914911059
💛 - Coveralls |
# Conflicts: # services/src/error.rs
Co-authored-by: Christian Beilschmidt <fyaa@ntacity.de>
# Conflicts: # operators/src/error.rs # services/src/pro/contexts/in_memory.rs
This reverts commit fe648d3.
Restricted Hash and Eq implementation to concrete Key type
# Conflicts: # operators/src/error.rs
… state, i.e., only plots use the executor);
# Conflicts: # services/src/error.rs
…r FeatureCollectionRows to allow spatio-temporal filtering;
…atic result stream. This commit contains implementations for VectorQueryProcessor and RasterQueryProcessor.
# Conflicts: # services/src/error.rs
ChristianBeilschmidt
left a comment
There was a problem hiding this comment.
It seems to work 😄
2x NDVI Raster
2022-02-17T08:29:49.881696Z DEBUG geoengine_operators::pro::executor: Starting new computation for request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 33.75, y: 0.0 }, lower_right_coordinate: Coordinate2D { x: 45.0, y: -11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:29:49.881885Z DEBUG geoengine_operators::pro::executor: Joining running computation for request. New: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 33.75, y: 0.0 }, lower_right_coordinate: Coordinate2D { x: 45.0, y: -11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }, Running: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 33.75, y: 0.0 }, lower_right_coordinate: Coordinate2D { x: 45.0, y: -11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:29:49.884395Z DEBUG geoengine_operators::pro::executor: Computation finished. Notifying consumer streams. Request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 33.75, y: 0.0 }, lower_right_coordinate: Coordinate2D { x: 45.0, y: -11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
Raster-Vector-Join of NDVI and Natural Earth Points, then 2x Histogram:
2022-02-17T08:34:16.807763Z DEBUG geoengine_operators::pro::executor: Starting new computation for request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 45.0, y: 22.5 }, lower_right_coordinate: Coordinate2D { x: 56.25, y: 11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:34:16.809175Z DEBUG geoengine_operators::pro::executor: Stream progressed too far or results do not cover requested result. Starting new computation for request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 33.75, y: 11.25 }, lower_right_coordinate: Coordinate2D { x: 45.0, y: 0.0 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:34:16.809332Z DEBUG geoengine_operators::pro::executor: Stream progressed too far or results do not cover requested result. Starting new computation for request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 45.0, y: 45.0 }, lower_right_coordinate: Coordinate2D { x: 56.25, y: 33.75 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:34:16.809545Z DEBUG geoengine_operators::pro::executor: Stream progressed too far or results do not cover requested result. Starting new computation for request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 0.0, y: 56.25 }, lower_right_coordinate: Coordinate2D { x: 11.25, y: 45.0 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
2022-02-17T08:34:16.810209Z DEBUG geoengine_operators::pro::executor: Computation finished. Notifying consumer streams. Request: RasterTaskDescription { id: WorkflowId(8df9b0e6-e4b4-586e-90a3-6cf0f08c4e62), spatial_bounds: SpatialPartition2D { upper_left_coordinate: Coordinate2D { x: 45.0, y: 22.5 }, lower_right_coordinate: Coordinate2D { x: 56.25, y: 11.25 } }, temporal_bounds: TimeInterval [1396353600000, 1396353600000), _p: PhantomData }
Maybe we need some experiments when it joins and when this does not work. Maybe chunk sizes for vector data are too small 🤷 .
| fn slice_result(&self, result: &Self::ResultType) -> Option<Self::ResultType> { | ||
| Some(match result { | ||
| Ok(wpo) => Ok(wpo.clone()), | ||
| Err(_e) => Err(crate::error::Error::NotYetImplemented), |
There was a problem hiding this comment.
What would be necessary to do in case of an error?
There was a problem hiding this comment.
The problem here is that our Error type is not cloneable. So I cannot return the original error received from the computation.
Either we find a way to make our error cloneable (which is impossible due to wrapped errors I think), or we introduce a new error type that contains e.g, a meaningful message .
There was a problem hiding this comment.
Yeah, I guess this is a huge topic to discuss.
This is a first draft of the executor integration. I implemented a noop executor that is used when pro-feature is inactive.
There is a sample application in the "plots" endpoint.