如何用Python导出ESRI地形图层小区域并获取对应代码?
解决大ESRI地形图层裁剪并获取Python代码的方法
用ArcPy Raster对象直接切片
这种方法无需加载整个大栅格到内存,ArcGIS会自动分块处理,避免内存溢出,代码也可直接复用。
示例代码:import arcpy # 替换为你的实际路径 input_terrain = r"C:\data\large_esri_terrain.tif" output_cropped = r"C:\output\cropped_terrain.tif" clip_polygon = r"C:\data\clip_boundary.shp" # 从裁剪多边形获取范围 clip_extent = arcpy.Describe(clip_polygon).extent # 执行裁剪并保存 cropped_raster = arcpy.Raster(input_terrain).clip(clip_extent) cropped_raster.save(output_cropped)用Extract by Rectangle工具+分块环境
若偏好使用地理处理工具,先在ArcGIS Pro的环境设置里配置分块大小(Geoprocessing > Environments > Raster Storage > Tile Size,比如设为256x256),再运行Extract by Rectangle工具,选择大地形图层和裁剪多边形的范围。运行完成后,在地理处理历史里找到该操作,右键即可导出对应的Python代码。
自动生成的代码示例:import arcpy from arcpy.sa import * arcpy.env.workspace = r"C:\your_workspace" # 开启分块处理 arcpy.env.tileSize = "256 256" input_raster = r"C:\data\large_esri_terrain.tif" clip_extent = arcpy.Describe(r"C:\data\clip_boundary.shp").extent output_extract = "cropped_terrain" # 执行提取 out_extract = ExtractByRectangle(input_raster, clip_extent, "INSIDE") out_extract.save(output_extract)用「导出栅格」工具而非右键菜单
放弃右键图层的导出操作,直接在Geoprocessing面板搜索「导出栅格」工具,设置好输入图层、输出路径,在「范围」参数里选择你的裁剪多边形。运行后,地理处理历史会记录该操作,右键历史条目就能导出Python代码。同样记得在环境设置里开启分块,避免大栅格处理失败。
内容的提问来源于stack exchange,提问作者Geno
相关产品推荐
相关产品推荐

