在ArcGIS中制作栅格属性表的问题

时间:2010-09-10 17:58:36

标签: python scripting arcgis

我有一个python脚本,它创建一个栅格的属性表。这贯穿我拥有的所有栅格,它们是浮点数,将它们转换为整数,然后创建一个属性表。

在前3个栅格中,我收到一条警告信息,

Value range for c:\raster2 exceeds 100000 and number of unique values exceeds 500.
Please use BUILDVAT if a VAT is required.

但会生成属性表。在此之后,程序崩溃,我不知道如何解决它。这是打印到屏幕的错误消息:

Value range for c:\raster2 exceeds 100000 and number of unique values exceeds 500.
Please use BUILDVAT if a VAT is required.
Traceback (most recent call last):
  File "LEED_raster_attribute.py", line 50, in <module>
    make_attribute( 20, 'C:\\Analysis\\Raster_Distances\\city' )
  File "Raster_attribute.py", line 40, in make_attribute
    gp.BuildRasterAttributeTable_management(outRaster)
arcgisscripting.ExecuteError: ERROR 000521: The number of unique values exceeds the limit.
Failed to execute (BuildRasterAttributeTable).

Google搜索错误消息没有帮助,帮助文件也没有帮助。有没有解决这个问题的方法?

感谢。

2 个答案:

答案 0 :(得分:1)

对于网格,如果栅格中的值范围小于100,000或栅格中的唯一值数量较少,则默认情况下会为表达式生成的任何整数网格构建栅格属性表如果范围小于100,000,则栅格中唯一值的数量可以大到100,000。如果范围大于100,000,如果唯一值的数量小于500,仍将构建栅格属性表。如果值的范围大于100,000且唯一值的数量大于500,则栅格属性表将生成属性表不是自动构建的。 默认情况下,栅格属性表的大小限制为65,535个唯一值。您可以通过单击“光栅”选项卡上的“栅格属性表”选项卡在“选项”对话框中增加此数字。

我只是重新阅读了栅格文档,并且可以手动增加允许使用GUI构建属性表的值。我手动输入了一个巨大的值,我的脚本也运行了。


不确定此问题/答案是否有用。我会把它放在这里一两天看看。

答案 1 :(得分:0)

警告:

  

c:\ raster2的值范围超过100000且唯一值的数量   超过500.如果需要增值税,请使用BUILDVAT。

...是在强制创建属性表之前的步骤中生成的。由于缺乏背景,我无法进一步澄清您的具体情况;但是,在我的情况下,我使用arcpy.PolygonToRaster_conversion将多边形要素类转换为栅格。这是生成warning 010367的地方。如果您随后在栅格上使用arcpy.BuildRasterAttributeTable_management,则可以忽略上述警告。

如果没有看到脚本中的其他内容,我无法解决您的第二个错误。