【RS】GEE(Python):基础知识与环境搭建
对于刚接触 Google Earth Engine (GEE) 的新手,理解地理空间数据的基础概念并正确搭建开发环境,是进入这一强大工具世界的第一步。本教程将以详细的方式,逐步介绍与 GEE 相关的基础知识和环境配置,帮助初学者建立坚实的地基。
地理空间数据的基础概念
在学习 Google Earth Engine 之前,首先需要理解一些基本的地理空间数据概念。这些概念将帮助你更好地理解 GEE 的工作原理,以及如何处理不同类型的地理数据。
栅格数据(Raster Data)
栅格数据是以像素(pixel)为单位的网格状数据,通常用于表示连续的现象。每个像素都有一个具体的值,通常用于表示地表信息,例如:
- 卫星影像:例如来自 Landsat 卫星的地球图像,每个像素表示地球表面的某一块区域。
- 气候数据:例如温度或降水量,每个栅格表示地球表面的某一位置的气候值。
栅格数据通常分辨率较高,可以以图像的形式呈现,如地形图、土地利用图等。
矢量数据(Vector Data)
矢量数据使用几何形状(点、线、面)来表示地理要素,适用于表示离散的物体或边界。例如:
- 点数据:表示单一位置(如城市、气象站)。
- 线数据:表示线状物体(如河流、道路)。
- 面数据:表示具有边界的区域(如湖泊、国家边界)。
矢量数据通常用于表示精确的地理位置或边界,与栅格数据不同,它不依赖于网格。
坐标系与投影
地球是一个三维的球体,但地理数据通常以二维的平面形式呈现。这时就需要用到坐标系和投影:
- 地理坐标系(Geographic Coordinate System, GCS):使用经纬度(经度:东西方向,纬度:南北方向)来定义地球上位置的坐标系。
- 投影坐标系(Projected Coordinate System, PCS):通过数学变换将地球表面投影到平面上,不同的投影方式会导致一定的变形,但有利于地图的可视化和分析。
在处理地理数据时,确保数据使用相同的坐标系是非常重要的,尤其在处理栅格和矢量数据的叠加时。
环境搭建
在掌握了地理空间数据的基础概念后,接下来就是设置开发环境,以便你可以使用 Google Earth Engine 的 Python API 进行编程和数据分析。下面将介绍从零开始搭建 GEE 开发环境的步骤。
安装 Python 和所需库
我们将使用 Python 作为开发语言,因为 Google Earth Engine 提供了功能强大的 Python API,可以通过 Python 代码来进行地理数据的分析和处理。
安装 Python:
如果你的系统上还没有 Python,你可以访问 Python官网 下载最新版本的 Python。建议选择 Python 3.x 版本(当前大多数库都支持 Python 3)。
你也可以安装 Anaconda,这是一个流行的 Python 发行版,它提供了包管理器和虚拟环境管理工具,使得库的管理更加方便。可以在Anaconda官网 下载并安装。
创建虚拟环境(可选):
创建一个虚拟环境来隔离项目依赖是一个良好的实践,特别是当你将来可能会使用不同的库版本时。使用 Anaconda 创建虚拟环境的命令如下:
conda create -n gee_env python=3.8
conda activate gee_env
安装 Google Earth Engine API 和其他必要库
接下来,我们需要安装 Google Earth Engine Python API 和其他相关的库,例如 folium
用于地图可视化,geopandas
用于矢量数据处理。
在命令行中执行以下命令来安装这些库:
pip install earthengine-api folium geopandas
安装说明:
earthengine-api
:这是 Google Earth Engine 的 Python API,可以通过它与 GEE 平台进行交互。folium
:这是一个用于在 Python 中创建互动地图的库。我们将使用它来在地图上可视化数据。geopandas
:一个用于处理矢量数据的 Python 库,它提供了处理 Shapefile、GeoJSON 等格式的功能。
注册 Google Earth Engine 账户
要使用 Google Earth Engine,必须先申请并获得开发者访问权限。步骤如下:
- 访问 Google Earth Engine 官网。
- 点击 “Sign Up” 按钮,使用你的 Google 账号进行登录,并提交申请。
- 获得批准后,你将能够访问 GEE 数据和 API。
批准过程可能需要几天时间,Google 会通过邮件通知你申请结果。
Google Earth Engine Python API 认证和初始化
一旦账户获得批准,你就可以开始使用 Google Earth Engine API 了。在 Python 中,首先要进行身份验证和初始化。这一步是让你的脚本能够通过 Google OAuth 系统来访问 GEE。
身份验证:
在首次使用时,你需要进行身份验证,授权你的 Python 脚本访问 Google Earth Engine。运行以下代码进行认证:
import ee
# 进行身份验证,浏览器将弹出授权页面
ee.Authenticate()
此命令会在浏览器中打开一个窗口,要求你登录 Google 账户并授权。完成授权后,将返回一个认证令牌,自动存储在你的本地文件中。
初始化 Earth Engine:
身份验证完成后,你需要在每次运行脚本时初始化 Earth Engine。初始化后,你就可以使用 GEE 的各种功能了:
# 初始化 Earth Engine
ee.Initialize()
测试安装
如果一切配置正确,运行这段代码将输出指定图像的相关信息,您将看到图像的元数据,如波段、空间分辨率等。如果出现错误,可能是您的 GEE 账户尚未正确设置、未初始化,或者网络连接存在问题。
import ee
# 初始化 Earth Engine
ee.Initialize()
# 获取一个示例图像
image = ee.Image('JAXA/ALOS/AW3D30/V2_2')
# 图像的基本信息
image.getInfo()