3D GA 图层转 NetCDF (地统计分析)

需要 Geostatistical Analyst 许可。

摘要

将使用 3D 经验贝叶斯克里金工具创建的一个或多个 3D 地统计图层导出为 netCDF 格式*.nc 文件)。此工具的主要目的是准备 3D 地统计图层,以将其可视化为局部场景中的体素图层。

了解有关体素图层的详细信息

插图

将 3D 地统计图层导出到体素图层
体素层将显示 3D 插值的结果。

使用情况

  • 输出 netCDF 文件参数不会自动将图层添加到地图或场景。要将输出渲染为体素图层,必须将其添加到局部场景,其具有与 netCDF 文件相同的水平和垂直坐标系。也可以分别使用创建 NetCDF 要素图层工具或创建 NetCDF 栅格图层工具,将其作为要素或栅格图层添加到地图或场景中。

  • 输出 netCDF 文件渲染为体素图层,将导出位置参数设置为 3D 格网化点。体素图层需要格网化位置才能进行渲染。

  • 所有输入 3D 地统计图层必须为使用 3D 经验贝叶斯克里金法创建的 3D 地统计图层

  • 您可以通过以下两种方式中的任何一种来选择所要预测和导出的位置:

    • 预测导出到 3D 格网化点 - 预测将被导出到 3D 模式下的格网化点。要使用此选项,请为导出位置参数指定 3D 格网化点X 间距Y 间距高程间距参数将指定 x、y 和 z(高程)维度中每个格网化的点之间的距离。
    • 预测导出到自定义 3D 位置 - 预测将被导出到由 3D 点要素定义的自定义 3D 位置。要使用此选项,请为导出位置参数指定自定义 3D 点,然后将 3D 点要素添加到 3D 点位置参数以指定要导出的位置。3D 点位置的高程必须存储在 Shape.Z 几何属性中。如果将高程存储为属性字段(而非 Shape.Z),则可以使用依据属性实现要素转 3D 工具将其转换为 3D 点。

  • 输出 netCDF 文件参数的默认输出范围是所有输入 3D 地统计图层的范围的并集。

  • 如果为导出位置参数指定 3D 格网化点,则将在输出范围环境的最小 x 坐标、最小 y 坐标和最小 z 坐标处创建第一个点。其余点将通过借助输出范围的维度遍历 X 间距Y 间距高程间距参数距离进行创建。如果任何间距都没有均匀划分输出范围的相应维度,则将在输出范围之外创建一行或一列点。例如,如果 x 的输出范围指定为 0 到 10,且 X 间距参数指定为 3,则输出在 x 范围内将有 4 行:0、3、6、9 和 12。同样,如果间距没有均匀地划分 y 或 z 范围,则会另外创建一行或一列点。

  • 输入研究区域面参数可用于将插值结果限制为特定研究区域,而非显示完整的结果立方体。仅该研究区域内的位置将具有在输出 netCDF 文件中创建的点。

  • 如果提供输入研究区域面,则研究区域的范围将用作默认输出范围,并且将基于此范围重新计算 X 间距Y 间距高程间距参数值。由此可确保输出将默认填充整个研究区域。

参数

标注说明数据类型
输入 3D 地统计图层

将导出到输出 netCDF 文件的 3D 地统计图层。如果提供了多个图层,则输出将是多元 netCDF 文件。

Geostatistical Layer
输出 netCDF 文件

包含从 输入 3D 地统计图层导出的值的输出 netCDF 文件。

File
导出位置
(可选)

指定要从输入 3D 地统计图层导出的位置。您可以导出到 3D 格网化点或提供自定义 3D 点要素来表示导出位置。如果您选择 3D 格网化点,则必须提供 X 间距Y 间距高程间距参数的值,这些参数表示所有维度上每个格网化的点之间的距离。如果您选择自定义 3D 点,则必须在 3D 点位置参数中提供 3D 点要素,其表示要导出的位置。

  • 3D 格网化点预测位置是 3D 格网化点。这是默认设置。
  • 自定义 3D 点预测位置由自定义 3D 点要素定义。
String
X 间距
(可选)

x 维度中每个格网化点之间的间距。默认值沿输出 x 范围创建 40 个点。

Linear Unit
Y 间距
(可选)

y 维度中每个格网化点之间的间距。默认值沿输出 y 范围创建 40 个点。

Linear Unit
高程间距
(可选)

高程 (z) 维度中每个格网化点之间的间距。默认值沿输出 z 范围创建 40 个点。

Linear Unit
3D 点位置
(可选)

表示要导出的位置的 3D 点要素。点要素的高程必须存储在 Shape.Z 几何属性中。

Feature Layer
输出变量
(可选)

指定输入 3D 地统计图层的输出类型。您可以为每个图层指定一个或多个输出类型,也可以将输出类型应用于所有输入地统计图层。默认情况下,将导出所有图层的预测。

要导出其他输出类型,请在值表的第一个条目中指定要导出的图层(或选择所有以指定所有图层)。在值表的第二个条目中指定输出类型。如果您选择概率分位数作为输出类型,请在值表的第三个条目中指定阈值(用于概率)或分位数(用于分位数)。如果您选择预测预测标准误差作为输出类型,则可将值表中的第三个条目留空。

了解有关地统计输出类型的详细信息

Value Table
输入研究区域面
(可选)

表示研究区域的面要素。仅研究区域内的点保存在输出 netCDF 文件中。如果可视化为体素图层,则场景中将仅显示研究区域内的体素。将仅使用点的 x 和 y 坐标来确定点位于研究区域内部还是外部。

Feature Layer

arcpy.ga.GALayer3DToNetCDF(in_3d_geostat_layers, out_netcdf_file, {export_locations}, {x_spacing}, {y_spacing}, {elevation_spacing}, {in_points_3d}, {output_variables}, {in_study_area})
名称说明数据类型
in_3d_geostat_layers
[in_3d_geostat_layers,...]

将导出到输出 netCDF 文件的 3D 地统计图层。如果提供了多个图层,则输出将是多元 netCDF 文件。

Geostatistical Layer
out_netcdf_file

包含从 输入 3D 地统计图层导出的值的输出 netCDF 文件。

File
export_locations
(可选)

指定要从输入 3D 地统计图层导出的位置。您可以导出到 3D 格网化点或提供自定义 3D 点要素来表示导出位置。如果您选择 3D 格网化点,则必须提供 X 间距Y 间距高程间距参数的值,这些参数表示所有维度上每个格网化的点之间的距离。如果您选择自定义 3D 点,则必须在 3D 点位置参数中提供 3D 点要素,其表示要导出的位置。

  • 3D_GRIDDED_POINTS预测位置是 3D 格网化点。这是默认设置。
  • CUSTOM_3D_POINTS预测位置由自定义 3D 点要素定义。
String
x_spacing
(可选)

x 维度中每个格网化点之间的间距。默认值沿输出 x 范围创建 40 个点。

Linear Unit
y_spacing
(可选)

y 维度中每个格网化点之间的间距。默认值沿输出 y 范围创建 40 个点。

Linear Unit
elevation_spacing
(可选)

高程 (z) 维度中每个格网化点之间的间距。默认值沿输出 z 范围创建 40 个点。

Linear Unit
in_points_3d
(可选)

表示要导出的位置的 3D 点要素。点要素的高程必须存储在 Shape.Z 几何属性中。

Feature Layer
output_variables
[[layer_name, output_type, quantile_probability_value],...]
(可选)

指定输入 3D 地统计图层的输出类型。您可以为每个图层指定一个或多个输出类型,也可以将输出类型应用于所有输入地统计图层。默认情况下,将导出所有图层的预测。

要导出其他输出类型,请在值表的第一个条目中指定要导出的图层(或选择所有以指定所有图层)。在值表的第二个条目中指定输出类型。如果您选择概率分位数作为输出类型,请在值表的第三个条目中指定阈值(用于概率)或分位数(用于分位数)。如果您选择预测预测标准误差作为输出类型,则可将值表中的第三个条目留空。

了解有关地统计输出类型的详细信息

Value Table
in_study_area
(可选)

表示研究区域的面要素。仅研究区域内的点保存在输出 netCDF 文件中。如果可视化为体素图层,则场景中将仅显示研究区域内的体素。将仅使用点的 x 和 y 坐标来确定点位于研究区域内部还是外部。

Feature Layer

代码示例

GALayer3DToNetCDF 示例 1(Python 窗口)

将 3D 点插值两次并将输出转换为多元 netCDF 文件。

import arcpy
arcpy.ga.EmpiricalBayesianKriging3D("my3DPoints1", "Shape.Z",
                                    "myValueField1", "my3DGALayer1")
arcpy.ga.EmpiricalBayesianKriging3D("my3DPoints2", "Shape.Z",
                                    "myValueField2", "my3DGALayer2")
arcpy.ga.GALayer3DToNetCDF("my3DGALayer1;my3DGALayer2", "outputNCDF.nc",
                           "3D_GRIDDED_POINTS", "50 Meters", "50 Meters", "5 Meters",
                           "", "<ALL> PREDICTION #")
GALayer3DToNetCDF 示例 2(独立脚本)

将 3D 点插值两次并将输出转换为多元 netCDF 文件。导出到自定义 3D 网格化点。

# Name: GALayer3DToNetCDF_Example_02.py
# Description: Interpolates 3D points and exports to a netCDF file.
# Requirements: Geostatistical Analyst Extension
# Author: Esri

# Import system modules
import arcpy

# Allow overwriting output
arcpy.env.overwriteOutput = True

# Set up variables
in3DPoints1 = "C:/gapydata/inputs.gdb/my3DPoints1"
in3DPoints2 = "C:/gapydata/inputs.gdb/my3DPoints2"
elevationField1 = "Shape.Z"
elevationField2 = "Shape.Z"
valueField1 = "myValueField1"
valueField2 = "myValueField2"
outGALayer1 = "myGALayer1"
outGALayer2 = "myGALayer2"


# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")

# Execute Empirical Bayesian Kriging 3D twice
arcpy.ga.EmpiricalBayesianKriging3D(in3DPoints1, elevationField1, valueField1, outGALayer1)
arcpy.ga.EmpiricalBayesianKriging3D(in3DPoints2, elevationField2, valueField2, outGALayer2)


# Export predictions for first model and probability that second model exceeds 10
# Export to gridded 3D points

# Set up variables
in_3d_ga_layers = outGALayer1+";"+outGALayer2
out_ncdf = "C:/gapydata/outputs/outputNetCDF1.nc"
export_locations = "3D_GRIDDED_POINTS"
x_spacing = "50 Meters"
y_spacing = "50 Meters"
elev_spacing = "5 Meters"
custom_points = ""
out_vars = "myGALayer1 PREDICTION #;myGALayer2 PROBABILITY 10"

# Run tool.
arcpy.ga.GALayer3DToNetCDF(in_3d_ga_layers, out_ncdf, export_locations,
                           x_spacing, y_spacing, elev_spacing, custom_points, out_vars)


# Export standard errors for first model and 75th quantile for second model
# Export to custom 3D points

# Set up variables
in_3d_ga_layers = outGALayer1+";"+outGALayer2
out_ncdf = "C:/gapydata/outputs/outputNetCDF2.nc"
export_locations = "CUSTOM_3D_POINTS"
x_spacing = ""
y_spacing = ""
elev_spacing = ""
custom_points = "C:/gapydata/inputs.gdb/myCustom3DPoints"
out_vars = "myGALayer1 PREDICTION_STANDARD_ERROR #;myGALayer2 QUANTILE 0.75"

# Run tool.
arcpy.ga.GALayer3DToNetCDF(in_3d_ga_layers, out_ncdf, export_locations,
                           x_spacing, y_spacing, elev_spacing, custom_points, out_vars)

许可信息

  • Basic: 需要 Geostatistical Analyst
  • Standard: 需要 Geostatistical Analyst
  • Advanced: 需要 Geostatistical Analyst

相关主题