Google Earth Engine(像元值提取)
本期我们讲一下如何利用GEE对某些点的像元值进行提取,我们在做定量遥感建模时有时候就需要提取一些某些地面点的像元值,然后通过像元值和对应的地面实测值建模。如果通过本地提取,就需要下载大量的遥感数据,同时也会花费大量的时间去编程,运行代码。
本次,我们就通过GEE提取两个点对应的一个序列的MODIS像元值。
MODIS像元值提取
数据:MODIS地表温度产品
研究区域:两个点
主要函数:sampleRegions、iterate
我们通过迭代,获取每个时期的两个点所对应的像元值,保存在列表中。
代码语言:javascript复制var p1 = ee.Geometry.Point([142.36083984375, -37.466138602344046])
var p2 = ee.Geometry.Point([143.23974609375, -37.04640889969956])
var pts = ee.FeatureCollection(ee.List([ee.Feature(p1).set('name','p1'),ee.Feature(p2).set('name','p2')]))
//导入MODIS地表温度产品
var L82014pre = ee.ImageCollection("MODIS/006/MOD11A1")
.filterDate('2015-06-13','2015-10-15')
var ft = ee.FeatureCollection(ee.List([]))
var fill = function(img, ini) {
var inift = ee.FeatureCollection(ini)
//提取像元值
var ft2 = img.sampleRegions({
collection:pts,
//把点要素的name属性加到新产生的要素里面
properties:ee.List(['name']),
scale:30
});
var date = img.date().format()
var ft3 = ft2.map(function(f){return f.set("date", date)})
return inift.merge(ft3)
}
// 对影像进行迭代,并把迭代结果保存成要素集
var newft = ee.FeatureCollection(L82014pre.iterate(fill, ft))
Export.table.toDrive({
collection: newft,
description: 'sample_get',
fileFormat: 'CSV'
});
结果:
可以看出,我们利用GEE已经可以把数据提取出来了。每一行都是一条数据,也记录了我们两个点的名称和数据的日期。
本次我们讲了如何运用GEE利用经纬度提取数据并导出。下一期,我们会讲到如何对数据进行插值(矢量和栅格)。