百里屠苏top  

导读

  • 在过去的几十年里,城市化及其影响迅速扩大。1950年,世界上只有30%的人口居住在城市地区,但到2050年,这一数字预计将达到68%(联合国2019年)。世界上已有超过50%的人口生活在城市地区(联合国,2019年)。这种向城市居住的转变帮助数百万人摆脱了贫困,但也带来了复杂的社会环境挑战,如栖息地丧失、城市热岛、洪水和更多的温室气体排放。
  • 应对这些挑战的一个重要部分是了解城市化轨迹及其影响。卫星图像为全球城市化提供了丰富的历史和当前信息来源,并越来越多地用于城市可持续性研究(Goldblatt等人2018;Prakash et al 2020)。
  • 我们将介绍几种可视化和量化城市化对景观影响的方法。

主要内容:

  • 创建动画GIF;
  • 基于已有的城市分类结果实现数量和质量分析;
  • 运行你自己的LUCC分类;
  • 城镇化时空变化制图。

Section1  时间序列动画GIF

qualitative depiction of the impact of urbanization  城市化影响的定性描述

 

// Filter collection. 
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
    .filterBounds(geometry) 
    .filterDate('2013-01-01', '2023-12-31') 
    .filter(ee.Filter.lte('CLOUD_COVER_LAND', 3)); 

// Define GIF visualization arguments. 
var gifParams = { 
    bands: ['SR_B4', 'SR_B3', 'SR_B2'], 
    min: 0.07 * 65536, 
    max: 0.3 * 65536, 
    region: geometry, 
    framesPerSecond: 4, 
    format: 'gif' 
}; 

// Render the GIF animation in the console. 
print(ui.Thumbnail(collection, gifParams)); 

大兴机场GIF

 

Section2  现有城市分类产品

有几种可公开访问的土地覆盖分类,其中就包括城市地区。这些分类是确定城市范围的一种快速方法。

GEE上的3种公开的城市分类数据产品:

1)the MODIS LandCover Type Yearly Global;

覆盖范围:全球

 

 

2)the Copernicus CORINE Land Cover;

覆盖范围:欧盟

 

 

3)the United States Geological Survey (USGS) National Land Cover Database (NLCD).

覆盖范围:美国

 

2.1 MCD12Q1.061 MODIS Land Cover Type Yearly Global 500m 数据介绍

LC_Type1-5 代表不同的分类体系

 

 

LC_Type1 分类体系

1. 常绿针叶林:以常绿针叶林为主(冠层>2米)。林木覆盖率>60%。

2.常绿阔叶林:以常绿阔叶林和棕榈树为主,树冠>2m。林木覆盖率>60%。

3.落叶针叶林:以落叶针叶林(落叶松)为主(树冠>2米)。林木覆盖率>60%。

4.落叶阔叶林:以落叶阔叶树(冠层>2米)为主。林木覆盖率>60%。

5.混交林:以落叶和常绿两种树种(各占40-60%)为主,树冠大于2米。林木覆盖率>60%。

6.封闭灌丛:以多年生木本植物(1-2m高)为主,盖度>60%。

7.开阔灌丛:以多年生木本植物(1-2米高)为主,覆盖度为10-60%。

8.木质稀疏草原:树木覆盖率30-60%(树冠>2米)。

9.稀疏草原:树木覆盖率10-30%(树冠>2米)。

10.草地:以草本一年生植物为主(<2m)。

11.永久湿地:永久被淹没的土地,水覆盖率为30-60%,植被覆盖率>10%。

12.农田:至少60%的面积为耕地。

13.城市和建设用地:至少30%的不透水表面面积,包括建筑材料、沥青和车辆。

14.农田/天然植被

15.永久冰雪:一年中至少有10个月至少60%的面积被冰雪覆盖。

16.裸地:至少60%的面积为植被不足10%的无植被贫瘠(沙、岩、土)地区。

17.水体:至少60%的面积被永久性水体覆盖。

 

 

示例:看一下海口的Modis 城市产品

// MODIS (haikou) 
// Center over 海口. 
Map.setCenter(110.31955, 20.010, 11); 

// Visualize the full classification. 
var MODIS_lc = ee.ImageCollection("MODIS/061/MCD12Q1").select('LC_Type1'); 
var igbpLandCoverVis = { 
    min: 1.0, 
    max: 17.0, 
    palette: ['05450a', '086a10', '54a708', '78d203', '009900', 
        'c6b044', 'dcd159', 'dade48', 'fbff13', 'b6ff05', 
        '27ff87', 'c24f44', 'a5a5a5', 'ff6d4c', '69fff8', 
        'f9ffa4', '1c0dff' 
    ], 
}; 

Map.addLayer(MODIS_lc, igbpLandCoverVis, 'IGBP Land Cover');

// Visualize the urban extent in 2001 and 2019. 
// 2019 
var MODIS_2019 = MODIS_lc.filterDate(ee.Date('2019-01-01')); 

//查看元数据可以看到,urban类的值为13
var M_urb_2019 = MODIS_2019.mosaic().eq(13); 
Map.addLayer(M_urb_2019.mask(M_urb_2019), { 
    'palette': 'FF0000' 
}, 'MODIS Urban 2019'); 


// 2001 
var MODIS_2001 = MODIS_lc.filterDate(ee.Date('2001-01-01')); 
var M_urb_2001 = MODIS_2001.mosaic().eq(13); 
Map.addLayer(M_urb_2001.mask(M_urb_2001), { 
    'palette': 'a5a5a5' 
}, 'MODIS Urban 2001'); 

 2001

2019

 

 

Section 3. 城区分类 

前面,我们依靠几种LULC分类产品来估计建成区土地覆盖的分布及其随时间的变化。

 

下面我们基于影像,采用随机森林方法,进行城镇LUCC分类。

 

基于Landsat 7卫星数据:

我们用1-6波段进行实验

使用GEE上自带的去云函数:

 

 

// Surface reflectance function from example: 
function maskL457sr(image) { 
    var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0); 
    var saturationMask = image.select('QA_RADSAT').eq(0); 
    
    // Apply the scaling factors to the appropriate bands. 
    var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2); 
    var thermalBand = image.select('ST_B6').multiply(0.00341802).add( 149.0); 
    
    // Replace the original bands with the scaled ones and apply the masks. 
    return image.addBands(opticalBands, null, true) 
        .addBands(thermalBand, null, true) 
        .updateMask(qaMask) 
        .updateMask(saturationMask); 
    } 
    
// Map the function over one year of data. 
var collection = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2")
    .filterDate('2020-01-01', '2021-01-01')
    .map( maskL457sr); 
    
var landsat7_2020 = collection.median(); 

Map.addLayer(landsat7_2020, { 
    bands: ['SR_B3', 'SR_B2', 'SR_B1'], 
    min: 0, 
    max: 0.3 
}, 'landsat 7, 2020'); 

var lc = nbu.merge(bu); 
print("样本lc",lc);

var bands = ['SR_B1', 'SR_B2', 'SR_B3', 'SR_B4', 'SR_B5', 'ST_B6', 'SR_B7']; 


var training = landsat7_2020.select(bands).sampleRegions({ 
    collection: lc, 
    properties: ['class'], 
    scale: 30 
}); 

// Create a random forest classifier with 20 trees. 
var classifier = ee.Classifier.smileRandomForest({ 
    numberOfTrees: 20 
}).train({ // Train the classifier. 
    // Use the examples we got when we sampled the pixels. 
    features: training, 
    // This is the class that we want to predict. 
    classProperty: 'class', 
    // The bands the classifier will use for training and classification. 
    inputProperties: bands 
}); 

// Apply the classifier on the 2020 image. 
var classified20 = landsat7_2020.select(bands).classify(classifier); 


Map.addLayer(classified20.mask(classified20), { 
    palette: ['#ff4218'], 
    opacity: 0.6 
}, 'built-up, 2020'); 


var landsat7_2010 = ee.ImageCollection("LANDSAT/LE07/C02/T1_L2")
    .filterDate('2010-01-01', '2010-12-31') 
    .map(maskL457sr).median(); 
    
// Apply the classifier to the 2010 image. 
var classified10 = landsat7_2010.select(bands).classify( classifier); 
Map.addLayer(classified10.mask(classified10), { 
    palette: ['#f1ff21'], 
    opacity: 0.6 
}, 'built-up, 2010'); 

var difference = classified20.subtract(classified10); 
Map.addLayer(difference.mask(difference), { 
    palette: ['#315dff'], 
    opacity: 0.6 
}, 'difference');

  

 

 

 

 

 

 

posted on 2024-06-28 15:22  百里屠苏top  阅读(1)  评论(0编辑  收藏  举报