2010-09-10 218 views
3

我有一个python脚本可以制作栅格的属性表。这遍历了我所有的浮点数的栅格,将它们转换为整数,然后创建一个属性表。在ArcGIS中制作栅格属性表的问题

在第一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). 

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

谢谢。

回答

1

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

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


不确定此问题是否有用。我会把它留在这里一两天,然后看看。

0

警告:对于C

值域:\ raster2超过100000和唯一值的数目超过 500如果需要VAT请使用BUILDVAT。

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

没有看到脚本中的额外内容,我无法解决您的第二个错误。