Deformation Monitoring Package (DMPACK)

DMPACK

The Deformation Monitoring Package (DMPACK) is a free and open source software package for sensor control and automated 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 deformation monitoring, such as:

  • command-line argument parsing
  • configuration file evaluation
  • sensor control (RS-232/422/485, 1-Wire, named pipe, sub-process)
  • regular expression matching
  • 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
  • concurrent data synchronisation between client and server
  • distributed logging
  • status messages (heartbeats)
  • server-side web applications
  • time series plotting
  • MQTT connectivity
  • Lua scripting
  • HTML5 reports
  • Atom XML web feeds
  • e-mail

DMPACK is a scientific monitoring system developed for automated control measurements of buildings, infrastructure, terrain, geodetic nets, and other objects. 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 like:

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

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 clients only, without data distribution. The client-side message passing 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

Download

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

Please see the User’s Guide for build instructions.

Requirements

At the current development stage, the following operating systems and 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.

Documentation

The online documentation is available in HTML format:

Additional man pages are included in the source code repository.


Dependencies

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 dmgraph
Graph plotting of time series from database to terminal