一、问题描述
油管(B站同步)的QiuSheng Wu老师教授如何安装 Earth Engine Python API的逻辑是:(https://youtu.be/JCyFZRJOmOk)https://youtu.be/JCyFZRJOmOk
①获得GEE平台的账户认证(即令牌---一个账户只有一个一样的令牌)
②粘贴在jupyter notebook的verification code框框里即可
然鹅,实际操作并没有视频里那么丝滑/(ㄒoㄒ)/~~
我贴了码之后,一直报错:KeyError: 'client_id'
没想到看似简单的一个内容花费了我快一天搞定,所以来跟小伙伴们分享一下~
二、问题原因分析
总的来说就是网络原因。
即使我们已经科学上网,但可能是IP地址等属性还是归属于国内。(具体原理我也不懂hhh)
就如同之前装geemap包的时候,也需要关掉”科学上网“才可以安装。
三、解决方法
既然知道了问题在哪,解决的方法就是:需要将你的网络接口跟GEE匹配上,再去认证:
step1:Win+r键打开运行框,键入cmd,打开 CMD 命令提示符窗口
step2:网络配置
set http_proxy=http://ip地址:端口号
set https_proxy=https://ip地址:端口号
划重点!这里的ip地址和端口号换成你自己电脑的!!!
如何找到ip地址和端口号?(全网最详细最简单教程!不要去百度里搜,相信我!)
①点击网络和Internet设置
②找到代理,即可找到IP和端口
③按上述代码组装
格式为ip地址+端口号——xxx.x.x.x.xxxx
step3:之前的命令提示符窗口不要关闭,紧接着运行这条命令
earthengine authenticate
如下图所示
执行!
按wsZhang大佬文章(https://www.cnblogs.com/wszhang/p/12253158.html)里讲的,到这里,应该就配置好,可以认证了,但我又又又出现了问题。。。
出现的问题:'gcloud' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
这里的“Fetching credentials using gcloud”的意思是, 需要使用gcloud才可以完成身份认证,这里的gcloud指的就是软件Google Cloud。
因此,解决方法是:安装Google Cloud
安装 gcloud CLI | Google Cloudhttps://cloud.google.com/sdk/docs/install
安装有些漫长,而且最好安装在C盘,只有88M左右(对,尝试D盘好久都安不上 /(ㄒoㄒ)/~~)
安装之后软件会带着你做认证,关联到你的gMail账户即可~
step4:回到jupyter notebook完成初始化和认证
注意:在jupter里也需要重新进行网络配置,识别你的ip和端口号,这里导入内置模块OS。
import ee
import os
os.environ['http_proxy'] = "http://xxx.x.x.x:xxxx"#还是之前的ip
os.environ['https_proxy'] = "https://xxx.x.x.x:xxxx"#还是之前的端口号
ee.Initialize()#初始化
运行成功!
PS:这里并没有让我再输入令牌,应该是系统有保存到
测试一下:
import geemap
m = geemap.Map()
m
结果:
完美!!!
四、引用
本文主要参考👇文章,感谢大佬wsZhang~[GEE Tips-4]本地配置GEE Python API环境(Windows) - wsZhang - 博客园 (cnblogs.com)https://www.cnblogs.com/wszhang/p/12253158.html