本文主要是介绍GEE:遥感影像的合成(composite)与镶嵌(Mosaic),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 前言
- 一、分析步骤
- 二、python代码
- 1、影像合成Composite
- 2、影像镶嵌Mosaic
- 3、进一步挖掘Mosaic的特性
- 三、小结
为学须刚与恒,不刚则隋隳,不恒则退 。——宋.冯子咸
前言
GEE,如何实现遥感影像的合成(composite)与镶嵌(mosaic)?二者有何区别?
分析区域如下:
一、分析步骤
主要分析步骤:
二、python代码
1、影像合成Composite
python代码如下
注意:合成composite更主要体现的是同一区域多期影像的合成操作
Map = geemap.Map()
# 加载影像数据
naip2004_2012 = ee.ImageCollection('USDA/NAIP/DOQQ') \.filterBounds(ee.Geometry.Point(-71.09, 42.4)) \.filterDate('2004-07-01', '2012-12-31') \.select(['R', 'G', 'B'])
# 最大值合成
composite = naip2004_2012.max()
Map.addLayer(composite, {}, 'max value composite')
Map.setCenter(-71.09, 42.4, 14)
Map
结果如下:
2、影像镶嵌Mosaic
- ee.ImageCollection.mosaic()
注意:镶嵌mosaic更主要体现的不同区域影像的合成操作
需要同时拼接四个不同的 DOQQ,但位置不同
python代码如下
# 加载跨4幅影像的数据
naip2012 = ee.ImageCollection('USDA/NAIP/DOQQ') \.filterBounds(ee.Geometry.Rectangle([-71.18, 42.35, -71.09, 42.41])) \.filterDate('2012-01-01', '2012-12-31')
# 影像镶嵌mosaic
mosaic = naip2012.mosaic()
Map.addLayer(naip2012, {}, 'naip2012')
Map.setCenter(-71.12532, 42.3712, 12)
结果如下:
3、进一步挖掘Mosaic的特性
重点:mosaic()方法根据它们在集合中的顺序(最后在顶部)合成重叠图像。要控制镶嵌(或合成)中像素的来源,可使用图像掩膜mask。
例如,以下使用光谱阈值进行镶嵌新的图像数据
python代码如下:
# 加载影像,显示
naip = ee.Image('USDA/NAIP/DOQQ/m_4207148_nw_19_1_20120710')
Map.setCenter(-71.0915, 42.3443, 12)
Map.addLayer(naip, {}, 'naip')
# 生成NDVI、NDWI指数
ndvi = naip.normalizedDifference(['N', 'R']).rename('ndvi')
ndwi = naip.normalizedDifference(['G', 'N']).rename('ndwi')# 利用上述2个指数,采用不同阈值条件,探测区域裸地分布
# 裸地1,植被指数低于0.2,同时水体指数低于0.3的区域
bare1 = ndvi.lt(0.2).And(ndwi.lt(0.3))
# 裸地2,植被指数低于0.2,同时水体指数低于0.8的区域。可见其敏感性比上一阈值较低
bare2 = ndvi.lt(0.2).And(ndwi.lt(0.8))# 显示参数
vis_ndvi = {'min':-1, 'max':1, 'palette':['red', 'green']}
vis_ndwi = {'min':0.5, 'max':1, 'palette':['gray', 'blue']}# 加载显示
Map.addLayer(ndvi, vis_ndvi, 'ndvi')
Map.addLayer(ndwi, vis_ndwi, 'ndwi')
Map.addLayer(bare1, {}, 'bare1')
Map.addLayer(bare2, {}, 'bare2')
显示结果:
# 掩膜并镶嵌可视化影像,可以看到最后的图层位于最上层(这是Mosaic的特点)
mosaic = ee.ImageCollection([ndwi.updateMask(ndwi.gte(0.5)).visualize(**vis_ndwi), ndvi.updateMask(ndvi.gte(0.2)).visualize(**vis_ndvi),bare2.updateMask(bare2.And(bare1.Not())).visualize(**{'palette':['gray']}),bare1.updateMask(bare1).visualize(**{'palette':['white']})
]).mosaic()
Map.addLayer(mosaic, {}, 'visualization mosaic')
结果如下:
三、小结
- 分析了影像合成与影像镶嵌的两种不同影响合成方法,其中影像合成composite更多的表现在同一区域不同时间影像的组合,多使用的合成方法有最大化合成(MVC,max value composite)、中值合成(median)、均值合成(mean)等合成方法,在具体工作中可根据实际需要采用不同的合成方法;镶嵌(mosaic)更多的表现在不同区域上的多幅影像的合成。
- 镶嵌的特点是最后的图层位于最上层,这也是Mosaic的特点之一。
参考:
- https://developers.google.com/earth-engine/apidocs/ee-image-visualize?hl=en
- https://github.com/giswqs/earthengine-py-notebooks/blob/master/ImageCollection/mosaicking.ipynb
- https://developers.google.com/earth-engine/guides/ic_composite_mosaic?hl=en
这篇关于GEE:遥感影像的合成(composite)与镶嵌(Mosaic)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!