geemap学习笔记043:开始Earth Engine Python脚本

2024-01-09 09:29:22

前言

前段时间是针对geemap中的Tutorialsgeemap book进行了系统学习,针对其中所涉及到的geemap例子进行了详细的记录和备注,虽然感觉已经是入门了不少,例如earth engine无非就是涉及到Image、ImageCollection、Geometry、Feature、FeatureCollection及其运算,但是对earth engine中涉及到的方法还了解较少,例如边缘检测等等。最近,发现了geemap已经将GEE中的大部分例子已经转为了Python代码,这其中含有丰富的知识,因此后面就会将结合官方文档中的案例进行记录和学习,案例的搜索可以参考geemap学习笔记020:如何搜索Earth Engine Python脚本

1 导入库并显示地图

import ee
import geemap

ee.Initialize()
Map = geemap.Map()
Map

2 开始Earth Engine Python脚本

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

显示结果
image.png

后记

大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。

文章来源:https://blog.csdn.net/qq_41951977/article/details/135457658
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。