2014-09-30 159 views
2

我在尝试将多边形的默认像元大小设置为栅格转换时出现问题。我需要将缓冲流(多边形)转换为栅格图层,以便将该流刻录到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

这里有几个选项。首先,您可以使用栅格带属性来提取单元大小并将其插入到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) 
相关问题