保姆级教程:用GEE和Landsat 8数据,5分钟搞定城市热岛区域自动识别与面积计算
零代码实战基于GEE与Landsat 8的城市热岛自动化分析系统清晨六点的北京朝阳区气象站记录到34℃的异常高温而密云水库周边气温仅有28℃。这种温差现象背后隐藏着现代城市规划者最关注的课题——城市热岛效应。今天我们将用Google Earth EngineGEE这个云端地理分析平台配合Landsat 8卫星数据构建一套全自动的热岛识别系统。不同于传统GIS软件需要本地安装和复杂操作这套方案只需浏览器即可完成从数据获取到结果输出的全流程特别适合城市规划、环境监测领域的非编程专业人员快速验证热岛分布特征。1. 热岛分析技术方案设计城市热岛效应的量化分析需要解决三个核心问题地表温度反演精度、热岛阈值确定方法、以及连续高温区域的空间聚合算法。我们采用NASA提供的Landsat 8 Collection 2 Level 2数据该数据集已进行大气校正其地表温度产品ST_B10的绝对误差控制在2.1℃以内。关键技术参数对比表参数项传统方法局限本方案优化点温度数据源需自行反演计算直接使用L2级预处理产品空间分辨率通常使用1km气象数据30米像元级分析时间成本单景数据下载需30分钟云端即时调用计算硬件要求需要高性能本地计算机任何能上网的设备均可操作在具体实现上我们构建的分析流水线包含四个关键环节数据获取与空间裁剪温度阈值筛选35℃连通区域分析斑块大小20像元面积统计与可视化输出提示35℃阈值基于中国《城市热环境评价标准》GB/T 34341-2017设定对应强热岛等级下限。实际应用中可根据当地气候特征调整。2. GEE平台快速入门配置无需安装任何软件打开Chrome浏览器访问Earth Engine代码编辑器使用Google账号登录后即可开始。首次使用者建议完成以下准备步骤点击左侧Scripts选项卡新建项目在右侧地图窗口搜索目标城市如Beijing, China通过绘图工具划定分析区域推荐使用几何图形工具绘制矩形// 示例定义北京市区分析范围 var roi ee.Geometry.Rectangle([116.25, 39.80, 116.50, 40.00]); Map.centerObject(roi, 12); // 将地图视角定位到该区域常见问题排查清单如遇Access Denied提示需先申请GEE账号权限地图不显示时检查浏览器是否禁用WebGL代码运行卡顿时可尝试清除浏览器缓存中文显示异常时切换浏览器语言设置为英文3. 热岛识别全流程代码解析整套分析流程封装为可复用的函数更换城市只需修改roi参数。以下是分步骤详解3.1 数据加载与预处理function getLandSurfaceTemperature(roi, date) { // 加载Landsat 8数据并裁剪到目标区域 var image ee.ImageCollection(LANDSAT/LC08/C02/T1_L2) .filterDate(date, date.advance(1, day)) .filterBounds(roi) .first(); // 转换为摄氏度并应用质量控制 var lst image.select(ST_B10) .multiply(0.00341802) .add(149) .subtract(273.15) .rename(LST); return image.addBands(lst); } // 示例获取2023年夏季高温日数据 var targetDate ee.Date(2023-07-15); var l8Image getLandSurfaceTemperature(roi, targetDate);3.2 热岛区域提取function extractHeatIslands(lstImage, tempThreshold) { // 创建高温区域掩膜 var hotspots lstImage.select(LST) .gt(tempThreshold) .selfMask() .rename(hotspots); // 识别连续斑块8连通域分析 var patches hotspots.connectedPixelCount(100, true); var largePatches patches.gt(20).selfMask(); return { hotspots: hotspots, urbanHeatIslands: largePatches }; } var result extractHeatIslands(l8Image, 35); Map.addLayer(result.urbanHeatIslands, {palette: red}, Heat Islands);3.3 面积统计与导出function calculateArea(feature, scale) { var areaImage ee.Image.pixelArea().multiply(feature); var stats areaImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: roi, scale: scale, maxPixels: 1e13 }); return stats.get(hotspots); } var heatIslandArea calculateArea(result.urbanHeatIslands, 30); print(Urban heat island area (sqm):, heatIslandArea); // 导出结果到Google Drive Export.image.toDrive({ image: result.urbanHeatIslands, description: HeatIslandExport, folder: GEE_Exports, region: roi, scale: 30 });4. 进阶应用与结果解读获得热岛分布图后可通过叠加其他地理数据进行深度分析。例如将热岛区域与绿地分布图叠加验证植被覆盖率与地表温度的相关性// 加载MODIS植被指数数据 var ndvi ee.ImageCollection(MODIS/006/MOD13A2) .filterDate(2023-06-01, 2023-08-31) .median() .select(NDVI) .clip(roi); // 创建分析样本点 var samplePoints ee.FeatureCollection.randomPoints({ region: roi, points: 1000 }); // 提取温度-植被指数关联数据 var pairedSamples l8Image.select(LST) .addBands(ndvi) .sampleRegions({ collection: samplePoints, scale: 30 }); // 绘制散点图 var chart ui.Chart.feature.byFeature( pairedSamples, [NDVI], [LST] ).setChartType(ScatterChart) .setOptions({ title: LST-NDVI Correlation, hAxis: {title: NDVI}, vAxis: {title: Land Surface Temperature (℃)}, pointSize: 3 }); print(chart);典型热岛分布特征案例北京热岛集中分布于五环内建筑密集区尤其朝阳CBD与西直门交通枢纽上海浦东新区热岛呈带状分布与主要交通干道走向高度吻合广州珠江新城热岛强度显著但白云山周边形成明显低温走廊注意夏季午后13:00-15:00的卫星过境数据最能反映热岛强度避免使用多云天气影像。推荐选择6-8月连续3天无降雨后的数据进行分析。5. 自动化批量处理技巧要实现多时相分析可创建时间序列处理函数。以下示例展示如何生成2020-2023年热岛面积变化曲线// 定义分析时间范围 var startDate ee.Date(2020-01-01); var endDate ee.Date(2023-12-31); var dateList ee.List.sequence(0, 3).map(function(year) { return startDate.advance(year, year); }); // 批量处理函数 var timeSeries dateList.map(function(date) { var yearlyComposite ee.ImageCollection(LANDSAT/LC08/C02/T1_L2) .filterDate(date, date.advance(1, year)) .filter(ee.Filter.calendarRange(6, 8, month)) // 夏季数据 .median(); var lst yearlyComposite.select(ST_B10) .multiply(0.00341802) .add(149) .subtract(273.15); var heatIslands lst.gt(35) .connectedPixelCount(100, true) .gt(20); var area calculateArea(heatIslands, 30); return ee.Feature(null, { date: date.format(YYYY), area: area }); }); // 绘制面积变化图表 var chart ui.Chart.feature.byFeature( ee.FeatureCollection(timeSeries), date, area ).setChartType(ColumnChart) .setOptions({ title: Annual Heat Island Area Variation, hAxis: {title: Year}, vAxis: {title: Area (square meters)} }); print(chart);实际项目中我们发现两个关键参数对结果影响最大温度阈值的设定会线性影响热岛面积而斑块大小阈值则决定了哪些区域被认定为集中连片热岛。建议首次分析时尝试35-38℃的温度阈值和15-25像元的斑块阈值组合找到最适合当地特征的参数。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2588890.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!