前段时间是针对geemap中的Tutorials和geemap book进行了系统学习,针对其中所涉及到的geemap例子进行了详细的记录和备注,虽然感觉已经是入门了不少,例如earth engine无非就是涉及到Image、ImageCollection、Geometry、Feature、FeatureCollection及其运算,但是对earth engine中涉及到的方法还了解较少,例如边缘检测等等。最近,发现了geemap已经将GEE中的大部分例子已经转为了Python代码,这其中含有丰富的知识,因此后面就会将结合官方文档中的案例进行记录和学习,案例的搜索可以参考geemap学习笔记020:如何搜索Earth Engine Python脚本。
import ee
import geemap
ee.Initialize()
Map = geemap.Map()
Map
Map = geemap.Map(center=[40, -100], zoom=4)
# 此函数从 Landsat 8 图像获取 NDVI。
def addNDVI(image):
return image.addBands(image.normalizedDifference(['B5', 'B4']))
# 此函数掩膜云像素。
def cloudMask(image):
#此函数是使用[0,100]范围内的数表示云的含量,返回含有'cloud'波段的image
clouds = ee.Algorithms.Landsat.simpleCloudScore(image).select(['cloud'])
#clouds<10的会返回1,否则返回0
return image.updateMask(clouds.lt(10))
#加载Landsat集合,在其上循环NDVI和云掩膜函数。
collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA') \
.filterBounds(ee.Geometry.Point([-122.262, 37.8719])) \
.filterDate('2014-03-01', '2014-05-31') \
.map(addNDVI) \
.map(cloudMask)
#将集合减少到每个像素的平均值并显示。为什么不直接使用median,是为了方便后面的NDVI均值计算
meanImage = collection.reduce(ee.Reducer.mean())
vizParams = {'bands': ['B5_mean', 'B4_mean', 'B3_mean'], 'min': 0, 'max': 0.5}
Map.setCenter(-122.262, 37.8719, 10)
Map.addLayer(meanImage, vizParams, 'mean')
#加载一个区域来计算平均值并显示。
counties = ee.FeatureCollection('TIGER/2016/Counties')
santaClara = ee.Feature(counties.filter(
ee.Filter.eq('NAME', 'Santa Clara')).first())
Map.addLayer(ee.Image().paint(santaClara, 0, 2), {
'palette': 'yellow'}, 'Santa Clara')
# 获取该地区 NDVI 的平均值。
mean = meanImage.select(['nd_mean']).reduceRegion(**{
'reducer': ee.Reducer.mean(),
'geometry': santaClara.geometry(),
'scale': 30
})
#打印该地区的平均 NDVI。
print('Santa Clara spring mean NDVI:', mean.get('nd_mean').getInfo())
#展示Map
Map
显示结果
大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。