Storm Event Partitioning And Rainfall Analytics for Tipping-bucket rain gauge data Evaluation (SEPARATE)
SEPARATE is an open-source, GUI-based software package that provides users with a fast, reliable, and automated method to post-process tipping bucket rain gauge (TBRG) data. It enables the identification and partitioning of independent storm events and calculates key rainfall metrics like storm duration, depth, and intensity. SEPARATE supports both user-defined and statistical (independent storm criterion) approaches to event separation, while offering a range of tabular and graphical output options.
The software is distributed both as:
- A standalone desktop application (no Python installation needed)
- A source code version with environment files for Python users
SEPARATE was developed using PySimpleGUI and compiled into standalone applications with PyInstaller. The Windows installer is packaged using Inno Setup, while the macOS distribution is created using the create-dmg tool (installed via Homebrew).
SEPARATE can be used in three ways:
Precompiled installers are available for both Windows and macOS, and include all required dependencies. No separate Python installation is needed.
Steps:
-
Download the appropriate installer for your operating system here:
SEPARATE_Win_setup_v1_1.exefor WindowsSEPARATE_macOS_setup_v1_1.dmgfor macOS
-
Run the installer:
- On Windows, double-click
SEPARATE_Windows.exeand follow the prompts. - On macOS, open the
SEPARATE_macOS.dmgfile, then dragSEPARATE_GUI.appinto your Applications folder when prompted.
- On Windows, double-click
-
Launch SEPARATE to begin.
⚠️ macOS note: The macOS application is not code-signed. You may need to bypass Gatekeeper the first time you run it (e.g., right-click → Open).
⚠️ Windows note: Some antivirus software (including Windows Defender) may warn about unsigned installers. If you downloaded SEPARATE from our official link, you can safely ignore the warning and proceed with installation.
If you prefer to run the Python source code, you can use either a Conda environment or a virtualenv with pip.
- Clone or download the repository.
- Open Anaconda Prompt and navigate to the folder.
- Create the environment:
conda env create -f envs/SEPARATE.yml
Note: The provided environment file automatically installs Python 3.12 and all dependencies.
- Activate the environment or add the environment to you preferred IDE
conda activate SEPARATE
- Run the code either in your IDE or from the terminal with:
python SEPARATE_GUI.py
⚠️ Python 3.11 recommended (3.10 - 3.12 supported)
Python 3.13 is not yet supported due to dependency incompatibilities.
-
Clone or download the repository.
-
Open Command Prompt or PowerShell and navigate to the project folder.
-
Create and activate a virtual environment:
-
Windows
py -3.12 -m venv separate_env .\separate_env\Scripts\activate
-
macOS / Linux
python3.12 -m venv separate_env source separate_env/bin/activate
-
-
Install required packages:
pip install -r envs/requirements.txt
-
Install PySimpleGUI v4.60.5 manually
This version is no longer hosted on PyPI, so you'll need to install it from the wheel file included in the repository.Steps:
- Unzip the archive
build_installer/PySimpleGUI-4.60.5-main.zip - Navigate to the unzipped folder (it should contain a
.whlfile) - From that folder, run:
pip install PySimpleGUI-4.60.5-py3-none-any.whl
Note: You can also install from a direct GitHub clone or file path if preferred.
- Unzip the archive
-
Run the tool:
python SEPARATE_GUI.py
⚠️ Python 3.12 recommended (3.10 - 3.12 supported)
Python 3.13 is not yet supported due to dependency incompatibilities.
If you want to use SEPARATE's core Python functions in your own scripts or Jupyter notebooks (without the GUI), you can install the backend functions directly from PyPI:
pip install separate
This version does not include the GUI . It is intended for developers or users who want to integrate SEPARATE into custom workflows or batch-processing.
Example Usage:
from separate.functions import SEPARATE_FUNCTIONS as sf
from separate.functions import SEPARATE_utilities as suFor an example script demonstrating function usage, see:
SEPARATE_standalone_script.py
Notes
- If you're unsure which version to use, we recommend starting with the precompiled installer.
- Developers contributing to the backend should use either the source code or PyPI version, depending on your workflow.
- User Manual (PDF)
- Manuscript (JOSS submission)
- Supplementary Material in
supplementary/
To help users get started quickly, we include two example rainfall datasets in the Example_Datasets folder. Each includes instructions and pre-run outputs demonstrating how SEPARATE handles different rain gauge formats.
Murphy & David, JOSS, 2025, submitted
SEPARATE is an open-source software package developed by the Murphy Watershed Science Lab to assist with rainfall data processing and storm event analysis. It is distributed in the hope that it will be useful for research, education, and resource management, but without any warranty.
The developers make no claims regarding the accuracy, completeness, or performance of the software. Users are solely responsible for any results generated and should independently validate outputs before applying them to engineering, policy, or hazard assessment decisions.
