可以根据您想添加的栅格数据类型,在 Python 中自定义并实现栅格类型。栅格类型可与一组函数进行比较,该函数可识别与您的数据相关的元数据结构格式。栅格类型还可以通过解析元数据来检索如下信息:数据文件路径、空间参考信息和元数据等(包括传感器名称、太阳高程、太阳方位角、太阳距离、采集日期、辐射率和反射参数)。
除了可以从元数据文件中解析和读取元数据信息,栅格类型也可定义适用于正在读取的数据类型的处理模板。处理模板可以组合源数据的不同信息,以生成对于显示和深入分析更有意义且更便捷的输出端。大多数基于传感器数据的栅格类型会将多光谱定义为其处理模板之一。许多其他模板都可以使用产品的可用数据类型进行定义。例如,Landsat 8 栅格类型可定义各种模板,例如:多光谱、全色、全色锐化、植被、卷云,以及雪或冰。
有关在 Python 中实现的 ArcGIS 栅格类型的详细信息,请参阅 Github 栅格类型。
栅格类型属性
通过从源数据中定义一个或多个以下属性来创建栅格类型:
- 波段属性 - 比如:波段名称、最小和最大波长以及太阳辐照度
- 处理模板 - 栅格函数模板包括输入、函数和值或变量
- 辅助字段 - 添加至镶嵌数据集
- 辅助输入 - 栅格类型用以全面描述数据源的其他信息,例如应该应用于源数据集以进行图像正射校正的 DEM
自定义栅格类型实现
Python 模块中实现栅格类型的详细信息如下所述。栅格类型是有助于在数据的各个方面与应用程序进行交互的图层。栅格类型也是使用添加栅格至镶嵌数据集工具将栅格添加至镶嵌数据集的核心。
ArcGIS 框架可通过熟知的工厂模式识别栅格类型。栅格类型工厂包含栅格类型集合,其中集合可根据特定条件组合而成,也可以是包含所有栅格类型的容器。
Python 中实现的栅格类型有三个组成部分:
其工作原理是什么?
Python 中实现的栅格类型架构是一个直观过程。ArcGIS 提供可与 ArcGIS 系统和用于实现栅格类型的 Python 进行交互的栅格类型适配器。适配器可加载 Python 模块并查找 RasterTypeFactory 以识别此模块中参与的栅格类型。RasterTypeFactory 必须至少包含一个可返回工厂内所有栅格类型信息的公共函数,getRasterTypesInfo。getRasterTypesInfo 函数可返回 RasterTypeDefinitions 字典。然后,适配器检索有关 RasterTypes 的信息并将基于 Python 的栅格类型与包含在 ArcGIS 内的其他栅格类型同等看待。接下来,ArcGIS 框架与基于 Python 的栅格类型使用 API 构建器和 API 检索器进行交互。
使用 Python 实现栅格类型后,将 Python 模块置于 [InstallDirectory]\Resources\Raster\Types 文件夹中。
ArcGIS 中的栅格类型框架将从此位置拾取所有 *.py 文件并检查他们是否包含有效的栅格类型。如果找到了有效的栅格类型,则将其添加到添加栅格至镶嵌数据集工具的支持栅格类型列表中。
有关如何在 Python 模块中实现栅格类型的详细信息,请参阅 Python 栅格类型解析。