基于 GEE 下载 2000-2023 年 LANDSCAN 1 km 人口栅格数据
目录
1 数据说明
2 完整代码
3 运行结果
1 数据说明
LandScan 数据于1997年启动的一项研究计划,其目的是改进用于灾害后果评估的人口估算方法。与传统人口普查仅关注居住地不同,LandScan 提供全天(24小时平均)的人口分布模型,捕捉人口在一天内活动的空间范围。该数据基于地理空间科学、遥感技术和机器学习算法,通过多变量的区域模型,将行政边界内的人口普查数据高分辨率分解至像素级。LandScan Global 每年更新一次,覆盖全球范围,具有极高的空间分辨率和可靠性,适用于自然灾害、突发事件和其他多尺度地理分析。此外,为满足更高精度需求,美国范围内还推出了 LandScan USA,其模型包括人口的昼夜变化。
数据可通过官网申请下载,支持每年栅格数据获取。
https://landscan.ornl.gov/about
2 完整代码
以下GEE代码可以导出每年的人口栅格数据,并生成年际变化折线图。大家可根据研究需求调整区域和时间段。
var geometry = table;
Map.centerObject(geometry, 6);
var dataset = ee.ImageCollection('projects/sat-io/open-datasets/ORNL/LANDSCAN_GLOBAL');
var annualPopulation = ee.FeatureCollection([]);
var popcount_intervals = '<RasterSymbolizer>' +
' <ColorMap type="intervals" extended="false" >' +
'<ColorMapEntry color="#CCCCCC" quantity="0" label="No Data"/>' +
'<ColorMapEntry color="#FFFFBE" quantity="5" label="1-5"/>' +
'<ColorMapEntry color="#FEFF73" quantity="25" label="6-25"/>' +
'<ColorMapEntry color="#FEFF2C" quantity="50" label="26-50"/>' +
'<ColorMapEntry color="#FFAA27" quantity="100" label="51-100"/>' +
'<ColorMapEntry color="#FF6625" quantity="500" label="101-500"/>' +
'<ColorMapEntry color="#FF0023" quantity="2500" label="501-2500"/>' +
'<ColorMapEntry color="#CC001A" quantity="5000" label="2501-5000"/>' +
'<ColorMapEntry color="#730009" quantity="185000" label="5001-185000"/>' +
'</ColorMap>' +
'</RasterSymbolizer>';
for (var i = 2000; i <= 2023; i++) {
var startDate = ee.Date.fromYMD(i, 1, 1);
var endDate = ee.Date.fromYMD(i, 12, 31);
var yearlyData = dataset.filterDate(startDate, endDate).mean();
var yearlyPopulation = yearlyData.clip(geometry).set({
'year': i,
'system:time_start': startDate.millis()
});
Map.addLayer(yearlyPopulation.sldStyle(popcount_intervals), {}, 'Population ' + i);
var meanPopulation = yearlyPopulation.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: geometry,
scale: 1000,
maxPixels: 1e13
}).get('b1');
var feature = ee.Feature(null, {
'year': i,
'Population_mean': meanPopulation
});
annualPopulation = annualPopulation.merge(ee.FeatureCollection([feature]));
Export.image.toDrive({
image: yearlyPopulation,
description: i + "_Population",
fileNamePrefix: i + "_Population",
folder: 'Annual_Population',
scale: 1000,
region: geometry,
crs: "EPSG:4326",
maxPixels: 1e13
});
}
var chart = ui.Chart.feature.byFeature(annualPopulation, 'year', 'Population_mean')
.setChartType('LineChart')
.setOptions({
title: 'Annual Mean Population Count (2000-2023)',
hAxis: {title: 'Year'},
vAxis: {title: 'Mean Population Count'},
lineWidth: 2,
pointSize: 4,
colors: ['black']
});
print(chart);