https://github.com/birdnet-team/ecopi-rtf
BirdNET ecoPi Real-time Frontend web app built with Dash
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Repository
BirdNET ecoPi Real-time Frontend web app built with Dash
Basic Info
- Host: GitHub
- Owner: birdnet-team
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://birdnet.cornell.edu/swamp/
- Size: 51.3 MB
Statistics
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
ecoPi Real-Time Frontend (ecoPi-RTF)

This is a web application built with Dash for visualizing data recorded with ecoPi real-time audio recorders. The application allows users to explore the data collected by ecoPi and learn more about the species present in the monitored areas.
ecoPi is a recording device used in various projects to perform acoustic monitoring and study the biodiversity of birds and other wildlife. The device collects audio data in real-time, which is then processed using machine learning models to identify species. The ecoPi Real Time Frontend (ecoPi-RTF) web application allows users to browse the data collected by ecoPi devices and view the species detected in the recordings.
To learn more about the recording units, visit the OekoFor website.
We currently support these monitoring projects:
- SWAMP: Sapsucker Woods Acoustic Monitoring Project - birdnet.cornell.edu/swamp/
- AMiC: Acoustic Monitoring in Chemnitz - birdnet.cornell.edu/amic/
Interested? Want to host your own project? Please don't hesitate to contact us at ccb-birdnet@cornell.edu.
ecoPi-RTF is a collaboration between the K. Lisa Yang Center for Conservation Bioacoustics at the Cornell Lab of Ornithology, Chemnitz University of Technology, and OekoFor GbR.
Setup for development
- Clone the repository
bash
git clone https://github.com/birdnet-team/swamp.git
- Create and activate a virtual environment
bash
cd swamp
python3 -m venv .venv
source .venv/bin/activate
- Install the required packages
bash
pip3 install -r requirements.txt
- Create a file
.envand add your OekoFor API key to theAPI_TOKENkey
bash
API_TOKEN=<your api token>
Note: You'll need an OekoFor API key to run the app. Please send an email to info@oekofor.de to request API access.
- Get your OpenWeatherMap API key from OpenWeatherMap and add it to the
.envfile
bash
OWM_API_KEY=<your api key>
- Add these additional environment variables to the
.envfile:
bash
CONFIG_FILE=configs/swamp_config.yaml
SITE_ROOT=''
PORT=8050
Note: If you want to create a new project, you can create a new config file in the configs directory and copy the swamp_config.yaml file as a template.
Running the app
This is a Dash app, so you can run it with the following command:
bash
python3 app.py
The app will be available at http://localhost:8050/.
You can also specify config files, site root (in case of URL forwarding), and dedicated port using command line arguments:
bash
python3 app.py --config_file configs/swamp_config.yaml --site_root /swamp --port 8050
Running the app in production
We use Gunicorn to run the app in production.
Install Gunicorn with the following command:
bash
sudo apt-get install gunicorn
You can now run the app with the following command (from the root directory of the project):
bash
gunicorn app:server --bind 0.0.0.0:8050 --workers 4 --env CONFIG_FILE=configs/swamp_config.yaml --env SITE_ROOT=/swamp
The app will be available at http://localhost:8050/. You can specify the number of workers to run with the --workers flag based on the number of cores available on your machine. Make sure to set 'debug=False' in the app.py file before running the app in production. You also may have to set SITE_ROOT in when using URL forwarding in your domain.
Setting up a Cron Job to Call the Cache Route
To ensure that the cache is refreshed every 30 minutes, you can set up a cron job. Follow these steps:
- Open the crontab file for editing:
bash
crontab -e
- Add the following line to the crontab file to call the cache route every 30 minutes:
bash
*/30 * * * * curl -X GET http://localhost:8050/cache
- Save and close the crontab file.
Make sure your application is running and accessible at http://localhost:8050/ (or your specific site URL) before setting up the cron job.
License
- Source Code: The source code for this project is licensed under the MIT License.
- Models: The models used in this project are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).
Please ensure you review and adhere to the specific license terms provided with each model.
Please note that all educational and research purposes are considered non-commercial use and it is therefore freely permitted to use BirdNET models in any way.
Citation
Feel free to use BirdNET for your acoustic analyses and research. If you do, please cite as:
bibtex
@article{kahl2021birdnet,
title={BirdNET: A deep learning solution for avian diversity monitoring},
author={Kahl, Stefan and Wood, Connor M and Eibl, Maximilian and Klinck, Holger},
journal={Ecological Informatics},
volume={61},
pages={101236},
year={2021},
publisher={Elsevier}
}
Funding
Our work in the K. Lisa Yang Center for Conservation Bioacoustics is made possible by the generosity of K. Lisa Yang to advance innovative conservation technologies to inspire and inform the conservation of wildlife and habitats.
The development of BirdNET is supported by the German Federal Ministry of Research, Technology and Space (FKZ 01|S22072), the German Federal Ministry for the Environment, Climate Action, Nature Conservation and Nuclear Safety (FKZ 67KI31040E), the German Federal Ministry of Economic Affairs and Energy (FKZ 16KN095550), the Deutsche Bundesstiftung Umwelt (project 39263/01) and the European Social Fund.
Partners
BirdNET is a joint effort of partners from academia and industry. Without these partnerships, this project would not have been possible. Thank you!

Owner
- Name: BirdNET-Team
- Login: birdnet-team
- Kind: organization
- Location: Germany
- Repositories: 1
- Profile: https://github.com/birdnet-team
GitHub Events
Total
- Push event: 2
- Public event: 1
Last Year
- Push event: 2
- Public event: 1
Dependencies
- astral *
- dash *
- dash-bootstrap-components *
- dash-leaflet *
- flask-Cors *
- gunicorn *
- numpy *
- pandas *
- plotly *
- python-dotenv *
- pyyaml *