Available with Geostatistical Analyst license.
Summary
Empirical Bayesian kriging 3D is a geostatistical interpolation method that uses Empirical Bayesian Kriging to interpolate 3D point data. All points must have x-, y-, and z-coordinates and a measured value to be interpolated. The output is a 3D geostatistical layer that calculates and renders itself as a 2D transect at a given elevation. The elevation of the layer can be changed with the range slider, and the layer will update to show the interpolated predictions for the new elevation.
3D interpolation has the following potential applications:
- Oceanographers can create maps of dissolved oxygen and salinity at various depths in the ocean.
- Atmospheric scientists can create models for pollution and greenhouse gasses throughout the atmosphere.
- Geologists can predict subsurface geologic properties such as mineral concentrations and porosity.
Illustration
Usage
The Input features parameter can be provided in the following ways:
- 3D point features with elevations stored as a geometry attribute in Shape.Z
- 2D point features with elevations stored in an attributed field
It is recommended that you provide 3D point features because all units and unit conversions can be done automatically. You can convert 2D point features with an elevation field into 3D point features using the Feature To 3D By Attribute geoprocessing tool.
Geostatistical layers in 3D can predict to target points in 3D as well as be exported to rasters and feature contours at any elevation. Multiple rasters at different elevations can also be simultaneously exported and saved as a multidimensional raster dataset.
All input features must be in a projected coordinate system. If your points are stored in a geographic coordinate system with latitude and longitude coordinates, the points must be projected using the Project tool prior to using this tool.
A Standard3D search neighborhood is used to calculate predictions. All distances used to find neighbors will be calculated in the stretched coordinate system after the Elevation inflation factor parameter has been applied. See Horizontal and vertical change in data values for more information.
Syntax
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})
Parameter | Explanation | Data Type |
in_features | The input point features containing the field that will be interpolated. | Feature Layer |
elevation_field | The in_features field containing the elevation value of each input point. If the elevation values are stored as geometry attributes in Shape.Z, it is recommended that you use that field. If the elevation values are stored in an attribute field, the elevation values must indicate distance from sea level. Positive values indicate distance above sea level, and negative values indicate distance below sea level. | Field |
value_field | The in_features field containing the measured values that will be interpolated. | Field |
out_ga_layer | The output geostatistical layer that will display the interpolation result. | Geostatistical Layer |
elevation_units (Optional) | The units of the elevation_field. If Shape.Z is provided as the elevation field, the units will automatically match the z-units of the vertical coordinate system.
| String |
measurement_error_field (Optional) | Specifies the measurement error for each point in the input features. For each point, the value of this field should correspond to one standard deviation of the measured value of the point. Use this field if the measurement error values are not the same at each point. A common source of nonconstant measurement error is when the data is measured with different devices. One device may be more precise than another, which means that it will have a smaller measurement error. For example, a thermometer rounds to the nearest degree and another thermometer rounds to the nearest tenth of a degree. The variability of measurements is often provided by the manufacturer of the measuring device, or it may be known from empirical practice. Leave this parameter empty if there are no measurement error values or the measurement error values are unknown. | Field |
semivariogram_model_type (Optional) | The semivariogram model that will be used for the interpolation.
| String |
transformation_type (Optional) | The type of transformation to be applied to the input features.
| String |
subset_size (Optional) | The size of the subset. The input data will automatically be divided into subsets before processing. This parameter controls the number of points that will be in each subset. | Long |
overlap_factor (Optional) | A factor representing the degree of overlap between local models (also called subsets). Each input point can fall into several subsets, and the overlap factor specifies the average number of subsets into which each point will fall. A high value of the overlap factor produces a smoother output surface, but it also increases processing time. Values must be between 1 and 5. The actual overlap that will be used will usually be larger than this value, so each subset will contain the same number of points. | Double |
number_simulations (Optional) | The number of simulated semivariograms of each local model. Using more simulations will make the model calculations more stable, but the model will take longer to calculate. | Long |
trend_removal (Optional) | The order of trend removal in the vertical direction. For most data in three dimensions, the values of the points change faster vertically than they do horizontally. Removing trend in the vertical direction will help alleviate this and stabilize calculations.
| String |
elev_inflation_factor (Optional) | A constant value that is multiplied by the Elevation field value prior to subsetting and model estimation. For most data in three dimensions, the values of the points change faster vertically than they do horizontally, and this factor stretches the locations of the points such that one unit of distance vertically is statistically equivalent to one unit of distance horizontally. The locations of the points will be moved back to their original locations before returning the result of the interpolation. This correction is needed to accurately estimate the semivariogram model and for the Search neighborhood to use the correct neighbors. The elevation inflation factor is unitless and will provide the same results regardless of the units of the x-, y-, or z-coordinate of the input points. If no value is provided for this parameter, one will be calculated at run time using maximum likelihood estimation. The value will be printed as a geoprocessing message. The value calculated at run time will be between 1 and 1000. However, you can type values between 0.01 and 1,000,000. If the calculated value is equal to 1 or 1000, you can provide values outside that range and choose a value based on cross validation. | Double |
search_neighborhood (Optional) | Specifies the number and orientation of neighbors using the SearchNeighborhoodStandard3D class. Standard3D
| Geostatistical Search Neighborhood |
output_elevation (Optional) | The default elevation of the out_ga_layer. The geostatistical layer will always draw as a horizontal surface at a given elevation, and this parameter specifies this elevation. After it's created, the elevation of the geostatistical layer can be changed using the range slider. | Double |
output_type (Optional) | Surface type to store the interpolation results. For more information about output surface types, see What output surface types can the interpolation models generate?
| String |
quantile_value (Optional) | The quantile value for which the output layer will be generated. | Double |
threshold_type (Optional) | Specifies whether to calculate the probability of exceeding or not exceeding the specified threshold.
| String |
probability_threshold (Optional) | The probability threshold value. If left empty, the median (50th quantile) of the input data will be used. | Double |
Code sample
Interpolate a 3D point feature class using the Empirical Bayesian Kriging 3D tool.
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)
Interpolate a 3D point feature class using the Empirical Bayesian Kriging 3D tool.
# 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)
Environments
Licensing information
- Basic: Requires Geostatistical Analyst
- Standard: Requires Geostatistical Analyst
- Advanced: Requires Geostatistical Analyst