GEE python登录重大更新——初始化过程中需要录入具体的项目名称

举报
此星光明 发表于 2024/01/05 22:18:41 2024/01/05
【摘要】 ​最近GEE python进行了更新,因此原始的登录代码将无法使用,所以这里我们看一下通常会报出的错误,这里需要我们将我们运行的projection具体的名称写入进去,也就是GEE中你再JavaScript界面中运行的项目名称,相较与之前我们需要进行验证码的copy,这里直接可以通过项目的写入来代替原有的验证码的验证,整体上更加方便了。前言 – 人工智能教程原始代码:import eeee....

最近GEE python进行了更新,因此原始的登录代码将无法使用,所以这里我们看一下通常会报出的错误,这里需要我们将我们运行的projection具体的名称写入进去,也就是GEE中你再JavaScript界面中运行的项目名称,相较与之前我们需要进行验证码的copy,这里直接可以通过项目的写入来代替原有的验证码的验证,整体上更加方便了。前言 – 人工智能教程

原始代码:

import ee
ee.Authenticate()
ee.Initialize()

错误:

WARNING:googleapiclient.http:Encountered 403 Forbidden with reason "PERMISSION_DENIED"
---------------------------------------------------------------------------
HttpError                                 Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/ee/data.py in _execute_cloud_call(call, num_retries)
    382   try:
--> 383     return call.execute(num_retries=num_retries)
    384   except googleapiclient.errors.HttpError as e:


7 frames


HttpError: <HttpError 403 when requesting https://earthengine.googleapis.com/v1/projects/earthengine-legacy/algorithms?prettyPrint=false&alt=json returned "Google Earth Engine API has not been used in project 522309567947 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/earthengine.googleapis.com/overview?project=522309567947 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.". Details: "[{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Google developers console API activation', 'url': 'https://console.developers.google.com/apis/api/earthengine.googleapis.com/overview?project=522309567947'}]}, {'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'SERVICE_DISABLED', 'domain': 'googleapis.com', 'metadata': {'consumer': 'projects/522309567947', 'service': 'earthengine.googleapis.com'}}]">
During handling of the above exception, another exception occurred:

EEException                               Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/ee/data.py in _execute_cloud_call(call, num_retries)
    383     return call.execute(num_retries=num_retries)
    384   except googleapiclient.errors.HttpError as e:
--> 385     raise _translate_cloud_exception(e)  # pylint: disable=raise-missing-from
    386 
    387 

EEException: Google Earth Engine API has not been used in project 522309567947 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/earthengine.googleapis.com/overview?project=522309567947 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.


正确的做法:

import ee

ee.Authenticate()
# 这里需要我们将我们运行的projection具体的名称写入进去,也就是GEE中你再JavaScript界面中运行的项目名称
ee.initialize (project= 'ee.xyz')

 这里我们要选择cloud project的中的名称放入到上面的引号当中即可

正确运行的结果

 Python 命令行
在使用地球引擎 Python 客户端库之前,您需要进行身份验证(验证您的身份),并使用由此获得的凭据初始化 Python 客户端。身份验证流程使用云项目进行身份验证,它们既可用于无偿(免费、非商业)使用,也可用于有偿使用。https://developers.google.com/earth-engine/guides/auth

首先,它会为你的环境选择最佳的身份验证模式,并提示你确认脚本的访问权限。如果凭据已经存在,则会自动重复使用--运行 ee.Authenticate(force=True) 可创建新凭据。

初始化步骤会验证是否存在有效凭据,这些凭据可以是通过 ee.Authenticate() 创建的,也可以是预先存在的 Google 默认凭据。然后使用后端服务器支持的方法初始化 Python 客户端库。您需要提供一个自己拥有或有使用权限的项目,该项目也启用了地球引擎 API。该项目将用于运行地球引擎的所有操作。

在命令行中,相应的调用为 earthengine authenticate。使用 earthengine set_project {my-project} 为进一步调用提供一个项目。命令行调用将根据需要自动初始化。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。