Download Latest Version amalthea.tar.gz (14.3 kB)
Email in envelope

Get an email when there's a new version of Amalthea

Home
Name Modified Size InfoDownloads / Week
README 2011-11-10 4.2 kB
amalthea.tar.gz 2010-11-12 14.3 kB
Totals: 2 Items   18.5 kB 0
PROJECT: Amalthea (https://sourceforge.net/projects/amalthea-rte)
AUTHOR: Damián Cirelli <cirelli@ualberta.ca>
LAST UPDATE: 2011-11-09


SYNOPSIS:
Amalthea is, in its minimal form, a main script written in Python that 
takes readings from laboratory balances every 10 seconds for roughly 4 
minutes and performs a linear regression of the collected data. It is 
intended to measure plant transpiration gravimetrically.


HISTORY:
The name 'amalthea' was unavailable to use in SF.net. Therefore,
although the program name is Amalthea, the project page is 
'amalthea-rte'. "RTE" stands for "Real Time Transpiration", 
transpiration being usually represented by the letter "E" in the plant 
sciences. In many cases, and for reasons beyond the scope of this 
README, gravimetric measurements of transpiration are preferred to 
steady-state porometers, sap-flow methods, etc. but no universal tool 
has so far been available to aid in a systematic balance-computer 
interfacing oriented to the measurement of E. Amalthea takes care of 
this, and although it is perfectly usable it needs polishing and 
improvement of its "user interface".


REQUIREMENTS:
- Any modest computer with Linux
- Python 2.4 or newer
- pyserial (http://pyserial.sourceforge.net/)
- At least 1 balance capable of bi-directional communication over RS-232
- One available RS-232 serial port per balance

The simple approach for using multiple simultaneous balances is to have 
an available USB port on the computer and attach the required number of 
USB-to-RS232 conversion cables through a USB hub, taking care to 
identify each cable with the appropriate file descriptor (e.g. 
/dev/ttyUSB0)


INSTALLATION / USAGE:
For standalone running, no instalation is necessary. Simply run amalthea.py
with a port and an area argument. e.g.:

python amalthea.py -a 0.1 /dev/ttyUSB0 1>>data/mydata.csv 2>>data/mydata.raw

This runs amalthea reading a balance on port "/dev/ttyUSB0" which is 
weighing a plant with a 0.1 m^2 leaf area. It outputs the raw readings 
to stderr so in the command above, this is redirected to the file 
mydata.raw in the data directory. Similarly, the final calculations are 
printed to stdout, so we redirect that to data/mydata.csv since it 
produces a line in CSV format. After this, the proram exits. The idea is 
to use `cron' as a scheduler for periodically calling the program. 
Several different features are planned to provide different "modes": i) 
interval run; ii) continuous run; and iii) array mode, to begin with.

If you receive a 'Permission denied' error, you likely do not have r/w
permissions. Issuing 'chmod 666 /dev/YOURPORT' as root should fix it.

You may run 'amalthea --help' for a list of options.

To use amalthea for regular automatic logging, you may run
'amalthea-setup.sh' which will create symlinks to the amalthea.py and
amalthea-config.py files for easier use, plus it will install the required
lines in your crontab. After that, use 'amalthea-config' to control the
program. Run 'amalthea-config --help' for a list of options.

DESCRIPTION:
Amalthea runs in linear fashion to keep things simple and depends on some form
of 'cron' for recurring execution. Once running, it will poll the connected
balance(s) for a weight value and at the end of the period (default is 220
seconds) it will use the data to build a linear regression and report the
average weight and rate of weight change for the *average* of the period based
on the UNIX-epoch timestamp in seconds. If you have many balances and many
serial-to-USB cables, amalthea-config will add one line per configured balance
to the crontab file and thus they will run almost simultaneously, allowing you
to measure transpiration on a number of plants at the same time.

This is an open source project which I have successfully implemented in my own
plant-water use research but I realise that as a software project it is in its
infancy. If you'd like to help out, by all means get involved. If you have a
balance that you  would like to use, it will likely NOT be in the database
YET. If that is the case e-mail me with the model number and I will add it.
That in itself is a contribution on your part, so thank you!


Source: README, updated 2011-11-10