# -*- coding: utf-8 -*-
''' 批量实现shp转raster 2021/12/24 '''import arcpy
import os
import re#检查Arcgis的权限
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput = 1#设置了输出范围及输出坐标系,这三行也可注释掉
arcpy.env.overwriteOutput = True
arcpy.env.extent = arcpy.Extent(-6098370.77434, -5465665.01316, 7540629.22566, 4821334.98684)
arcpy.env.outputCoordinateSystem = arcpy.SpatialReference("C:\\Users\\DELL\\Desktop\\test\\proj.prj")#shp文件所在文件夹
input_shp_path = r"C:\\Users\\DELL\\Desktop\\test\\"#输出raster文件的文件夹
output_raster_path = r"C:\\Users\\DELL\\Desktop\\select_catchment_raster\\"#读取input_shp_path中的shp文件
arcpy.env.workspace = input_shp_path
shps = arcpy.ListFiles("*.shp")#遍历shp文件
for shp in shps:#原shp文件名格式形如 4116_Canada_03NF001_Boundary_Line.shp#提取文件名,删除编号后缀,作为输出文件的文件名print shpall_index = [substr.start() for substr in re.finditer('_', shp)]catchment_name = shp[int(all_index[0]+1):int(all_index[3])]print(catchment_name)raster_out_name = output_raster_path + catchment_name + ".tif"#设置了栅格大小cellsize为1公里arcpy.PolygonToRaster_conversion(shp, "Area", raster_out_name, "CeLL_CENTER", "Area", 1000)
后记:
写博客的初衷是分享经验,同时是算是自己对思路和代码的整理,方便日后处理数据,应该可以帮到很多人。
我已免费分享我的心得,如果看官还有其他问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。
咨询问题请添加QQ:819369354
2022年4月20日