# HG changeset patch # User ecology # Date 1729722912 0 # Node ID 84557c0b3eef24437a044e6be308eb8a2c9ab0eb # Parent 0117fab93b8767cd13857d555948d7633bc94875 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85 diff -r 0117fab93b87 -r 84557c0b3eef aquainfra_ogc_api_processes.R --- a/aquainfra_ogc_api_processes.R Mon Oct 14 12:22:48 2024 +0000 +++ b/aquainfra_ogc_api_processes.R Wed Oct 23 22:35:12 2024 +0000 @@ -5,9 +5,7 @@ cat("start generic wrapper service \n") remove_null_values <- function(x) { - # Check if the input is a list if (is.list(x)) { - # Remove NULL values and apply the function recursively to sublists x <- lapply(x, remove_null_values) x <- x[!sapply(x, is.null)] } @@ -18,11 +16,10 @@ con <- file("inputs.json", "r") lines <- readLines(con) close(con) - + json_string <- paste(lines, collapse = "\n") json_data <- fromJSON(json_string) - - # Remove NULL values from json_data + cleaned_json_data <- remove_null_values(json_data) return(cleaned_json_data$conditional_process) } @@ -38,9 +35,10 @@ getOutputs <- function(inputs, output, server) { url <- - paste(paste(server, "/processes/", sep = ""), + paste(paste(server, "processes/", sep = ""), inputs$select_process, sep = "") + print(url) request <- request(url) response <- req_perform(request) responseBody <- parseResponseBody(response$body) @@ -81,10 +79,6 @@ cat("\n Process executed") cat("\n status: ", response$status_code) - #if ( process == "barplot-trend-results") { - # process = "batplot-trend-results" - #} - #href <- parseResponseBody(response$body)$outputs[[gsub("-", "_", process)]]$href jobId <- parseResponseBody(response$body)$jobID return(jobId) @@ -115,20 +109,14 @@ return(response) } -# Recursive function to search for href in a nested list findHref <- function(obj) { - hrefs <- c() # Initialize an empty vector to store hrefs - + hrefs <- c() if (is.list(obj)) { - # If the object is a list, loop through its elements for (name in names(obj)) { element <- obj[[name]] - if (is.list(element)) { - # Recursively search if the element is another list hrefs <- c(hrefs, findHref(element)) } else if (name == "href") { - # If the element has a name "href", capture its value hrefs <- c(hrefs, element) } } @@ -154,16 +142,11 @@ if (result$status_code == 200) { resultBody <- parseResponseBody(result$body) print(resultBody) - - # Call the recursive function to find all hrefs hrefs <- findHref(resultBody) if (length(hrefs) > 0) { - # Collapse the URLs with a newline urls_with_newline <- paste(hrefs, collapse = "\n") print(urls_with_newline) - - # Write the URLs to a file con <- file(outputData, "w") writeLines(urls_with_newline, con = con) close(con) @@ -190,8 +173,6 @@ } } - - saveResult <- function(href, outputData) { con <- file(outputData, "w") writeLines(href, con = con) @@ -206,7 +187,6 @@ print("--> Retrieve parameters") inputParameters <- getParameters() -#print(inputParameters) print("--> Parameters retrieved") args <- commandArgs(trailingOnly = TRUE) @@ -217,54 +197,24 @@ print("--> Outputs retrieved") print("--> Parse inputs") + convertedKeys <- c() + for (key in names(inputParameters)) { if (is.character(inputParameters[[key]]) && (endsWith(inputParameters[[key]], ".dat") || endsWith(inputParameters[[key]], ".txt"))) { con <- file(inputParameters[[key]], "r") url_list <- list() - #while (length(line <- readLines(con, n = 1)) > 0) { - # if (is_url(line)) { - # url_list <- c(url_list, list(list(href = trimws(line)))) - # } - #} + con <- file(inputParameters[[key]], "r") lines <- readLines(con) - print("--------------------------------------------------------------------1") print(length(lines)) close(con) - if (!length(lines) > 1 && endsWith(lines, ".jp2") && startsWith(lines, "https")) { - print("--------------------------------------------------------------------2") - tmp <- list() - tmp$href <- lines - tmp$type <- "image/jp2" - inputParameters[[key]] <- tmp - } - else if (!length(lines) > 1 && endsWith(lines, ".zip") && startsWith(lines, "https")) { - print("--------------------------------------------------------------------3") - json_string <- paste(lines, collapse = "\n") - inputParameters[[key]] <- json_string - } else if (!length(lines) > 1 && (endsWith(lines, ".xlsx") || endsWith(lines, ".csv") || grepl("f=csv", lines)) && startsWith(lines, "https")) { - print("--------------------------------------------------------------------4") - json_string <- paste(lines, collapse = "\n") - inputParameters[[key]] <- json_string - } else if (inputParameters$select_process == "plot-image" || - inputParameters$select_process == "reproject-image") { - print("--------------------------------------------------------------------5") - tmp <- list() - tmp$href <- lines - tmp$type <- "image/tiff; application=geotiff" - if (inputParameters$select_process == "reproject-image") { - tmp$type <- "image/tiff; subtype=geotiff" - } - inputParameters[[key]] <- tmp - } else { - print("-----------------------------------6") - json_string <- paste(lines, collapse = "\n") - json_data <- fromJSON(json_string) - inputParameters[[key]] <- json_data - } + + json_string <- paste(lines, collapse = "\n") + inputParameters[[key]] <- json_string + convertedKeys <- append(convertedKeys, key) } else if (grepl("_Array_", key)) { @@ -296,24 +246,15 @@ } inputParameters[[key]] <- convertedValues - print("-------------------------") - print(convertedValues) - print("-------------------------") convertedKeys <- append(convertedKeys, convertedKey) } else { - print("-------------------------") - print(key) - print(inputParameters[[key]]) if (!is.null(inputParameters[[key]])) { convertedKeys <- append(convertedKeys, key) } - print("-------------------------") - } } print(inputParameters) names(inputParameters) <- convertedKeys -#print(inputParameters) print("--> Inputs parsed") print("--> Prepare process execution") diff -r 0117fab93b87 -r 84557c0b3eef aquainfra_ogc_api_processes.xml --- a/aquainfra_ogc_api_processes.xml Mon Oct 14 12:22:48 2024 +0000 +++ b/aquainfra_ogc_api_processes.xml Wed Oct 23 22:35:12 2024 +0000 @@ -1,11 +1,11 @@ - + macros.xml - + - + barplot-trend-results: Visualisation of statistical analysis results + - - + + - + - + ^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3][0-9]:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3][0-9](,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3][0-9]:(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3][0-9])*$ @@ -65,36 +66,71 @@ - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + diff -r 0117fab93b87 -r 84557c0b3eef test-data/points_att_polygon_test_input_3.txt --- a/test-data/points_att_polygon_test_input_3.txt Mon Oct 14 12:22:48 2024 +0000 +++ b/test-data/points_att_polygon_test_input_3.txt Wed Oct 23 22:35:12 2024 +0000 @@ -1,1 +1,1 @@ -https://aqua.igb-berlin.de/download/data_merged_with_regions-06550086-857a-11ef-8e41-e14810fdd7f8.csv \ No newline at end of file +https://aqua.igb-berlin.de/download/data_merged_with_regions-668a3c72-9039-11ef-aad4-8935a9f30073.csv \ No newline at end of file