目录
一、问题描述:
如何使用GEE分析城市热岛效应?获取城市区域温度较高的区域,并获取该区域的面积?
分析区域,选取北京市城区进行分析:
二、热岛效应
- 热岛效应(Urban Heat Island Effect)是指一个地区的气温高于周围地区的现象。用两个代表性测点的气温差值(即热岛强度)表示。主要有城市热岛效应和青藏高原热岛效应两种。
- 热岛效应是由于人为原因,改变了城市地表的局部温度、湿度、空气对流等因素,进而引起的城市小气候变化现象。该现象,属于城市气候最明显的特征之一。
1、定义
由于城市建筑群密集、柏油路和水泥路面比郊区的土壤、植被具有更大的吸热率和更小的比热容,使得城市地区升温较快,并向四周和大气中大量辐射,造成了同一时间城区气温普遍高于周围的郊区气温,高温的城区处于低温的郊区包围之中,如同汪洋大海中的岛屿,人们把这种现象称之为城市热岛效应。
在近地面等温线图上,郊区气温相对较低,而市区则形成一个明显的高温区,如同出露水面的岛屿,被形象的称之为“城市热岛”。城市热岛中心,气温一般比周围郊区高1℃左右,最高可达6℃以上,大城市散发的热量可以达到所接收的太阳能的2/5,从而使城市的温度升高。在城市热岛作用下,近地面产生由郊区吹向城市的热岛环流。城市热岛增强空气对流,空气中的烟尘提供了充足的水汽凝结核,故城市降水比郊区多。对欧美许多大城市研究发现,城市降水量一般比郊区多5%~10%。
2、成因
城市热岛效应主要由以下因素影响:蒸发减少、城市下垫面反射率降低、能量输入,其强度影响为:蒸发减少0.05g/sm,热输入增加120.9w/m;城市下垫面反射率降低10%,热输入增加30w/m;人工能量输入10w/m,城市中总热输入增加160.9w/m,由于受空气对流的影响,实际热输入约20w/m,计算温升约3.5℃,这与实际比较相符。当夏季空气流通减缓时,热输入会急剧增加,由于城市蒸发系统适应性低,造成城市温度急剧上升,同时由于空调和火电厂的加速运转又会造成恶性循环,加剧城市大气温升。城市蒸发量减少也形成了城市干岛效应,造成城市上空大气稳定度升高,不易发生垂直对流,易形成近地表高温,产生严重的空气污染(例发灰霾和光化学烟雾)。
3、危害
城市热岛效应是城市气候中典型的特征之一。它是城市气温比郊区气温高的现象。城市热岛的形成一方面是在现代化大城市中,人们的日常生活所发出的热量;另一方面,城市中建筑群密集,沥青和水泥路面比郊区的土壤、植被具有更小的函授比热容(可吸收更多的热量),并且反射率小,吸收率大,使得城市白天吸收储存太阳能比郊区多,夜晚城市降温缓慢仍比郊区气温高。城市热岛是以市中心为热岛中心,有一股较强的暖气流在此上升,而郊外上空为相对冷的空气下沉,这样便形成了城郊环流,空气中的各种污染物在这种局地环流的作用下,聚集在城市上空,如果没有很强的冷空气,城市空气污染将加重,人类生存的环境被破坏,导致人类发生各种疾病,甚至造成死亡。
三、城区里温度较高的区域分析
1、分析步骤
分析步骤如下所示:
2、加载数据并显示
python代码如下:
image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_123032_20210907')
# Map.addLayer(image, {'min':5000, 'max':15000, 'bands':['SR_B7', 'SR_B6', 'SR_B2']}, 'image')
image_clip = image.clip(roi)
# C02数据的标度转换
image_roi = image_clip.select('ST_B10').multiply(0.00341802).add(149)
# 转换为摄氏度(-273.5),筛选出大于35℃的区域
hotspots = image_roi.subtract(273.5).gt(35).selfMask().rename('hotspots')
Map.add_basemap()
Map.addLayer(hotspots, {'palette':'gray'}, 'hotspots')
结果显示如下:
# 每个区域(斑块)中的像素数,按照周边最多100个像素数的斑块统计,8向连接
patchsize = hotspots.connectedPixelCount(100, True)
Map.addLayer(patchsize, {'palette':'yellow'}, 'patchsize')
Map
结果显示如下:
# 成片斑块区域
large_patches = patchsize.gt(20)
large_patches = large_patches.updateMask(large_patches)
Map.addLayer(large_patches, {'palette':'red'}, 'patches>4')
Map
结果显示如下:
四、城市热岛区域面积提取
-
ee.Image.pixelArea()
生成一个图像,其中每个像素的值是该像素的面积,以平方米为单位。返回的图像有一个称为“区域”的带。
-
ee.Image.connectedPixelCount()
生成一个图像,其中每个像素包含 4 或 8 个连接的邻居(包括其自身)的数量。
-
ee.Image.connectedComponents()
查找与输入的第一个波段具有相同值的连通分量,并用全局唯一值标记它们。连通性由给定的内核指定。大于 maxSize 的对象被视为背景,并被屏蔽。
# 影像领域均值平滑处理
# 使用PixelArea()函数,Generate an image in which the
# value of each pixel is the area of that pixel in square meters.
# The returned image has a single band called "area."
pixelAreaAllPatches = hotspots.multiply(ee.Image.pixelArea())
pixelAreaLargePatches = large_patches.multiply(ee.Image.pixelArea())
AreaAllPatches = pixelAreaAllPatches.reduceRegion(**{
'reducer':ee.Reducer.sum(),
'geometry':roi
})
AreaLargePatches = pixelAreaLargePatches.reduceRegion(**{
'reducer':ee.Reducer.sum(),
'geometry':roi
})
# 获取面积
print('All the pathches area:', AreaAllPatches.getInfo())
print('The large patches area:', AreaLargePatches.getInfo())
结果显示如下:
All the pathches area are: {‘hotspots’: 78300179.11268622}
The large patches area are: {‘hotspots’: 73151637.55642593}
五、学习小结:
- 学习了区域成片斑块的分析方法。以城市热岛效应为例,对于城市热岛区域、集中连片的区域进行提取分析,获取其分布范围
- 掌握GEE中栅格影像空间区域面积的分析方法
参考:
- https://github.com/giswqs/earthengine-py-notebooks/blob/master/Image/image_patch_area.ipynb
- https://baike.baidu.com/item/%E7%83%AD%E5%B2%9B%E6%95%88%E5%BA%94/293720?fr=aladdin
- https://developers.google.com/earth-engine/apidocs/ee-image-connectedcomponents?hl=en