设置默认单元格大小

时间:2014-09-30 21:28:57

标签: python raster arcpy

我在尝试设置多边形到栅格转换的默认像元大小时遇到​​问题。我需要将缓冲流(多边形)转换为栅格图层,以便将流刻录到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图层作为单元格大小,这非常有效!

任何帮助将不胜感激!!!

1 个答案:

答案 0 :(得分:1)

这里有几种选择。首先,您可以使用栅格波段属性来提取像元大小并将其插入到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)