如何使用 ArcGIS Pro 中的模型生成器(或 evt.Python 脚本)将栅格的“像素深度”提取为值

问题描述 投票:0回答:1

在 ArcGIS Pro 中,我想对存储在 .gdb 文件或 .tiff 文件中的栅格进行自动化一些测试。

其中一项测试需要检查栅格的像素类型和像素深度(必须是至少 32 位的浮点)。这些可以通过图层属性中的“光栅信息”部分手动访问。

我可以使用“获取栅格属性”工具选择“单元值类型”来获取像素类型,但是,似乎没有选择“像素深度”的选项。

“构建栅格属性表(数据管理)”提到“您无法为 32 位浮点像素类型的栅格数据集构建栅格属性表。”,因此如果我能够执行此函数,我会几乎可以肯定栅格不是整数像素类型,但这并不能排除“构建栅格属性表”可能失败的其他原因。另外,对于该工具的维护者来说,这将是非常不直观的。

如果有人知道可以帮助我的Python函数,我可以构建一个脚本工具,这样也可以工作。

任何帮助将不胜感激。

raster arcgis esri arcpy
1个回答
0
投票

如果您需要具有浮点表示的栅格,您可以查看

arcpy.management.CopyRaster
。您可能还想了解一下
arcpy.ia.Float
(需要专门许可证)。

请注意:我自己还没有尝试过。

像素深度是应用于整个栅格的值:

像素的位深度(像素深度)决定了特定光栅文件可以存储的值的范围,它基于公式 2n(其中 n 是位深度)。例如,8 位栅格可以有 256 个唯一值,范围从 0 到 255。

(来源:栅格数据集像素的位深度容量

您还可以使用成像库(例如 pillow)分析光栅/图像。但是,这仅适用于非地理数据库存储的栅格。图书馆枕头似乎将像素深度称为模式

当前版本支持以下标准模式:

  • 1
    (1 位像素,黑白,每字节一个像素存储)
  • [...]
  • F
    (32 位浮点像素)
from PIL import Image
with Image.open("raster.jpg") as image:
    print(image.mode)
© www.soinside.com 2019 - 2024. All rights reserved.