Bandicoot an open-source python toolbox to analyze mobile phone metadata

Related tags

App bandicoot
Overview

bandicoot

Version MIT License PyPI downloads Continuous integration

bandicoot (http://bandicoot.mit.edu) is Python toolbox to analyze mobile phone metadata. It provides a complete, easy-to-use environment for data-scientist to analyze mobile phone metadata. With only a few lines of code, load your datasets, visualize the data, perform analyses, and export the results.

Bandicoot interactive visualization

Where to get it

The source code is currently hosted on Github at https://github.com/computationalprivacy/bandicoot. Binary installers for the latest released version are available at the Python package index:

http://pypi.python.org/pypi/bandicoot/

And via easy_install:

easy_install bandicoot

or pip:

pip install bandicoot

Dependencies

bandicoot has no dependencies, which allows users to easily compute indicators on a production machine. To run tests and compile the visualization, optional dependencies are needed:

Licence

MIT

Documentation

The official documentation is hosted on http://bandicoot.mit.edu/docs. It includes a quickstart tutorial, a detailed reference for all functions, and guides on how to use and extend bandicoot. You can also check out our interactive training notebooks to learn how to download your own data from your mobile phone and load it into bandicoot to visualize it or to learn how to use bandicoot indicators in scikit-learn.

Comments
  • bandicoot/bandicoot/helper/group.py at line 183

    bandicoot/bandicoot/helper/group.py at line 183

    I found an issue within the - bandicoot/bandicoot/helper/group.py at line 183. That line needed to be commented out for it to work within metrics.all ().

    Because with the current code, I get the following error: RemoteTraceback Traceback (most recent call last)

    RemoteTraceback:

    """

    Traceback (most recent call last):

    File "/Users/neetipokhriyal/Research/opalalgorithms/src/bandicoot/bandicoot/helper/group.py", line 181, in group_records_with_padding

    pointer = next(_range)
    

    StopIteration


    With that line commented out, there is no error. Could be a versioning issue too...I use python 3.6.

    Thanks.

    bug 
    opened by neetip 6
  • Graphing Functionalities Missing Docs

    Graphing Functionalities Missing Docs

    I saw the demo in the notebook but I can't find documentation on the graphing functionalities. I wrote same code as the demo but with my data and the index.html's are not being generated after I run these lines

    bc.special.demo.export_antennas(U, 'viz/mobility_view') bc.special.demo.export_transitions(U, 'viz/mobility_view') bc.special.demo.export_timeline(U, 'viz/event_timeline') bc.special.demo.export_network(U, 'viz/network_view')

    I did create those folders because I was getting errors. But now there are no errors but also no graphics. I'd appreciate help with this :)

    opened by cgarciae 6
  • io.py missing optional_parser function

    io.py missing optional_parser function

    The version of the file 'io.py' that is installed when using pip does not have the function optional_parser. This function (line 190) is in the version of the files available in GitHub.

    Not having the optional_parser function makes that some functions on the recharge module do not apply, as the recharge activity only accepts day information but not for a timestamp.

    opened by obcabanillas 3
  • bandicoot android app not found

    bandicoot android app not found

    opened by stiwari2 3
  • About the correspondent_id

    About the correspondent_id

    Hi. I am trying to use Bandicoot to analyze Wifi data usage, the problem is very similar so the mapping between variables is easy. I am confused by the correspondent_id field on the .csv. On the getting started you start by loading /data/records/A.csv and state

    bandicoot uses one record file per user. Record files are structured as follows:

    From this I inferred that all the data in A.csv is about user A. When looking at correspondant_id at first I assumed that it was the id of the user, but now I come to realize that it doesn't make sense since in this example you see different correspondante_id's, but they should all be the same if the data is about the same user.

    So... what is really correspondent_id?

    question 
    opened by cgarciae 3
  • antennas' locations not loading?

    antennas' locations not loading?

    Hello, I am trying to compute indicators for a user and have put calls/antennas into the format listed in the quick start docs. Here is the antennas file image For some reason I can't pin down, these antennas' locations are not recognized. image When I query the antennas, I still see there are attributes however: image Any idea what might be happening here?

    question 
    opened by samuelheroy 2
  • Exporting and visualising ego network visualisation

    Exporting and visualising ego network visualisation

    @yvesalexandre Why is Iframe in the code block below not showing? import os

    Export the visualization to a new directory, "viz".

    bc.visualization.export(U, "GA")

    Successfully exported the visualization to GA 'GA'

    Display the exported visualization in a frame within this notebook

    IFrame("GA/index.html", '100%', 700)

    This code block is also not showing the ego network: import os viz_path = os.path.dirname(os.path.realpath(name)) + '/viz' bc.visualization.export(U, viz_path)

    from IPython.display import IFrame IFrame("/files/viz/index.html", "100%", 700)

    Someone please help

    invalid question 
    opened by gaswani 2
  • missing d.month in positions_binning function ?

    missing d.month in positions_binning function ?

    in line 116 of helper/group return (d.year, d.day, d.hour, d.minute // 30)

    should't it be return (d.year, d.month, d.day, d.hour, d.minute // 30)

    or I'm missing something ?

    https://github.com/yvesalexandre/bandicoot/blob/73a658f6f17331541cf0b1547028db9b70e8d58a/bandicoot/helper/group.py#L116

    bug 
    opened by cezary69 2
  • Issue- Call records ignored by bandicoot

    Issue- Call records ignored by bandicoot

    Hi, I am using FnF data to generate user's features. However, for all the features (bc.utils.all(user)) i observed that the has_calls is always falseand all features related to calls were null. While debugging i found that there are 33 out of 53 FnF users (with personality results) had calls with call duration not null.

    e.g. for user "sp10-01-19" out of 275 results there are many calls with duration not null but still the bandicoot imports it this way and the reporting-has_C is always false

    `sp10-01-19

    [x] 52 records from 2010-07-24 09:42:35 to 2011-05-09 10:01:22

    [x] 11 contacts

    [ ] No attribute stored

    [ ] No antenna stored

    [ ] No recharges

    [x] Has home

    [x] Has texts

    [ ] No calls

    [ ] No network`

    What should i do?

    opened by Quamber 2
  • Is there a way to change the default weekend days (6 & 7)?

    Is there a way to change the default weekend days (6 & 7)?

    First of all, this is a great python module, so thank you. In my case I want to apply it (in particular the bc.utils.all function) to a muslim country. It all works fine, besides the fact that the weekend is actually on Friday and Saturday (so day [5,6] and not [6,7]). Is there an easy way to integrate it into the function? Thanks in advance fabibru

    opened by fabianbruckschen 2
  • Bandicoot app generates metadata.csv

    Bandicoot app generates metadata.csv

    Hi there, I've trying bandicoot app and documentation, it looks really impressive. Nevertherless, I've been able to create metadata.csv file with my own mobile phone call/text data but antennas information is missing (antenna_id column is empty). Any idea why is happening this?

    Thanks in advance

    invalid 
    opened by matinte 2
  • Data visualization

    Data visualization

    Is there any problem with the visualization data? I am trying to run the notebook in the demo folder (code below), but it does not display anything.

    import os viz_path = os.path.dirname(os.path.realpath(name)) + '/viz' bc.visualization.export(U, viz_path)

    from IPython.display import IFrame IFrame("/files/viz/index.html", "100%", 700)

    Thanks, Pablo

    opened by abreumorais 0
  • Issue with loading gps data, loader expects a not empty 'direction'

    Issue with loading gps data, loader expects a not empty 'direction'

    I think the issue lies in io.py in the schema definition in line 230

    'direction': (not_callandtext and r.direction is None) or r.direction in ['in', 'out'],
    

    should be

    'direction': (not_callandtext and r.direction in [None, '']) or r.direction in ['in', 'out'],
    
    opened by yellowBirdy 1
Releases(0.6)
  • 0.6(May 18, 2020)

    This is a small update. It includes:

    • immutable dictionary order when outputting statistics,
    • recharges can be loaded with date or datetimes objects,
    • fixed a bug with a null denominator when computing the average balance of recharges
    • fixed a compatibility bug with Python 3.7 when iterating over an empty iterator
    • fixed a bug within the position binning routine (the month key was missing)
    • up-to-date links to the Github repository.
    Source code(tar.gz)
    Source code(zip)
  • 0.5(May 6, 2016)

    Major new features

    • New interactive visualization in bc.visualization.
    • Support for mobile phone recharges (top-up).
    • Ready for Python 3 (72420a5).
    • Support both antenna and GPS locations with optional DBSCAN clustering algorithm.

    Other updates

    • Increased documentation and updated notebook.
    • Faster computations (dbb9739) and smaller memory footprint (52b931f).
    • Increased Python Style Guide compliance in the source code.
    • Minor breaking changes for indicators (eg. 9326cb1).
    Source code(tar.gz)
    Source code(zip)
  • 0.4(Jul 1, 2015)

    We are pleased to announce the new version of bandicoot, the python toolbox to analyze mobile phone metadata. bandicoot 0.4 now includes new features and reporting variables, and supports ego-network analysis (e.g. clustering coefficient).

    Source code(tar.gz)
    Source code(zip)
Owner
Computational Privacy Group @ Imperial College London
Computational Privacy Group @ Imperial College London
Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone.

####Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone. This application will scan throug

Simon Marquis 251 Jan 6, 2023
APK For Dumping Memory libil2cpp.so & global-metadata.dat

LibDumper This Project Is Using For Make You Easy Dump Lib From The Memory Changelog 3.3 : auto fix ELF file removing libUE4.so option fixing some bug

BryanGIG 32 Jan 29, 2022
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
Text to Speech Project for Spring Boot and Kotlin, Auth Server, Python with Fast API (gTTS)

TTS-App Text to Speech Project for Spring Boot and Kotlin, Auth Server, Python with Fast API (gTTS) Python의 gTTS lib를 활용하여 텍스트를 음성으로 변환하는 서비스를 구현해봅니다.

Seokhyun 7 Jan 7, 2022
A Python native extension written in Kotlin Native

Kotlin Python Ext This is a proof of concept for a Python extension in Kotlin. It is recommended to read the Official Python C API Documentation befor

Martmists 20 Jun 22, 2022
This is an example for running a Python library (mishkal) in Android using chaquopy

chaquopy-mishkal This is an example for running a Python library (mishkal) in Android using chaquopy Code All the code that has been added to run the

Mehdi Nassim KHODJA 2 Oct 10, 2022
A PyCharm plugin that implements inlay parameter and type annotation hints for Python.

Python Inlay Params Quick Installation Using IDE built-in plugin system: Settings/Preferences > Plugins > Marketplace > Search for "Python Inlay Param

Daniil Kovalenko 19 Dec 5, 2022
A handy phone call manager with phonebook, number blocking and multi-SIM support

Simple Dialer A lightweight app for handling your calls, no matter where are you. Comes with a handy call log for easy call initiation. There is a qui

Simple Mobile Tools 443 Jan 6, 2023
Just a phone app.

Koler ** An update, im currently working on a massive code redesign from scratch, will probably take some time, but will be better A uniquely stylized

null 633 Jan 2, 2023
Initiate immediate phone call for React Native on iOS and Android.

react-native-immediate-call-library Initiate immediate phone call for React Native on iOS and Android. Getting started Using npm: npm install react-na

null 7 Sep 7, 2022
⏺ A simple android app to browse your phone call recordings

⏺ Reky A simple android app to browse your phone call recordings [Under Construction] ✅ TODO Support more file name formats ?? Built-with MVVM with Si

theapache64 12 Feb 8, 2022
Sync DND state between Android phone and watch

DNDSync This App was developed to enable Do Not Disturb (DND) synchronization between my Pixel phone and the Galaxy Watch 4 since this option was only

rhaeus 57 Jan 5, 2023
An Android app to watch anime on your phone without ads.

Anime X Stream An Android app to watch anime on your phone without ads. WARNING: THIS IS A BETA VERSION of application, THEREFORE YOU MAY ENCOUNTER BU

Mukul Banga 2.2k Jan 4, 2023
Application that shows a store's phone inventory

PhoneInventory Application that shows a store's phone inventory The Basics A basic inventory application that shows a store's inventory. Tech Kotlin 1

Ayana Bando 0 Nov 3, 2021
Phone booking system with kotlin

phone-booking-system Too lazy to introspect openapi? No worries, basic CURLs below; however, one needs to start the docker-compose file located in the

Dan Zaru 0 Nov 7, 2021
An application to find out the weather according to the current location of the phone

Weather App An application to find out the weather according to the current loca

Heba Elsaid 2 Jan 1, 2022
Candash - A simple Android app that turns your phone into an instrument cluster for your Tesla Model 3 and Y

What is CANdash? CANdash is an Android app that turns your Android device into a

Nick Nguyen 31 Nov 5, 2022
STxMobile is a proof of concept of an Android app for remotely controlling the Raymarine ST2000+ tiller pilot from an Android phone.

STxMobile STxMobile is a proof of concept of an Android app for remotely controlling the Raymarine ST2000+ tiller pilot from an Android phone. The app

Marco 8 Sep 1, 2022