前言
本节介绍的内容是如何提取交互界面中的单一像素值以及区域像素均值等,并且导出为CSV或者SHP文件。
1 导入库并显示地图
import ee
import geemap
import os
ee.Initialize()
Map = geemap.Map()
Map
2 交互提取像素值
2.1 加载数据
landsat7 = ee.Image('LANDSAT/LE7_TOA_5YEAR/1999_2003').select([0, 1, 2, 3, 4, 6])
landsat_vis = {'bands': ['B4', 'B3', 'B2'], 'gamma': 1.4}
Map.addLayer(landsat7, landsat_vis, "LE7_TOA_5YEAR/1999_2003")
Map.set_plot_options(add_marker_cluster=True) #这一行代码就是显示标记点
2.2 激活Plotting工具
下图红框里的工具
所选择的点
2.3 导出像素值至csv或shp
out_dir = os.path.join(os.path.expanduser('~'), 'Downloads')
# out_csv = os.path.join(out_dir, 'points.csv')
out_shp = os.path.join(out_dir, 'points.shp')
Map.extract_values_to_points(out_shp)
导出结果
3 提取交互区域值
3.1 加载数据
m = geemap.Map()
collection = (
ee.ImageCollection('MODIS/006/MOD13A2')
.filterDate('2015-01-01', '2019-12-31')
.select('NDVI')
)
# 将图像集合转换为单一图像。
image = collection.toBands()
ndvi_vis = {
'min': 0.0,
'max': 9000.0,
'palette': [
'FFFFFF',
'CE7E45',
'DF923D',
'F1B555',
'FCD163',
'99B718',
'74A901',
'66A000',
'529400',
'3E8601',
'207401',
'056201',
'004C00',
'023B01',
'012E01',
'011D01',
'011301',
],
}
m.addLayer(image, {}, 'MODIS NDVI Time-series')
m.addLayer(image.select(0), ndvi_vis, 'MODIS NDVI VIS')
m
3.2 设置reducer
m.set_plot_options(add_marker_cluster=True, marker=None) #这一行代码就是显示标记点,marker是不显示plot中的点,因为点太多了
m.roi_reducer = ee.Reducer.mean() #取区域均值,也可以是最大值、最小值等等
交互区域
3.3 导出数据
out_dir = os.path.join(os.path.expanduser('~'), 'Downloads')
# out_csv = os.path.join(out_dir, 'points.csv')
out_shp = os.path.join(out_dir, 'ndvi.shp')
m.extract_values_to_points(out_shp)
后记
大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。