Deformation Monitoring Package (DMPACK)


The Deformation Monitoring Package (DMPACK) is a free and open source IoT middleware for wireless sensor networks, automated sensor control, and real-time time series processing in geodesy and geotechnics. The package consists of a library libdmpack and additional programs based on it which serve as a reference implementation of solutions to various problems in modern deformation monitoring, among them:

  • sensor control (RS-232/422/485, 1-Wire, named pipe, sub-process),
  • SQLite database access,
  • message passing via POSIX message queues,
  • inter-process communication via POSIX semaphores,
  • data serialisation (ASCII, CSV, JSON, JSON Lines, HDF5, Fortran 95 Namelist),
  • HTTP-RPC API for remote procedure calls,
  • data synchronisation between client and server,
  • distributed logging,
  • status messages (heartbeats),
  • server-side web applications,
  • time series plotting,
  • MQTT connectivity,
  • GeoCOM API,
  • Lua scripting,
  • HTML5 reports,
  • Atom XML web feeds.
  • e-mail,
  • regular expression matching,
  • command-line argument parsing,
  • configuration file evaluation.

DMPACK is a scientific monitoring and early warning system developed for risk mitigations through autonomous control measurements of buildings, infrastructure, terrain, geodetic nets, and other objects, like:

  • bridges, tunnels, dams;
  • landslides, cliffs, glaciers;
  • construction sites, mining areas;
  • churches, monasteries, and other heritage buildings.

The software runs on sensor nodes, usually industrial embedded systems or single-board computers, and obtains observation data from arbitrary sensors, like robotic total stations, digital levels, inclinometers, weather stations, or GNSS receivers. The raw sensor data is then processed, stored, and optionally transmitted to a server. The software package may be used to monitor objects.

The package is suitable for a wide range of scenarios, such as:

  • bridge monitoring,
  • slope monitoring,
  • land and rock slide prediction,
  • structural health monitoring,
  • environmental monitoring,
  • geo-hazard assessment.

DMPACK is built around the relational SQLite database for time series and log storage on client and server. The server component is optional. It is possible to run DMPACK on sensor clients only, without data distribution. The client-side inter-process communication (IPC) is based on POSIX message queues and POSIX semaphores.

The software is released under ISC licence.

DMPACK client–server architecture
Schematic view of the DMPACK client–server architecture


DMPACK is written in Fortran 2018 and has to be compiled from source:

Please see the User’s Guide for build instructions.


At the current development stage, the following operating systems and 64-bit platforms are supported:

  • GNU/Linux (x86-64, AArch64)
  • FreeBSD (x86-64, AArch64)

The software package is compatible to 64-bit single-board computers only, such as Raspberry Pi 3/4/5.


The online documentation is available in HTML format:

Additional man pages are included in the source code repository.


The DMPACK library and programs are based on the following open-source projects:

Screen Shots

Dashboard of dmweb
Dashboard of the DMPACK web interface
Plotting through dmweb
Plotting time series through the web interface
Plotting through dmplot
Graph plotting of time series from database to terminal
Generated report
Monitoring report generated by DMPACK