类 CRSSTDistance
继承关系
基类
public gwm::Distance(类 Distance)
类文档
-
class CRSSTDistance : public gwm::Distance
计算时空距离的类,由空间距离和时间距离组成
公有类型
-
typedef arma::vec (*CalculatorType)(const std::unique_ptr<Distance>&, const std::unique_ptr<OneDimDistance>&, arma::uword, double, double)
距离计算的输入参数类型:空间距离,时间距离,计算序号,λ,余弦值的角度(默认为π/2)
公有方法
-
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.
- 参数:
distance -- Refernce to object for copying.
-
inline virtual std::unique_ptr<Distance> clone() const override
克隆这个 Distance 对象。
- 返回:
Distance* 重新创建的对象指针
-
inline virtual DistanceType type() override
返回该对象的类型。
- 返回:
DistanceType 距离陆良类型
-
virtual void makeParameter(std::initializer_list<DistParamVariant> plist) override
将输入的数据初始化到mSpatialDistance, mTemporalDistance中,并初始化mParameter
- 参数:
plist -- 需要是4个数据组成:mat:目标空间点,mat:数据空间点,vec:目标时间戳,vec:数据时间戳
-
inline virtual arma::vec distance(arma::uword focus) override
利用mCalculator计算距离
- 参数:
focus -- 第几个数据
- 返回:
mCalculator 距离计算器,二选一,是已被初始化的
-
virtual double minDistance() override
用于计算带宽
-
virtual double maxDistance() override
获取最大距离。
- 返回:
double 最大距离
-
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)
公有静态方法
-
static arma::vec OrthogonalSTDistance(const std::unique_ptr<Distance> &spatial, const std::unique_ptr<OneDimDistance> &temporal, arma::uword focus, double lambda, double angle)
一般情况下的时空距离计算。正交时空距离
- 参数:
spatial -- gwm::Distance类的空间距离。
temporal -- gwm::Distance类的时间距离。
focus -- 要计算的数据的序号。
lambda -- 时空距离的相对权重值,λ控制空间距离,1-λ控制时间距离。
angle -- 参数取默认值。
- 返回:
arma::vec 计算得到的距离向量
-
static arma::vec ObliqueSTDistance(const std::unique_ptr<Distance> &spatial, const std::unique_ptr<OneDimDistance> &temporal, arma::uword focus, double lambda, double angle)
有angle情况下的时空距离计算,斜交时空距离
- 参数:
spatial -- gwm::Distance类的空间距离。
temporal -- gwm::Distance类的时间距离。
focus -- 要计算的数据的序号。
lambda -- 时空距离的相对权重值,λ控制空间距离,1-λ控制时间距离。
angle -- 默认值是π/2,给函数提供angle值,计算斜交时空距离
- 返回:
arma::vec 计算得到的距离向量
-
typedef arma::vec (*CalculatorType)(const std::unique_ptr<Distance>&, const std::unique_ptr<OneDimDistance>&, arma::uword, double, double)