代码如下(以鹿邑县为例):
var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
Map.centerObject(geometry,7);
var worldpop2010 = ee.ImageCollection("WorldPop/GP/100m/pop")
.filterBounds(geometry)
.filter(ee.Filter.eq('country', 'CHN')).filterDate('2010-01-01', '2010-12-31')
.select('population');
var worldpop2020 = ee.ImageCollection("WorldPop/GP/100m/pop")
.filterBounds(geometry)
.filter(ee.Filter.eq('country', 'CHN')).filterDate('2020-01-01', '2020-12-31')
.select('population');
Map.addLayer(worldpop2010.mean().clip(geometry),{min:0,max:100,palette: ['24126c', '1fff4f', 'd4ff50']},"worldpop2010");
Map.addLayer(worldpop2020.mean().clip(geometry),{min:0,max:100,palette: ['24126c', '1fff4f', 'd4ff50']},"worldpop2020");
代码如下(以鹿邑县10年人口数量为例):
var geometry = ee.FeatureCollection('users/www1573979951/luyixian');
var worldpop = ee.ImageCollection("WorldPop/GP/100m/pop")
.filterBounds(geometry)
.filter(ee.Filter.eq('country', 'CHN')).filterDate('2010-01-01', '2020-12-31')
.select('population');
var chart =
ui.Chart.image.seriesByRegion
({
imageCollection:worldpop,
regions: geometry,
reducer: ee.Reducer.sum(),
scale: 100,
xProperty: 'system:time_start'
})
.setSeriesNames(['population'])
.setOptions({
title: 'population dynamics',
hAxis: {title: 'Date', titleTextStyle: {italic: false, bold: true}},
vAxis: {
title: 'total population',
titleTextStyle: {italic: false, bold: true}
},
lineWidth: 5,
colors: ['e37d05'],
curveType: 'function'
});
print(chart);
表格截图(10年人口变化,和实际的人口数据有出入,能分析出来人口逐渐下降):
CSV数据(和实际的人口数据有出入):
代码如下所示
//导出影像数据函数,三个参数
function exportImage(image, region, fileName) {
Export.image.toDrive({
image: image, //设置要输出的影像
description: fileName, // 设置下载任务tasks的名称
fileNamePrefix: fileName, //设置下载影像的名称
folder: "population", //设置下载影像在Drive中存储的文件夹名称(可不设置)
scale: 100, //空间分辨率,单位:米
region: geometry, //要下载影像的范围
maxPixels: 1e13, //单幅影像输出的最大像元数
fileFormat:"GeoTIFF", //设置影像导出格式,注意GeoTIFF格式需要所有波段存储类型一致(如不能同时存Int16和Int32)
crs: "EPSG:4326" //投影信息,一般是采用默认方式,通常可以设置为EPSG:4326
});
}
//获取每幅影像对应的时间
var indexList = worldpop.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
print("indexList", indexList);
//循环导出影像,用影像时间对其命名
indexList.evaluate(function(indexs) {
for (var i=0; i<indexs.length; i++) {
var image = worldpop.filter(ee.Filter.eq("system:index", indexs[i])) //筛选对应时间的影像
.first() //选取第一幅影像
.int16() //将所有波段存储格式都转换Int16,使其保持一致(哨兵2号数据QA20波段为Int32,与其他不一致会出错)
exportImage(image, geometry, "Worldpop-"+indexs[i]);
}
});