63 "Uses the minimum and maximum observed value for each\
64 environmental variable to define bioclimatic envelopes.\
65 Probability of occurrence for a point is determined by\
66 the number of environmental variables within which the\
67 environmental values at the point fall into the min/max\
70 "Implements a lax Bioclimatic Envelope Algorithm. For\
71 each given environmental variable the algorithm finds\
72 the minimum and maximum at all occurrence sites. During\
73 model projection, the probability of occurrences is\
75 p = layers within min-max threshold / number of layers\n\n\
76 Thus choosing a threshold of p=1 gives you the same model\
77 output as the original Bioclim model taking both the\
78 Suitable & Marginal classes as predicted presences.\
79 The Envelope Score algorithm is equivalent to the\
80 inclusive 'OR' implementation of Bioclim described\
81 in Piņeiro et al (2007).",
86 "Nix, H.A. (1986) A biogeographic analysis of Australian elapid\
87 snakes. In: Atlas of Elapid Snakes of Australia. (Ed.) R. Longmore,\
88 pp. 4-15. Australian Flora and Fauna Series Number 7. Australian\
89 Government Publishing Service: Canberra.\n\n\
90 Piņeiro, R., Aguilar, J. F., Munt, D. D. & Feliner, G. N. (2007)\
91 Ecology matters: Atlantic-Mediterranean disjunction in the sand-dune\
92 shrub Armeria pungens (Plumbaginaceae).\
93 Molecular Ecology. 16, 2155-2171.",
95 "Tim Sutton and Chris Yesson",
96 "tim [at] linfiniti.com",
154 int dim =
_samp->numIndependent();
158 int npnt =
_samp->numPresence();
164 Log::instance()->
info(
"Using %d points to find the bioclimatic envelope.\n", npnt );
199 unsigned int myMatchCount=0;
200 unsigned int myLayerCount = x.
size();
202 for(
unsigned int i=0; i<x.
size(); i++) {
208 if (myMatchCount==0) {
211 Scalar myProbability = myMatchCount /
static_cast<double>(myLayerCount) ;
213 return myProbability;
240 Sample const & sample = (*oc)->environment();
248 while ( oc != end ) {
250 Sample const& sample = (*oc)->environment();
271 config->addSubsection( model_config );
273 model_config->addNameValue(
"Minimum",
_minimum );
274 model_config->addNameValue(
"Maximum",
_maximum );
288 _minimum = model_config->getAttributeAsSample(
"Minimum" );
289 _maximum = model_config->getAttributeAsSample(
"Maximum" );
double Scalar
Type of map values.
static Log * instance()
Returns the instance pointer, creating the object on the first call.
virtual void _setConfiguration(const ConstConfigurationPtr &)
void error(const char *format,...)
'Error' level.
Scalar getValue(const Sample &x) const
Sample _maximum
Mininum value for each variable.
OM_ALG_DLL_EXPORT AlgorithmImpl * algorithmFactory()
virtual void _getConfiguration(ConfigurationPtr &) const
void computeStats(const OccurrencesPtr &)
void info(const char *format,...)
'Info' level.
std::vector< OccurrencePtr >::const_iterator const_iterator
int getConvergence(Scalar *const val) const
OM_ALG_DLL_EXPORT AlgMetadata const * algorithmMetadata()
static AlgMetadata metadata
Sample _minimum
is true if the algorithm is finished.