bamboo-server 0.6.3
Dynamic data analysis over the web. The logic to your data dashboards.
License: BSD 3-clause

bamboo
======

.. image:: https://secure.travis-ci.org/modilabs/bamboo.png?branch=master
    :target: http://travis-ci.org/modilabs/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 REST web interface, a Python
library, or a JavaScript library.  For more languages
`request a libary <https://groups.google.com/forum/#!forum/bamboo-dev>`_ 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 <http://pandas.pydata.org/>`_ for data analysis,
`pyparsing <http://pyparsing.wikispaces.com/>`_ to read formulas, and `mongodb
<http://www.mongodb.org/>`_ to serialize data.

.. image:: https://farm4.staticflickr.com/3363/3419345800_2c6c4133d3_z.jpg?zz=1

*bamboo* is `open source <https://github.com/modilabs/bamboo>`_ 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
^^^^^^^^^^^^

.. code-block:: sh

    $ pip install bamboo-server

Python pip package for `bamboo <http://pypi.python.org/pypi/bamboo-server>`_.

For creating plots: ``$ pip install matplotlib``.

Usage
^^^^^

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

.. image:: https://raw.github.com/modilabs/bamboo/master/docs/images/amount.png

Installation
------------

.. code-block:: sh

    $ ./scripts/install.sh

Example Usage
-------------

On the remote server
^^^^^^^^^^^^^^^^^^^^

running the example basic commands

.. code-block:: sh

    $ ./scripts/commands.sh

using `bamboo.JS <http://modilabs.github.com/bamboo_js/>`_

.. code-block:: javascript

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


using `pybamboo <https://github.com/modilabs/pybamboo>`_

.. 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

.. code-block:: sh

    $ 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 http://bamboo.io/
      
About
-----

Join the
`bamboo-dev list <https://groups.google.com/forum/#!forum/bamboo-dev>`_.

*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 <http://bamboo.io>`_ - The bamboo.io web service API
* `formhub <https://formhub.org>`_ - Mobile Data Collection made easy
* `AFSIS <http://www.africasoils.net/>`_ - Africa Soil Information Service

Is your project using bamboo?
`Let us know <https://groups.google.com/forum/#!forum/bamboo-dev>`_!