新建notebook
这里和GEE中的python一样,我们首先要进行SDK的导入,然后进行认证和初始化。
导入AIE Python SDK并初始化
第一次执行下面一段代码时,会在后台系统初始化计算资源(通常约1分钟)。在长时间无计算任务运行后,相关的计算资源会被后台系统自动回收,需要执行下面一段代码重新初始化。
初始化代码:
# 每个notebook首次运行需要先运行以下初始化代码 import aie aie.Authenticate() aie.Initialize()
这里的的初始化过程比GEE更为简单,因为,这里无需账号的验证,估计后续可能会验证和修改,不过这个简化的过程确实值得称赞,我估计这个就是在登录平台之后你的账号已经被认定了,从登录那里来直接获取你的个人信息。
导入数据
AI Earth平台目前主要分为三类数据分别是影像类、矢量类和数据集三类,其中影像和矢量均采用SpatioTemporal Asset Catalog (STAC)进行管理,对应数据集合或单项数据均有各自全局唯一的STAC ID。也就是每一个在平台上有的数据集都会有单一的ID号来方便引用和分析
- 影像类:即栅格数据,包括Image和ImageCollection;这里指的就是单景影像和影像集合
- 矢量类:包括Feature和FeatureCollection;矢量和矢量集合
- 数据集:除影像、矢量之外的非时空类数据,包括用户上传、代码生成的csv、txt、json、zip等格式的文件。这里相比于GEE还可以上传txt文档。
简单的数据类型介绍:
AIE Python SDK主要提供对影像和矢量相关的处理能力,对应的数据类型主要为:
- Image: 影像,通常可以类比于一个影像文件,如GeoTIFF、IMG等;
- ImageCollection: 影像集合,包含一个或多个Image对象;
- Feature: 矢量,通常可以类比于一个shapefile内的一个矢量;
- FeatureCollection: 矢量集合,通常可以类比于一个shapefile;
- Geometry: 几何对象,是Feature中的geometry部分。
导入影像(栅格)类数据
影像类数据可以来自公开数据,也可以来自用户上传数据。如果平台没有你所需的数据,仍然可以利用自己通过其它方式进行数据上传,
导入公开影像集合为ImageCollection
在开发者模式左侧 数据 列表下,选择 公开数据 栏,点击公开数据右侧的 “ + ”号即可将对应的影像集合到Notebook中。如下图所示,LANDSAT_LT05_T02_T1_L2
即为该ImageCollection全局唯一的STAC ID。公开数据详情请参见平台 数据资源介绍页。
在数据集界面当中我们可以分别点击不同的数据集来完成不同数据集的的ID介绍,这里和GEE当中的Collection Snippet是一样的道理
当我们尝试加载影像的时候,直接就会将整个影像代码块导入到notebook中,这样只要我们在前期完成了程序的初始化后就可以直接搞定,进行影像的加载了:
这里以Landsat 5影像为例:
#初始化 import aie aie.Authenticate() aie.Initialize() # 指定需要检索的区域,这里以浙江省为研究区 feature_collection = aie.FeatureCollection('China_Province') \ .filter(aie.Filter.eq('province', '浙江省')) geometry = feature_collection.geometry() # 指定检索数据集,可设置检索的空间和时间范围,以及属性过滤条件(如云量过滤等) dataset = aie.ImageCollection('LANDSAT_LT05_T02_T1_L2') \ .filterBounds(geometry) \ .filterDate('2004-04-01', '2004-04-31') \ .filter(aie.Filter.lte('eo:cloud_cover', 10.0)) \ .limit(10) #这里将影像数量限制导10景 #加载地图的中心点 map = aie.Map( center=feature_collection.getCenter(), height=800, zoom=7 ) #地图的可视化参数 vis_params = { 'bands': ['SR_B3', 'SR_B2', 'SR_B1'], 'min': 8000, 'max': 13000, } #加载影像 map.addLayer( dataset, vis_params, 'True Color (321)', bounds=dataset.getBounds() ) map
当你点击运行的时候会显示初始化的进程,完成后会提示有计算机初始化完成,然后紧接着就会有一个地图出来,这个地下的MAP地图布局有点像GEE中JavaScript界面当中MAP,可以上下拖动:
以上就完成了Landsat 5影像的加载
这里介绍一下,在开发者模式的界面的右侧同样出现的是数据集和左侧列表一样,同时如果将鼠标放上去,然后回出现整个数据加载的代码,相比于GEE中的JavaScript代码行数可能会略显多一些,但是和GEE的python同样差不多,所以AI Earth 已经很牛了,未来还将不断更新,期待大家关注