Skip to content
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

Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA #32

Open
Heed725 opened this issue Nov 22, 2021 · 14 comments

Comments

@Heed725
Copy link

Heed725 commented Nov 22, 2021

Umm Hello I'm using Windows I tried to run The following code example It gave me a Lot of errors

Line of code

library(rayshader)
library(rayvista)

.lat <- 57.219566
.long <- -6.092690

cuillins <- plot_3d_vista(lat = .lat, long = .long, phi=30)

render_label(heightmap= cuillins, text='Bla Bheinn: 928 m', lat = .lat,
long=.long, extent = attr(cuillins, 'extent'),altitude=600,
clear_previous = T, zscale = 2)

render_compass()

render_scalebar(limits=c(
round(dim(cuillins)[2]*attr(cuillins, 'resolution')/1000,1)),
label_unit = 'km')

render_snapshot(clear=TRUE)

Error given

library(rayshader)

library(rayvista)
.lat <- 57.219566
.long <- -6.092690

cuillins <- plot_3d_vista(lat = .lat, long = .long, phi=30)
Downloading overlay...
Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA
Retrying in 2 seconds.
Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA
Retrying in 3 seconds.
Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA
Retrying in 7 seconds.
Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA
Retrying in 3 seconds.
Error: error in evaluating the argument 'CRSobj' in selecting a method for function 'spTransform': NA
Error: Request failed after 5 attempts
Run rlang::last_error() to see where the error occurred.
In addition: Warning message:
In showSRID(SRS_string, format = "PROJ", multiline = "NO", prefer_proj = prefer_proj) :
PROJ/GDAL PROJ string degradation in workflow
repeated warnings suppressed
Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs

render_label(heightmap= cuillins, text='Bla Bheinn: 928 m', lat = .lat,

  •          long=.long, extent = attr(cuillins, 'extent'),altitude=600,
    
  •          clear_previous = T, zscale = 2)
    

Error in render_label(heightmap = cuillins, text = "Bla Bheinn: 928 m", :
object 'cuillins' not found

render_compass()
Error in if (id) rgl.attrib.count(id, "colors") else rgl.getcolorcount() :
argument is not interpretable as logical

render_scalebar(limits=c(

  • round(dim(cuillins)[2]*attr(cuillins, 'resolution')/1000,1)),
  • label_unit = 'km')
    Error in render_scalebar(limits = c(round(dim(cuillins)[2] * attr(cuillins, :
    object 'cuillins' not found

render_snapshot(clear=TRUE)

Help Me

@h-a-graham
Copy link
Owner

h-a-graham commented Nov 22, 2021

Hi, this looks like it's realted to this issue:
jhollist/elevatr#48

Can you share what version of elevatr you have installed with:
packageVersion('elevatr')

Also, do you mind sharing:
sessionInfo()

It seems that this is likely due to some outdated packages. If we figure out what it is then I can add it as a minimum dependency on install.
Thanks

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

packageVersion('elevatr')

[1] ‘0.4.1’

sessionInfo()

sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 21996)

Matrix products: default

locale:
[1] LC_COLLATE=English_Tanzania.1252 LC_CTYPE=English_Tanzania.1252
[3] LC_MONETARY=English_Tanzania.1252 LC_NUMERIC=C
[5] LC_TIME=English_Tanzania.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached):
[1] compiler_4.1.2 tools_4.1.2 tinytex_0.35 xfun_0.28

@h-a-graham
Copy link
Owner

Can you load rayshader and rayvista before running session info, please?

library(rayshader)
library(rayvista)
sessionInfo()

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

library(rayshader)
library(rayvista)
sessionInfo()

R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 21996)

Matrix products: default

locale:
[1] LC_COLLATE=English_Tanzania.1252 LC_CTYPE=English_Tanzania.1252
[3] LC_MONETARY=English_Tanzania.1252 LC_NUMERIC=C
[5] LC_TIME=English_Tanzania.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] rayvista_0.1.7.4 rayshader_0.26.6

loaded via a namespace (and not attached):
[1] Rcpp_1.0.7 rgl_0.108.3 codetools_0.2-18 prettyunits_1.1.1 digest_0.6.28
[6] foreach_1.5.1 crayon_1.4.2 R6_2.5.1 jsonlite_1.7.2 lifecycle_1.0.1
[11] magrittr_2.0.1 rlang_0.4.12 progress_1.2.2 doParallel_1.0.16 vctrs_0.3.8
[16] ellipsis_0.3.2 iterators_1.0.13 tools_4.1.2 htmlwidgets_1.5.4 tinytex_0.35
[21] hms_1.1.1 fastmap_1.1.0 xfun_0.28 parallel_4.1.2 compiler_4.1.2
[26] pkgconfig_2.0.3 htmltools_0.5.2 knitr_1.36

@h-a-graham
Copy link
Owner

Thanks! and how about:

packageVersion('sp')

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

packageVersion('sp')

‘1.4.6’

@h-a-graham
Copy link
Owner

okay, that is up to date...

can you also let me know the output from the following:

lapply(c('sp','raster','sf', 'rgdal'), FUN = packageVersion)

and what is printed when you load sf with:

library(sf)
library(rgdal)

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

lapply(c('sp','raster','sf', 'rgdal'), FUN = packageVersion)
[[1]]
[1] ‘1.4.6’

[[2]]
[1] ‘3.5.2’

[[3]]
[1] ‘1.0.4’

[[4]]
[1] ‘1.5.27’

library(sf)
library(rgdal)

library(sf)
Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1
library(rgdal)
Loading required package: sp
Please note that rgdal will be retired by the end of 2023,
plan transition to sf/stars/terra functions using GDAL and PROJ
at your earliest convenience.

rgdal: version: 1.5-27, (SVN revision 1148)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 3.2.1, released 2020/12/29
Path to GDAL shared files: C:/Users/Juma Lungo/Documents/R/win-library/4.1/rgdal/gdal
GDAL binary built with GEOS: TRUE
Loaded PROJ runtime: Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]
Path to PROJ shared files: C:/Users/Juma Lungo/Documents/R/win-library/4.1/rgdal/proj
PROJ CDN enabled: FALSE
Linking to sp version:1.4-5
To mute warnings of possible GDAL/OSR exportToProj4() degradation,
use options("rgdal_show_exportToProj4_warnings"="none") before loading sp or rgdal.
Overwritten PROJ_LIB was C:/Users/Juma Lungo/Documents/R/win-library/4.1/rgdal/proj

@h-a-graham
Copy link
Owner

Okay, that all looks okay to me (which is weird).
What about:
sp::CRS(SRS_string = "EPSG:4326")
will do some testing on mwindows machine but currently not able to reproduce this...

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

sp::CRS(SRS_string = "EPSG:4326")

Error in sp::CRS(SRS_string = "EPSG:4326") : NA

@h-a-graham
Copy link
Owner

h-a-graham commented Nov 22, 2021

OKay so this is the issue and I don't know why it is happening on your system. For me this returns the following:

sp::CRS(SRS_string = "EPSG:4326")
Coordinate Reference System:
Deprecated Proj.4 representation: +proj=longlat +datum=WGS84 +no_defs 
WKT2 2019 representation:
GEOGCRS["WGS 84 (with axis order normalized for visualization)",
    DATUM["World Geodetic System 1984",
        ELLIPSOID["WGS 84",6378137,298.257223563,
            LENGTHUNIT["metre",1]],
        ID["EPSG",6326]],
    PRIMEM["Greenwich",0,
        ANGLEUNIT["degree",0.0174532925199433],
        ID["EPSG",8901]],
    CS[ellipsoidal,2],
        AXIS["geodetic longitude (Lon)",east,
            ORDER[1],
            ANGLEUNIT["degree",0.0174532925199433,
                ID["EPSG",9122]]],
        AXIS["geodetic latitude (Lat)",north,
            ORDER[2],
            ANGLEUNIT["degree",0.0174532925199433,
                ID["EPSG",9122]]]] 

I'm not sure how to fix this on my end at the moment I'm afraid. It appears to be a problem with underlying spatial libraries. But seeing as your libraries all seem up to date, this is very strange...

I'll keep track of the issues in {elevatr} and update if there is any news.

I'm also working on a different package that will avoid some of these issues but it it still needs work - I can keep you posted on that.

Cheers

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

One last dash I tried an alternative to encode this
wkt <- sf::st_crs(4326)[[2]]
sp::CRS(wkt)

CRS arguments: +proj=longlat +datum=WGS84 +no_defs
-----Result----------

wkt <- sf::st_crs(4326)[[2]]
sp::CRS(wkt)
Coordinate Reference System:
Deprecated Proj.4 representation: +proj=longlat +datum=WGS84 +no_defs
WKT2 2019 representation:
GEOGCRS["WGS 84 (with axis order normalized for visualization)",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic longitude (Lon)",east,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic latitude (Lat)",north,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]]]

CRS arguments: +proj=longlat +datum=WGS84 +no_defs
Error: unexpected symbol in "CRS arguments"

Can It mean anything

@h-a-graham
Copy link
Owner

h-a-graham commented Nov 22, 2021

Yes, basically {sf} resolves many of these legacy PROJ issues I think - however {elevatr} is still using {sp}. I think it is due to be updated at some point but not sure when. Unforunately I don't have the time to track down the issues in elevatr but may be worth testing some of the elevatr functions and reporting in the issue that I referenced earlier on.

If you're really keen to get plotting with something you are welcome to try out the dev version of {raytrix} https://github.com/h-a-graham/raytrix

The following should work but I can't guarentee anything as, like I said, this is still a work in progress.

# devtools::install_github('h-a-graham/raytrix')

library(raytrix)
library(rayshader)

.lat <- 57.219566
.long <- -6.092690

# sets extent and projection
set_canvas_centroid(lat=.lat, long=.long, radius = 10000) 

# download height data
dem_matrix <- topo_matrix(20, src='aws')

#download rgb overlay
overlay_array <- map_drape(5, src='wms_virtualearth')

# plot in 3d with rayshader
plot_3d(overlay_array, dem_matrix, zscale=20*0.75)

Sorry that we can't find a solution right now - I'll leave this open and hopefully we can fix it in the near future...

@Heed725
Copy link
Author

Heed725 commented Nov 22, 2021

The raytrix works I will stick with this for the time being, Thank you, please keep me updated and cheers 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants