Available with Geostatistical Analyst license.
Summary
Interpolates a surface using a kernel that is based upon the heat equation and allows one to use raster and feature barriers to redefine distances between input points.
Learn more about how Diffusion Interpolation With Barriers works
Usage

The absolute feature barrier employs a nonEuclidean distance approach rather than a lineofsight approach. The lineofsight approach requires that a straight line between the measured location and the location where the prediction is required do not intersect the barrier feature. If the distance around the barrier is within the searching neighborhood specifications, then it will be considered in this nonEuclidean distance approach.
The processing time is dependent on the complexity of the barrier feature classes geometry. Tools in the Generalization toolset can be used to create a new feature class by smoothing or deleting some of these features.
For the Input additive barrier raster parameter, the values must be greater than or equal to 1. A value of 1 implies that there is no barrier.
The Input cumulative barrier raster parameter should have values that are the same units as the x,y coordinates. If neighboring cells have the same values, then it implies that there is no barrier at that location.
Input flow barrier raster should have values that have the same units as the x,y coordinates. If the neighboring cells have the same values, then it implies that there is no barrier at that location. Also, if you go from a high to a low value, then it implies that there is no barrier.
A value of NoData in any of the optional raster barrier inputs has the same effect as that of having an input absolute barrier feature.
Syntax
arcpy.ga.DiffusionInterpolationWithBarriers(in_features, z_field, {out_ga_layer}, {out_raster}, {cell_size}, {in_barrier_features}, {bandwidth}, {number_iterations}, {weight_field}, {in_additive_barrier_raster}, {in_cumulative_barrier_raster}, {in_flow_barrier_raster})
Parameter  Explanation  Data Type 
in_features  The input point features containing the zvalues to be interpolated.  Feature Layer 
z_field  Field that holds a height or magnitude value for each point. This can be a numeric field or the Shape field if the input features contain zvalues or mvalues.  Field 
out_ga_layer (Optional)  The geostatistical layer produced. This layer is required output only if no output raster is requested.  Geostatistical Layer 
out_raster (Optional)  The output raster. This raster is required output only if no output geostatistical layer is requested.  Raster Dataset 
cell_size (Optional)  The cell size at which the output raster will be created. This value can be explicitly set under Raster Analysis from the Environment Settings. If not set, it is the shorter of the width or the height of the extent of the input point features, in the input spatial reference, divided by 250.  Analysis Cell Size 
in_barrier_features (Optional)  Absolute barrier features using nonEuclidean distances rather than lineofsight distances.  Feature Layer 
bandwidth (Optional)  Used to specify the maximum distance at which data points are used for prediction. With increasing bandwidth, prediction bias increases and prediction variance decreases.  Double 
number_iterations (Optional)  The iteration count controls the accuracy of the numerical solution because the model solves the diffusion equation numerically. The larger this number, the more accurate the predictions, yet the longer the processing time. The more complex the barrier's geometry and the larger the bandwidth, the more iterations are required for accurate predictions.  Long 
weight_field (Optional)  Used to emphasize an observation. The larger the weight, the more impact it has on the prediction. For coincident observations, assign the largest weight to the most reliable measurement.  Field 
in_additive_barrier_raster (Optional)  The travel distance from one raster cell to the next based on this formula: (average cost value in the neighboring cells) x (distance between cell centers)  Raster Layer 
in_cumulative_barrier_raster (Optional) 
The travel distance from one raster cell to the next based on this formula: (difference between cost values in the neighboring cells) + (distance between cell centers)  Raster Layer 
in_flow_barrier_raster (Optional)  A flow barrier is used when interpolating data with preferential direction of data variation, based on this formula: Indicator (cost values in the to neighboring cell > cost values in the from neighboring cell) * (cost values in the to neighboring cell  cost values in the from neighboring cell) + (distance between cell centers), where indicator(true) = 1 and indicator(false) = 0.  Raster Layer 
Code sample
DiffusionInterpolationWithBarriers example 1 (Python window)
Interpolate point features that are constrained by a barrier onto a rectangular raster.
import arcpy
arcpy.env.workspace = "C:/gapyexamples/data"
arcpy.DiffusionInterpolationWithBarriers_ga("ca_ozone_pts", "OZONE", "outDIWB",
"C:/gapyexamples/output/diwbout", "2000",
"ca_outline", "", "10", "", "", "", "")
DiffusionInterpolationWithBarriers example 2 (standalone Python script)
Interpolate point features that are constrained by a barrier onto a rectangular raster.
# Name: DiffusionInterpolationWithBarriers_Example_02.py
# Description: Diffusion Interpolation with Barriers uses a kernel which is
# based upon the heat equation and describes the variation in
# temperature with time in a homogeneous medium.
# Requirements: Geostatistical Analyst Extension
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/gapyexamples/data"
# Set local variables
inPointFeatures = "ca_ozone_pts.shp"
zField = "ozone"
outLayer = "outDIWB"
outRaster = "C:/gapyexamples/output/diwbout"
cellSize = 2000.0
power = 2
inBarrier = "ca_outline.shp"
bandwidth = ""
iterations = 10
weightField = ""
addBarrier = ""
cumuBarrier = ""
flowBarrier = ""
# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")
# Execute DiffusionInterpolationWithBarriers
arcpy.DiffusionInterpolationWithBarriers_ga(inPointFeatures, zField, outLayer,
outRaster, cellSize, inBarrier,
bandwidth, iterations, weightField,
addBarrier, cumuBarrier, flowBarrier)
Environments
Licensing information
 Basic: Requires Geostatistical Analyst
 Standard: Requires Geostatistical Analyst
 Advanced: Requires Geostatistical Analyst