-
Notifications
You must be signed in to change notification settings - Fork 17
Closed
Labels
Feature RequestPossible Features to add to the clientPossible Features to add to the clientR4OpenEO Feature Specifcationhighready
Milestone
Description
| Title | Prevent user from seeing files upon save_result |
|---|---|
| Date | 2019-10-30 |
| Issue | #39 |
| Category | Usability |
| Description | The process of downloading and manually loading the results from openEO backends could be streamlined by taking this complexity and source of error away from the user. So that he can stay in the R-Environment work progress also for following analysis. |
| Dependencies | Standardized result naming and metadata on openEO backends following the STAC catalogue. |
| Links | Facilitates also local prototyping |
| Priority | High |
| Impact | High |
Hi Florian,
during two presentations of the r-client there were requests of the potential users to implement a possibility to read the results of a process graph directly into an r variable.
We had talked about this before and with your hints I came up with a very simple use case. It is viable for the format json and one layer.
This cope block is an example request...
# establish the connection
driver_url = "https://openeo.eurac.edu"
user = "guest"
password = "guest_123"
conn = connect(host = driver_url,
user = user,
password = password,
login_type = "basic")
# build process graph
graph = conn %>% process_graph_builder()
# subset options
aoi = list(west = 11.63, south = 46.532, east = 11.631, north = 46.5325)
timespan = c("2016-07-01T00:00:00.000Z", "2016-07-15T00:00:00.000Z")
bands = c("B04", "B08")
# subset
data1 = graph$load_collection(id = graph$data$`SAO_S2_ST_DEM_BRDF_10m_L2A`,
spatial_extent = aoi,
temporal_extent = timespan,
bands = bands)
# filter bands
b_red = graph$filter_bands(data = data1,bands = bands[1])
b_nir = graph$filter_bands(data = data1,bands = bands[2])
# calc ndvi
ndvi = graph$normalized_difference(band1 = b_red, band2 = b_nir)
# get maximum value in timespan
reducer = graph$reduce(data = ndvi, dimension = "temporal")
cb_graph = conn %>% callback(reducer, parameter = "reducer", choice_index = 1)
cb_graph$max(data = cb_graph$data$data) %>% cb_graph$setFinalNode()
# set final node of the graph
graph$save_result(data = reducer, format = "json") %>% # "netcdf" "GTiff"
graph$setFinalNode()
Here is the part of how to read the result directly into r...
tmp = openeo::compute_result(con = conn, graph = graph, format = "json")
tmp_char = rawToChar(tmp)
tmp_json = jsonlite::fromJSON(tmp_char)
Is there a senseful way to generalize this idea so that it works for all formats and also multilayer objects? Concerning the size of the result we could implement a limit, so that r doesen't run into problems with too large results.
Best, Peter
Metadata
Metadata
Assignees
Labels
Feature RequestPossible Features to add to the clientPossible Features to add to the clientR4OpenEO Feature Specifcationhighready