3

我有一个创建栅格属性表的 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).

谷歌搜索错误消息没有帮助,帮助文件也没有帮助。这个问题有什么解决办法吗?

谢谢。

4

2 回答 2

1

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

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


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

于 2010-09-10T18:11:55.647 回答
0

警告:

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

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

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

于 2014-01-28T00:07:36.217 回答