Awesome
<img src="https://user-images.githubusercontent.com/102827/174779884-a2fb0971-4850-4ad6-93eb-2c53b922b408.svg" alt="drawing" width="300"/>:point_left: Click here to run the examples online. Please retry if the build process does not finish after some minutes.
One of the examples will walk you through a full CML processing from raw data provided by the OpenMRG dataset to a rainfall map animation like this one:
<img src="OPENSENSE_sandbox_OpenMRG_usecase_animation.gif" alt="drawing" width="700"/>OPENSENSE software sandbox
The OPENSENSE software sandbox is a collection of software packages for processing data from opportunistic rainfall sensors, developed within the COST Action OPENSENSE.
The purpose of this repo is to showcase existing codebases and existing open datasets in one reproducible environment that can be run online via mybinder.
Not all notebooks are in a final state, but the OpenMRG usecase and data exploration notebooks are nicely prepared to give new users a quick overview of code and data that is available.
Run code online
This repository is inteded to be run online via the "launch binder" button above. Note that it can take some minutes to spin up the online environment. In some cases it might not start at all due to limited resources of the binder service. In that case, just try again some minutes later.
Run environment locally
To run the code locally and/or to contribute to this repository, you need to set up the conda
environment defined in the file environment.yml
(located in the seperated environment repository) which is also used by mybinder to build the environment that you run online.
First, you need to have conda
installed. If this is you first installation of conda
we recommend to start with the mambaforge
installer which is available for Windows, Linux and Mac here. Note that "mamba" is just a faster implementation of "conda", and "forge" refers to the fact that you will use the community packages from the conda-forge "channel", which has a larger choice of scientific Python and R packages than the default conda "channel".
With conda
or mamba
set up, follow these steps:
- Clone this repo and its git submodules to your machine. Or, if you plan to contribute, first create a fork of it and clone from this fork (you have to adjust the URL below). Note that
git clone
will create a new directory OPENSENSE_sandbox in the directory that you are currently in and place the repo content there.git clone --recursive https://github.com/OpenSenseAction/OPENSENSE_sandbox.git
- Stay in the directory of step 1, or change to it if required. Then download the
environment.yml
file from the seperated environment repository viawget
like this
or viawget https://raw.githubusercontent.com/OpenSenseAction/OPENSENSE_sandbox_environment/main/environment.yml
curl
If neithercurl -O https://raw.githubusercontent.com/OpenSenseAction/OPENSENSE_sandbox_environment/main/environment.yml
wget
norcurl
are available, you can also download the environment file via the browser, but make sure to save it in the directory to which you cloned the sandbox repo in step 1. - Create the
conda
environment. Note that you have to be in a terminal/shell whereconda
ormamba
is available. Please refer to theconda
docs to find out how to achieve that.mamba env create environment.yml
- Activate the env.
conda activate opensense_sandbox
- Install
jupyter-lab
in addition. It is not in thenenvironment.yml
because mybinder installs it by default.mamba install -c conda-forge jupyterlab
- Run
jupyter-lab
. It will open in your default browser.jupyter-lab
- Go to the index notebook in
notebooks/index.ipynb
and run the cell with the init script, using the line of code for local installation which is commented out by default. This will clone the code of the submodules, add them to the conda env and install the R packages.
Contributing
We encourages everyone to contribute to the developement of the OPENSENSE_sandbox.
The easiest way is to fork the repository and submit a pull request (PR). Each PR automatically gets its own mybinder button to test everything in its defined environment. PRs will be iterated with and merged by the repository maintainers. If required we can also have dev branches in this repository.
Note that, if you have to change the dependencies, you can update your local conda
env based on an updated environment.yml
file like this (see here)
conda activate myenv
conda env update --file environment.yml --prune
Code of Conduct
Contributors to the OPENSENSE_sandbox are expected to act respectfully toward others in accordance with the OSGeo Code of Conduct.
Contributions and Licensing
All contributions shall comply to the project license. The individual included packages might have their own license, which has to be compatible with the one of the project license.