python - 设置默认单元格大小

标签 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 图层作为像元大小,而且效果很好!!

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

最佳答案

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

关于python - 设置默认单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130416/

相关文章:

python - 将字符串包裹在单引号内

r - 提取两个重叠栅格的数据

python - 从字符串文本中减去字符串文本

python - 在 python 中处理大型数据池

python - 如果至少有一个值低于阈值,则选择给定 2 列的行

python - Django MEDIA_URL 和 MEDIA_ROOT

r - 用R中的ggplot2在合并的类中绘制连续栅格数据

r - R中栅格层之间的成对相关

python - 压缩文件有额外不需要的文件夹

importerror - 将 arcpy 模块导入 anaconda 的 Spyder