Loading...
墨滴

学一点会一点

2021/04/02  阅读:155  主题:默认主题

【R-rgee-00】rgee从放弃到入门:安装与初始化

我又来折腾环境配置问题了,人生的意义就在于折腾?😂

这是折腾了N次rgee之后又重新写的第零篇rgee的文章,从放弃到入门

我们都知道GEE是个科研神器,但是这神器用起来缺着实不容易,主要是因为我菜,不习惯JavaScript,次要原因就是网络问题了。

好了,废话不说,正文走起。

1、rgee安装

这里首先给Ruser打个预防针,不要以为你用rgee就是用的r了,rgee本质上还是调用的python的gee api(具体如图1),所以如果对python熟悉或者对JavaScript熟悉的,强烈建议用python版的或者JavaScript版的

How does rgee work?(https://github.com/r-spatial/rgee)
How does rgee work?(https://github.com/r-spatial/rgee)

如果非要使用rgee的童鞋(比如我,因为最近一直写R,写习惯了),第一步就是安装rgee了,安装非常简单,但是也有两种方式:

(1)直接在R中安装

install.packages("rgee")
rgee::ee_install()

通过上面的安装方式来安装的话,在安装过程中会让你选择是否安装miniconda(如图2),这时候选择Y,就会帮你安装miniconda然后帮你创建一个python环境,接着在这个环境中安装python版的earth engine api以及其他一些依赖库。

图2:miniconda选择
图2:miniconda选择

这里如果对python环境配置不熟悉的童鞋直接一路Yes就行。

(2)调用本地python环境

对于图2中的选择,如果对python环境配置比较熟悉的童鞋可以选择N,这时候系统会自动检测电脑上的python环境,如图3是我的本地环境,我已经安装了python版的ee api,就不用重复安装了。因为如果你本地已经有python的ee环境的话,仍然选择Y,ee_install()会重新创建一个miniconda的环境,浪费时间和空间。

图3:本地python ee api环境
图3:本地python ee api环境

python版的ee api安装可以看参考链接【7】。

2、ee初始化

安装完成之后,我们可以通过ee_check()来检查环境是否已经配置好了。如果没有问题,就可以用ee_Initialize()来进行初始化,如图4所示:

图4:ee_Initialize()
图4:ee_Initialize()

到上面这一步之后,会弹出浏览器让你进行earth engine的授权,一般来说会遇到如图5所示的问题(关键词:Error in py_call_impl(callable, dots keywords) : URLError:、Timeout error):

图5:URLError、乱码报错等
图5:URLError、乱码报错等

当你百度或者google,会搜到一些相关的问题(根据个人的分析,其实URLError、Timeout都是因为网络问题)和解决方案,但是好像没有很完整的答案(很可能是我没找到😂)。

通过查看参考链接【1-6】,发现上面的问题其实就是网络问题。这里有些同学可能会问:为什么我的浏览器可以google,但是这里会有网络问题? 之前我也折腾过geemap的配置问题,具体见这篇【geemap.00】Resource temporarily unavailable、超时问题)简单来说就是,虽然你的浏览器可以科学上网,但是你没告诉R/python怎么科学上网,因此要设置相应的端口,告诉R从哪个端口(可以比作门洞)出去可以看到外面的世界。

设置方法很简单,在你的代码最前面加上如下两行代码即可:

Sys.setenv(http_proxy='http://127.0.0.1:10809')
Sys.setenv(https_proxy='http://127.0.0.1:10809')

*注意: (1)每个人的端口可能不一样,一般来说默认的是1080,如何查看自己科学上网工具本地端口的方法大家可以参考我上面那边写python geemap的文章。 (2)仅设置http_proxy是不行的,https_proxy也要设置一下,因为现在绝大多数网站都是用的https协议,比如https://accounts.google.com

设置完上面的代理环境后,最好使用ee_clean_credentials()删除之前的鉴权文件,然后再重新ee_Initialize()一下,应该就可以成功了,比如图6。

图6:Esri.WorldImagery
图6:Esri.WorldImagery

总结

众所周知,因为某些问题,我们使用国外的一些工具经常会遇到各种问题,最常见的就是Timeout问题,可谓困难总比办法多。。。。

写下本文,让小白少走一些弯路,关注我,学一点会一点。

学一点会一点
学一点会一点

参考链接

【1】rgee:https://github.com/r-spatial/rgee

【2】rgee的python环境问题:https://github.com/r-spatial/rgee/issues/91

【3】端口设置:https://github.com/r-spatial/rgee/issues/63

【4】timeout相关:https://github.com/r-spatial/rgee/issues/73

【5】十分钟搞懂HTTP和HTTPS协议:https://zhuanlan.zhihu.com/p/72616216

【6】关于python的科学上网设置:https://groups.google.com/g/google-earth-engine-developers/c/GeO3d6Utyto

【7】python版的ee api安装:https://blog.csdn.net/xuxugiser/article/details/105987034

【8】 走天涯徐小洋地理数据科学:喜大普奔!rgee能用了!R语言也可以使用Google Earth Engine了!

学一点会一点

2021/04/02  阅读:155  主题:默认主题

作者介绍

学一点会一点