inst/doc/openeo-05-process_graph_building_application.R

## -----------------------------------------------------------------------------
library(openeo)

## ---- include=FALSE-----------------------------------------------------------
openeo:::demo_processes()

## -----------------------------------------------------------------------------
p = processes()

evi = function(data,context) {
  B08 = data[1]
  B04 = data[2]
  B02 = data[3]
  return((2.5 * (B08 - B04)) / sum(B08, 6 * B04, -7.5 * B02, 1))
}

## -----------------------------------------------------------------------------
as(evi,"Graph")

## ---- eval=FALSE--------------------------------------------------------------
#  library(sf)
#  
#  p = processes()
#  
#  bbox = st_bbox(c(xmin=16.1,
#                   xmax=16.6,
#                   ymax=48.6,
#                   ymin= 47.2), crs = 4326)
#  
#  data = p$load_collection(id = "SENTINEL2_L2A_SENTINELHUB",
#                           spatial_extent = bbox,
#                           temporal_extent = list(
#                             "2018-04-01", "2018-05-01"
#                           ),
#                           bands=list("B08","B04","B02"))

## ---- eval=FALSE--------------------------------------------------------------
#  spectral_reduce = p$reduce_dimension(data = data, dimension = "bands",reducer = evi)

## ---- eval=FALSE--------------------------------------------------------------
#  temporal_reduce = p$reduce_dimension(data=spectral_reduce,dimension = "t", reducer = function(x,y){
#    min(x)
#  })

## ---- eval=FALSE--------------------------------------------------------------
#  apply_linear_transform = p$apply(data=temporal_reduce,process = function(value,...) {
#    p$linear_scale_range(x = value,
#                             inputMin = -1,
#                             inputMax = 1,
#                             outputMin = 0,
#                             outputMax = 255)
#  })

## ---- eval=FALSE--------------------------------------------------------------
#  result = p$save_result(data=apply_linear_transform,format="PNG")

## ---- eval=FALSE--------------------------------------------------------------
#  library(magrittr)
#  
#  p = processes()
#  
#  result2 = p$load_collection(id = "SENTINEL2_L2A_SENTINELHUB",
#                           spatial_extent = bbox,
#                           temporal_extent = list(
#                             "2018-04-01", "2018-05-01"
#                           ),
#                           bands=list("B08","B04","B02")) %>%
#    p$reduce_dimension(dimension = "bands",reducer = evi) %>%
#    p$reduce_dimension(dimension = "t", reducer = function(x,y){
#      min(x)
#    }) %>%
#    p$apply(process = function(value,...) {
#      p$linear_scale_range(x = value,
#                               inputMin = -1,
#                               inputMax = 1,
#                               outputMin = 0,
#                               outputMax = 255)
#    }) %>%
#    p$save_result(format="PNG")
#  

## ---- paged.print=FALSE, eval=FALSE-------------------------------------------
#  list_user_processes()

## ---- eval=FALSE--------------------------------------------------------------
#  validate_process(graph = evi)

## ---- eval=FALSE--------------------------------------------------------------
#  graph_id = create_user_process(graph = evi, id = "evi", summary = "EVI calculation on an array with 3 bands", description = "The EVI calculation is based on an array of 3 band values: blue, red, nir. In that order.")

## ---- paged.print=FALSE, eval=FALSE-------------------------------------------
#  list_user_processes()

## ---- paged.print=FALSE, eval=FALSE-------------------------------------------
#  evi_process = describe_user_process(id = "evi")
#  class(evi_process)

## ---- paged.print = FALSE, eval=FALSE-----------------------------------------
#  evi_process

## ---- eval=FALSE--------------------------------------------------------------
#  evi_graph = parse_graph(json = evi_process) # or use as(evi_process,"Graph")

## ---- eval=FALSE--------------------------------------------------------------
#  min_evi_graph_id = create_user_process( graph = result, id = "min_evi",summary="Minimum EVI calculation on Sentinel-2", description = "A preset process graph that will calculate the minimum NDVI on Sentinel-2 data, performs a linear scale into the value interval 0 to 255 in order to store the results as PNG.")

## ---- paged.print = FALSE, eval=FALSE-----------------------------------------
#  list_user_processes()

## ---- eval=FALSE--------------------------------------------------------------
#  delete_user_process(id = min_evi_graph_id)

## ---- eval=FALSE--------------------------------------------------------------
#  p = processes()
#  udps = user_processes()

## ---- eval=FALSE--------------------------------------------------------------
#  spectral_reduce$parameters$reducer = function(x,context) {
#    udps$evi(x)
#  }
#  
#  min_evi_graph = as(result,"Process")

Try the openeo package in your browser

Any scripts or data that you put into this service are public.

openeo documentation built on Nov. 17, 2022, 5:07 p.m.