-
-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rgeeExtra: An extensions for 'rgee' #608
Comments
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type |
🚀 Editor check started 👋 |
Checks for rgeeExtra (v0.0.1)git hash: 79fde841
Important: All failing checks above must be addressed prior to proceeding Package License: Apache License (>= 2) 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. basec (13), list (12), length (9), drop (6), for (4), lapply (3), which (3), mode (2), names (2), seq_along (2), sprintf (2), all (1), args (1), basename (1), diff (1), dirname (1), gsub (1), rep (1), scale (1), source (1), system.file (1), tempfile (1), try (1), url (1) magrittr%>% (70) rgeeExtraee_get (3), ee_connect_to_py (2), ee_new_list_name (2), ee_source_python (2), ee_check_packages (1), ee_image_getCitation (1), ee_image_getDOI (1), ee_Image_getOffsetParams (1), ee_Image_getScaleParams (1), ee_Image_getSTAC (1), ee_Image_maskClouds (1), ee_Image_matchHistogram (1), ee_Image_panSharpen (1), ee_Image_preprocess (1), ee_Image_scaleAndOffset (1), ee_Image_spectralIndex (1), ee_Image_tasseledCap (1), ee_ImageCollection_closest (1), ee_ImageCollection_getCitation (1), ee_ImageCollection_getDOI (1), ee_ImageCollection_getOffsetParams (1), ee_ImageCollection_getScaleParams (1), ee_ImageCollection_getSTAC (1), ee_ImageCollection_panSharpen (1), ee_ImageCollection_preprocess (1), ee_ImageCollection_scaleAndOffset (1), ee_ImageCollection_spectralIndex (1), ee_ImageCollection_tasseledCap (1), ee_maxValue (1), ee_minValue (1), Math.ee.image.Image (1), Ops.ee.image.Image (1), Summary.ee.image.Image (1) rgeeee_as_sf (4), sf_as_ee (4), ee$ImageCollection (3), ee$ImageCollection$first (2), ee$ImageCollection$toList (2), ee$List$get (2), ee$Reducer$max (2), ee$Image (1), ee$Image$abs (1), ee$Image$bandNames (1), ee$Image$pow (1), ee$Image$unmask (1), ee$ImageCollection$getVideoThumbURL (1), ee$List$length (1), ee$List$sequence (1), ee$Number$format (1), ee$Reducer$min (1) graphicsimage (5) reticulateimport_from_path (4), py_discover_config (1) sfst_cast (2) statsoffset (2) magickimage_read (1) NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately. 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
5917635570 | Commands | success | 887d78 | 13 | 2023-08-20 |
6216302723 | pages build and deployment | success | 1c6bba | 9 | 2023-09-17 |
6216295894 | pkgdown | success | 79fde8 | 28 | 2023-09-17 |
6216295890 | R-CMD-check | NA | 79fde8 | 28 | 2023-09-17 |
6216295893 | test-coverage | failure | 79fde8 | 3 | 2023-09-17 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
── Error ('test-subsetting.R:6:1'): (code run outside oftest_that()
) ────────
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
Error: Test failures
Execution halted
R CMD check generated the following note:
- checking installed package size ... NOTE
installed size is 6.1Mb
sub-directories of 1Mb or more:
doc 4.3Mb
ee_extra 1.6Mb
R CMD check generated the following test_fail:
-
library(testthat)
library(rgee)
library(rgeeExtra)
library(stars)
Loading required package: abind
Loading required package: sf
Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
library(sf)if (identical(Sys.getenv("NOT_CRAN"), "true")) {
- test_check("rgeeExtra")
- }
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-ee_gif.R:8:1'): (code run outside of test_that()
) ────────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ee_gif.R:8:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-ee_image.R:6:1'): (code run outside oftest_that()
) ──────────
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ee_image.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-eeImageCollection.R:6:1'): (code run outside oftest_that()
) ──
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-eeImageCollection.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-ops-image.R:7:1'): (code run outside oftest_that()
) ─────────
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ops-image.R:7:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-raster.R:6:1'): (code run outside oftest_that()
) ────────────
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-raster.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting-image.R:6:1'): (code run outside oftest_that()
) ──
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting-image.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting-imagecollection.R:6:1'): (code run outside oftest_that()
) ──
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting-imagecollection.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting.R:6:1'): (code run outside oftest_that()
) ────────
Error inee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
your R session after install miniconda or run ee_install()?
If no do it, please try again:
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting.R:6:0
- └─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
Error: Test failures
Execution halted
R CMD check generated the following check_fails:
- no_import_package_as_a_whole
- rcmdcheck_tests_pass
- rcmdcheck_reasonable_installed_size
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
Math.ee.image.Image | 29 |
Ops.ee.image.Image | 22 |
Static code analyses with lintr
lintr found the following 108 potential issues:
message | number of times |
---|---|
Avoid library() and require() calls in packages | 4 |
Lines should not be more than 80 characters. | 88 |
Use <-, not ->, for assignment. | 16 |
Package Versions
package | version |
---|---|
pkgstats | 0.1.3.8 |
pkgcheck | 0.1.2.3 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
@csaybar thanks a lot for your submission.
|
Hi @maurolepore thank you for your quick response. I just activated the notification button to this issue. Can you confirm you're requesting a review in English? Yes, I'd prefer to do it in English Also, this is part of the Champions program, right? Yes, I'm part of the program and my mentor is Marc Choisy @choisy. Unfortunately, I haven't been able to resolve the issues related to Python dependencies. These are the same ones you can find in the pangoling package review. The Python coverage when it is evaluated in an ENV with the Python envs is around 95%. See https://app.codecov.io/gh/csaybar/rgeeExtra/tree/master/R The flag "The following functions have no documented return values: [ee_length_ic, ee_length, ee_name_ic, ee_name, ee_subsetting, extra_Initialize, Math-methods, Ops-methods, Summary-methods] have been solved in rgee 0.0.1.999. |
Great, thanks for pointing me to pangoling. I'll explore how they handled installation during review. |
@ropensci-review-bot assign @maurolepore as editor |
Assigned! @maurolepore is now the editor |
@csaybar, I self-assigned to be the handling editor. I think this makes sense because I would like to explore the installation process, I'm part of the Champions program, and I'm available. I'll start working on the handling-editor's checklist. In the meantime, could you please list three potential reviewers? Following our guidelines I'll use no more than one of them, but it's useful to have a few options and also to see the range of expertise you think is helpful. |
Hi, @maurolepore, @zackarno : tidyrgee creator. Experience using GEE and R. @giswqs: geemap creator. Experience using GEE and R. @yabellini: Experience using GEE and R. @ricds: Experience using GEE and R. |
I can successfully install rgeeExtra but fail to run the example in README. The reprex below shows a number of helpful error messages. Although I don't show it here, I did put substantial effort in trying to follow the advice but still failed to complete the example :-( library(rgee)
library(rgeeExtra)
ee_Initialize()
#> Welcome to the Earth Engine client library for R!
#> ----------------------------------------------------------------
#> It seems it is your first time using rgee. First off, keep in mind that
#> Google Earth Engine is only available to registered users, check the
#> official website https://earthengine.google.com/ to get more information.
#>
#> Before start coding is necessary to set up a Python environment. Run
#> rgee::ee_install() to set up automatically, after that, restart the R
#> session to see changes. See more than 300+ examples of rgee at
#> https://r-earthengine.github.io/.
#>
#> rgee will need to create the environmental variable "EARTHENGINE_INIT_MESSAGE"
#> in your system to avoid you recieve this message again.
#> Would you like to stop to receive this message? [Y/n]:
#> Error in ee_connect_to_py(path = ee_current_version, n = 5): The current Python PATH: /usr/local/bin/python3
#> does not have the Python package "earthengine-api" installed. Are you restarted/terminated.
#> your R session after install miniconda or run ee_install()?
#> If no do it, please try again:
#> > ee_install(): To create and set a Python environment with all rgee dependencies.
#> > ee_install_set_pyenv(): To set a specific Python environment.
extra_Initialize()
#> ✔ Initializing ee_Extra module:
#> Error in ee_connect_to_py(path = ee_current_version, n = 5): The current Python PATH: /usr/local/bin/python3
#> does not have the Python package "earthengine-api" installed. Do you restarted/terminated
#> your R session after install miniconda or run ee_install()?
#> If this is not the case, try:
#> > reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
#> > ee_install(): To create and set a Python environment with all rgee dependencies.
#> > ee_install_set_pyenv(): To set a specific Python environment.
img <- ee$Image("LANDSAT/LC08/C01/T1_SR/LC08_038029_20180810")
#> List of 22
#> $ python : chr "/usr/local/bin/python3"
#> $ libpython : chr "/opt/python/3.8.17/lib/libpython3.8.so"
#> $ pythonhome : chr "/opt/python/3.8.17:/opt/python/3.8.17"
#> $ pythonpath : chr "/cloud/lib/x86_64-pc-linux-gnu-library/4.3/reticulate/config:/home/r68453/.local/lib/python3.8/site-packages:/o"| __truncated__
#> $ prefix : chr "/opt/python/3.8.17"
#> $ exec_prefix : chr "/opt/python/3.8.17"
#> $ base_exec_prefix : chr "/opt/python/3.8.17"
#> $ virtualenv : chr ""
#> $ virtualenv_activate : chr ""
#> $ executable : chr "/usr/local/bin/python3"
#> $ base_executable : chr "/usr/local/bin/python3"
#> $ version_string : chr "3.8.17 (default, Jun 6 2023, 15:28:08) [GCC 9.4.0]"
#> $ version : chr "3.8"
#> $ architecture : chr "64bit"
#> $ anaconda : logi FALSE
#> $ conda : chr "False"
#> $ numpy : NULL
#> $ required_module : chr "ee"
#> $ required_module_path: NULL
#> $ available : logi TRUE
#> $ python_versions : chr "/usr/local/bin/python3"
#> $ forced : chr "RETICULATE_PYTHON_FALLBACK"
#> - attr(*, "class")= chr "py_config"
#> Error: Python module ee was not found.
#>
#> Detected Python configuration:
ndvi <- (img[["B5"]] - img[["B4"]])/(img[["B5"]] + img[["B4"]])**2
#> Error in eval(expr, envir, enclos): object 'img' not found
names(ndvi) <- "pow_ndvi"
#> Error: object 'ndvi' not found
Map$centerObject(img,zoom=12)
#> Error in eval(expr, envir, enclos): object 'img' not found
Map$addLayer(img)
#> The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
#> which was just loaded, will retire in October 2023.
#> Please refer to R-spatial evolution reports for details, especially
#> https://r-spatial.org/r/2023/05/15/evolution4.html.
#> It may be desirable to make the sf package available;
#> package maintainers should consider adding sf to Suggests:.
#> The sp package is now running under evolution status 2
#> (status 2 uses the sf package in place of rgdal)
#> Error in eval(expr, envir, enclos): object 'img' not found Created on 2023-09-26 with reprex v2.0.2 In the installation instructions of rgee I see you point to a posit.cloud project with a file that aims to quickly help a new user set everything up in a fresh environment. That seems like a good idea. Could you please do it also for rgeeExtra, so that I and the reviewers can install the package as quickly as possible? Note however that on posit.cloud I fail to install rgee because I seem to need If posit.cloud limits the system dependencies we can install, how else can we quickly create a working environment for the reviewers? Would it help to have a Docker image on r-hub or a Dockerfile in the repo? |
Hi @maurolepore, I will prepare a reproducible demo in posit/colab over the weekend to facilitate the review process. I will be sure to keep you updated. |
Hi @maurolepore Here is an example of how to use rgeeExtra in posit cloud. It is important that the rgeeExtra user has a GEE account. Unfortunately, positCloud does not have a way to send the token back (I tried to solve this problem a year ago). Kevin Ushey, explain this here "It's an unfortunate limitation of system() in RStudio; we currently don't have a way of routing stdin from the R process to subprocesses. You could instead run this in a separate Terminal instance for now." So the rgee user who wants to use PositCloud should do so through the terminal using:
After that rgee & rgeeExtral will work perfectly! I attached two examples that show rgeeExtra features. Feel free to reach out if there's anything I can assist you with! |
Thanks @csaybar, I'm sorry for the delay. I tried your instructions for installation and usage a few times. I arrived to the version below that seems succinct and functional. What do you think? After your review it would be nice to edit README to ensure the smoothest experience for anyone trying to install and use the package. Installationinstall.packages("remotes")
remotes::install_github("r-spatial/rgee")
remotes::install_github("r-earthengine/rgeeExtra")
rgee::ee_install() Authenticate with Google Earth Engine # Run in the Terminal (not in the R console)
earthengine authenticate --auth_mode notebook Examplelibrary(rgee)
library(rgeeExtra)
ee_Initialize()
#> ── rgee 1.1.7 ─────────────────────────────────────── earthengine-api 0.1.374 ──
#> ✔ user: not_defined
#> ✔ Initializing Google Earth Engine:
✔ Initializing Google Earth Engine: DONE!
#>
✔ Earth Engine account: users/mauro-test
#>
✔ Python Path: /cloud/project/rgee/bin/python
#> ────────────────────────────────────────────────────────────────────────────────
extra_Initialize()
#> ✔ Initializing ee_Extra module:
✔ Initializing ee_Extra module: DONE!
img <- ee$Image("LANDSAT/LC08/C01/T1_SR/LC08_038029_20180810")
ndvi <- (img[["B5"]] - img[["B4"]])/(img[["B5"]] + img[["B4"]])**2
names(ndvi) <- "pow_ndvi"
Map$centerObject(img,zoom=12)
Map$addLayer(img)
#> The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
#> which was just loaded, were retired in October 2023.
#> Please refer to R-spatial evolution reports for details, especially
#> https://r-spatial.org/r/2023/05/15/evolution4.html.
#> It may be desirable to make the sf package available;
#> package maintainers should consider adding sf to Suggests:. Now that I can install the package I will continue with all other editor checks. |
@ropensci-review-bot check package |
Thanks, about to send the query. |
🚀 Editor check started 👋 |
Checks for rgeeExtra (v0.0.1.999)git hash: 65d95062
Important: All failing checks above must be addressed prior to proceeding Package License: Apache License (>= 2) 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. basec (13), list (12), length (9), drop (6), for (4), lapply (3), which (3), mode (2), names (2), seq_along (2), sprintf (2), all (1), args (1), basename (1), diff (1), dirname (1), gsub (1), rep (1), scale (1), source (1), system.file (1), tempfile (1), try (1), url (1) magrittr%>% (70) rgeeExtraee_get (3), ee_connect_to_py (2), ee_new_list_name (2), ee_source_python (2), ee_check_packages (1), ee_image_getCitation (1), ee_image_getDOI (1), ee_Image_getOffsetParams (1), ee_Image_getScaleParams (1), ee_Image_getSTAC (1), ee_Image_maskClouds (1), ee_Image_matchHistogram (1), ee_Image_panSharpen (1), ee_Image_preprocess (1), ee_Image_scaleAndOffset (1), ee_Image_spectralIndex (1), ee_Image_tasseledCap (1), ee_ImageCollection_closest (1), ee_ImageCollection_getCitation (1), ee_ImageCollection_getDOI (1), ee_ImageCollection_getOffsetParams (1), ee_ImageCollection_getScaleParams (1), ee_ImageCollection_getSTAC (1), ee_ImageCollection_panSharpen (1), ee_ImageCollection_preprocess (1), ee_ImageCollection_scaleAndOffset (1), ee_ImageCollection_spectralIndex (1), ee_ImageCollection_tasseledCap (1), ee_maxValue (1), ee_minValue (1), Math.ee.image.Image (1), Ops.ee.image.Image (1), Summary.ee.image.Image (1) rgeeee_as_sf (4), sf_as_ee (4), ee$ImageCollection (3), ee$ImageCollection$first (2), ee$ImageCollection$toList (2), ee$List$get (2), ee$Reducer$max (2), ee$Image (1), ee$Image$abs (1), ee$Image$bandNames (1), ee$Image$pow (1), ee$Image$unmask (1), ee$ImageCollection$getVideoThumbURL (1), ee$List$length (1), ee$List$sequence (1), ee$Number$format (1), ee$Reducer$min (1) graphicsimage (5) reticulateimport_from_path (4), py_discover_config (1) sfst_cast (2) statsoffset (2) magickimage_read (1) NOTE: Some imported packages appear to have no associated function calls; please ensure with author that these 'Imports' are listed appropriately. 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
5917635570 | Commands | success | 887d78 | 13 | 2023-08-20 |
6262266802 | pages build and deployment | success | e345bb | 11 | 2023-09-21 |
6262223266 | pkgdown | success | 65d950 | 30 | 2023-09-21 |
6262223271 | R-CMD-check | failure | 65d950 | 30 | 2023-09-21 |
6262223262 | test-coverage | failure | 65d950 | 5 | 2023-09-21 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
Error: Test failures
Execution halted
R CMD check generated the following note:
- checking installed package size ... NOTE
installed size is 6.2Mb
sub-directories of 1Mb or more:
doc 4.3Mb
ee_extra 1.6Mb
R CMD check generated the following test_fail:
-
library(testthat)
library(rgee)
library(rgeeExtra)
library(stars)
Loading required package: abind
Loading required package: sf
Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
library(sf)if (identical(Sys.getenv("NOT_CRAN"), "true")) {
- test_check("rgeeExtra")
- }
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-ee_gif.R:8:1'): (code run outside of test_that()
) ────────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ee_gif.R:8:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-ee_image.R:6:1'): (code run outside of test_that()
) ──────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ee_image.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-eeImageCollection.R:6:1'): (code run outside of test_that()
) ──
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-eeImageCollection.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-ops-image.R:7:1'): (code run outside of test_that()
) ─────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-ops-image.R:7:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-raster.R:6:1'): (code run outside of test_that()
) ────────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-raster.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting-image.R:6:1'): (code run outside of test_that()
) ──
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting-image.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting-imagecollection.R:6:1'): (code run outside of test_that()
) ──
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting-imagecollection.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
── Error ('test-subsetting.R:6:1'): (code run outside of test_that()
) ────────
Error in ee_connect_to_py(path = ee_current_version, n = 5)
: The current Python PATH: /usr/bin/python3
does not have the Python package "earthengine-api" installed. Do you restarted/terminated
your R session after install miniconda or run ee_install()?
If this is not the case, try:
ee_install_upgrade(): Install the latest Earth Engine Python version.
reticulate::use_python(): Refresh your R session and manually set the Python environment with all rgee dependencies.
ee_install(): To create and set a Python environment with all rgee dependencies.
ee_install_set_pyenv(): To set a specific Python environment.
Backtrace:
▆
- └─rgee::ee_Initialize() at test-subsetting.R:6:0
- └─rgee:::ee_check_init()
-
└─rgee:::ee_connect_to_py(path = ee_current_version, n = 5)
[ FAIL 8 | WARN 0 | SKIP 0 | PASS 0 ]
Error: Test failures
Execution halted
R CMD check generated the following check_fails:
- no_import_package_as_a_whole
- rcmdcheck_tests_pass
- rcmdcheck_reasonable_installed_size
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
Math.ee.image.Image | 29 |
Ops.ee.image.Image | 22 |
Static code analyses with lintr
lintr found the following 111 potential issues:
message | number of times |
---|---|
Avoid library() and require() calls in packages | 4 |
Lines should not be more than 80 characters. | 91 |
Use <-, not ->, for assignment. | 16 |
Package Versions
package | version |
---|---|
pkgstats | 0.1.3.9 |
pkgcheck | 0.1.2.9 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
Hi @maurolepore, we know that setting up an environment with both Python and R can be a bit tiring. Unfortunately, there's not much we can do from our end since the connection relies on reticulate. I've updated the README for rgeeExtra and included a link that explains how to install rgee Python dependencies. Hope it can help. |
Editor checks:
Editor commentsTo help you track my comments, I'll label them with "ml" and a numerical sequence like ml01, ml02, and so on. Bullets and checkboxes mark whether or not I expect input from you:
-- The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package.
You may evaluate code chunks in .Rmd or .qmd documents or with the reprex package. It's best to use the option Is the case for the package well made?
Note the output of Currently the top of README talks about GEE and rgee but not rgeeExtra (What is Google Earth Engine?). The reader sees the Installation of rgeeExtra before knowing about it. I think the best case for the package is made at top of the Features article. Moving this text to the top or README and rewording it to answer "why" rather than "what" would solve the problem :-)
Also in other places I see text that can help make the case for the package: https://r-earthengine.com/rgeeExtra/articles/Introduction.html:
https://r-earthengine.com/rgeeExtra/index.html#how-does-it-work:
Is the reference index page clear (grouped by topic if necessary)?
Are vignettes readable, sufficiently detailed and not just perfunctory?
Fit: The package meets criteria for fit and overlap.
Installation instructions: Are installation instructions clear enough for human users?
Tests: If the package has some interactivity / HTTP / plot production etc. are the tests using state-of-the-art tooling?
Contributing Is: information the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
License: The package has a CRAN or OSI accepted license. Yes. Project management: Are the issue and PR trackers in a good shape, e.g. are there outstanding bugs, is it clear when feature requests are meant to be tackled?
Also
#> The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
#> which was just loaded, were retired in October 2023.
#> Please refer to R-spatial evolution reports for details, especially
#> https://r-spatial.org/r/2023/05/15/evolution4.html.
#> It may be desirable to make the sf package available;
#> package maintainers should consider adding sf to Suggests:. I'm puzzled. Both rgee and rgeeExtra are alraedy using sf. Do you know where this is comming from? |
Thanks for your patience. My feedback took time but I hope it will also save reviewers time later. Please address my comments before I start searching for reviewers. |
Hi @maurolepore, I apologize for the delayed response, and I quite appreciate all your comments. I plan to begin addressing your feedback during the next week. Have a good weekend! |
Hi, @maurolepore! I'm pleased to inform you that a new version of RgeeExtra has been released (v0.1.0). We've made comprehensive improvements to the documentation and included numerous additional examples. Please find attached the responses addressing all your comments. https://r-earthengine.com/rgeeExtra/ m01We have updated our example documentation to include both code and their corresponding outputs. This enhancement facilitates a better understanding and allows readers to easily copy, paste, and execute examples without any issues, aligning with the core idea of rgeeExtra, improving the user experience of R users when they have to use GEE APi. m02The updated README now clearly explains the goal and the why of rgeeExtra at the top, providing more clarity to new users. m03The support for R6 classes in roxygen2/pkgdown (reticulate) is still a bit buggy, we have been trying some workarounds, and now the method classes are available in the reference index. m06The installation instructions in the README have been revised and tested in Windows and Linux OS, ensuring they are clear and functional for all users. m07/08/09We have ensured that each function in the R/ folder has a corresponding test file in test/testthat/. We updated the codecov state: https://app.codecov.io/github/csaybar/rgeeExtra/tree/master m10We include the following line in the installation section: 'For additional details on connecting GEE and R, refer to the information provided here. To set up an account, click here.'" m11We have made a lot of changes to the API in the past, and all the issues reported were associated with previous versions that are no longer supported. For the first time, we have released a stable version (v.0.1.0), and our intention from now is to maintain its stability respecting the API, we decided. Regarding the R spatial legacy dependency issues, we currently have an indirect dependency on leafletExtra2. Unfortunately, this package has not yet initiated the transition to sf. |
Thanks a lot @csaybar! Over the next few days I'll review your response and move on to searching for reviewers. |
Happy new year everyone! @nmorandeira and @zackarno, I see your due date was inconveniently in the holiday period, so I think it's fair to expect your reviews a bit later than scheduled. Looking forward to them. |
Feliz 2024 @mdelfin. Por favor nota que este no es el lugar para hacer preguntas sobre el paquete. Por favor dirigijte a https://github.com/r-earthengine/rgeeExtra/issues |
Happy new years! @maurolepore thanks ! I'm hoping/aiming to get it finished this week! |
@csaybar - Thanks for the fantastic package and the chance to review! I look forward to incorporating it into my work and exploring more use-cases over time! I attempted to limit the scope of my review to just Below is my review, I tried to tag each comment with a Package ReviewPlease check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
DocumentationThe package includes all the following forms of documentation:
Functionality
Estimated hours spent reviewing: 16 - probably longer than it should have given it was my first review.
Review CommentsGeneral Comments
Documentation - Installation instructions
Documentation - Examples
Documentation - Functions
Documentation - Vignettes
Functionality/ User ExperienceFunctionality -Installation
Functionality - Functionality
For a user like me who wrote the code below what are some tools we have from
Functionality - Code style
rather than:
|
@zackarno, thanks a lot for your thorough review! @csaybar please wait a bit for @nmorandeira's review then you can address both reviews. |
Thanks @csaybar for developing this excellent package!, and thanks @maurolepore for the invitation to review it. Sorry for the delay, I'm out of my office with very limited internet access. I provide some comments, mainly related to the documentation. As I said to @maurolepore, my views are as an end-user, since I have no experience in developing a package. I hope you find these comments useful! Package Review
DocumentationThe package includes all the following forms of documentation:
Functionality
I haven't tested functionality, performance, automated tests and packaging guidelines. Estimated hours spent reviewing: 10; ~3 hours were spent in trying to solve the installation issues.
Review Comments
For example, "While GEE's primary language is JavaScript, which diverges from R's structure, rgeeExtra serves as a bridge". Isn't this true for rgee? What are the additional advantages of using rgeeExtra? I now know the answer :), after using the package and reviewing the Articles, but It would be nice for the user to quickly decide if it's worth installing rgeeExtra or no.
In R, running citation(“rgeeExtra”) gives the corrected text “To cite rgeeExtra in publications use”, but the same reference by Aybar et al. (2020) refering to rgee.
I followed the instructions provided here by Mauro: #608 (comment) . I'm successfully using gee with Python in this laptop, but probably my R + Python environment is not correctly configured.
ArticlesHere I provide some comments on the articles. IntroductionSAVI computation. I get this error:
Please check this error. I replaced “preprocess” with “Extra_preprocess”, and “spectralIndex” with “Extra_spectralIndex”. Next, I also replaced “geoviz_1” with “geoviz”. In this way I get no error, but I also don’t see any image in the visualizer. Besides, if it’s possible to compute an spectral index this way, I would add a comment in the Readme file: after giving the ndvi or squared ndvi equation as an example of how an user can define a new formula using the rgeeExtra syntax, I would link to this SAVI example (or an NDVI example) as an additional advantage of the package, i.e. providing an easy way to compute well known spectral indexes. ImageAdd dependency: 2. Mathematical functions. Comment that you can visualize each NDVI transformation by clicking on the layer selector. 4. Tasseled Cap Transformation. A reference to the citation for the the tasseled cap transformation would be nice, as well as for the other indexes included in the articles (NDVI, SAVI, etc). 6. Histogram Matching
7. Cloud masking 8. Automated Preprocessing 9. Summary Methods. 10. Minimum and Maximum values. Image Collection8. Complete GIF Toolkit for Earth Engine. Also, save the gif file to the working directory (It was saved in a temporal folder with a random name, so it’s difficult to find it). 11. Get the temporal nearest image. |
@ropensci-review-bot submit review #608 (comment) time 10 |
Logged review for nmorandeira (hours: 10) |
@ropensci-review-bot submit review #608 (comment) time 16 |
Logged review for zackarno (hours: 16) |
Thanks a lot @nmorandeira for your review! Your perspective is very valuable and really nicely complements that of @zackarno. @csaybar you can now start addressing the reviews. |
Thanks, I will start with the revision.
El mié, 17 ene 2024 a las 2:30, Mauro Lepore ***@***.***>)
escribió:
… Thanks a lot @nmorandeira <https://github.com/nmorandeira> for your
review! Your perspective is very valuable and really nicely complements
that of @zackarno <https://github.com/zackarno>.
@csaybar <https://github.com/csaybar> you can now start addressing the
reviews.
—
Reply to this email directly, view it on GitHub
<#608 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD752PRFMT7QJE47CWRMQGTYO4STJAVCNFSM6AAAAAA435BITSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJUG44DQNRQHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@csaybar, @davemlz, @LBautistaB13, @choisy: please post your response with Here's the author guide for response. https://devguide.ropensci.org/authors-guide.html |
Hi @csaybar , I'm checking in on issues that have been static for awhile. Let us know if there is progress to report or any questions you may have. |
--https://devdevguide.netlify.app/softwarereview_editor -- Hi @csaybar, shall we put this submission on hold? It's totally fine to do so. The label helps us to better understand and manage the process. |
Hi everyone, I sincerely apologize for my delayed response, I had a bit of trouble properly solving all of your valid requests. As many of you know, rgee-extra is an extension of rgee. At the same time, rgee relies on the earthengine-api (Python). Therefore, updates to the Python client library directly impact rgee. Recently, the earthengine-api has undergone substantial changes concerning authentication (see updates here and here), which have break many of rgee’s functionalities. After some internal discussions, we have decided to restructure rgee into a new package (to be named rgee2) to address installation & authentication problems. @JulioContrerasH is working part-time on developing rgee2, but we do not expect it to be ready before the end of August. We are committed to keeping rgee-extra as an extension of rgee2. However, we prefer to pause further development on the project until rgee2 first version is released. Thank you for your understanding, and sorry for the lengthy message. :( |
@csaybar, thanks for your efforts. I'll go ahead and put the submission on hold. |
@ropensci-review-bot put on hold |
Submission on hold! |
Thanks for the update @csaybar |
@maurolepore: Please review the holding status |
Is there any change? The bot is reminding us to review the holding status. This is not to put any pressure but just to ensure we don't forget. We'll get reminders every three months for a year, then we would need to move forward or close the submission. |
Submitting Author Name: Cesar Aybar
Submitting Author Github Handle: @csaybar
Other Package Authors Github handles: (comma separated, delete if none) @davemlz, @LBautistaB13, @choisy
Repository: https://github.com/r-earthengine/rgeeExtra
Version submitted: 0.0.1
Submission type: Standard
Editor: @maurolepore
Reviewers: @nmorandeira, @zackarno
Archive: TBD
Version accepted: TBD
Language: en
Scope
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
rgeeExtra is an extension of the rgee package that enables interaction with Google Earth Engine (GEE). The advantage of rgeeExtra lies in its user-friendly syntax for R users. The package includes operator overloading and access to various functions created by third parties within the ee_extra package.
GEE users and any R user who wants to retrieve data using the GEE API from within R.
There are other packages for connecting to GEE, but they are primarily focused on composite generation and data download. See geedim
Yes
If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.
Explain reasons for any
pkgcheck
items which your package is unable to pass.Package uses global assignment operator ('<<-'). The global assignment operator is used in the .onLoad special function to set the ee_extra Python Package in the R global environment (See here). This approach is similar to other reticulate R packages like keras or tensorflow.
Technical checks
Confirm each of the following by checking the box.
This package:
Publication options
MEE Options
Code of conduct
The text was updated successfully, but these errors were encountered: