统计每个行政区内的土地利用类型面积

要将土地利用栅格和行政要素坐标系从WGS84投影为统一的投影,并计算每个行政要素内不同地类的面积,可以按照以下步骤进行操作:

1. 首先,使用 `ProjectRaster` 函数将土地利用栅格投影到目标坐标系。假设目标坐标系为UTM投影系统,例如UTM Zone 50N,代码如下:


import arcpy
import os

# 设置输入栅格和输出路径及文件名
input_raster = r"C:\data\land_use.tif"
output_raster = r"C:\data\projected_land_use.tif"

# 定义目标坐标系
target_coordinate_system = arcpy.SpatialReference("WGS 1984 UTM Zone 50N")

# 投影土地利用栅格
arcpy.ProjectRaster_management(input_raster, output_raster, target_coordinate_system)
 

2. 然后,使用 `Project` 函数将行政要素坐标系统一投影到相同的目标坐标系,代码示例如下:


# 设置输入行政要素和输出路径及文件名
input_features = r"C:\data\admin_features.shp"
output_features = r"C:\data\projected_admin_features.shp"

# 投影行政要素
arcpy.Project_management(input_features, output_features, target_coordinate_system)
 

3. 最后,使用空间分析工具例如 `ZonalStatisticsAsTable` 或 `TabulateArea` 对行政要素和统一投影后的土地利用栅格进行空间统计,计算每个行政要素内各种地类的面积。


# 设置输入土地利用栅格和行政要素图层
land_use_raster = r"C:\data\projected_land_use.tif"
admin_features = r"C:\data\projected_admin_features.shp"

# 进行空间统计
statistics_table = r"C:\data\statistics_table.dbf"  # 存储统计结果的表格路径

arcpy.gp.ZonalStatisticsAsTable(admin_features, "Admin_ID", land_use_raster, statistics_table, "DATA", "SUM")
# or
arcpy.sa.TabulateArea(admin_features, "Admin_ID", land_use_raster, "Land_Class", statistics_table)
 

在上述代码中,首先使用 `ProjectRaster` 函数将土地利用栅格投影到目标坐标系。然后使用 `Project` 函数将行政要素投影到相同的目标坐标系。最后,使用合适的空间分析工具(如 `ZonalStatisticsAsTable` 或 `TabulateArea`)进行面积统计,并将结果保存到表格中。

猜你喜欢

转载自blog.csdn.net/weixin_58851039/article/details/131206208
今日推荐