public class GwrTinInterpolator extends GwrInterpolator implements IInterpolatorOverTin
A Note on the Suitability of This Implementation: Anyone who values his own time should respect the time of others. With that regard, I believe it appropriate to make this note about the current state of the Tinfour GWR implementation. While I believe that code is implemented correctly, it is not complete. Statistics such as R values and F scores are not yet available. The Tinfour GWR classes also lacks tools for detecting multi collinearities in model coefficients. These classes were developed with a specific application in mind: the modeling of terrain and bathymetry. And while they can be applied to many other problems, potential users should consider whether the tool is suitable to their particular requirements.
A Note on Safe Coding: This class maintains references to its most recent inputs as member elements. For efficiency purposes, it does not make copies of the input arrays, but uses them directly. Therefore, it is imperative that the calling application not modify these elements until it is done with the results from a computation. While this approach violates well-known safe-coding practices advocated by many parties, it is useful as a way of improving throughput for data processing and should not be a problem for careful developers.
GwrInterpolator.BootstrapResult| Constructor and Description |
|---|
GwrTinInterpolator(IIncrementalTin tin)
Construct an interpolator that operates on the specified TIN.
|
GwrTinInterpolator(IIncrementalTin tin,
int maxDepth)
Construct an interpolator that operates on the specified TIN.
|
| Modifier and Type | Method and Description |
|---|---|
String |
getMethod() |
int |
getSampleCount()
Gets the number of samples used in the most recent calculation.
|
double |
getSampleDistanceMean()
Gets the mean distance of the samples from the most
recent interpolation point
|
Vertex[] |
getSampleVertices()
Get the samples used in the most recent interpolation.
|
double |
interpolate(double qx,
double qy,
IVertexValuator valuator)
Obtains an interpolated value at the specified coordinates using
a Geographically Weighted Linear Regression.
|
double |
interpolate(SurfaceModel model,
BandwidthSelectionMethod bandwidthMethod,
double bandwidthParameter,
double qx,
double qy,
IVertexValuator valuator)
Performs regression using the specified surface model and
bandwidth-selection method.
|
double |
interpolateUsingAutomaticModelAndBandwidth(double qx,
double qy,
IVertexValuator valuator)
Perform regression using adaptive bandwidth selection and testing all
available models using the AICc criterion.
|
boolean |
isSurfaceNormalSupported() |
void |
resetForChangeToTin()
Used by an application to reset the state data within the interpolator
when the content of the TIN may have changed.
|
boolean |
wasTargetExteriorToTin()
Indicates that the most recent target coordinates were
exterior to the TIN.
|
bootstrap, getAICc, getAutomaticBandwidthTestCount, getBandwidth, getBandwidthSelectionMethod, getCoefficients, getEffectiveDegreesOfFreedom, getLeungDelta1, getLeungDelta2, getPredictionInterval, getPredictionIntervalHalfRange, getResiduals, getResidualSumOfTheSquares, getSamples, getSigmaML, getSlope, getStandardDeviation, getSurfaceModel, getSurfaceNormal, getVariance, getWeights, interpolate, interpolateUsingAutomaticModelAndBandwidthclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSurfaceNormalpublic GwrTinInterpolator(IIncrementalTin tin)
tin - a valid instance of an incremental TIN.public GwrTinInterpolator(IIncrementalTin tin, int maxDepth)
tin - a valid instance of an incremental TIN.maxDepth - the maximum depth of the search for neighboring pointspublic void resetForChangeToTin()
resetForChangeToTin in interface IProcessUsingTinpublic double interpolate(double qx,
double qy,
IVertexValuator valuator)
Please see the documentation for IInterpolatorOverTin for more detail.
interpolate in interface IInterpolatorOverTinqx - the x coordinate for the interpolation pointqy - the y coordinate for the interpolation pointvaluator - an optional valuator (supply null if none is required).public double interpolateUsingAutomaticModelAndBandwidth(double qx,
double qy,
IVertexValuator valuator)
Values are assigned to samples using the specified valuator, or by taking their z-values directly if no valuator (e.g. a null) is specified.
qx - the x coordinate for the interpolation pointqy - the y coordinate for the interpolation pointvaluator - a valid valuator for interpreting the z value of each
vertex or a null value to use the default.public double interpolate(SurfaceModel model, BandwidthSelectionMethod bandwidthMethod, double bandwidthParameter, double qx, double qy, IVertexValuator valuator)
When in doubt, a good general specification for bandwidth-selection is to use BandwidthSelectionMethod.FixedProportionalBandwidth with a bandwidth parameter of 1.0. The model should be selected based on the anticipated behavior of the surface. SurfaceModel.Quadratic is usually a good choice for all but flat surfaces, though QuadraticWithCrossTerms is useful for curvature-related computations.
model - a valid model specificationbandwidthMethod - a valid bandwidth-selection method specificationbandwidthParameter - a bandwidth parameterqx - the x coordinate of the interpolation pointqy - the y coordinate of the interpolation pointvaluator - an optional valuator for interpolationpublic int getSampleCount()
public Vertex[] getSampleVertices()
public boolean isSurfaceNormalSupported()
isSurfaceNormalSupported in interface IInterpolatorOverTinpublic String getMethod()
getMethod in interface IInterpolatorOverTinpublic double getSampleDistanceMean()
public boolean wasTargetExteriorToTin()
Copyright © 2021. All rights reserved.