openModeller  Version 1.5.0
Occurrence.hh
Go to the documentation of this file.
1 
29 #ifndef _OCCURRENCEHH_
30 #define _OCCURRENCEHH_
31 
32 #include <openmodeller/om_defs.hh>
33 #include <openmodeller/Sample.hh>
35 
36 #include <openmodeller/refcount.hh>
37 
38 #include <string>
39 
40 /****************************************************************/
41 /************************** Occurrence **************************/
42 
46 
53 class dllexp OccurrenceImpl : private ReferenceCountedObject
54 {
57 public:
58 
62  id_( ),
63  x_( 0.0 ),
64  y_( 0.0 ),
65  error_( 0.0 ),
66  abundance_( 0.0 ),
67  attr_(),
68  unnormEnv_(),
69  normEnv_()
70  {}
71 
85  OccurrenceImpl( const std::string& id,
86  Coord x, Coord y, Scalar error,
87  Scalar abundance,
88  int num_attributes=0,
89  Scalar *attributes=0,
90  int num_env=0,
91  Scalar *env=0) :
92  id_( id ),
93  x_( x ),
94  y_( y ),
95  error_( error ),
96  abundance_( abundance ),
97  attr_( num_attributes, attributes ),
98  unnormEnv_( num_env, env ),
99  normEnv_()
100  { }
101 
112  OccurrenceImpl( const std::string& id,
113  Coord x, Coord y, Scalar error,
114  Scalar abundance,
115  std::vector<Scalar> attributes,
116  std::vector<Scalar> env) :
117  id_( id ),
118  x_( x ),
119  y_( y ),
120  error_( error ),
121  abundance_( abundance ),
122  attr_( attributes ),
123  unnormEnv_( env ),
124  normEnv_()
125  { }
126 
137  OccurrenceImpl( const std::string& id,
138  Coord x, Coord y, Scalar error,
139  Scalar abundance,
140  const Sample& attributes,
141  const Sample& env) :
142  id_( id ),
143  x_( x ),
144  y_( y ),
145  error_( error ),
146  abundance_( abundance ),
147  attr_( attributes ),
148  unnormEnv_( env ),
149  normEnv_()
150  { }
151 
163  OccurrenceImpl( const std::string& id,
164  Coord x, Coord y,
165  Scalar abundance,
166  int num_attributes=0,
167  Scalar *attributes=0 ) :
168  id_( id ),
169  x_( x ),
170  y_( y ),
171  error_( -1.0 ),
172  abundance_( abundance ),
173  attr_( num_attributes, attributes ),
174  unnormEnv_(),
175  normEnv_()
176  { }
177 
178  ~OccurrenceImpl();
179 
181  id_( rhs.id_ ),
182  x_( rhs.x_ ),
183  y_( rhs.y_ ),
184  error_( rhs.error_ ),
185  abundance_( rhs.abundance_ ),
186  attr_( rhs.attr_ ),
187  unnormEnv_( rhs.unnormEnv_ ),
188  normEnv_( rhs.normEnv_ )
189  {};
190 
192 
193  // Access to the locality information.
194  std::string id() const { return id_; }
195  Coord x() const { return x_; }
196  Coord y() const { return y_; }
197  Scalar error() const { return error_; }
198  Scalar abundance() const { return abundance_; }
199 
200  Sample const & attributes() const { return attr_; }
201 
202  Sample const & environment() const;
203 
204  Sample const & originalEnvironment() const;
205 
206  void normalize( Normalizer * normalizerPtr, size_t categoricalThreshold=0 );
207 
208  void setNormalizedEnvironment( const Sample& s );
209 
210  void setUnnormalizedEnvironment( const Sample& s );
211 
212  bool hasEnvironment() const;
213 
214  void setId( const std::string& id );
215 
216  void setAbundance( Scalar value );
217 
218  void dump() const;
219 
220 private:
221 
222  std::string id_; // Unique identifier
223  Coord x_; // Longitude
224  Coord y_; // Latitude
225  Scalar error_; // coordinate uncertanty in meters (unused so far)
226  Scalar abundance_; // used only to distinguish between presence (1) and absence (0)
227 
228  Sample attr_; // extra attributes
229  Sample unnormEnv_; // unnormalized environment
230  Sample normEnv_; // normalized enviroment
231 };
232 
233 #endif
ReferenceCountedPointer< OccurrenceImpl > OccurrencePtr
Definition: Occurrence.hh:43
ReferenceCountedPointer< const OccurrenceImpl > ConstOccurrencePtr
Definition: Occurrence.hh:45
Coord x() const
Definition: Occurrence.hh:195
double Scalar
Type of map values.
Definition: om_defs.hh:39
Sample const & attributes() const
Definition: Occurrence.hh:200
Scalar abundance_
Definition: Occurrence.hh:226
std::string id() const
Definition: Occurrence.hh:194
OccurrenceImpl(const std::string &id, Coord x, Coord y, Scalar error, Scalar abundance, int num_attributes=0, Scalar *attributes=0, int num_env=0, Scalar *env=0)
Definition: Occurrence.hh:85
std::string id_
Definition: Occurrence.hh:222
Coord y() const
Definition: Occurrence.hh:196
Sample unnormEnv_
Definition: Occurrence.hh:229
OccurrenceImpl(const std::string &id, Coord x, Coord y, Scalar error, Scalar abundance, const Sample &attributes, const Sample &env)
Definition: Occurrence.hh:137
Scalar abundance() const
Definition: Occurrence.hh:198
OccurrenceImpl(const std::string &id, Coord x, Coord y, Scalar error, Scalar abundance, std::vector< Scalar > attributes, std::vector< Scalar > env)
Definition: Occurrence.hh:112
double Coord
Type of map coordinates.
Definition: om_defs.hh:38
ReferenceCountedPointer< T > & operator=(const ReferenceCountedPointer &)
Definition: refcount.hh:213
OccurrenceImpl(const std::string &id, Coord x, Coord y, Scalar abundance, int num_attributes=0, Scalar *attributes=0)
Definition: Occurrence.hh:163
Scalar error() const
Definition: Occurrence.hh:197
OccurrenceImpl(const OccurrenceImpl &rhs)
Definition: Occurrence.hh:180
Definition: Sample.hh:25
static char error[256]
Definition: FileParser.cpp:42