openeo-r-client
R client package for working with openEO backends
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
5 of 11 committers (45.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.1%) to scientific vocabulary
Keywords
Repository
R client package for working with openEO backends
Basic Info
- Host: GitHub
- Owner: Open-EO
- License: apache-2.0
- Language: R
- Default Branch: master
- Homepage: https://open-eo.github.io/openeo-r-client
- Size: 6.39 MB
Statistics
- Stars: 67
- Watchers: 6
- Forks: 17
- Open Issues: 15
- Releases: 9
Topics
Metadata Files
README.md
openeo: Client Interface for openEO Servers

openEO Background
The amount of available Earth Observation data (EO data) is steadily increasing due to different space missions such as Landsat and Sentinel. Resulting data products are often too large to be processed locally and therefore require new processing tools and functionalities. The core concept of "openEO" is related to big data processing strategies. "openEO"" defines a unified API for back-end and client software as well as a number of common processes for manipulating spatio-temporal data cubes. The basic idea is to distinguish between computation (back-end server) and workflow definition (client software). While some back-ends were developed in the main openEO project, others were currently improved or developed within the ESA project openEO Platform. Those back-ends offer access to their data collections and processing platform while the client software (e.g., R, Python, JavaScript, QGIS) help creating processing workflows in a programming environment familiar to the user.
openEO client in R
This R package contains functions and classes that allow interactions with openEO back-end server. The main goals of this package are: * enable an R-user to explore openEO back-ends for distributed data and implemented operations. * aid an R-user to create processing workflows on EO data executable on openEO back-ends. * retrieve results for further analysis in R
Installation
The most recent code is located on Github. To install it, you can use the following code:
if (!require(devtools)) {
install.packages("devtools",dependencies=TRUE)
library(devtools)
}
install_github(repo="Open-EO/openeo-r-client",dependencies=TRUE)
library(openeo)
Otherwise, once accepted by CRAN, you can install the latest stable version by:
``` install.packages("openeo") library(openeo)
```
If you want use a different package version we recommend to use the parameter ref. Define this parameter as "master", "develop" or another version specified in releases.
Currently, the package complies to the major openEO API version 1.1.x. It is also possible to manually install older versions that comply to the API version 0.4.2. This is not recommended since most - if not all - back-ends won't support this version anymore. The old versions are stated here for historic reasons. Starting with the stable API version 1.0.0 the package will be backward compatible within the semantic versioning.
| openeo R client version | openEO API version | openEO API status | | --- | --- | --- | | v1.3.x | v1.1.x | stable | | v1.2.x | v1.1.x | stable | | v1.1.x | v1.1.x | stable | | v1.0.x | v1.0.x | stable | | v0.6.x | v0.4.2 | deprecated | | v0.5.x | v0.4.2 | deprecated | | v0.4.x | v0.4.2 | deprecated |
Requirements
The 'openeo' package won't process anything on the local machine. It will always interact with a designated back-end. Data storage and computations are performed directly at the back-end. Therefore, please make sure that you are registered with any of the available openEO back-ends in order to obtain credentials and the access URLs (see: openEO Hub for getting an overview about available back-ends).
Getting Started
After installing and loading the package, you need to connect to the openEO back-end you want to use. The object returned by the connect function is essential for the interaction with this particular back-end. Afterwards, users can explore the data and processes and start creating a processing workflows, free of charge. To start processing data or publishing web services, however, the user needs to be registered and authenticated with the openEO back-end provider. The provider offers different execution plans the user can choose. These may include free-of-charge plans or other pricing concepts.
Exemplary back-end providers are: * https://earthengine.openeo.org * https://openeo.vito.be * https://openeo.cloud
The Google Earth Engine (GEE) interface for openEO is not actively maintained. The credentials for accessing and testing are included in the demo section at the openEO GEE Github repository. Please bear in mind that the access is free, but Google might revoke the rights if the processing load is too high. Use it only for playing around with the different openEO clients and not for productive purposes. "openeo.cloud" is the link to ESAs "openEO Platform" project, for which you have to be signed up via EGI and openEO platform.
Examples
The following code sample shows how to create a processing workflow that calculates the minimum NDVI of a spatial and temporal subset on Sentinel-2 data and perform a linear scaling to store the results as PNG file.
``` library(openeo) connect(host="https://earthengine.openeo.org")
list collection and processes
colls = listcollections() listprocesses()
get detailed descriptions
describecollection("COPERNICUS/S2") describeprocess("load_collection")
create a process graph / task
p = processes()
data = p$loadcollection(id = colls$COPERNICUS/S2,
spatialextent = list(
west=16.1,
east=16.6,
north=48.6,
south= 47.2
),
temporal_extent = list(
"2018-04-01", "2018-05-01"
),
bands=list("B8","B4"))
spectralreduce = p$reducedimension(data = data, dimension = "bands",reducer = function(data,context) { B08 = data[1] B04 = data[2] return((B08-B04)/(B08+B04)) })
temporalreduce = p$reducedimension(data=spectral_reduce,dimension = "t", reducer = function(x,y){ p$min(x) })
applylineartransform = p$apply(data=temporalreduce,process = function(value,...) { p$linearscale_range(x = value, inputMin = -1, inputMax = 1, outputMin = 0, outputMax = 255) })
result = p$saveresult(data=applylinear_transform,format="PNG") ```
At this point (latest here) you need to log in with your personal credentials for further computations.
```
login(user="",password="")
jobid = createjob(graph=result, title="Example graph", description="This graph is just a general example",format="png")
startjob(jobid)
resultobj = listresults(job_id)
downloadresults(job = jobid, folder = ".")
```
To get an overview of the functions offered by the packages and to access the function documentation you can navigate to the "Packages" tab in RStudio, select the "openeo" package and click on the function you are interested in. Another option is to use the following command line operations:
```R library(help="openeo")
?, e.g.
?connect ```
If you are interested in more information, you can have a look at some example scripts that were created during the Proof-of-Concept phase to get a feeling on how to use the package. Some of the scripts are outdated and will be replaced in the future.
Contributions
The authors acknowledge the financial support for the development of this package during the H2020 project "openEO" (Oct 2017 to Sept 2020) by the European Union, funded by call EO-2-2017: EO Big Data Shift, under grant number 776242. We also acknowledge the financial support received from ESA for the project "R4openEO" (Sept 2021 to Sept 2022).
This package received major contributions from the following organizations:
Links
Owner
- Name: openEO
- Login: Open-EO
- Kind: organization
- Email: openeo.psc@uni-muenster.de
- Website: http://openeo.org/
- Twitter: open_EO
- Repositories: 45
- Profile: https://github.com/Open-EO
openEO develops an open API to connect R, Python, JavaScript and other clients to EO cloud back-ends in a simple and unified way.
GitHub Events
Total
- Create event: 2
- Release event: 2
- Issues event: 8
- Watch event: 7
- Delete event: 2
- Issue comment event: 5
- Push event: 21
- Pull request event: 8
- Pull request review event: 2
Last Year
- Create event: 2
- Release event: 2
- Issues event: 8
- Watch event: 7
- Delete event: 2
- Issue comment event: 5
- Push event: 21
- Pull request event: 8
- Pull request review event: 2
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Florian Lahn | f****n@u****e | 757 |
| Matthias Mohr | m****r@u****e | 35 |
| Edzer Pebesma | e****a@u****e | 10 |
| Dainius | p****4@g****m | 8 |
| przell | 5****l | 3 |
| Masiliunas | m****1@D****l | 3 |
| Mattia Rossi | m****i@e****u | 2 |
| olivroy | 5****y | 1 |
| Emile | e****8@h****m | 1 |
| Rossi Mattia | m****i@e****u | 1 |
| Dainius | d****s@l****n | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 98
- Total pull requests: 26
- Average time to close issues: 6 months
- Average time to close pull requests: 2 months
- Total issue authors: 19
- Total pull request authors: 7
- Average comments per issue: 3.57
- Average comments per pull request: 1.04
- Merged pull requests: 24
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 4
- Average time to close issues: 26 days
- Average time to close pull requests: 17 days
- Issue authors: 6
- Pull request authors: 3
- Average comments per issue: 1.0
- Average comments per pull request: 1.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- m-mohr (32)
- przell (22)
- flahn (17)
- edzer (7)
- zzznelsonsm (3)
- jonathom (2)
- hurielreichel (2)
- fdetsch (2)
- benjaminschwetz (1)
- surufru (1)
- jona159 (1)
- andreattad (1)
- GreatEmerald (1)
- Pratichhya (1)
- Rapsodia86 (1)
Pull Request Authors
- m-mohr (20)
- EmileSonneveld (2)
- olivroy (2)
- hadley (1)
- neteler (1)
- flahn (1)
- edzer (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- cran 951 last-month
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 8
- Total maintainers: 1
cran.r-project.org: openeo
Client Interface for 'openEO' Servers
- Homepage: https://open-eo.github.io/openeo-r-client/
- Documentation: http://cran.r-project.org/web/packages/openeo/openeo.pdf
- License: Apache License (≥ 2)
-
Latest release: 1.4.1
published 11 months ago
Rankings
Maintainers (1)
Dependencies
- R >= 3.3 depends
- IRdisplay * imports
- R6 * imports
- base64enc * imports
- htmltools * imports
- httr2 >= 0.2.0 imports
- jsonlite * imports
- lubridate * imports
- methods * imports
- rlang * imports
- sf * imports
- DT * suggests
- kableExtra * suggests
- knitr * suggests
- pkgdown * suggests
- rmarkdown * suggests
- stars * suggests
- testthat * suggests
- tibble * suggests
- actions/checkout v3 composite
- r-lib/actions/check-r-package v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
- r-lib/actions/setup-r-dependencies v1 composite
