# -*- coding:utf-8 -*- #此代码在arcgis中使用 import arcpy import os import pandas as pd import shutil from arcpy.sa import * LUCC_Raster_folder = "H:\\Tingjiang\\a.image\\e. Tingjiang_interp\\e.result\\final\\" mask_raster_file = "H:\\Tingjiang\\0.data\\shpfile\\tingjiang.shp" Out_Raster_folder = "H:\\Tingjiang\\a.image\\e. Tingjiang_interp\\f. mask_result\\" eleminate_folder = "H:\\Tingjiang\\a.image\\e. Tingjiang_interp\\g. shp_LUCC_element\\" Out_shp_folder = "H:\\Tingjiang\\a.image\\e. Tingjiang_interp\\g. shp_LUCC\\" for LUCC_Raster in os.listdir(LUCC_Raster_folder): if LUCC_Raster.endswith(".tif"): Name = LUCC_Raster[0:-4] year = LUCC_Raster[10:14] inRaster = arcpy.Raster(LUCC_Raster_folder + LUCC_Raster) arcpy.CheckOutExtension("Spatial") a = ExtractByMask(inRaster, mask_raster_file) a.save(Out_shp_folder + LUCC_Raster) arcpy.RasterToPolygon_conversion(a, Out_shp_folder + Name + ".shp", "NO_SIMPLIFY", "VALUE") arcpy.MakeFeatureLayer_management(Out_shp_folder + Name + ".shp", Name+"lyr") arcpy.SelectLayerByAttribute_management(Name+"lyr", "NEW_SELECTION" , ' "GRIDCODE" = -128 ') arcpy.DeleteFeatures_management(Name+"lyr") arcpy.SelectLayerByAttribute_management(Name + "lyr", "NEW_SELECTION", ' "GRIDCODE" = 0 ') arcpy.DeleteFeatures_management(Name + "lyr") arcpy.AddField_management(Out_shp_folder + Name + ".shp", "a" + year, "DOUBLE", "", "", 30) arcpy.CalculateField_management(Out_shp_folder + Name + ".shp", "a" + year, "!shape.geodesicArea@SQUAREMETERS!", "PYTHON_9.3") #这一步TM恶心我一天,变量传入公式的方式 arcpy.SelectLayerByAttribute_management(Name + "lyr", "NEW_SELECTION", '\"a'+ str(year) +'\"' + '<1500') arcpy.Eliminate_management(Name + "lyr", eleminate_folder + Name + "_elm1.shp", "LENGTH") arcpy.AddField_management(eleminate_folder + Name + "_elm1.shp", "acode", "TEXT", "", "", 30) arcpy.CalculateField_management(eleminate_folder + Name + "_elm1.shp", "acode", "!GRIDCODE!", "PYTHON_9.3") arcpy.AddField_management(eleminate_folder + Name + "_elm1.shp", "b" + year, "TEXT", "", "", 30) arcpy.CalculateField_management(eleminate_folder + Name + "_elm1.shp", "b" + year, str(year), "PYTHON_9.3")
arcpy 关于expsion的问题
于 2021-08-23 14:48:16 首次发布
这段代码在ArcGIS环境中运行,用于批量处理指定文件夹中的栅格数据,通过掩模进行裁剪,并将结果保存为矢量图层。过程中涉及删除无效特征、计算面积、筛选及消除小区域等操作,最终生成带有年份信息的属性字段。
摘要由CSDN通过智能技术生成