arcpy 关于expsion的问题

这段代码在ArcGIS环境中运行,用于批量处理指定文件夹中的栅格数据,通过掩模进行裁剪,并将结果保存为矢量图层。过程中涉及删除无效特征、计算面积、筛选及消除小区域等操作,最终生成带有年份信息的属性字段。
摘要由CSDN通过智能技术生成
# -*- 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")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值