代码之家  ›  专栏  ›  技术社区  ›  djq

ArcGIS中栅格属性表的编制问题

  •  3
  • djq  · 技术社区  · 16 年前

    我有一个python脚本,可以生成光栅的属性表。这将遍历我拥有的所有浮动光栅,将它们转换为int,然后生成一个属性表。

    在前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).
    

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   djq    16 年前

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

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


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

        2
  •  0
  •   Tom    12 年前

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

    …在强制创建属性表之前的步骤中生成。由于缺乏上下文,我无法针对您的具体情况进一步说明这一点;但是,在我的情况下,我使用arcpy.u转换. 这就是 warning 010367 已生成。如果您随后使用arcpy.BuildRasterAttributeTable\u管理在光栅上,则可以忽略上述警告。

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