Skip to main content

A quality control toolbox

Project description

Titanlib

C/C++ CI

Titanlib is a library of automatic quality control routines for weather observations. It emphases spatial checks and is suitable for use with dense observation networks, such as citizen weather observations. It is written in C++ and has bindings for python and R. The library consists of a set of functions that perform tests on data.

Titanlib is currently under development.

Example of titanlib

Features

  • A wide variety of spatial checks, such as spatial consistency test, buddy check, isolation check.
  • Plausability tests such as range check and climatology check.
  • A graphical interface for tuning the parameters of the checks
  • Fast C++ implementation for efficient processing of large observation datasets

Documentation

For more information on how to use Titanlib, check out the wiki at https://github.com/metno/titanlib/wiki.

Installation

Here are installation instructions for Ubuntu Bionic. First, install the pre-requisites:

sudo apt install swig doxygen r-base-core libboost-dev libproj-dev cmake libgsl-dev python3-setuptools python3-nose python3-numpy python3-scipy

Next, configure the installation cmake. Create a build directory and perform the installation there:

mkdir build
cd build
cmake ../

To compile the library and bindings, run

make all
sudo make install

To install the bindings, run

make install-python-user
make build-r

This will install the library in /usr/local/lib/libtitanlib.so, the python bindings in ~/local/lib/python3.6/site-packages/titanlib.py. To install the python bindings system-wide, use sudo make install-python. Currently, the R package is not installed centrally, but instead is placed in SWIG/R/titanlib.R.

Python example

import titanlib
status, flags = titanlib.sct([60,61],[10,11],[0,100],[-4,2],100,300,100,100,100,100,[2,2],[2,2],[2,2])
print(flags)

R example

Run the following code in R from the build directory, or if you want to run from any other directory, just put in the proper paths for rtitanlib and titanlib.R

dyn.load(paste("SWIG/R/titanlib", .Platform$dynlib.ext, sep=""))
source("SWIG/R/titanlib.R")
cacheMetaData(1)

sct(c(60,61), c(10,11), c(0,100), c(-4,2),100,300,100,100,100,100,c(2,2),c(2,2),c(2,2))

Copyright and license

Copyright © 2019-2020 Norwegian Meteorological Institute. Titanlib is licensed under The GNU Lesser General Public License (LGPL). See LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

titanlib-0.1.0a8.tar.gz (100.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page