OpenSenseAction / OPENSENSE_sandbox

Collection of runable examples with software packages for processing opportunistic rainfall sensors
BSD 3-Clause "New" or "Revised" License
13 stars 16 forks source link
drawing

DOI

Binder :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:

drawing

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:

  1. 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
  2. Stay in the directory of step 1, or change to it if required. Then download the environment.yml file from the seperated environment repository via wget like this
    wget https://raw.githubusercontent.com/OpenSenseAction/OPENSENSE_sandbox_environment/main/environment.yml

    or via curl

    curl -O https://raw.githubusercontent.com/OpenSenseAction/OPENSENSE_sandbox_environment/main/environment.yml

    If neither wget nor curl 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.

  3. Create the conda environment. Note that you have to be in a terminal/shell where conda or mamba is available. Please refer to the conda docs to find out how to achieve that.
    mamba env create environment.yml
  4. Activate the env.
    conda activate opensense_sandbox
  5. Install jupyter-lab in addition. It is not in then environment.yml because mybinder installs it by default.
    mamba install -c conda-forge jupyterlab
  6. Run jupyter-lab. It will open in your default browser.
    jupyter-lab
  7. 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.