/dasprodml

A reader and a writer for the prodml standard

Primary LanguagePython

dasprodml

Build Status

A reader and a writer for the prodml standard.

Currently in alpha stage of development.

This library is meant to be an implementation for the prodml standard for distributed accoustic data (DAS). The standard is defined by energistics and may be downloaded here : http://www.energistics.org/production/prodml-standards/current-standards

The library is mostly a wrapper around 2 dependency libraries generateDS and python-opc. Both libraries may be updated or changed since neither have so much activity any longer. In short, this library is subject to changes - hence its alpha phase label. Furthermore the standard itself is still not fully finished and is also subject to change.

This github library contains what is necessary to implement the standard in python 3.5+, including the standard itself. Domainclasses are described in xsd files which are transformed to python3 objects using generateDS. These autogenerated objects makes it possible to write the appropriate XML and package it in a modified OPC container (named EPC by energistics) using a modified version of python-opc. The hdf files are read and written using h5py. Currently the unit tests are the only documentation for how this is done, but more thorough documentation will come.

Installation

First, clone the repository:

git clone git@github.com:bsdis/dasprodml.git

And clone the python-opt dependecy:

git@github.com:nasedil/python-opc.git

Then, build the python-opc dependency:

cd python-opc && python setup.py develop && cd ..

And build the prodml library:

cd dasprodml
python setup.py develop

Usage

A small example you can find in the tests/test_write.py. Metadata is created using the classes from the following imports:

import dasprodml.DasAcquisition as da
import dasprodml.FiberOpticalPath as fp
import dasprodml.DasAcquisitionSub
import dasprodml.FiberOpticalPathSub

For example, da.DasAcquisition is a class for the top-level DasAcquisition object that will be saved with its children into an EPC xml.