New in ArcGIS Pro 2.3: 3D Interpolation with Empirical Bayesian Kriging

5094
19
01-25-2019 07:36 AM
EricKrause
Esri Regular Contributor
2 19 5,094

In the newly released ArcGIS Pro 2.3 (available through MyEsri),  Geostatistical Analyst has made available the first 3D interpolation method in ArcGIS, Empirical Bayesian Kriging 3D.  This method takes points with x, y, and z coordinates and a measured value and interpolates the measured value into a continuous 3D model using Empirical Bayesian Kriging methodology.

Geostatistical layer in 3D

The result of the interpolation is visualized as a horizontal slice at a particular elevation, and the current elevation can be changed with the Range slider.  The animation above shows the Range slider moving through thirty different elevations.

Watch of video of Empirical Bayesian Kriging 3D

Read more about Empirical Bayesian Kriging 3D

Interpolate 3D Oxygen Measurements in Monterey Bay has been created as a LearnGIS lesson.  This lesson teaches how to perform 3D interpolation using dissolved oxygen measurements in Monterey Bay.  You will learn how to explore the oxygen measurements, perform EBK3D as a geoprocessing tool and in the Geostatistical Wizard, assess the accuracy using cross validation, and export the interpolation results to contours, rasters, and 3D animations. 

19 Comments
EricKrause
Esri Regular Contributor

DanPatterson_Retired
MVP Emeritus

Very nice job! fantastic addition to the interpolation toolset!

EricKrause
Esri Regular Contributor

Thanks Dan.  There is a little draping bug you can see around 6:23 in the video, but it was fixed before Pro 2.3 was released.

AJM
by
New Contributor III

Eric Krause‌ 

This is a great tool to use with ocean science! I also used it to look at dissolved oxygen levels. Is it possible to create a surface at a specific oxygen level? We had an event where the DO was normal at the top but decreased as you descended. I need to calculate the volume of water that had a level below 2. I have a bathymetry layer and figure if I can create a surface with the z value for the depth where the DO is 2, I can calculate the volume between the 2 surfaces. 

Is this possible?

Thanks 

PachiraEizzaParamitha
New Contributor II

i have a requirement to animate the results of this tools in web-based app. is it possible to add the slider to the web app that has the same functions as in ArcGIS Pro version?

David_Brooks
MVP Regular Contributor

@PachiraEizzaParamitha , you can convert to a Voxel model and then use the slice tool to interactively slice through the data.

PachiraEizzaParamitha
New Contributor II

@David_Brooks could it be published to ArcGIS Online and visualized in Web Scene? As far as i know, voxel layer types are currently supported in ArcGIS Pro only

David_Brooks
MVP Regular Contributor

@EricKrause , I have a dataset based on discrete classified values from 1-10 (soil classifications). Is there a way to use this tool to interpolate a ground model, but to round the values to the nearest classified value? There will be instances where the soil layers are, for example, 2 with 4 on top, so i want to round to either 2 or 4, not to 3.

EricKrause
Esri Regular Contributor

@David_Brooks Yes, it is possible to configure EBK3D to be a nearest neighbor classifier where every prediction just takes the value of the closest input point.  

Please see A Workflow for Creating Discrete Voxels blog for instructions.

David_Brooks
MVP Regular Contributor

@EricKrause , fantastic. Looking forward to delving in!

Matteroffact
New Contributor II

GREAT tutorial, @EricKrause . 

I'm trying to figure out how to orient the model to my grid of data. I'm trying to plot data from a CTD and auxiliary instruments (CDOM fluorometer specifically), but somehow the top of the rectangle appears with the top to the North. Is there a way to adjust the orientation so it fits my grid of stations better? I tried setting the processing extent to the data table and that froze up Pro.

EricKrause
Esri Regular Contributor

@Matteroffact I may not be understanding correctly, but I don't think it is possible to do this with the 3D geostatistical layer.  The layer will always be a full cube oriented by the coordinate system.  However, there are many more options when exporting the results. 

GA Layer 3D To NetCDF tool (used to prepare a voxel layer) has an "Input study area polygons" parameter that lets you define a non-rectangular study are for the export.  GA Layer To Multidimensional Raster tool supports the Mask environment, which can achieve a similar result.

Matteroffact
New Contributor II

@EricKrause OK, so the cube is oriented by the coordinate system, not the data grid? Here's a picture to help clarify my predicament.

kriging alignment.PNG

I will use the tools you mentioned if there's no other solution. Thank you

EricKrause
Esri Regular Contributor

@Matteroffact Yes, that is what you should expect to see with the geostatistical layer.  However, think of the geostatistical layer as more of a model source and visualization.  It draws itself within the rectangular extent of the points (oriented by the coordinate system), but the results of the model are defined everywhere, and they can be exported within and/or outside of drawing rectangle.

ttgrdias
New Contributor

Dear Eric Krause,

I'm doing a study which includes 3D interpolation of several ocean variables (OV) (temperature, salinity, dissolved oxygen, nutrients, pH, Chlorophyll A), in 2 distinct areas, across 4 campaigns.

Using the Geostatistical Wizard I'm getting different elevation inflation factor (EIF) (when optimizing this value) for the same ocean variables in different campaigns.

I wonder how EIF is calculated and if I should optimize this value? For the same OV, in the same area, even in different campaigns (subject do sazonal variations) shouldn't EIF be identical?

Thanks,

Kind regards,

EricKrause
Esri Regular Contributor

@ttgrdias When you optimize the EIF, it will use the value that minimizes the Root-Mean-Square cross validation error (RMSE), keeping all other parameters fixed.  In other words, this is the inflation factor that allows the model to most accurately predict back to the input point locations.

Since the optimization is data-driven and only minimizes a single number (the RMSE), it can be sensitive to things like outliers, value distributions, and spatial configurations of the points.  If these properties are not consistent across all of your datasets, you should generally expect them to estimate different EIF values.  

ttgrdias
New Contributor

@EricKrause thanks for your answer.

So the best strategy would be to leave it empty and accept the estimated value after running the tool.

To improve cross-validation results, users should only configure search neighborhood parameters?

Thanks,

EricKrause
Esri Regular Contributor

@ttgrdias Unless you have a physical reason to think the EIF is some specific value (say, a value estimated from ocean or wind currents), I would personally let the software estimate the inflation factor.  

Regarding configuring parameters to improve cross validation results, any parameter (search neighborhood or otherwise) can potentially improve the results.  In my experience (and this is just a general statement), as long as you use at least 10-15 neighbors total (EBK3D uses between 12 and 24 neighbors by default), you won't see a lot of improvement by including more neighbors in the search neighborhood.

Again, in my experience, spending extra time configuring the values of the Subset size, Order of trend removal, and Elevation inflation factor parameters often provide the best model improvement for 3D interpolation.

ttgrdias
New Contributor

@EricKrause I noticed that EBK3d builds a cubic geostatistical layer. However I'd like to build a voxel layer only with values within the sample's geospatial extent. So, I'm thinking on:

- Build a generic fishnet (point grid) (I still haven't figured out how to create a 3D fishnet in just one step);

- Clip the fishnet according to the samples minimum bounding volume;

- Use this clipped fishnet to extract the prediction values from EBK3D on the fishnet points locations;

- Create the voxel layer from those points.

Is this correct or there is a simpler way to accomplish this?

The next task is to use the voxel points, with multiple ocean variables, in a cluster analysis, like the EMU work (https://www.esri.com/en-us/about/science/ecological-marine-units/overview).

Thanks,

About the Author
Geostatistical Analyst Product Engineer