Contact: Patrick Bogaert and Marc Serre


BMElib description

BMElib is a powerful MATLAB numerical toolbox of Modern Spatiotemporal Geostatistics implementing the Bayesian Maximum Entropy (BME) theory. BMElib provides a one stop library for


1. both spatial and space/time Geostatistics, dealing with

2. both continuous and categorical variables, implementing

3. the best unbiased non linear estimator (BME), which

4. rigorously processes hard and soft data, but also leads to

5. the (simple, ordinary, universal) kriging methods as linear limiting cases.


Space/Time Geostatistics:

Unlike other Geostatistical package, BMElib has been implemented from the start for space/time Geostatistics. Hence BMElib implements the concepts of space/time metrics, space/time neighborhood search, space/time covariance analysis, and space/time estimation.  As a result BMElib provides better Geostatistical functions for space/time analysis than classical Geostatistics software (where time is included as merely another spatial dimension), while providing excellent functions in the purely spatial case.


Non-Linear and Non Gaussian Geostatistics:

BMElib implements the powerful BME method of Modern Spatiotemporal Geostatistics. BME is a rigorous mathematical framework that allows processing a wide variety of knowledge bases, and leads to the best unbiased non linear estimatorHard data, soft data, non-Gaussian distributions, etc are automatically integrated in BMElib.


Classical kriging :

When restricting the estimation to linear estimation of continuous variables, BME becomes the best unbiased linear estimators of classical Geostatistics.  Hence simple kriging, ordinary kriging, universal kriging, etc. are all part of the BMElib toolbox.


Software description
(click here)



BMElib is a publicly available software for BMElib users. To get on the BMElib users list, send an email to (European contact) or (USA contact) with your contact information (name, position, work address) stating your interest to be added to the list.  Once added to the list, you will receive an email with a user name and password to download the latest version of BMElib. The latest version of BMElib is the following:

Windows users:


MATLAB versions 6.1 to 7.3: Download (restricted access), which is a zipped file containing the source code for BMElib version 2.0b.  Just download this file and unzip to a directory anywhere on your hard drive (e.g. C:).  This will create your BMElib directory (e.g. C:\BMElib2.0b) with several subdirectories (bmecatlib, …, graphlib, …, mvnlib, etc.).


MATLAB version 7.4 to version 7.7: Do the step described above to download and install, then download , unzip its content of five *.mexw32 files and place them in the mvnlib subdirectory. Then delete the corresponding five *.dll files with the same names.


MATLAB version 7.8 (release 2009a) and later: Do the same as above using the five *.mexw32 files and five *.mexw64 files from . Note that this provides both the 32-bit and 64-bit files, and MATLAB will choose the correct one depending on whether you are using window 7 with a 32-bit or 64-bit operating system.


Linux users:

BMELIB2.0bLinux.tar.gz (restricted access) is a tarred + zipped file containing the source code and executables for BMElib version 2.0b (for Intel Linux users; compiled with GCC v.3.2.2).


Mac users:

BMELIB2.0bMacOSX.tar.gz (restricted access) is a tarred + zipped file containing the source code and executables for BMElib version 2.0b (for Macintosh users; compiled with GCC v.3.4.3).


Getting started with BMELIB version 2.0b


Once you have installed BMElib version 2.0b, start MATLAB, move your working directory to the BMElib directory and type startup.m to add the BMElib directory to MATLAB’s search path.  Alternatively you can create a shortcut in Windows that starts MATLAB directly in the BMElib directory (in which case you do not need to type startup.m).


To check that the startup command executed properly, move to a new working directory (anywhere on your hard drive), and type “help” at the MATLAB command prompt. MATLAB should list all the BMElib directories (including iolib, graphlib, …, tutorlib, exlib, testslib, etc.). Then type “help testslib”.  This should list all the command in the testslib directory (including IOLIBtest, …, MVNLIBtest, etc.)


To test that BMElib is properly functioning, use the test functions in the testslib directory. In particular use “MVNLIBtest“ to test that the five FORTRAN compiled functions of mvnlib are executing properly. Consult the trouble shooting tips if you get the error message “Error using regression  Too many input arguments”.


To learn how to use the BMElib functions, use the tutorial functions in the tutorlib directory. Type “help tutorlib” at the command prompt to see a list of the tutorials, and run the tutorials in the order they are listed, i.e. starting with IOLIBtutorial, then GRAPHLIBtutorial, etc.


Finally, the book below contains a detailed explanation of BMElib functions, as well as examples that can be re-created using the functions in the exlib tutorial

Christakos, G., P. Bogaert, and M.L. Serre, Temporal GIS: Advanced Functions for Field-Based Applications, Springer-Verlag, New York, N.Y., 217 p., CD ROM included, 2002


Description of earlier versions of BMELIB


BMELIB 1.0: This is the version in the Temporal GIS  book, it works with MATLAB 5.3


BMELIB 1.0b: This version fixes some minor bugs of version 1.0, and it works with MATLAB 5.3 to 6.1


BMELIB 1.0c: This version fixes some minor bugs of previous versions, and it works with MATLAB 5.3 to 6.1


BMELIB 2.0b: This version provides a substantial upgrade for many of the functions of version 1.0c.  In addition it introduces beta versions for an extension for s/t mapping, an extension for projection, as well as the bmecatlib directory for categorical data.  This version works with MATLAB versions 6.1 or later.


Obtaining earlier versions of BMElib:


Installation notes


installingBMELIBnet.html provides instructions on how to download and install BMElib version 1.0b.


Older files and versions


executablesForMvnlib/ - directory with executables for the mvnlib directory (restricted access) is a zipped file containing the source code for BMElib version 1.0b (Windows users)


BMELIB.tar.gz (restricted access) is a tarred/zipped file containing the source code for BMElib version 1.0b (linux/unix users) (restricted access) is a zipped file containing the source code for BMElib version 1.0c (Windows users).  Use the same installation instructions as for version 1.0b, but using instead of


Consulting services in the application of BME in space time statistics:

Please visit

·         to find out about the increasing spread and popularity of spatiotemporal analysis as means to research many natural attributes and processes

·         to get informed about professional consulting services that are available for space-time geostatistics / statistics / analytical GIS tools

·         to explore more examples where Knowledge Synthesis / BME is applied