Skip to content

WikiWatershed/monitor-my-watershed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,980 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ODM2DataSharingPortal

This repository contains the code for a Python-Django web application enabling users to upload, share, and display data from their environmental monitoring sites. Data can either be automatically streamed from Internet of Things (IoT) devices, manually uploaded via CSV files, or manually entered into forms.

The ODM2 Data Sharing Portal is built on the Observations Data Model Version 2 (ODM2) information model and supporting software ecosystem, includuing an ODM2 database instance in PostgreSQL for data storage in the backend.
Any environmental IoT device or computer can upload data to the web app via HTTP POST. Complete documentation is available in our open-access journal article "Low-Cost, Open-Source, and Low-Power: But What to Do With the Data?".

Data Sharing Portal Architecture

The ODM2 Data Sharing Portal was initially designed to support the EnviroDIY community for do-it-yourself environmental science and monitoring and their network of open-source monitoring stations built with Arduino-framework dataloggers such as the EnviroDIY Mayfly Datalogger.

The ODM2 Data Sharing Portal was extended to also support the Leaf Pack Network of teachers, students, and citizen monitors who assess aquatic ecosystem health through aquatic macroinvertebrate surveys using Leaf Pack Experiment stream ecology kits.

The main instance of this application is currently hosted at http://monitormywatershed.org.

Deployment Guide

A guide for deploying the data sharing portal is available here.

Example POST Requests for Streaming Data

The ODM2DataSharingPortal relies on devices that can push data to the web using HTTP POST requests. We've included some documentation where you can view example POST requests to learn the syntax.

Accessing Data

There are example notebooks for accessing data stored within Monitor My Watershed using both R and python. These notebooks use the time series visualization (TSV) endpoint to access the data. Once a more formal API is developed, a python client to access that API will be in the MonitorMW-Client repo.

Creating a Logging Device

Any device that can connect to the internet and make a HTTP POST request can publish data to Monitor My Watershed using the syntax linked to above. The primary firmware library developed for the EnviroDIY Mayfly, Stonefly, and other Arduino-based devices to collect sensor data and post it to Monitor My Watershed is Modular Sensors. The Modular Sensors library supports is designed for low-power environmental data loggers. It supports dozens of different sensors. In addition to Monitor My Watershed, Modular Sensors can also be used to publish data to AWS IoT Core, ThingSpeak, and several other endpoints.

Credits

Funding for this work was provided by the William Penn Foundation under grant 158-15.

The authors gratefully acknowledge the work and contributions of the EnviroDIY community and those who participated in testing and advancing the Monitor My Watershed Data Sharing Portal software.

About

The web application for Monitor My Watershed, enabling users to upload, share, and display environmental Internet of Things (IoT) and other monitoring data to the Internet of Water (IoW). Built on the ODM2 data system.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors