需要 Geostatistical Analyst 许可。
描述
3D 经验贝叶斯克里金法是一种地统计插值方法,该方法使用经验贝叶斯克里金法来插值 3D 点数据。所有点必须具有 x 坐标、y 坐标和 z 坐标以及要插值的测量值。输出是一个 3D 地统计图层,该图层可将其自身计算并渲染为给定高程处的 2D 样带。可以使用范围滑块更改图层的高程,并且图层将进行更新以显示新高程的插值预测。
3D 插值具有以下潜在应用:
- 海洋学家可以创建海洋中不同深度处的溶氧和盐度地图。
- 大气科学家可以针对整个大气层的污染和温室气体创建模型。
- 地质学家可以预测地下地质特征,例如矿物浓度和孔隙度。
插图
使用方法
通过以下方式可提供输入要素参数:
- 3D 点要素,其高程存储为 Shape.Z 中的几何属性
- 2D 点要素,其高程存储在属性字段中
建议您提供 3D 点要素,因为可以自动完成所有单位和单位转换。可以使用依据属性实现要素转 3D 地理处理工具将具有高程字段的 2D 点要素转换为 3D 点要素。
可以将 3D 中的地统计图层预测至 3D 中的目标点以及导出到任何高程处的栅格和要素等值线。也可以同时导出高程不同的多个栅格,并将其保存为多维栅格数据集。
所有输入要素必须位于投影坐标系中。如果点存储在具有纬度和经度坐标的地理坐标系中,则必须使用投影工具对点进行投影,才能使用此工具。
Standard3D 搜索邻域用于计算预测。应用高程膨胀因子参数后,将在拉伸的坐标系中计算用于查找邻域的所有距离。有关详细信息,请参阅数据值的水平和垂直变化。
语法
arcpy.ga.EmpiricalBayesianKriging3D(in_features, elevation_field, value_field, out_ga_layer, {elevation_units}, {measurement_error_field}, {semivariogram_model_type}, {transformation_type}, {subset_size}, {overlap_factor}, {number_simulations}, {trend_removal}, {elev_inflation_factor}, {search_neighborhood}, {output_elevation}, {output_type}, {quantile_value}, {threshold_type}, {probability_threshold})
参数 | 说明 | 数据类型 |
in_features | 包含要内插的字段的输入点要素。 | Feature Layer |
elevation_field | 包含每个输入点的高程值的 in_features 字段。 如果高程值存储为 Shape.Z 中的几何属性,则建议您使用该字段。如果高程值存储在属性字段中,则高程值必须表示距海平面的距离。正值表示海平面以上的距离,负值表示海平面以下的距离。 | Field |
value_field | 包含将进行插值的测量值的 in_features 字段。 | Field |
out_ga_layer | 将显示插值结果的输出地统计图层。 | Geostatistical Layer |
elevation_units (可选) | elevation_field 的单位。 如果提供 Shape.Z 作为高程字段,则单位将自动匹配垂直坐标系的 z 单位。
| String |
measurement_error_field (可选) | 指定输入要素中每个点的测量误差。对于每个点,此字段的值都应对应于该点测量值的标准差。如果每个点的测量误差值不同,请使用此字段。 产生不稳定测量误差的常见原因是测量数据时所用的设备不同。一个设备可能比另一个精确,即其测量误差更小。例如,一个温度计舍入到最接近的度,而另一个温度计舍到最接近的度的十分之一。通常,测量误差范围由测量设备的制造商会提供,或通过实践经验获得。 如果没有测量误差值或测量误差值未知,请将此参数留空。 | Field |
semivariogram_model_type (可选) | 用于插值的半变异函数模型。
| String |
transformation_type (可选) | 将应用于输入要素的变换类型。
| String |
subset_size (可选) | 子集的大小。在进行处理前,输入数据将自动划分为子集。此参数可以控制每个子集中的点数。 | Long |
overlap_factor (可选) | 表示本地模型(也称子集)之间重叠程度的系数。 每个输入点均可落入多个子集中,重叠系数指定了各点将落入的子集的平均数。重叠系数值越高,则输出表面就越平滑,但处理时间也越长。值必须介于 1 和 5 之间。将使用的实际重叠通常将大于此值,因此每个子集将包含相同数量的点。 | Double |
number_simulations (可选) | 每个本地模型模拟的半变异函数的数量。 使用的模拟越多,则模型计算越稳定,但模型所用的计算时间也会越长。 | Long |
trend_removal (可选) | 垂直方向上趋势移除的顺序。 对于大部分三维数据,点值的垂直变化快于其水平变化。移除垂直方向的趋势将有助于缓解这一情况并稳定计算。
| String |
elev_inflation_factor (可选) | 这是一个常量值,在构造子集和模型评估之前,需要将其乘以高程字段值。对于大部分三维数据,点值的垂直变化快于其水平变化,并且该因子将对点的位置进行拉伸,以使一个垂直距离单位在统计上等于一个水平距离单位。返回插值结果之前,点的位置将移回其原始位置。需要通过这种校正来准确评估半变异函数模型以及搜索邻域以使用正确的邻域。高程膨胀因子没有单位,无论输入点的 x、y 或 z 坐标单位如何,都将提供相同的结果。 如果没有为此参数提供值,则将使用最大似然估计在运行时计算一个值。该值将打印为地理处理消息。运行时计算的值将介于 1 至 1000 之间。但是,您可以键入 0.01 至 1,000,000 之间的值。如果计算的值等于 1 或 1000,则可以提供该范围之外的值,并根据交叉验证来选择值。 | Double |
search_neighborhood (可选) | 使用 SearchNeighborhoodStandard3D 类指定相邻要素的数量和方向。 Standard3D
| Geostatistical Search Neighborhood |
output_elevation (可选) | out_ga_layer 的默认高程。 地统计图层将始终绘制为给定高程处的水平面,并且此参数将指定此高程。创建后,可以使用范围滑块来更改地统计图层的高程。 | Double |
output_type (可选) | 用于存储插值结果的表面类型。 有关输出表面类型的详细信息,请参阅插值模型可以生成何种类型的输出表面?
| String |
quantile_value (可选) | 用于生成输出图层的分位数。 | Double |
threshold_type (可选) | 指定是否计算超过或未超过指定阈值的概率。
| String |
probability_threshold (可选) | 概率阈值。如果留空,将使用输入数据的中值(第 50 个分位数)。 | Double |
代码示例
使用 Empirical Bayesian Kriging 3D 工具插值 3D 点要素类。
import arcpy
arcpy.ga.EmpiricalBayesianKriging3D("my3DLayer", "Shape.Z", "myValueField", "myGALayer", "METER", "",
"POWER", "NONE", 100, 1, 100, "NONE", "",
"NBRTYPE=Standard3D RADIUS=10000 NBR_MAX=15 NBR_MIN=10 SECTOR_TYPE=ONE_SECTOR",
"", "PREDICTION", 0.5, "EXCEED", None)
使用 Empirical Bayesian Kriging 3D 工具插值 3D 点要素类。
# Name: EBK3D_Example_02.py
# Description: Interpolates 3D points.
# Requirements: Geostatistical Analyst Extension
# Author: Esri
# Import system modules
import arcpy
# Set local variables
in3DPoints = "C:/gapyexamples/input/my3DPoints.shp"
elevationField = "Shape.Z"
valueField = "myValueField"
outGALayer = "myGALayer"
elevationUnit = "METER"
measurementErrorField = "myMEField"
semivariogramModel = "LINEAR"
transformationType = "NONE"
subsetSize = 80
overlapFactor = 1.5
numSimulations = 200
trendRemoval = "FIRST"
elevInflationFactor = 20
radius = 10000
maxNeighbors = 15
minNeighbors = 10
sectorType = "FOUR_SECTORS"
searchNeighborhood = arcpy.SearchNeighborhoodStandard3D(radius, maxNeighbors, minNeighbors, sectorType)
outputElev = 1000
outputType = "PREDICTION"
# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")
# Execute Empirical Bayesian Kriging 3D
arcpy.ga.EmpiricalBayesianKriging3D(in3DPoints, elevationField, valueField, outGALayer, elevationUnit, myMEField,
semivariogramModel, transformationType, subsetSize, overlapFactor, numSimulations,
trendRemoval, elevInflationFactor, searchNeighborhood, outputElev, outputType)
许可信息
- Basic: 需要 地统计分析
- Standard: 需要 地统计分析
- Advanced: 需要 地统计分析