查看选定区域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正在征集用户应用案例,优秀案例将会在平台案例广场中共享给众多用户。

相关文章
|
缓存 Linux
kswapd0内存过高排查经历
kswapd0内存过高排查经历
878 1
麒麟系统mate-indicators进程占用内存过高问题解决
【10月更文挑战第7天】麒麟系统mate-indicators进程占用内存过高问题解决
1851 2
|
机器学习/深度学习 人工智能 测试技术
MoBA:LLM长文本救星!月之暗面开源新一代注意力机制:处理1000万token能快16倍,已在Kimi上进行验证
MoBA 是一种新型注意力机制,通过块稀疏注意力和无参数门控机制,显著提升大型语言模型在长上下文任务中的效率。
957 3
|
算法 搜索推荐 安全
不属于五种算法是否无需备案?一文读懂算法备案的真相
在数字化时代,算法成为互联网服务的核心技术。为应对算法歧视、大数据杀熟等问题,我国出台了算法备案制度,规范算法使用,保护用户权益。五种常见算法(生成合成、个性化推送、排序精选、检索过滤、调度决策)需备案,但其他类型算法在特定情况下也需备案,如涉及舆论属性或社会动员能力。未备案将面临法律责任,企业应严格遵守规定,确保合规运营。算法备案不仅是法律要求,更是企业对社会责任的体现。
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
390 7
|
编解码 监控 网络协议
GB/T28181规范和JT1078交通部标差异
Android平台GB28181接入SDK(SmartGBD),可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,可能是业内为数不多功能齐全性能优异的商业级水准GB28181接入SDK
753 0
|
存储 API 数据库
深入探索DDD与事件溯源:使用Entity Framework Core构建高效且可维护的领域驱动设计应用——从理论到实践的全方位指南,附带代码示例与最佳实践分享
【8月更文挑战第31天】本文通过实例介绍如何结合领域驱动设计(DDD)与事件溯源(Event Sourcing)及 Entity Framework Core(EF Core),构建高效且可维护的应用程序。DDD 强调业务逻辑与软件设计的紧密融合,而事件溯源则通过记录所有变更事件来重建状态。文章详细展示了创建基于 EF Core 的项目、配置数据库上下文、定义领域模型与事件,并存储和提交事件的具体步骤。通过这些技术,实现了复杂业务逻辑的持久化与重构,提高了应用程序的灵活性和扩展性。
725 0
|
存储 NoSQL 算法
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点

热门文章

最新文章