Python | 计算研究区土地利用类型面积

职场   2025-02-11 00:02   陕西  

在土地利用研究中,我们常常需要统计不同类型的用地面积,例如耕地、森林、草地、水体等今天,我们用Python计算研究区内不同土地利用类型的面积

一、运行结果

print研究区每一种土地利用类型的面积,如下图所示。

二、代码

本次我们以武汉大学的CLCD土地利用数据为例,其空间分辨率为30m,采用Albers_Conic_Equal_Area坐标系,分类系统详见下图。

先将数据掩膜到研究区,保存为tif文件,替换路径,运行即可。

import rasterioimport numpy as np
# 读取四川土地利用数据raster_path = r"E:\数据都在这里\四川\area\四川.tif"
with rasterio.open(raster_path) as src: land_use = src.read(1) # 读取第一波段 pixel_size = src.res[0] # 获取像元大小(应为 30m) unique_classes, counts = np.unique(land_use, return_counts=True)
# 计算像元面积(平方千米)pixel_area_km2 = (pixel_size ** 2) / 1e6 # 30m * 30m / 1,000,000 = 0.0009 km²
# 定义土地类型对应表land_use_types = { 1: "Cropland", 2: "Forest", 3: "Shrub", 4: "Grassland", 5: "Water", 6: "Snow/Ice", 7: "Barren", 8: "Impervious", 9: "Wetland"}
# 计算每个类别的面积area_results = {}for cls, count in zip(unique_classes, counts): if cls in land_use_types: area_km2 = count * pixel_area_km2 area_results[land_use_types[cls]] = area_km2
# 输出结果for land_type, area in area_results.items():    print(f"{land_type}{area:.2f} km²")

GIS遥感数据处理应用
会员:数据处理,ArcGIS/Python/MATLAB/R/GEE教学,指导作图和论文。
 最新文章