17 #include <boost/numeric/ublas/matrix.hpp>
18 #include <boost/numeric/ublas/vector.hpp>
31 namespace ublas = boost::numeric::ublas;
51 typedef ublas::matrix<double>
Matrix;
52 typedef ublas::vector<double>
Vector;
81 unsigned int n = (
unsigned int)A.size1(),
82 m = (
unsigned int)A.size2();
83 for(
unsigned int i=0; i < n; ++i )
85 for(
unsigned int j=0; j < m; ++j )
87 os << std::setw(12) << A(i,j);
95 : m_grounddistance( gd ),
96 m_progressIndicator( 0 )
108 m_progressIndicator = pi;
114 if( m_progressIndicator )
122 return m_points.size1();
130 for(
unsigned int i=0; i < m_indexmap.size(); ++i )
131 if( m_indexmap[i] == (
int)phastIndex )
140 assert( i < m_indexmap.size() );
141 return m_indexmap[i];
147 assert( i < m_points.size1() );
149 const Vector& row = ublas::row( m_points, i );
158 assert( (i < m_delta.size1()) && (j < m_delta.size2()) );
167 return m_rawStress[i];
173 return m_kruskalPointStress[i];
201 return sqrt((c1.
x - c2.
x) * (c1.
x - c2.
x) + (c1.
y - c2.
y) * (c1.
y - c2.
y));
223 std::vector<int> m_indexmap;
231 std::vector<double> m_rawStress;
232 std::vector<double> m_kruskalPointStress;
234 double m_kruskalStress;
265 unsigned int m_sampleSize;
291 double radius()
const {
return m_radius; }
299 float m_fractionVisible;
300 int m_sizeOut, m_sizeIn;
Definition: EventMap.h:257
double maxRawStress()
Return maximum stress.
Definition: EventMap.cpp:356
ublas::matrix< double > Matrix
Definition: EventMap.h:51
double stressVar() const
Definition: EventMap.h:177
Definition: EventMap.h:73
double y
Definition: EventMap.h:67
C++ Template Wrapper for original Ansi C code from Yossi Rubner.
Definition: EarthMoversDistance.h:69
Coordinate()
Definition: EventMap.h:65
double minRawStress()
Return minimum stress.
Definition: EventMap.cpp:362
void create(EventSignatureSet &signatures, SignatureSampler &sel)
Create map for subset of signatures computed with the SignatureSampler sel.
Definition: EventMap.cpp:72
virtual void operator()(EventSignatureSet &in, EventSignatureSet &out)=0
Make a subselection of "in" in "out".
Coordinate(double x_, double y_)
Definition: EventMap.h:66
double x
Definition: EventMap.h:67
EarthMoversDistance< EventSignature, EventFeature > EMD
Definition: EventMap.h:53
void operator()(EventSignatureSet &in, EventSignatureSet &out)
Make a subselection of "in" in "out".
Definition: EventMap.cpp:375
int getIndex(unsigned int i) const
Return the Phast index of co-ordinate i.
Definition: EventMap.h:138
SignatureRandomSample(unsigned int sampleSize)
Definition: EventMap.h:260
Definition: EventMap.h:277
bool wasCanceled() const
Return true if create() was cancelled via the progress indicator.
Definition: EventMap.h:112
void setProgressIndicator(ProgressIndicator *pi)
Specify the progress indicator to use.
Definition: EventMap.h:106
int phast2mapIndex(unsigned int phastIndex) const
Definition: EventMap.h:127
double stressKruskal() const
Definition: EventMap.h:180
double getDissimilarity(unsigned int i, unsigned int j) const
Return dissimilarity from point i to point j.
Definition: EventMap.h:156
int sizeIn() const
Definition: EventMap.h:294
double getRawStress(unsigned int i)
Return stress for coordinate i.
Definition: EventMap.h:164
PointStressType
Definition: EventMap.h:207
SignaturePivotSample(unsigned int k, double radius=0.0)
Definition: EventMap.h:280
void calculateStress()
Definition: EventMap.cpp:234
Definition: EventMap.h:48
double dist(Coordinate c1, Coordinate c2) const
Euclidean distance (needed for stress calculation)
Definition: EventMap.h:199
double getKruskalPointStress(unsigned int i)
Definition: EventMap.h:170
int numCoordinates() const
Return the number of co-ordinates in map.
Definition: EventMap.h:120
double radius() const
Definition: EventMap.h:291
bool progress(int step)
Definition: EventMap.cpp:39
void operator()(EventSignatureSet &in, EventSignatureSet &out)
Make a subselection of "in" in "out".
Definition: EventMap.cpp:416
void print(Matrix A, std::ostream &os=std::cout)
Definition: EventMap.h:79
Matrix & distanceMatrix()
Definition: EventMap.h:196
int sizeOut() const
Definition: EventMap.h:293
Definition: EventMap.h:75
A co-ordinate is represented as 2D point (x,y) on the map.
Definition: EventMap.h:63
Definition: EventMap.h:76
Interface for distance functions to use with EarthMoversDistance.
Definition: EarthMoversDistance.h:14
std::vector< EventSignature > EventSignatureSet
Definition: EventSignature.h:21
Definition: EventMap.h:207
Definition: EventMap.h:72
bool wasCanceled() const
Definition: ProgressIndicator.h:108
double calculatePointStress(int index, PointStressType type) const
Calculate raw point stress.
Definition: EventMap.cpp:310
float fractionVisible() const
Definition: EventMap.h:289
double calculateKruskalStress() const
Calculate overall Kruskal stress.
Definition: EventMap.cpp:291
Coordinate getCoordinate(unsigned int i) const
Return Coordinate i.
Definition: EventMap.h:145
Definition: EventMap.h:71
Progress
Definition: EventMap.h:70
Definition: EventMap.h:55
ublas::vector< double > Vector
Definition: EventMap.h:52
double stressMean() const
Definition: EventMap.h:176
double stressNorm() const
Definition: EventMap.h:178
Interface for a polling-based progress indicator (e.g. progress bar)
Definition: ProgressIndicator.h:37
EventMap(const GroundDistance< EventFeature > &gd)
Definition: EventMap.h:94
Definition: EventMap.h:74
Definition: EventMap.h:207