node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
56 lines (53 loc) • 3.03 kB
text/typescript
import { FeatureCollection, Point } from 'geojson';
interface QuadratAnalysisResult {
criticalValue: number;
maxAbsoluteDifference: number;
isRandom: boolean;
observedDistribution: number[];
}
/**
* Quadrat analysis lays a set of equal-size areas(quadrat) over the study area and counts
* the number of features in each quadrat and creates a frequency table.
* The table lists the number of quadrats containing no features,
* the number containing one feature, two features, and so on,
* all the way up to the quadrat containing the most features.
* The method then creates the frequency table for the random distribution, usually based on a Poisson distribution.
* The method uses the distribution to calculate the probability for 0 feature occuring,
* 1 feature occuring, 2 features, and so on,
* and lists these probabilities in the frequency table.
* By comparing the two frequency tables, you can see whether the features create a pattern.
* If the table for the observed distribution has more quadrats containing many features than the
* table for the random distribution dose, then the features create a clustered pattern.
*
* It is hard to judge the frequency tables are similar or different just by looking at them.
* So, we can use serval statistical tests to find out how much the frequency tables differ.
* We use Kolmogorov-Smirnov test.This method calculates cumulative probabilities for both distributions,
* and then compares the cumulative probabilities at each class level and selects the largest absolute difference D.
* Then, the test compares D to the critical value for a confidence level you specify.
* If D is greater than the critical value, the difference between the observed distribution and
* the random distribution is significant. The greater the value the bigger the difference.
*
* Traditionally, squares are used for the shape of the quadrats, in a regular grid(square-grid).
* Some researchers suggest that the quadrat size equal twice the size of mean area per feature,
* which is simply the area of the study area divided by the number of features.
*
*
* @function
* @param {FeatureCollection<Point>} pointFeatureSet point set to study
* @param {Object} [options={}] optional parameters
* @param {[number, number, number, number]} [options.studyBbox] bbox representing the study area
* @param {20 | 15 | 10 | 5 | 2 | 1} [options.confidenceLevel=20] a confidence level.
* The unit is percentage . 5 means 95%, value must be in {@link K_TABLE}
* @returns {QuadratAnalysisResult} result
* @example
*
* var bbox = [-65, 40, -63, 42];
* var dataset = turf.randomPoint(100, { bbox: bbox });
* var result = turf.quadratAnalysis(dataset);
*
*/
declare function quadratAnalysis(pointFeatureSet: FeatureCollection<Point>, options: {
studyBbox?: [number, number, number, number];
confidenceLevel?: 20 | 15 | 10 | 5 | 2 | 1;
}): QuadratAnalysisResult;
export { type QuadratAnalysisResult, quadratAnalysis as default, quadratAnalysis };