Bamboo

Dynamic data analysis over the web. The logic to your data dashboards.

View the Project on GitHub modilabs/bamboo

bamboo

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 a REST web interface and through Python.

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.

panda bears

bamboo is open source software released under the 3-clause BSD license, which is also known as the "Modified BSD License".

Dependencies

for numpy, pandas, and scipy:

On Arch Linux: # pacman -S blas lapack gcc-fortran.

On Debian based: # apt-get install gfortran libatlas-base-dev.

Using as a Python Libary

Installation

    $ pip install bamboo-server

Python pip package for bamboo.

For creating plots: $ pip install matplotlib.

Usage

    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()

amount chart

Installation

    $ ./scripts/install.sh

Example Usage

On the remote server

running the example basic commands

    $ ./scripts/commands.sh

using bamboo.JS

    var dataset = new bamboo.Dataset({url: 'http://bitly.com/ZfzBwP'});
    bamboo.dataset_exists('nonexistentdataset_id');
    dataset.query_info();
    ...

using pybamboo

    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

    $ curl -X POST -d "url=http://formhub.org/mberg/forms/good_eats/data.csv" http://bamboo.io/datasets

Documentation

Viewing Documentation

The latest docs are available at

About

Join the bamboo-dev mailing list.

bamboo is an open source project. The project features, in chronological order, the combined efforts of

and other developers.

Projects using bamboo

Is your project using bamboo? Let us know!