Class CRSSTDistance

Inheritance Relationships

Base Type

Class Documentation

class CRSSTDistance : public gwm::Distance

Class for calculating spatial temporal distance.

Public Types

typedef arma::vec (*CalculatorType)(const std::unique_ptr<Distance>&, const std::unique_ptr<OneDimDistance>&, arma::uword, double, double)

parameters used in calculating.

Public Functions

inline CRSSTDistance()

Construct.

inline explicit CRSSTDistance(const Distance &spatialDistance, const OneDimDistance &temporalDistance, double lambda)
inline explicit CRSSTDistance(const Distance &spatialDistance, const OneDimDistance &temporalDistance, double lambda, double angle)
inline explicit CRSSTDistance(Distance &&spatialDistance, OneDimDistance &&temporalDistance, double lambda)
inline explicit CRSSTDistance(Distance &&spatialDistance, OneDimDistance &&temporalDistance, double lambda, double angle)
inline explicit CRSSTDistance(const std::unique_ptr<Distance> &spatialDistance, const std::unique_ptr<OneDimDistance> &temporalDistance, double lambda)
inline explicit CRSSTDistance(const std::unique_ptr<Distance> &spatialDistance, const std::unique_ptr<OneDimDistance> &temporalDistance, double lambda, double angle)
inline explicit CRSSTDistance(std::unique_ptr<Distance> &&spatialDistance, std::unique_ptr<OneDimDistance> &&temporalDistance, double lambda)
inline explicit CRSSTDistance(std::unique_ptr<Distance> &&spatialDistance, std::unique_ptr<OneDimDistance> &&temporalDistance, double lambda, double angle)
inline CRSSTDistance(const CRSSTDistance &distance)

Copy construct.

Parameters:

distance – Refernce to object for copying.

inline virtual std::unique_ptr<Distance> clone() const override

Clone this Distance object. Newly created pointer.

inline virtual DistanceType type() override

Return the type of this object. Type of distance.

virtual void makeParameter(std::initializer_list<DistParamVariant> plist) override

make the input data, initialize mParameter. need to contain 4 items, mat, mat, vec, vec

inline virtual arma::vec distance(arma::uword focus) override

calculate distance focus * already initialized OrthogonalSTDistance or ObliqueSTDistance

virtual double minDistance() override

bandwidth calculation.

virtual double maxDistance() override

Get maximum distance among all points. Maximum distance.

inline const std::unique_ptr<Distance> &spatialDistance() const
inline const std::unique_ptr<OneDimDistance> &temporalDistance() const
inline const double lambda()
inline void setLambda(const double lambda)
inline const double angle()
inline void setAngle(const double angle)

Public Static Functions

static arma::vec OrthogonalSTDistance(const std::unique_ptr<Distance> &spatial, const std::unique_ptr<OneDimDistance> &temporal, arma::uword focus, double lambda, double angle)

Calculate temporal and spatial distance, Orthogonal Distance spatial distance of class gwm::Distance temporal distance of class gwm::Distance the number of data to calculate lambda angle Distance vector.

static arma::vec ObliqueSTDistance(const std::unique_ptr<Distance> &spatial, const std::unique_ptr<OneDimDistance> &temporal, arma::uword focus, double lambda, double angle)

Calculate temporal and spatial distance with angle, Oblique Distance spatial distance of class gwm::Distance temporal distance of class gwm::Distance the number of data to calculate lambda angle Distance vector.

Protected Attributes

std::unique_ptr<Distance> mSpatialDistance = nullptr

Pointer to instance for spatial distance.

std::unique_ptr<OneDimDistance> mTemporalDistance = nullptr

Pointer to instance for temporal distance.

double mLambda = 0.0

Weight of temporal distance.

double mAngle = arma::datum::pi / 2

Angle of spatial distance and temporal distance.