36_geemap学习笔记 | 质量镶嵌(最大NDVI)

原文:quality mosaic
实践:
关键函数:greenest = withNDVI.qualityMosaic(‘NDVI’)

import ee
import geemap
geemap.set_proxy(10809)
Map =geemap.Map()
Map

在这里插入图片描述
Define a region of interest(ROI)

coun = "D:\learnpy\shp\countries.shp"
countries = geemap.shp_to_ee(coun)
Map.addLayer(countries, {} ,'countries')

在这里插入图片描述

roi = countries.filter(ee.Filter.eq('NAME','China'))
Map.addLayer(roi, {}, 'China')

此边界仅为学习使用,还应包含九段线
Filter Collection

start_date = '2019-01-01'
end_date = '2019-12-31'

l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA') \
            .filterBounds(roi) \
            .filterDate(start_date, end_date)
print(l8.size().getInfo())
# 10374

Create a median compoiste

median = l8.median()

visParams = {
    'bands': ['B4', 'B3', 'B2'],
    'min': 0,
    'max': 0.4,
}

Map.addLayer(median, visParams, 'Median')

在这里插入图片描述
Define functions to add time bands

def addNDVI(image):
    ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI')
    return image.addBands(ndvi)

def addDate(image):
    img_date = ee.Date(image.date())
    img_date = ee.Number.parse(img_date.format('YYYYMMdd'))
    return image.addBands(ee.Image(img_date).rename('date').toInt())
    

def addMonth(image):
    img_date = ee.Date(image.date())
    img_mon = ee.Number.parse(img_date.format('M'))
    return image.addBands(ee.Image(img_mon).rename('month').toInt())

def addDOY(image):
    img_date = ee.Date(image.date())
    img_doy = ee.Number.parse(img_date.format('D'))
    return image.addBands(ee.Image(img_doy).rename('doy').toInt())

Map over an ImageCollection

withNDVI = l8.map(addNDVI).map(addDate).map(addMonth).map(addDOY)

Create a quality mosaic

greenest = withNDVI.qualityMosaic('NDVI')
greenest.bandNames().getInfo()
# ['B1',  'B2','B3','B4','B5','B6','B7','B8','B9','B10','B11', 'BQA', 'NDVI', 'date', 'month', 'doy']

Display the max value band

ndvi = greenest.select('NDVI')
palette = ['#d73027', '#f46d43', '#fdae61', '#fee08b', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850']
Map.addLayer(ndvi, {'palette': palette}, 'NDVI')

在这里插入图片描述
一年中最绿的月份

Map.addLayer(greenest.select('month'), {'palette': ['red', 'blue'], 'min': 1, 'max': 12}, 'Greenest month')

在这里插入图片描述

一年中最绿的天

Map.addLayer(greenest.select('doy'), {'palette': ['brown', 'green'], 'min': 1, 'max': 365}, 'Greenest doy')

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值