All Projects → aileenproject → aileen-core

aileenproject / aileen-core

Licence: MIT license
Sensor data aggregation tool for any numerical sensor data. Robust and privacy-friendly.

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to aileen-core

ViTs-vs-CNNs
[NeurIPS 2021]: Are Transformers More Robust Than CNNs? (Pytorch implementation & checkpoints)
Stars: ✭ 145 (+866.67%)
Mutual labels:  robustness
rsgislib
Remote Sensing and GIS Software Library; python module tools for processing spatial data.
Stars: ✭ 103 (+586.67%)
Mutual labels:  remote-sensing
WhiteboxTools-ArcGIS
ArcGIS Python Toolbox for WhiteboxTools
Stars: ✭ 190 (+1166.67%)
Mutual labels:  remote-sensing
retrieval-2016-remote
Multi-Label Remote Sensing Image Retrieval By Using Deep Features
Stars: ✭ 14 (-6.67%)
Mutual labels:  remote-sensing
earthengine-apps
A collection of Earth Engine Apps created using geemap, voila, and heroku
Stars: ✭ 20 (+33.33%)
Mutual labels:  remote-sensing
satellite-crosswalk-classification
Deep Learning Based Large-Scale Automatic Satellite Crosswalk Classification (GRSL, 2017)
Stars: ✭ 18 (+20%)
Mutual labels:  remote-sensing
sensormotion
Package for analyzing human motion data (e.g. PA, gait)
Stars: ✭ 73 (+386.67%)
Mutual labels:  sensor-data
adversarial-robustness-public
Code for AAAI 2018 accepted paper: "Improving the Adversarial Robustness and Interpretability of Deep Neural Networks by Regularizing their Input Gradients"
Stars: ✭ 49 (+226.67%)
Mutual labels:  robustness
SimP-GCN
Implementation of the WSDM 2021 paper "Node Similarity Preserving Graph Convolutional Networks"
Stars: ✭ 43 (+186.67%)
Mutual labels:  robustness
POPQORN
An Algorithm to Quantify Robustness of Recurrent Neural Networks
Stars: ✭ 44 (+193.33%)
Mutual labels:  robustness
Advances-in-Label-Noise-Learning
A curated (most recent) list of resources for Learning with Noisy Labels
Stars: ✭ 360 (+2300%)
Mutual labels:  robustness
ipwatch
This program gets your external, & internal, IP addresses, checks them against your "saved" IP addresses and, if a difference is found, emails you the new IP(s). This is useful for servers at residential locations whose IP address may change periodically due to actions by the ISP.
Stars: ✭ 38 (+153.33%)
Mutual labels:  remote-sensing
starfm4py
The STARFM fusion model for Python
Stars: ✭ 86 (+473.33%)
Mutual labels:  remote-sensing
aitlas
AiTLAS implements state-of-the-art AI methods for exploratory and predictive analysis of satellite images.
Stars: ✭ 134 (+793.33%)
Mutual labels:  remote-sensing
aliyun-mns
阿里云MNS
Stars: ✭ 13 (-13.33%)
Mutual labels:  robustness
spatial-smoothing
(ICML 2022) Official PyTorch implementation of “Blurs Behave Like Ensembles: Spatial Smoothings to Improve Accuracy, Uncertainty, and Robustness”.
Stars: ✭ 68 (+353.33%)
Mutual labels:  robustness
opticks
Open source remote sensing analysis tool
Stars: ✭ 37 (+146.67%)
Mutual labels:  remote-sensing
robust-gcn
Implementation of the paper "Certifiable Robustness and Robust Training for Graph Convolutional Networks".
Stars: ✭ 35 (+133.33%)
Mutual labels:  robustness
3D-PV-Locator
Repo for "3D-PV-Locator: Large-scale detection of rooftop-mounted photovoltaic systems in 3D" based on Applied Energy publication.
Stars: ✭ 35 (+133.33%)
Mutual labels:  remote-sensing
ChangeFormer
Official PyTorch implementation of our IGARSS'22 paper: A Transformer-Based Siamese Network for Change Detection
Stars: ✭ 220 (+1366.67%)
Mutual labels:  remote-sensing

Aileen

Aileen is a sensor data aggregation tool. It can be used for any numerical sensor data, is robust and privacy-friendly.

All you need to implement is the code which reads your sensor data.

Aileen provides a server to receive data from Aileen boxes. The server displays a dashboard with a map of the boxes and their collected data.

See implementation examples at https://github.com/aileenproject (counting wifi devices & LAN-connected PCs).

Dependencies

  • Make a virtual environment: virtualenv env_aileen
  • Activate it, e.g: source env_aileen/bin/activate
  • Install the aileen dependencies: python setup.py develop
  • If you want to collaborate on code, please install pre-commit for it to hook into commits: pre-commit install

Sensor module

To run the aileen box you'll need a module implementing three functions:

  • start_sensing(tmp_path: str)
  • get_latest_reading_as_df(tmp_path: str)

In addition, you can implement these additional functions:

  • check_preconditions()
  • adjust_event_value(event_value: float, last_event_value: float, observations: dict, observable: Observable)

Database for development

Use sqlite

code

  • We use black for code formatting.
  • We use isort for package importing.

environment vaiables

To run the aileen box you'll to at least tell it how to find the sensor code. First, you need to adapt the PYTHONPATH:

export PYTHONPATH=$PYTHONPATH./your/path/to/sensor-module

Second, you need to set the name of the python module containing the sensor module functions (see above). For example, if the sensor module is called "sensor.py":

export AILEEN_SENSOR_MODULE=sensor

And probably you want to tell Aileen how to activate your virtual environment:

export AILEEN_ACTIVATE_VENV_CMD=<your command to activate the virtual environment> 

By the way, you can also set these environment variables (apart from PYTHONPATH!) in an aileen/.env file:

AILEEN_SENSOR_MODULE=sensor
AILEEN_ACTIVATE_VENV_CMD=<your command to activate the virtual environment> 

These are other env variables, which you can alter (see aileen/settings for more info), either on the shell or the .env file:

  • AILEEN_SENSOR_FILE_PREFIX
  • AILEEN_BOX_PORT
  • AILEEN_SENSOR_LOG_INTERVAL_IN_SECONDS
  • AILEEN_INTERNET_CONNECTION_AVAILABLE
  • AILEEN_UPLOAD_INTERVAL_IN_SECONDS
  • AILEEN_UPLOAD_MAX_NUMBER_PER_REQUEST
  • AILEEN_STATUS_MONITORING_INTERVAL_IN_SECONDS
  • AILEEN_PROCESS_RESTART_INTERVAL_IN_SECONDS
  • AILEEN_HASH_OBSERVABLE_IDS
  • AILEEN_HASH_ITERATIONS
  • AILEEN_UPLOAD_EVENTS

First migrations and superuser

Initialize the database

  • python manage.py makemigrations
  • python manage.py migrate

Create a super user

  • python manage.py createsuperuser

Test app

Check if everything was installed correctly with either:

  • python manage.py runserver
  • python manage.py run_box

Data to map on server

Go to the /admin url and add a location for the aileen box

Deploy server app

When creating an app on a server be sure to tell the server to collect the static files with the following python manage.py collectstatic

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].