bamboo is an application that systematizes realtime data analysis. bamboo
provides an interface for merging, aggregating and adding algebraic
calculations to dynamic datasets.
Clients can interact with bamboo through a REST web interface, a Python
library, or a JavaScript library. For more languages
request a libary in
the language you prefer.
bamboo supports a simple querying language to build calculations
(e.g. student teacher ratio) and aggregations (e.g. average number of students
per district) from datasets. These are updated as new data is received.
bamboo uses pandas for data analysis,
pyparsing to read formulas, and mongodb to serialize data.
bamboo is open source software
released under the 3-clause BSD license, which is also known as the "Modified
BSD License".
Dependencies
- python (tested on version 2.7)
- mongodb
for numpy, pandas, and scipy:
On Arch Linux: # pacman -S blas lapack gcc-fortran.
On Debian based: # apt-get install gfortran libatlas-base-dev.
On Mac OS X: $ brew install gfortran.
Using as a Python Libary
Installation
System Message: ERROR/3 (<string>, line 51)
Unknown directive type "code-block".
.. code-block:: sh
$ pip install bamboo-server
Python pip package for bamboo.
For creating plots: $ pip install matplotlib.
Usage
System Message: ERROR/3 (<string>, line 62)
Unknown directive type "code-block".
.. code-block:: python
import bamboo as bm
bf = bm.BambooFrame([{'date': '2012-12-21'}])
bff = bf.recognize_dates()
bff.to_json()
>>> '[{"date": {"$date": 1356048000000}}]'
# Turn asyncronous processing off
bm.set_async(False)
url = 'http://formhub.org/mberg/forms/good_eats/data.csv'
dataset = bm.Dataset.create()
dataset.import_from_url(url, na_values=['n/a'])
dataset.schema
>>> {u'_gps_altitude': {u'cardinality': 14, u'label': u'_gps_altitude', ...
# Resample monthly, 'M', aggregating by mean
date_column = 'submit_date'
monthly = ds.resample(date_column, 'M', 'mean').set_index(date_column)
monthly_amounts = monthly.amount.dropna()
# Plot the amount spent per month
mothly_amounts.plot()
Installation
System Message: ERROR/3 (<string>, line 95)
Unknown directive type "code-block".
.. code-block:: sh
$ ./scripts/install.sh
Example Usage
On the remote server
running the example basic commands
System Message: ERROR/3 (<string>, line 107)
Unknown directive type "code-block".
.. code-block:: sh
$ ./scripts/commands.sh
using bamboo.JS
System Message: ERROR/3 (<string>, line 113)
Unknown directive type "code-block".
.. code-block:: javascript
var dataset = new bamboo.Dataset({url: 'http://bitly.com/ZfzBwP'});
bamboo.dataset_exists('nonexistentdataset_id');
dataset.query_info();
...
using pybamboo
System Message: ERROR/3 (<string>, line 123)
Unknown directive type "code-block".
.. code-block:: python
from pybamboo import PyBamboo
pybamboo = PyBamboo()
response = pybamboo.store_csv_file('http://formhub.org/mberg/forms/good_eats/data.csv')
dataset_id = response['id']
...
posting a dataset
System Message: ERROR/3 (<string>, line 133)
Unknown directive type "code-block".
.. code-block:: sh
$ curl -X POST -d "url=http://formhub.org/mberg/forms/good_eats/data.csv" http://bamboo.io/datasets
About
Join the
bamboo-dev list.
bamboo is an open source project. The project features, in chronological
order, the combined efforts of
- Peter Lubell-Doughtie
- Mark Johnston
- Prabhas Pokharel
- Renaud Gaudin
- Myf Ma
- Ukang'a Dickson
- Larry Weya
and other developers.
Projects using bamboo
- bamboo.io - The bamboo.io web service API
- formhub - Mobile Data Collection made easy
- AFSIS - Africa Soil Information Service
Is your project using bamboo?
Let us know!