From 719f61452f63eedfcfe273034277dcfcfc78e11a Mon Sep 17 00:00:00 2001 From: eblondel Date: Thu, 9 Nov 2023 10:22:38 +0100 Subject: [PATCH] implement #374 --- DESCRIPTION | 4 +- NAMESPACE | 1 + R/geoflow_action.R | 8 +++ R/geoflow_data.R | 76 ++++++++++++++++++++- R/geoflow_data_accessor.R | 2 +- R/geoflow_entity.R | 72 ++++++++++++++++--- R/geoflow_utils.R | 49 +++++++++++++ README.md | 2 +- doc/metadata_data.md | 5 +- inst/actions/geosapi_publish_ogc_services.R | 5 +- man/describeOGCRelation.Rd | 32 +++++++++ man/geoflow_data.Rd | 61 +++++++++++++++++ 12 files changed, 302 insertions(+), 15 deletions(-) create mode 100644 man/describeOGCRelation.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 964d05ac..29ee87d0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: geoflow -Version: 0.20230906 -Date: 2023-09-06 +Version: 0.20231109 +Date: 2023-11-09 Title: Tools to Orchestrate Geospatial (Meta)Data Management Workflows and Manage FAIR Services Description: An engine to facilitate the orchestration and execution of metadata-driven data management workflows, in compliance with FAIR (Findable, Accessible, Interoperable and Reusable) data management principles. By means of a pivot metadata model, relying on the DublinCore standard (), diff --git a/NAMESPACE b/NAMESPACE index 60f18f70..8c4f9ec6 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,6 +5,7 @@ export(check_packages) export(closeWorkflow) export(create_geoflow_data_from_dbi) export(debugWorkflow) +export(describeOGCRelation) export(enrich_text_from_entity) export(executeWorkflow) export(executeWorkflowJob) diff --git a/R/geoflow_action.R b/R/geoflow_action.R index c2bf14a4..a0d39cf8 100644 --- a/R/geoflow_action.R +++ b/R/geoflow_action.R @@ -339,10 +339,18 @@ register_actions <- function(){ enrich_with_relations = list(def = "When enabled, enrichs entity with OGC relations", class = "logical", default = TRUE), enrich_with_relation_wms = list(def = "When enabled, enrichs entity with a base WMS link relation", class = "logical", default = TRUE), enrich_with_relation_wms_thumbnail = list(def = "When enabled, enrichs entity with a WMS-based thumbnail relation", class = "logical", default = TRUE), + describe_wms_relation_with_category = list(def = "When enabled, the WMS main relation description will be appended with the mention 'Map access'", class = "logical", default = TRUE), + describe_wms_relation_with_ogc_service_description = list(def = "When enabled, the WMS main relation description will be appended with the mention 'OGC Web Map Service (WMS)'", class = "logical", default = TRUE), enrich_with_relation_wfs = list(def = "When enabled, enrichs entity with a base WFS link relation (applies to 'vector' only)", class = "logical", default = TRUE), enrich_with_relation_wfs_download_links = list(def = "When enabled, enrichs entity with WFS format-specific (GML, GeoJSON, SHAPE-ZIP, CSV) links for download purpose (applies to 'vector' only).", class = "logical", default = TRUE), + describe_wfs_relation_with_category = list(def = "When enabled, the WFS relations description will be appended with the mention 'Data (features) access' for the base WFS link or 'Data download' in case of download links", class = "logical", default = TRUE), + describe_wfs_relation_with_ogc_service_description = list(def = "When enabled, the WFS relations description will be appended with the mention 'OGC Web Feature Service (WFS)'", class = "logical", default = TRUE), + describe_wfs_relation_with_format = list(def = "When enabled, the WFS download relations description will be appended with the mention of the download format", class = "logical", default = TRUE), enrich_with_relation_wcs = list(def = "When enabled, enrichs entity with a base WCS link relation (applies to 'grid' only)", class = "logical", default = TRUE), enrich_with_relation_wcs_download_links = list(def = "When enabled, enrichs entity with WCS format-specific links for download purpose (applies to 'grid' only). Only GeoTIFF at now.", class = "logical", default = TRUE), + describe_wcs_relation_with_category = list(def = "When enabled, the WCS relations description will be appended with the mention 'Data (coverage) access' for the base WCS link or 'Data download' in case of download links", class = "logical", default = TRUE), + describe_wcs_relation_with_ogc_service_description = list(def = "When enabled, the WCS relations description will be appended with the mention 'OGC Web Coverage Service (WCS)'", class = "logical", default = TRUE), + describe_wcs_relation_with_format = list(def = "When enabled, the WCS download relations description will be appended with the mention of the download format", class = "logical", default = TRUE), overwrite_upload = list(def = "When set to TRUE (default), in case a layer already exists, data upload will be re-done (if upload is set to true in entity Data).", class = "logical", default = TRUE), overwrite_layer = list(def = "When set to TRUE (default), in case a layer already exists, layer will be republished.", class = "logical", default = TRUE), overwrite = list(def = "When set to TRUE (default), in case a layer already exists, data upload will be re-done (if upload is set to true in entity Data), and layer will be re-published. This option preveals over options 'overwrite_upload' and 'overwrite_layer'", class = "logical", default = TRUE) diff --git a/R/geoflow_data.R b/R/geoflow_data.R index 4254daee..3059c531 100644 --- a/R/geoflow_data.R +++ b/R/geoflow_data.R @@ -63,6 +63,13 @@ geoflow_data <- R6Class("geoflow_data", store = NULL, #'@field layername layer name layername = NULL, + #'@field layertitle layer title + layertitle = NULL, + #'@field layerdesc layer description + layerdesc = NULL, + #'@field layeruri layer URI + #'layeruri layer URI + layeruri = NULL, #'@field styles styles styles = list(), #'@field styleUpload upload styles @@ -222,10 +229,21 @@ geoflow_data <- R6Class("geoflow_data", } #layername (if any) - #not mandatory, can be used for subset layers if(!is.null(data_props$layername)){ self$setLayername(data_props$layername$values[[1]]) } + #layertitle (if any) + if(!is.null(data_props$layertitle)){ + self$setLayertitle(data_props$layertitle$values[[1]]) + } + #layerdesc (if any) + if(!is.null(data_props$layerdesc)){ + self$setLayerdesc(data_props$layerdesc$values[[1]]) + } + #layeruri (if any) + if(!is.null(data_props$layeruri)){ + self$setLayeruri(data_props$layeruri$values[[1]]) + } #sql if(!is.null(data_props$sql)){ @@ -411,6 +429,8 @@ geoflow_data <- R6Class("geoflow_data", #datadir if(any(sapply(data_props, function(x){x$key=="dir"}))){ + accessor <- NULL + accessor_software <- NULL data_dir <- data_props$dir$values[[1]] self$dir <- data_dir ext_data_files <- list() @@ -470,7 +490,31 @@ geoflow_data <- R6Class("geoflow_data", ext_data_files <-ext_data_files[!endsWith(ext_data_files,".sld")] } + #detect presence of data files register + data_files_register <- NULL + data_files_register_file = ext_data_files[basename(ext_data_files) == "register.csv"] + if(length(data_files_register_file)>0){ + data_files_register_file = data_files_register_file[1] + target_register_file = data_files_register_file + if(!is.null(accessor)){ + target_register_file <- file.path(tempdir(), "register.csv") + accessor$download( + resource = data_files_register_file, + file = "register.csv", + path = target_register_file, + software = accessor_software, + unzip = FALSE + ) + } + data_files_register = as.data.frame(readr::read_csv(target_register_file)) + register_colnames = c("code","uri","label","definition") + if(!all(register_colnames %in% colnames(data_files_register))){ + stop("A data files register has been found but doesn't follow the standard structure (code,uri,label,definition)") + } + } + #geoflow build children + ext_data_files = ext_data_files[basename(ext_data_files) != "register.csv"] if(length(ext_data_files)>0){ self$data <- lapply(ext_data_files, function(data_file){ ext_data <- self$clone(deep = TRUE) #clone parent geoflow_data to inherit all needed properties @@ -497,6 +541,7 @@ geoflow_data <- R6Class("geoflow_data", ext_data$setSourceType(sourceType) } if((is.null(self$uploadType) || self$uploadType == "other") && !is.null(sourceType)){ + print(sourceType) if(sourceType != "zip") ext_data$setUploadType(sourceType) if(!is.null(ext_data$uploadType)) if(ext_data$uploadType == "geotiff") ext_data$setSpatialRepresentationType("grid") } @@ -507,6 +552,17 @@ geoflow_data <- R6Class("geoflow_data", if(!hasStoreDeclared) ext_data$setStore(ext_data_name) ext_data$setLayername(ext_data_name) + #inherit layer metadata from data file register (if any) + if(!is.null(data_files_register)){ + register_entry = data_files_register[data_files_register$code == ext_data_name,] + if(nrow(register_entry)>0){ + register_entry = register_entry[1L,] + if(!is.na(register_entry$uri)) ext_data$setLayeruri(register_entry$uri) + if(!is.na(register_entry$label)) ext_data$setLayertitle(register_entry$label) + if(!is.na(register_entry$definition)) ext_data$setLayerdesc(register_entry$definition) + } + } + if(self$styleUpload){ #we add all sld files to each child so they can be downloaded if needed if(length(ext_sld_files)>0) for(ext_sld_file in ext_sld_files) { @@ -718,6 +774,24 @@ geoflow_data <- R6Class("geoflow_data", self$layername <- layername }, + #'@description Sets a layer title, object of class \code{character}. If available, used as target layer title in SDI-related action. + #'@param layertitle layertitle + setLayertitle = function(layertitle){ + self$layertitle = layertitle + }, + + #'@description Sets a layer description, object of class \code{character}. If available, used as target layer description/abstract in SDI-related actions. + #'@param layerdesc layerdesc + setLayerdesc = function(layerdesc){ + self$layerdesc = layerdesc + }, + + #'@description Sets a layer URI, object of class \code{character}. If available, used as annotating URI for layer metadata (eg. in ISO 19115 action). + #'@param layeruri layeruri + setLayeruri = function(layeruri){ + self$layeruri = layeruri + }, + #'@description Adds a style name, object of class \code{character}. Used as layer style name(s) for GeoServer action. #'@param style style addStyle = function(style){ diff --git a/R/geoflow_data_accessor.R b/R/geoflow_data_accessor.R index 9b576049..de453747 100644 --- a/R/geoflow_data_accessor.R +++ b/R/geoflow_data_accessor.R @@ -384,7 +384,7 @@ register_data_accessors <- function(){ stop(errMsg) } cat(sprintf("[geoflow] OCS data accessor: Download data '%s' from '%s' to '%s'\n", file, resource, path)) - software$downloadFile(relPath = dirname(resource), filename = basename(resource), outdir = getwd()) + software$downloadFile(relPath = dirname(resource), filename = basename(resource), outdir = dirname(path)) if(unzip & endsWith(path, "zip")){ utils::unzip(zipfile = path, exdir = getwd(), unzip = getOption("unzip")) } diff --git a/R/geoflow_entity.R b/R/geoflow_entity.R index 5f823313..99135e9a 100644 --- a/R/geoflow_entity.R +++ b/R/geoflow_entity.R @@ -1485,7 +1485,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wms <- geoflow_relation$new() new_wms$setKey("wms") new_wms$setName(layername) - new_wms$setDescription(sprintf("%s - Map access - OGC Web Map Service (WMS)",layername)) + new_wms$setDescription( + describeOGCRelation( + self, data_object, service = "WMS", download = FALSE, format = NULL, + handle_category = geosapi_action$getOption("describe_wms_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wms_relation_with_ogc_service_description"), + handle_format = FALSE + ) + ) new_wms$setLink(sprintf("%s/%s/ows?service=WMS", geoserver_base_url, config$software$output$geoserver_config$properties$workspace)) @@ -1502,7 +1509,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wfs <- geoflow_relation$new() new_wfs$setKey("wfs") new_wfs$setName(layername) - new_wfs$setDescription(sprintf("%s - Data (features) access - OGC Web Feature Service (WFS)", layername)) + new_wfs$setDescription( + describeOGCRelation( + self, data_object, service = "WFS", download = FALSE, format = NULL, + handle_category = geosapi_action$getOption("describe_wfs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wfs_relation_with_ogc_service_description"), + handle_format = FALSE + ) + ) new_wfs$setLink(sprintf("%s/%s/ows?service=WFS", geoserver_base_url, config$software$output$geoserver_config$properties$workspace)) @@ -1517,7 +1531,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wfs_gml <- geoflow_relation$new() new_wfs_gml$setKey("download") new_wfs_gml$setName(layername) - new_wfs_gml$setDescription(sprintf("%s - Data download - OGC Web Feature Service (WFS) - GML format", layername)) + new_wfs_gml$setDescription( + describeOGCRelation( + self, data_object, service = "WFS", download = TRUE, format = "GML", + handle_category = geosapi_action$getOption("describe_wfs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wfs_relation_with_ogc_service_description"), + handle_format = geosapi_action$getOption("describe_wfs_relation_with_format") + ) + ) new_wfs_gml$setLink(sprintf("%s/%s/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=%s", geoserver_base_url, config$software$output$geoserver_config$properties$workspace, @@ -1528,7 +1549,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wfs_geojson <- geoflow_relation$new() new_wfs_geojson$setKey("download") new_wfs_geojson$setName(layername) - new_wfs_geojson$setDescription(sprintf("%s - Data download - OGC Web Feature Service (WFS) - GeoJSON format", layername)) + new_wfs_geojson$setDescription( + describeOGCRelation( + self, data_object, service = "WFS", download = TRUE, format = "GeoJSON", + handle_category = geosapi_action$getOption("describe_wfs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wfs_relation_with_ogc_service_description"), + handle_format = geosapi_action$getOption("describe_wfs_relation_with_format") + ) + ) new_wfs_geojson$setLink(sprintf("%s/%s/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=%s&outputFormat=json", geoserver_base_url, config$software$output$geoserver_config$properties$workspace, @@ -1539,7 +1567,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wfs_shp <- geoflow_relation$new() new_wfs_shp$setKey("download") new_wfs_shp$setName(layername) - new_wfs_shp$setDescription(sprintf("%s - Data download - OGC Web Feature Service (WFS) - ESRI Shapefile format", layername)) + new_wfs_shp$setDescription( + describeOGCRelation( + self, data_object, service = "WFS", download = TRUE, format = "ESRI Shapefile", + handle_category = geosapi_action$getOption("describe_wfs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wfs_relation_with_ogc_service_description"), + handle_format = geosapi_action$getOption("describe_wfs_relation_with_format") + ) + ) new_wfs_shp$setLink(sprintf("%s/%s/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=%s&outputFormat=SHAPE-ZIP", geoserver_base_url, config$software$output$geoserver_config$properties$workspace, @@ -1550,7 +1585,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wfs_csv <- geoflow_relation$new() new_wfs_csv$setKey("download") new_wfs_csv$setName(layername) - new_wfs_csv$setDescription(sprintf("%s - Data download - OGC Web Feature Service (WFS) - CSV format", layername)) + new_wfs_csv$setDescription( + describeOGCRelation( + self, data_object, service = "WFS", download = TRUE, format = "CSV", + handle_category = geosapi_action$getOption("describe_wfs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wfs_relation_with_ogc_service_description"), + handle_format = geosapi_action$getOption("describe_wfs_relation_with_format") + ) + ) new_wfs_csv$setLink(sprintf("%s/%s/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=%s&outputFormat=CSV", geoserver_base_url, config$software$output$geoserver_config$properties$workspace, @@ -1569,7 +1611,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wcs <- geoflow_relation$new() new_wcs$setKey("wcs") new_wcs$setName(layername) - new_wcs$setDescription(sprintf("%s - Data (Coverage) access - OGC Web Coverage Service (WCS)", layername)) + new_wcs$setDescription( + describeOGCRelation( + self, data_object, service = "WCS", download = FALSE, format = NULL, + handle_category = geosapi_action$getOption("describe_wcs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wcs_relation_with_ogc_service_description"), + handle_format = FALSE + ) + ) new_wcs$setLink(sprintf("%s/%s/ows?service=WCS", geoserver_base_url, config$software$output$geoserver_config$properties$workspace)) @@ -1585,7 +1634,14 @@ geoflow_entity <- R6Class("geoflow_entity", new_wcs_geotiff <- geoflow_relation$new() new_wcs_geotiff$setKey("download") new_wcs_geotiff$setName(layername) - new_wcs_geotiff$setDescription(sprintf("%s - Data download - OGC Web Coverage Service (WCS) - GeoTIFF format", layername)) + new_wcs_geotiff$setDescription( + describeOGCRelation( + self, data_object, service = "WCS", download = TRUE, format = "GeoTIFF", + handle_category = geosapi_action$getOption("describe_wcs_relation_with_category"), + handle_ogc_service_description = geosapi_action$getOption("describe_wcs_relation_with_ogc_service_description"), + handle_format = geosapi_action$getOption("describe_wcs_relation_with_format") + ) + ) new_wcs_geotiff$setLink(sprintf("%s/%s/ows?service=WCS&request=GetCoverage&version=2.0.1&CoverageId=%s&format=image/geotiff", geoserver_base_url, config$software$output$geoserver_config$properties$workspace, diff --git a/R/geoflow_utils.R b/R/geoflow_utils.R index 88ec4a1b..786570f6 100644 --- a/R/geoflow_utils.R +++ b/R/geoflow_utils.R @@ -745,4 +745,53 @@ create_geoflow_data_from_dbi <- function(dbi, schema, table){ entity_data$setFeatureType(table) entity_data$setFeatureTypeObj(fto) return(entity_data) +} + +#'@name describeOGCRelation +#'@aliases describeOGCRelation +#'@title describeOGCRelation +#' +#'@usage describeOGCRelation(entity, data_object, service, download, format, +#' handle_category, handle_ogc_service_description, handle_format) +#' +#'@param entity the entity considered +#'@param data_object data object +#'@param service service acronym +#'@param download whether the relation should be a download one or not +#'@param format format +#'@param handle_category append the relation category +#'@param handle_ogc_service_description append the OGC service description +#'@param handle_format append the download format +#' +#'@author Emmanuel Blondel, \email{emmanuel.blondel1@@gmail.com} +#'@export +describeOGCRelation <- function(entity, data_object, service, download = FALSE, format = NULL, + handle_category = TRUE, handle_ogc_service_description = TRUE, handle_format = TRUE){ + + layername <- if(!is.null(data_object$layername)) data_object$layername else entity$identifiers$id + layertitle = if(!is.null(data_object$layertitle)) data_object$layertitle else layername + + out <- switch(tolower(service), + "wms" = { + out_wms_link = layertitle + if(handle_category) out_wms_link = sprintf("%s - %s", out_wms_link, "Map access") + if(handle_ogc_service_description) out_wms_link = sprintf("%s - %s", out_wms_link, "OGC Web Map Service (WMS)") + out_wms_link + }, + "wfs" = { + out_wfs_link = layertitle + if(handle_category) out_wfs_link = sprintf("%s - %s", out_wfs_link, if(download) "Data download" else "Data (features) access") + if(handle_ogc_service_description) out_wfs_link = sprintf("%s - %s", out_wfs_link, "OGC Web Feature Service (WFS)") + if(handle_format && !is.null(format)) out_wfs_link = sprintf("%s - %s", out_wfs_link, format) + out_wfs_link + }, + "wcs" = { + out_wcs_link = layertitle + if(handle_category) out_wcs_link = sprintf("%s - %s", out_wcs_link, if(download) "Data download" else "Data (coverage) access") + if(handle_ogc_service_description) out_wcs_link = sprintf("%s - %s", out_wcs_link, "OGC Web Coverage Service (WCS)") + if(handle_format && !is.null(format)) out_wcs_link = sprintf("%s - %s", out_wcs_link, format) + out_wcs_link + } + ) + return(out) } \ No newline at end of file diff --git a/README.md b/README.md index 80c42415..b597e846 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build Status](https://github.com/r-geoflow/geoflow/actions/workflows/r-cmd-check.yml/badge.svg?branch=master)](https://github.com/r-geoflow/geoflow/actions/workflows/r-cmd-check.yml) [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/geoflow)](https://cran.r-project.org/package=geoflow) -[![Github_Status_Badge](https://img.shields.io/badge/Github-0.20230801-blue.svg)](https://github.com/r-geoflow/geoflow) +[![Github_Status_Badge](https://img.shields.io/badge/Github-0.20231109-blue.svg)](https://github.com/r-geoflow/geoflow) [![DOI](https://zenodo.org/badge/DOI//10.5281/zenodo.3138920.svg)](https://doi.org//10.5281/zenodo.3138920) **R engine to orchestrate and run (meta)data workflows** diff --git a/doc/metadata_data.md b/doc/metadata_data.md index e189d3b3..8b3c631c 100644 --- a/doc/metadata_data.md +++ b/doc/metadata_data.md @@ -65,7 +65,10 @@ If data must be uploaded, the target must be declared in **software** section of * **uploadStyle**: a specific boolean argument whether SLD style files (if listed/available in `source`) should be uploaded (specific to GeoServer publishing action). * **style**: Used as layer style name(s) for GeoServer action. When using multiple styles, the first one will be used as layer default style. * **store** : name of target store in the target GeoServer (can also be specified in json configuration) -* **layername**: name given to layer. If omitted, the entity `id` identifier will be used. +* **layername**: name given to layer. Optional. If omitted, the entity `id` identifier will be used. +* **layertitle**: title given to layer. Optional. If omitted, the entity `title` will be used +* **layerdesc**: description/abstract given to layer. Optional. If omitted, the entity `abstract` will be used +* **layeruri**: URI given to layer. Optional. May be used to add additional URI to layer online resource in ISO 19115 * **for a 'dbquery' upload type** * **sql**: a sql query applicable on SQL source to upload. * **parameters**: Set parameters definition for setting SQL view parameterized layers. It is compound by a name (alias) matching the one declared in the SQL query, a regular expression for validation of parameter values and a default value.These three arguments must be declared of the order described upper and separated by `,`. e.g. `parameter:high,^[\d]+$,100000` diff --git a/inst/actions/geosapi_publish_ogc_services.R b/inst/actions/geosapi_publish_ogc_services.R index af9b44c7..c3f7349a 100644 --- a/inst/actions/geosapi_publish_ogc_services.R +++ b/inst/actions/geosapi_publish_ogc_services.R @@ -278,9 +278,12 @@ function(action, entity, config){ if(data_object$uploadType == "dbquery") nativename <- layername if(data_object$spatialRepresentationType == "grid") nativename <- store resource$setNativeName(nativename) - resource$setAbstract(entity$descriptions$abstract) + abstract <- entity$descriptions$abstract + if(!is.null(data_object$layerdesc)) abstract = data_object$layerdesc + resource$setAbstract(abstract) title <- entity$titles[["title"]] if(length(data_objects)>1) title <- paste0(title, " - ", layername) + if(!is.null(data_object$layertitle)) title = data_object$layertitle resource$setTitle(title) resource$setSrs(epsgCode) resource$setNativeCRS(epsgCode) diff --git a/man/describeOGCRelation.Rd b/man/describeOGCRelation.Rd new file mode 100644 index 00000000..5dc3f744 --- /dev/null +++ b/man/describeOGCRelation.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/geoflow_utils.R +\name{describeOGCRelation} +\alias{describeOGCRelation} +\title{describeOGCRelation} +\usage{ +describeOGCRelation(entity, data_object, service, download, format, + handle_category, handle_ogc_service_description, handle_format) +} +\arguments{ +\item{entity}{the entity considered} + +\item{data_object}{data object} + +\item{service}{service acronym} + +\item{download}{whether the relation should be a download one or not} + +\item{format}{format} + +\item{handle_category}{append the relation category} + +\item{handle_ogc_service_description}{append the OGC service description} + +\item{handle_format}{append the download format} +} +\description{ +describeOGCRelation +} +\author{ +Emmanuel Blondel, \email{emmanuel.blondel1@gmail.com} +} diff --git a/man/geoflow_data.Rd b/man/geoflow_data.Rd index 45e6e1eb..84f2fe8f 100644 --- a/man/geoflow_data.Rd +++ b/man/geoflow_data.Rd @@ -55,6 +55,13 @@ Emmanuel Blondel \item{\code{layername}}{layer name} +\item{\code{layertitle}}{layer title} + +\item{\code{layerdesc}}{layer description} + +\item{\code{layeruri}}{layer URI +layeruri layer URI} + \item{\code{styles}}{styles} \item{\code{styleUpload}}{upload styles} @@ -128,6 +135,9 @@ Emmanuel Blondel \item \href{#method-geoflow_data-setStore}{\code{geoflow_data$setStore()}} \item \href{#method-geoflow_data-setDatastore}{\code{geoflow_data$setDatastore()}} \item \href{#method-geoflow_data-setLayername}{\code{geoflow_data$setLayername()}} +\item \href{#method-geoflow_data-setLayertitle}{\code{geoflow_data$setLayertitle()}} +\item \href{#method-geoflow_data-setLayerdesc}{\code{geoflow_data$setLayerdesc()}} +\item \href{#method-geoflow_data-setLayeruri}{\code{geoflow_data$setLayeruri()}} \item \href{#method-geoflow_data-addStyle}{\code{geoflow_data$addStyle()}} \item \href{#method-geoflow_data-addDimension}{\code{geoflow_data$addDimension()}} \item \href{#method-geoflow_data-setCloudPath}{\code{geoflow_data$setCloudPath()}} @@ -595,6 +605,57 @@ Sets a layername, object of class \code{character}. Used as target layer name fo } } \if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-geoflow_data-setLayertitle}{}}} +\subsection{Method \code{setLayertitle()}}{ +Sets a layer title, object of class \code{character}. If available, used as target layer title in SDI-related action. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{geoflow_data$setLayertitle(layertitle)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{layertitle}}{layertitle} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-geoflow_data-setLayerdesc}{}}} +\subsection{Method \code{setLayerdesc()}}{ +Sets a layer description, object of class \code{character}. If available, used as target layer description/abstract in SDI-related actions. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{geoflow_data$setLayerdesc(layerdesc)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{layerdesc}}{layerdesc} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-geoflow_data-setLayeruri}{}}} +\subsection{Method \code{setLayeruri()}}{ +Sets a layer URI, object of class \code{character}. If available, used as annotating URI for layer metadata (eg. in ISO 19115 action). +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{geoflow_data$setLayeruri(layeruri)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{layeruri}}{layeruri} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-geoflow_data-addStyle}{}}} \subsection{Method \code{addStyle()}}{