BMElib
contact:Marc Serre


BME maps of annual PM10 (ppm) geometric mean in California

BMElib description
BMElib is a powerful MATLAB numerical toolbox of Modern Spatiotemporal Geostatistics implementing the 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 Bayesian Maximum Entropy (BME) method of Modern Spatiotemporal Geostatistics. BME is a rigorous mathematical framework that allows to process a wide variety of knowledge bases, and leads to the best unbiased non linear estimator.  Hard 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)

Download

BMElib is a publicly available software for BMElib users. To get on the BMElib users list, send an email to marc_serre@unc.edu 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:

 

BMELIB2.0b.zip (restricted access) is a zipped file containing the source code for BMElib version 2.0b (Windows users).  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.).

 

This configuration of BMElib works with MATLAB versions 6.1 to 7.2. If you have MATLAB version 7.3 or later, then you need to download executablesForMvnlibMATLAB7.3.zip , unzip it’s content of five *.mexw32 files and place them in the mvnlib subdirectory to replace five files with the same names.

 

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.

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

BMELIB.zip (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)

BMELIB1.0c.zip (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 BMELIB1.0c.zip instead of BMELIB.zip.