openModeller framework change log
Release 1.6.0 (?)
SVN revision: ?
- Fixed two bugs in the consensus algorithm: it was not calculating LPT for each individual algorithm and not normalizing the environmental variables for algorithms that required normalization. With these two bugs, consensus only worked when individual models were generated outside it, assembled and provided as XML, otherwise it only worked when the real LPT coincided with the default value (1) for all individual algorithms and when none of them required normalization.
Release 1.5.0 (2015-01-07)
SVN revision: 6034
- New algorithm to generate virtual niches.
- Fixed bug in the web service when checking the origin of remote rasters.
- Included missing MSVC DLLs in the Windows installer.
- Increased string size in the Windows installer to avoid erasing the PATH environmental variable.
- New version of the OMWS scheduler compatible with HTCondor DagMan.
- Updated documentation and included metadata for the Niche Mosaic algorithm.
- New option to install Python module on Windows.
Release 1.4.0 (2014-03-31)
SVN revision: 5955
- New CONSENSUS algorithm that can be used to generate models with different algorithms by converting each individual model into a binary model given a threshold and then "merging" them into a final combined model according to a specified level of agreement.
- Upgraded gSOAP version being used by OMWS to 2.8.15.
- Included library API versioning, starting with 0 from this release.
- Moved some of the compiler definitions from CMake to internal #defines, so that client programs can include openModeller headers without worrying about adding specific definitions if they want to compile directly without using CMake.
- New command-line tool om_evaluate to return raw model values given a set of points and an environmental scenario.
- Fixed segfault when needNormalization was called on a deserialized SVM algorithm.
- Modified om_pseudo command-line tool to also accept XML input (in this case also producing XML output), optionally storing it into a file. When a model is specified as a parameter, presences are generated inside the model, while absences are generated outside.
- New implementation of the SOAP client/server programs compatible with OMWS 2.0.
- New driver to fetch remote rasters available through http, https or ftp. Layers can now be identified by URLs.
- New class to read openModeller settings from a configuration file (key = value). Possible configurations include: CACHE_DIRECTORY, ALGS_DIRECTORY and DATA_DIRECTORY.
- Changed initialization priority order for paths: 1) programatic setting, 2) configuration file, 3) environment variable, 4) default value through compiler constant.
- Renamed compiler constant PKGDATAPATH and environment variable OM_DATA_PATH to OM_DATA_DIR.
- Renamed compiler constant PLUGINPATH and environment variable OM_ALG_PATH to OM_ALGS_DIR.
- New optional parameter --config-file in most command line tools to indicate a configuration file for openModeller: om_model, om_test, om_project, om_points, om_pseudo, om_evaluate, om_sampler and om_algorithm. om_console also accepts an optional third argument to specify the configuration file location.
- New command-line tool om_layer to either check if a specified layer id can be read from openModeller or to recursively scan a specified directory looking for openModeller-compatible layers.
- New configuration FETCH_WCS (true or false) allowing WCS rasters to be fetched and stored as local Erdas Imagine copies before being used.
Release 1.3.0 (2012-07-23)
SVN revision: 5592
- New version of OM-MAXENT compatible with Maxent 3.3.3e.
- Changed the deserialization code to accept XML with namespace prefixes (they are now ignored if present).
- Fixed bug in ANN algorithm which was limiting the number of input points to 10k (seg faulting otherwise).
- New documentation about the web service interface (OMWS), aka SOAP interface.
- New documentation about oM Server (server-side implementation of OMWS).
- Fixed bug in oM Server getProgress operation which was sometimes returning 100% when the job was still unfinished.
- New oM Server configuration/script allowing automatic synchronization of layers.
- Several improvements in the OMWS Perl command-line client.
- Several adjustments in the SWIG Python interface, exposing more methods and objects.
- Fixed memory leak in the Environmental Distance algorithm when the Mahalanobis metric was used after model deserialization.
- New WCS proxy raster driver that allows WCS rasters to be identified through strings in the format: wcs>wcs_service_url>coverage_id
Release 1.2.0 (2011-07-21)
SVN revision: 5330
- Changed the ENFA algorithm to force marginality to be the first factor. Changed broken stick distribution to work on specialisation factors only. Add new parameter to enable log display of variable loadings for retained factors.
- om_console now accepts a second parameter (after the request file) to specify the log level.
- Changed the ENFA algorithm allowing absence data to be treated as background points, and log transforming the geomean calculation to avoid the occasional float overflow with large numbers of presences. Fixed a bug in the RetainVariation parameter (range changed from 50-100 to 0.5-1.0). Also fixed a deserialization error.
- Compilation now requires CMake 2.6.4.
- New algorithm Random Forests.
- Web service interface now accepts a new optional parameter specifying the prediction threshold to be used when calculating area statistics during projection.
- Renamed envelope element in the getProjectionMetadata response of the web service API to distinguish it from the subelement.
- Added control to a maximum number of concurrent jobs on the modelling server.
- Environmental values can now be loaded from the Sampler XML when provided.
- Web service interface now accepts optional parameters: IgnoreAbsences for the confusion matrix and UseAbsencesAsBackground for the ROC curve calculations.
- Added support to gzip compression in the Web service interface.
- Changed the Environmental Distance algorithm to return chi-square distribution probabilities when the metric is Mahalanobis and the maximum distance is 1.
- Changed the Maxent algorithm allowing absence data to be treated as background points. Also fixed memory deallocation issues.
Release 1.1.0 (2010-02-05)
SVN revision: 5114
- Bugfix: Interquartile and envelope size adjustments were using wrong reference values for salinity and temperature in the Aquamaps algorithm.
- Bugfix: All GARP algorithms were crashing when the abundance value associated with one of the occurrence points had more than two digits in the integer part.
- Increased the default number of neurons in the hidden layer of the ANN algorithm.
- New argument "s" in om_niche allowing model outputs to be scaled.
- Re-implemented and re-enabled Maximum entropy algorithm based on the well-known Maxent.
- Changed environmental distance algorithm forcing the Mahalanobis distance to use an identity matrix as the covariance matrix when there's only one input point.
- Fixed small logical error in the CSM algorithm that could affect models with a large number of layers.
- New algorithm (Niche Mosaic) implemented by Dr. Missae Yamamoto.
- New algorithm (ENFA) kindly implemented by Dr. Chris Yesson.
Release 1.0 (2009-05-22)
SVN revision: 5035
- Changed Artificial Neural Networks algorithm to avoid exceeding a maximum number of iterations when training by minimum error (parameter Epoch is used to specify the maximum number of iterations).
- Added new method in the ConfusionMatrix class to use the lowest probability among the training presences as the threshold.
- Changed the modelling protocol to allow createModel and testModel requests to specify what statistics should be calculated.
- Removed model statistics parameters from om_model since they can be specified as part of the XML request.
- All command line programs now return the same openModeller version number.
- Changed om_niche parameters (now using getopts) and created a man page for it.
- Implemented custom log file in the modelling server.
- ROC curve was not including (0,0) when background points were being generated, therefore producing lower AUC values.
- Added more precision to partial AUC through interpolation.
- Disabled the experimental maximum entropy algorithm.
Release 0.7 (2009-01-14)
SVN revision: 4761
- New Algorithm using Artificial Neural Networks.
- Changed AUC calculation when no absence points are provided (instead of using 1-specificity after generating pseudo-absences, it now uses the proportion of points predicted present for a large number of random background points).
- Included method to calculate partial area ratio in ROC class.
- Added parameters --calc-matrix, --calc-roc, --num-background and --max-omission to om_test.
- Changed confusion matrix serialization to store all raw values.
- Included new map format to generate ARC/Info ASCII grid files (byte or floating point fomats).
- Fixed bug in Maximum Entropy algorithm (environment was being re-normalized when pseudo-absences were generated internally).
- Added support to handle categorical values in the Maximum Entropy algorithm.
- Fixed bug in ROC curve calculation: when the corresponding algorithm required normalization and the sampler passed as a parameter was unnormalized, algorithm prediction values were being calculated based on unnormalized samples.
- Added support to use "Spatially unique" and Environmentally unique" keywords in the request file (console interface).
Release 0.6.1 (2008-10-13)
SVN revision: 4580
- Enabled integration with Condor in the modelling server.
- Added new method in the modelling service to perform external tests.
- Renamed om_testmodel to om_test. The new version is using getopts and accepts XML requests. A man page was also created.
- Renamed om_create to om_model.
- Renamed om_sampledump to om_sampler, which now accepts txt or xml input files.
- Removed om_dump (its functionality was incorporated by the new om_sampler).
- Added new parameter in om_points to split points into test/training with a given proportion.
- Added new parameters in the Maximum Entropy algorithm to treat layer values in a different way (feature types).
- Changed om_niche to receive a serialized model as a parameter.
Release 0.6.0 (2008-07-07)
SVN revision: 4453
- New driver to read point data from TAPIR/DarwinCore providers.
- New driver to read point data from GBIF.
- New driver to read point data from serialized openModeller objects (XML).
- New generic API for pre-analysis.
- New console application om_algorithm replaces om_metadump.
- New Maximum Entropy algorithm.
- Changed input range of the GARP Best Subsets TrainingProportion parameter from 0-1 to 0-100 (percentage) and included explanation about differences between old and new GARP implementations in the algorithm description.
- Re-enabled max threads parameter in GARP Best Subsets.
- Removed automake files (now completely replaced by cmake).
- Renamed compiled constant that can be used to indicate the location of algorithms from OM_LIB_PATH to OM_ALG_PATH.
Release 0.5.3 (2008-03-26)
SVN revision: 4209
- Fixed bug when GDAL failed to read a raster row (in which case the row used to have zero values). Now the row is filled with nodata values.
- XML request for model creation now supports additional options to filter occurrences (using spatiallyUnique or environmentallyUnique sampler functions).
- Changed nodata value of the default raster type (ByteHFA) to 101.
- Masks must now use nodata to indicate masked areas (zeros will not work anymore).
- om_testmodel now generates pseudo-absence points when there are no absences to be tested.
- Display confusion matrix cell values in om_console and om_testmodel.
- Renamed getLayerFilename to getLayerPath and getMaskFilename to getMaskPath in EnvironmentPtr class.
- Refactored om_pseudo, om_create and om_project to use the getopts command line library.
- Created man pages for om_pseudo, om_create and om_project.
- New parameter in om_pseudo to speficy the proportion of absence points to be generated.
- New algorithm AquaMaps (for marine organisms).
- Removed algorithms minimum distance and distance to average since EnvironmentalDistance provides the same functionality.
- "type" property of AlgParamMetadata changed from char * to a new enumeration called AlgParamDatatype. Values can be Integer, Real and String.
- Fixed bug in the environmental distance algorithm: probabilities were negative for points whose distance to the nearest point was beyond the maximum allowed distance.
- New classes to perform jackknife and chi-square in the environmental layers.
- Updated TerraLib drivers for compatibility with TerraLib version 3.2.0.
Release 0.5.2 (2007-10-24)
SVN revision: 3806
- Fixed compilation issues under Windows.
- Included new command line program to generate pseudo occurrences.
- Minor improvements in console tools (absences are now displayed in om_viewer and om_niche).
- Code clean up.
Release 0.5.1 (2007-08-30)
SVN revision: 3661
- Fixed MSVC compilation problems.
- Fixed bug in deserialization of the new GARP algorithm (OM GARP).
- Fixed crash in one-class SVM when input points contained absences.
- Fixed bug in deserialization of environmental distance algorithm with Mahalanobis distance.
- Implemented serialization/deserialization for the new GARP Best Subsets (OM GARP).
- New algorithm "Envelope Score".
- Fixed bug in the pseudo-absence generation of the SVM algorithm when no absences were passed as a parameter.
Release 0.5 (2007-08-15)
SVN revision: 3527
- New algorithm "Support Vector Machines" (C-SVC, nu-SVC and one-class SVM).
- Added support for multiple normalization techniques (two implementations are available: ScaleNormalizer and MeanVarianceNormalizer).
- New method to cancel jobs (model creation or model projection).
- Sample serialization is now based on the original (unnormalized) environment values.
- New infrastructure for unit tests using cxxtest.
Release 0.4.2 (2007-05-08)
- Included ROC curve as part of model statistics.
- Added metric Chebyshev in the Environmental Distance algorithm.
- Log object is now a singleton.
- Minor bugfixes.
Release 0.4.1 (2007-03-12)
- New algorithm "Environmental Distance".
- Changed OccurrencesReader to handle presence and absence points separately.
- Changed occurrences file format (now TAB-delimited with each point having a unique identifier).
- Initial support to cmake (should work on GNU/Linux and Mac OSX).
Release 0.4 (2006-12-04)
- Integration with TerraLib.
- Removed the algorithm Bioclim distance.
- Changed the default output map file type to ERDAS Imagine ".img".
- Refactored SOAP interface which now covers all modelling functionality.
- Re-enabled the new version of GARP (v3).
- Several fixes in the SWIG-Python binding.
- Fixed installation issue with the RPM packages.
Release 0.3.4 (2005-12-14)
- Fixed bug in model projector that could cause localized distortions in the distribution map (near the grid cell scale).
- New version of the CSM algorithm with several adjustments in code (Broken Stick cutoff method).
- New command line tools om_sampledump, om_create, om_project.
Release 0.3.3 (2005-09-01)
- Implemented serialization mechanism for the Best Subsets Procedure.
- Moved the createModel logic and ModelCommand object into Algorithm.
- Fixed issues related to the Mac OS X build (for both 10.3 and 10.4).
Release 0.3.2 (2005-08-11)
- Fixed bug that was making GARP produce null models (100% omission) most part of the time.
Release 0.3.1 (2005-07-18)
- Major restructuring of directories, file locations and file names.
Release 0.3 (planned to 2005-05-25, but never happened)
- Reimplemented serialization/deserialization mechanism using generic configuration objects.
- All available algorithms are serializable.
- om_console accepts new keywords "Output model" (file name to store the serialized model) and "Input model" to load a serialized model (instead of using "WKT format", "Species file", "Species" and "Map" to generate a model).
- New framework for test cases is available (depends on the SWIG/Python interface).
- Moved normalization from the individual raster files to the "environment" object.
- Implemented Model and Algorithm separation (new interface called Model abstracts the portion of Algorithm used for evaluations).
- Implemented reference-counting smart pointers for all major objects.
- Fixed various problems with memory leaks and uninitialized values.
- Removed CSM Kaiser-Gutman from build.
- Removed SWIG/Java binding from build.
- Projected maps now have the mask extent and cell size of a specified "map format".
Release 0.2.1 (2005-02-19)
- Added DesktopGarp version of GARP (as GARP 2.1).
- Removed GARP 3.x from build due to instability under high dimensional datasets.
- Best Subset Procedure was substituted by a new generic version that can be extended to encapsulate any GARP version.
- Fixed bug in Bioclim distance algorithm (probabilities were greater than zero outside the envelop depending on the cutoff parameter).
- Fixed bug in sampler class: when absence data was available, it was splitting train samplers once again and test samplers were coming out empty.
Release 0.2 (2005-01-25)
- Compatibility with Windows.
- Compatibility with Mac OS.
- Fixed issues with GDAL 1.2.5.
- GARP algorithm, including best subsets procedure.
- CSM splitted into Kaiser-Gutman and Broken Stick cutoff methods.
- Prototype SOAP interface.
- SWIG interfaces for python and java.
- Bioclim algorithm refactored and splitted in two implementations.
- Prototype model serialization for most algorithms.
- Reprojection capabilities.
- New tool to visualize models in environmental space (only the first 2 variables).
Release 0.1.1 (2004-04-29)
- Bugfix release: corrected problem of reading only the first algorithm's parameter.
Release 0.1 (2004-04-27)
- A simple command-line (console) interface.
- A driver to the GDAL library to read and write multiple map file formats.
- Capability to deal with multiple coordinate systems using the proj4 library.
- Two simple distance-based algorithms.
- Bioclim algorithm.
- Climate Space Model algorithm using Kaiser-Gutman cutoff.