设置默认像元大小
问题描述:
我在尝试将多边形的默认像元大小设置为栅格转换时出现问题。我需要将缓冲流(多边形)转换为栅格图层,以便将该流刻录到DEM中。我想将这个过程自动化,将它包含在一个更大的脚本中。设置默认像元大小
我的主要问题是PolygonToRaster_conversion()工具不允许我将单元大小设置为栅格图层值。它也不服从我在环境中设置的默认栅格单元大小。相反,它始终使用默认的“范围除以250”。
这里是我的这个过程的脚本:
# Input Data
Input_DEM = "C:\\GIS\\DEM\\dem_30m.grid"
BufferedStream = "C:\\GIS\\StreamBuff.shp"
# Environment Settings
arcpy.env.cellSize = Input_DEM
# Convert to Raster
StreamRaster = "C:\\GIS\\Stream_Rast.grid"
arcpy.PolygonToRaster_conversion(BufferedStream, "FID", StreamRaster, "CELL_CENTER", "NONE", Input_DEM)
这将产生以下错误: “单元格大小必须大于零。”
如果我输入DEM层的路径,则会发生同样的错误。
我也试过手动输入单元格大小的数字。这有效,但我想概括这个工具的可用性。
我真的不明白的是,我通过ArcGIS界面手动使用了DEM层作为单元大小,并且这个工作非常完美!
任何帮助将不胜感激!
答
这里有几个选项。首先,您可以使用栅格带属性来提取单元大小并将其插入到PolygonToRaster函数中。其次,尝试在单元尺寸环境设置中使用MINOF
参数。
import arcpy
# Input Data
Input_DEM = "C:\\GIS\\DEM\\dem_30m.grid"
BufferedStream = "C:\\GIS\\StreamBuff.shp"
# Use the describe function to get at cell size
desc = arcpy.Describe(Input_DEM)
cellsize = desc.meanCellWidth
# Convert to Raster
StreamRaster = "C:\\GIS\\Stream_Rast.grid"
arcpy.PolygonToRaster_conversion(BufferedStream, "FID", StreamRaster, "CELL_CENTER", "NONE", cellsize)