A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

freva

A data search and analysis platform developed by the atmospheric science community.
https://github.com/FREVA-CLINT/freva

Category: Climate Change
Sub Category: Climate Data Processing and Analysis

Keywords from Contributors

earth-science atmospheric-science measur transforms archiving projection compose optimize observation conversion

Last synced: about 2 hours ago
JSON representation

Repository metadata

The Free Evaluation System Framework (FreVa)

README.md

Free Evaluation System Framework

PyPI version
Update
Anaconda-Server Badge
Docs
codecov
Pipeline
Binder
BSD

💡 A new version of Freva is on the way! While it’s still under development,
you can already start using it. If your primary focus is searching and
accessing data, we highly recommend trying out the new Freva client
(https://pypi.org/project/freva-client/)

What is Freva ?

Freva, the free evaluation system framework, is a data search and analysis
platform developed by the atmospheric science community for the atmospheric
science community. With help of Freva researchers can:

  • quickly and intuitively search for data stored at typical data centers that
    host many datasets.
  • create a common interface for user defined data analysis tools.
  • apply data analysis tools in a reproducible manner.

Data analysis is realised by user developed data analysis plugins. These plugins
are code agnostic, meaning that users don't have to rewrite the core of their
plugins to make them work with Freva. All that Freva does is providing a user
interface for the plugins.

Currently Freva comes in three different flavours:

  • a python module that allows the usage of Freva in python environments, like
    jupyter notebooks
  • a command line interface (cli) that allows using Freva from the command
    lines and shell scripts.
  • a web user interface (web-ui)

Where can I find the Freva user documentation?

A more detailed overview on the usage of freva can be found on the
freva user documentation page

How can I install Freva at my institution?

Deployment is realised via a dedicated repository that holds code to set up
the command line and web user interface as well as all services.
To deploy the system in production
mode consult deployment docs.

How can I set up a local version for development?

To start development with freva clone the repository and its submodules:

git clone --recursive https://github.com/FREVA-CLINT/freva.git

A basic local development setup can be created using
Docker and
docker-compose
(Linux users need to install it separately).

This also requires that the .envrc file is sourced.

docker-compose up -d

Dummy data can be injected into a running docker-compose environment with
make dummy-data. This will add some example files into solr and run an
example plugin a few times to add some history data.

When finished, tear down the environment with

docker-compose down

Creating a dedicated anaconda dev environment

We recommend using anaconda to install all packages that are needed for
development. Here we assume that you have a
working anaconda version per-installed on your local computer. To install
the dev environment simply use the following command:

conda env create -f dev-environment.yml
source .envrc

This will automatically set environment variables needed for development.
The freshly installed environment can be activated:

conda activate freva-dev

The conda environment can be deactivated using the following command:

conda deactivate

Note: The conda install command can be slow. If you want to speed up the
installation of the environment we recommend to install the mamba package in
the anaconda base environment and use the mamba command to create the
environment:

conda install mamba
mamba env create -f dev-environment.yml
source .envrc

Installing the python package

Use the pip install command to install the actual python core packages into
your activated environment:

pip install -e .[test]

The -e flag will link the source code into your python environment, which
can be useful for development purpose.

Running tests and creating a test coverage report

The system can be tested with a Makefile. To run the tests and generate a
simple test coverage report simply use the make command:

make test

The linter testing can be applied by:

make lint

Usage of pre-commit setup

To use the pre-commit setup in freva, follow these steps:

  1. Install Pre-commit:

    • First, install the pre-commit package using pip:
      pip install pre-commit
      
  2. Activate Hooks:

    • Navigate to the root directory of your repository and run the following command to set up the git hooks:
      pre-commit install
      
  3. Automatic Checks:

    • Now, each time you attempt to commit changes, the pre-commit hooks will automatically run to ensure your files adhere to the specified standards.
  4. Manual Execution:

    • If you want to manually run the hooks on all files, use:
      pre-commit run --all-files
      

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 2,421
Total Committers: 51
Avg Commits per committer: 47.471
Development Distribution Score (DDS): 0.653

Commits in past year: 155
Committers in past year: 5
Avg Commits per committer in past year: 31.0
Development Distribution Score (DDS) in past year: 0.626

Name Email Commits
k204230 b****n@d****e 839
antarcticrainforest m****n@p****g 288
estani@tux14 e****z@m****e 263
Sebastian Illing s****g@m****e 160
dependabot[bot] 4****] 151
kunst o****t@m****e 135
Christopher Kadow c****w@m****e 119
Oliver Kunst u****8@w****e 91
k204229 l****a@d****e 81
k204231 r****s@d****e 36
Mo h****h@d****e 32
Sebastian Illing s****g@m****e 24
Brian Lewis l****s@d****e 22
Oliver Kunst u****8@m****e 14
Philipp S. Sommer p****r@h****e 12
Oliver Kunst e****s@o****e 10
vk integra i****a@o****e 10
Mo mo@M****e 8
Oliver Kunst u****8@w****e 8
Martin Bergemann m****n@m****e 7
root r****t@i****e 7
Thomas Schartner b****9@m****e 7
Thomas Schartner b****9@m****e 7
Freva application in Kiowa f****a@k****u 7
Mahesh Ramadoss k****1@m****e 6
Martin Bergemann k****0@w****e 6
Oliver Kunst u****8@m****e 6
Oliver Kunst u****8@m****e 6
Andrej Fast a****t@d****e 5
Sebastian Illing b****7@w****e 5
and 21 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 23
Total pull requests: 268
Average time to close issues: 2 months
Average time to close pull requests: 12 days
Total issue authors: 5
Total pull request authors: 6
Average comments per issue: 1.91
Average comments per pull request: 0.62
Merged pull request: 211
Bot issues: 0
Bot pull requests: 197

Past year issues: 10
Past year pull requests: 95
Past year average time to close issues: about 2 months
Past year average time to close pull requests: 6 days
Past year issue authors: 4
Past year pull request authors: 5
Past year average comments per issue: 2.9
Past year average comments per pull request: 0.59
Past year merged pull request: 74
Past year bot issues: 0
Past year bot pull requests: 61

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/FREVA-CLINT/freva

Top Issue Authors

  • eelucio (11)
  • antarcticrainforest (9)
  • felio92 (1)
  • mo-dkrz (1)
  • MoSHad91 (1)

Top Pull Request Authors

  • dependabot[bot] (197)
  • antarcticrainforest (46)
  • eelucio (15)
  • mo-dkrz (6)
  • grooverdan (3)
  • MoSHad91 (1)

Top Issue Labels

  • rest api (6)
  • enhancement (5)
  • bug (5)
  • question (2)
  • help wanted (1)

Top Pull Request Labels

  • dependencies (197)
  • python (9)
  • enhancement (1)
  • rest api (1)

Package metadata

pypi.org: freva

Free Evaluation and Analysis Framework (Freva)

  • Homepage:
  • Documentation: https://freva-clint.github.io/freva/
  • Licenses: BSD-3-Clause
  • Latest release: 2504.0.0 (published 23 days ago)
  • Last Synced: 2025-04-26T13:03:33.395Z (1 day ago)
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 486 Last month
  • Rankings:
    • Dependent packages count: 6.633%
    • Average: 21.691%
    • Downloads: 27.828%
    • Dependent repos count: 30.611%
  • Maintainers (1)
conda-forge.org: freva

  • Homepage: https://github.com/FREVA-CLINT/freva
  • Licenses: BSD-2-Clause
  • Latest release: 2208.1.1 (published over 2 years ago)
  • Last Synced: 2025-04-26T13:03:40.370Z (1 day ago)
  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.025%
    • Average: 42.6%
    • Dependent packages count: 51.175%

Dependencies

setup.py pypi
  • Django *
  • GitPython *
  • Pillow *
  • PyPDF2 *
  • appdirs *
  • dask *
  • h5netcdf *
  • humanize *
  • lazy-import *
  • metadata-inspector *
  • mysqlclient *
  • netCDF4 *
  • numpy *
  • pandas *
  • pymysql *
  • requests *
  • toml *
  • toolz *
  • typing_extensions *
  • xarray *
.github/workflows/ci_job.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/setup-python v3 composite
  • actions/upload-pages-artifact v1 composite
  • codecov/codecov-action v1 composite
  • peaceiris/actions-gh-pages v3 composite
.docker/Dockerfile docker
  • mariadb latest build
Dockerfile docker
  • antarcticrainforest/freva latest build
.github/workflows/pypi_job.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite

Score: 13.452294265982118