查看选定区域Landsat数据覆盖情况

简介: 查看选定区域Landsat数据覆盖情况

「AI Earth开发者模式于9月30日启动内测用户邀请,已经收到了众多来自高校、科研院所、行业公司用户的积极申请。

非常感谢用户积极体验产品功能并给出有效反馈,协助我们一同建设和完善公有云平台。」


本期开发者实践案例

Landsat 8 影像可用性分析


开发者“小岛学gis的穆 ” 同学在第一时间进行了线上测试,并反馈了有价值的优化建议。同时利用AIEarth开发者模式改写影像数据可用性分析代码,以下为小穆同学在平台上改写的湖北省 Landsat-8 影像可用性分析的案例。


01 初始化环境

使用AI Earth云平台开发者模式,需要先在AIE Notebook编程环境下导入AIE Python SDK包并初始化。

import aie

aie.Authenticate()

aie.Initialize()

# aie.Initialize(aie.g_var.LogLevel.DEBUG_LEVEL)  # 在进行Debug时可使用此代码


02 研究区域选择

AIE平台支持用户直接调用平台上的中国行政区划矢量数据,可以使用STAC ID导入。利用FeatureCollection和filter进行区域筛选,并通过map.addLayer进行区域可视化。


region = aie.FeatureCollection('China_Province') \

           .filter(aie.Filter.eq('province', '湖北省')) \

           .geometry()

map = aie.Map(center=region.getCenter(),height=800,zoom=6)

vis_params = {'color': '#00FF00'}

map.addLayer(region,vis_params,'region',bounds=region.getBounds())

map



03 L8 影像筛选

利用平台提供的ImageCollection函数对影像数据进行检索。


def l8Collection(startdate, enddate):

   images = aie.ImageCollection('LANDSAT_LC08_C02_T1_L2') \

                 .filterBounds(region) \

                 .filterDate(startdate, enddate)\

           .filter(aie.Filter.lte('eo:cloud_cover', 10.0))  

  return images

year = 2021

startDate = '2021-01-01';

endDate = '2022-01-01';

l8 = l8Collection(startDate, endDate)

print(l8.size().getInfo())

vis_params = {

   'bands': ['SR_B4', 'SR_B3', 'SR_B2'],

   'min': 8000,

  'max': 13000,

}

map.addLayer(

  l8.mosaic().clip(region),

  vis_params,

   'True Color (432)',

   bounds=region.getBounds()

)

map



04 影像边界计算与可视化

获得每一景L8影像边界,将单景影像边界Polygon通过FeatureCollection组合成新的矢量边界文件,并进行图层可视化。


def calfootprint(img):

   tmpfootprint = img.getBounds()

   polygon = aie.Geometry.Polygon([[

                                    [tmpfootprint[0], tmpfootprint[1]],

                                    [tmpfootprint[2], tmpfootprint[1]],

                                    [tmpfootprint[2], tmpfootprint[3]],

                                    [tmpfootprint[0], tmpfootprint[3]]]

                                    ])

   return polygon

footprints=[]

size = 50

list_images = l8.toList(count=size).getInfo()

for i in range(size):

   id = list_images[i]['id']

   footprint = calfootprint(aie.Image(id))

   footprints.append(aie.Feature(footprint))

footprints = aie.FeatureCollection(footprints)

visline_params = { 'color': '#d7191c'}

map.addLayer(

   footprints,

   visline_params,

   'footprints',

   bounds=footprints.getBounds()

)

map



05 区域可用影像统计

统计区域内、所选时间段下每期影像覆盖区域内的影像数量,并可视化展示。


def calsize(img):

   img2 =aie.Image(0)

   img3 = aie.Image(1)

   return img.multiply(img2).add(img3);

imgCount= l8.select("SR_B2").map(calsize).sum().clip(region);

vis_params = {

   'bands': ['SR_B2'],

   'palette': ['#d7191c', '#fdae61', '#ffffc0', '#a6d96a', '#1a9641','#FFFFFF','#CE7E45'

               ,'#DF923D','#F1B555','#FCD163','#99B718','#74A901','#66A000','#529400','#3E8601','#207401'

               ,'#056201','#004C00','#023B01','#012E01','#011D01','#011301'],

   'min': 0,

   'max': 100

}

map.addLayer(

   imgCount,

   vis_params,

   'imgCount',

   bounds=l8.getBounds()

)

map




AIEarth团队诚挚邀请相关专业同学进行线上应用体验。目前AIEarth正在征集用户应用案例,优秀案例将会在平台案例广场中共享给众多用户。

相关文章
|
6月前
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
190 0
|
1月前
|
Python
将NC栅格表示时间维度的数据提取出来的方法
【10月更文挑战第20天】本文介绍了如何使用 Python 和 R 语言以及 ArcGIS 软件提取 netCDF 文件中的时间维度数据。首先,通过安装和导入必要的库(如 Python 的 `netCDF4` 和 `numpy`,R 的 `ncdf4`),打开 netCDF 文件并读取时间变量。接着,详细展示了 Python 和 R 的示例代码,说明了如何读取和处理时间数据。最后,介绍了在 ArcGIS 中添加 netCDF 文件、启用时间属性并提取时间维度数据的方法。
|
3月前
|
机器学习/深度学习 JSON 算法
|
6月前
GEE图表——趋势线图表的加载和展示包含纵坐标间隔的设定(以某区域年均降水总量为例)
GEE图表——趋势线图表的加载和展示包含纵坐标间隔的设定(以某区域年均降水总量为例)
86 0
|
6月前
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
ArcGIS矢量面要素中零碎小面积空洞区域补全与单独部分区域分离并剔除
149 1
|
6月前
Landsat系列卫星WRS条带号Path Row分布介绍与对照图
Landsat系列卫星WRS条带号Path Row分布介绍与对照图
225 1
|
6月前
|
C++
[Halcon&定位] 解决Roi区域外的模板匹配成功
[Halcon&定位] 解决Roi区域外的模板匹配成功
207 0
|
编解码 前端开发 PHP
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
162 0
C++ 计算一个区域的内切圆, 区域内的一个点
C++ 计算一个区域的内切圆, 区域内的一个点
87 0
|
定位技术
ArcGIS相交分析Intersect:了解某一区域中有多少个其他矢量要素
本文介绍在ArcMap软件中,基于相交分析,实现两个具有多要素的要素集之间相互重叠关系的分析~
450 1
ArcGIS相交分析Intersect:了解某一区域中有多少个其他矢量要素