def test_reduce_bands_logical_ops(): input = create_spacetime_layer_singleband() input = gps.Pyramid({0: input}) imagecollection = GeopysparkDataCube(pyramid=input) visitor = GeotrellisTileProcessGraphVisitor() graph = { "eq": { "arguments": { "x": { "from_argument": "data" }, "y": 10 }, "process_id": "eq", }, "not": { "arguments": { "expression": { "from_node": "eq" } }, "process_id": "not", "result": True } } visitor.accept_process_graph(graph) stitched = imagecollection.reduce_bands( visitor).pyramid.levels[0].to_spatial_layer().stitch() print(stitched) assert 0 == stitched.cells[0][0][0]
def test_reduce_bands_arrayelement(): input = create_spacetime_layer() input = gps.Pyramid({0: input}) imagecollection = GeopysparkDataCube(pyramid=input) visitor = GeotrellisTileProcessGraphVisitor() graph = { "arrayelement3": { "process_id": "array_element", "result": False, "arguments": { "data": { "from_argument": "data" }, "index": 0 } }, "subtract1": { "process_id": "subtract", "result": False, "arguments": { "data": [{ "from_node": "arrayelement1" }, { "from_node": "arrayelement2" }] } }, "arrayelement4": { "process_id": "array_element", "result": False, "arguments": { "data": { "from_argument": "data" }, "index": 1 } }, "arrayelement1": { "process_id": "array_element", "result": False, "arguments": { "data": { "from_argument": "data" }, "index": 0 } }, "divide1": { "process_id": "divide", "result": True, "arguments": { "data": [{ "from_node": "sum1" }, { "from_node": "subtract1" }] } }, "sum1": { "process_id": "sum", "result": False, "arguments": { "data": [{ "from_node": "arrayelement3" }, { "from_node": "arrayelement4" }] } }, "arrayelement2": { "process_id": "array_element", "result": False, "arguments": { "data": { "from_argument": "data" }, "index": 1 } } } visitor.accept_process_graph(graph) stitched = imagecollection.reduce_bands( visitor).pyramid.levels[0].to_spatial_layer().stitch() print(stitched) assert 3.0 == stitched.cells[0][0][0]