cavaanalytics

CAVAanalytics is a comprehensive framework for climate data analysis, offering streamlined access to data, advanced processing and visualization capabilities. It is designed to support a wide range of climate research and user needs

https://github.com/risk-team/cavaanalytics

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords

bias-correction climate cordex cordex-core ensemble era-5 models w5e5
Last synced: 6 months ago · JSON representation ·

Repository

CAVAanalytics is a comprehensive framework for climate data analysis, offering streamlined access to data, advanced processing and visualization capabilities. It is designed to support a wide range of climate research and user needs

Basic Info
Statistics
  • Stars: 14
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 37
Topics
bias-correction climate cordex cordex-core ensemble era-5 models w5e5
Created over 3 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation

README.md


R package providing a framework for easy access, processing, and advanced visualization of gridded climate products

GitHub R package version release date DOI

Check GitHub issues for known servers' downtimes

We will release Bias corrected CORDEX-CORE simulations with the ISIMIP methodology in 2025 as part of a CAVA update


CAVAanalytics is a comprehensive R package designed to simplify and enhance climate data analysis. It offers a unified framework that streamlines access to datasets such as W5E5, ERA5, and CORDEX-CORE models, facilitating efficient loading, analysis, indicator calculation, and visualization of climate and impact model data

Key Features:

  • Simplified Data Access: Retrieve CORDEX-CORE models globally without the need to manage netCDF files. Data requests are sent to THREDDS servers, allowing you to access only the necessary information directly in memory.
  • Consistent Analytical Framework: Work seamlessly with multiple climate models, making indicator calculation and result visualization straightforward and efficient.

Quick example

Below is an example of how to use CAVAanalytics to retrieve and analyze climate information for Sudan, covering both historical and projected data. Detailed examples are available from the tutorial webpage.

This script retrieves precipitation data for Sudan from 1990 to 2000 (historical) and 2020 to 2030 (projected), analyzes the climate change signal, and visualizes the projected change in total annual precipitation compared to the 1990-2000 baseline period.

``` r library(CAVAanalytics)

1st step

remote.data <- load_data(country = "Sudan", variable="pr", years.hist=1990:2000, years.proj=2020:2030, path.to.data = "CORDEX-CORE", aggr.m="sum", domain="AFR-22")

2nd step

sudanccs <- climatechange_signal(remote.data, season=list(1:12), bias.correction = F)

3rd step

plotting(sudanccs, ensemble=FALSE, plottitles = "Precipitation change (mm)", palette=IPCCpalette(type = "pr", divergent = T), legendrange = c(-550,550)) ```

| Rplot01 | |:-------------------------------------------------------------------------------------------------------------------:| | Projected change in total annual precipitation compared to the 1990-2000 baseline period in Sudan |

Installation options

Depending on your preferences and setup, CAVAanalytics can be installed in the following ways:

1) Locally

If you are new to climate4R, You need to first install rJava. This installation can be problematic. Follow the instructions below

Windows

Installing rJava in Windows

Linux and macOS

Installing rJava in Linux and macOS

If the installation of rJava is successful, you should be able to load the library from Rstudio and you can now installed CAVAanalytics.

```

Step 1: Ensure rJava is installed and working

if (!requireNamespace("rJava", quietly = TRUE)) { install.packages("rJava") } library(rJava) # Verify no errors here

Step 2: Install pak (if not already installed)

if (!requireNamespace("pak", quietly = TRUE)) { install.packages("pak") }

Step 3: Install all required packages from GitHub using pak

requiredpackages <- c( "SantanderMetGroup/loadeR.java", "SantanderMetGroup/climate4R.UDG", "SantanderMetGroup/loadeR", "SantanderMetGroup/transformeR", "SantanderMetGroup/downscaleR", "Risk-Team/CAVAanalytics" ) pak::pkginstall(required_packages) ```

2) Docker

The Docker image is available at Docker.io, rso9192/cava. This docker image is built on top of rocker/rstudio

Linux

Open the terminal

```

if not already installed

sudo apt-get install snapd

if not already installed

sudo snap install docker

sudo docker pull docker.io/rso9192/cava:version3.3.2

sudo docker run --rm \ -p 8888:8787 \ -e PASSWORD=password \ -v /path/to/local/directory:/home \ rso9192/cava:version3.3.2

``` Replace /path/to/local/directory with the local directory on your host machine where you want to save your plots or data. For example, you can create a folder on your Desktop called CAVA_results. Then, you would run the above command as:

sudo docker run --rm \ -p 8888:8787 \ -e PASSWORD=password \ -v /home/Desktop/CAVA_results:/home \ rso9192/cava:version3.3.2

Now open your favorite browser and type http://localhost:8888/. You should see a login page: enter the username "rstudio" and password "password" to login and that's it! You can now use CAVAanalytics through Rstudio server.

Windows

If you are using Windows, you can install Docker Desktop first. Note that Docker Desktop would require the installation of WSL (Windows Subsystem for Linux). To do that, open a Command Prompt (as administrator) and run

``` wsl --install

``` This will instal the Windows Subsystem for Linux in your computer. Then start the Docker app and open an ubuntu terminal and run

``` sudo docker pull docker.io/rso9192/cava:version3.3.2

ignore the messages about login

``` Now run your image as below. Remember to replace /path/to/local/directory with the local directory on your host machine where you want to save your plots or data. For example, you can create a folder on your Desktop called CAVA_results. Then, you could run the above command as:

sudo docker run --rm \ -p 8888:8787 \ -e PASSWORD=password \ -v /mnt/c/Users/my_username/Desktop/CAVA_results:/home \ rso9192/cava:version3.3.2

Now open your favorite browser and type http://localhost:8888/. You should see a login page: enter the username "rstudio" and password "password" to login and that's it! You can now use CAVAanalytics through Rstudio server.

Mac

If you are using a Mac, you first need to install Docker desktop for Mac.

Then open a terminal and while Docker Desktop is open, run:

sudo docker pull docker.io/rso9192/cava:version3.3.2

At this point, you can run the Docker image with the below comand.

sudo docker run --rm \ -p 8888:8787 \ -e PASSWORD=password \ -v /path/to/local/directory:/home \ rso9192/cava:version3.3.2 Remember to replace /path/to/local/directory with the local directory on your host machine where you want to save your plots or data. Now open your favorite browser and type http://localhost:8888/. You should see a login page: enter the username "rstudio" and password "password" to login and that's it! You can now use CAVAanalytics through Rstudio server.

Python

Firstly, why Python?

While CAVAanalytics was developed using R packages like climate4R and tidyverse to prioritize result visualization, R lacks the computational efficiency of Python, particularly for handling large climate datasets. Python supports out-of-memory parallel computation for arrays through the integration ofxarray and dask, a feature absent in R. Consequently, CAVAanalytics relies heavily on in-memory (RAM) processing, which limits its ability to efficiently analyze large-scale geographical areas, such as entire CORDEX domains. This limitation arises because such analyses demand substantial RAM resources. However, CAVAanalytics was primarily designed for country-level assessments rather than extensive climate data analyses. (check out the memory-efficient functions available from CAVAanalytics though)

For users interested in accessing gridded climate projections more efficiently, cavapy is recommended. Cavapy focuses on data retrieval in Python, whereas CAVAanalytics offers a broader suite of tools for processing and visualization.

Contributions

If you would like to contribute to this project, you are welcome to fork this repository and submit your contribution. If you liked CAVAanalytics, please remember to add a star!

Issues

You can report issues here

Owner

  • Name: Risk Team
  • Login: Risk-Team
  • Kind: organization
  • Location: Italy

Free open source tools for climate change impact assessments

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: CAVAanalytics
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Riccardo
    family-names: Soldan
    email: riccardosoldan@hotmail.it
    orcid: 'https://orcid.org/0000-0003-2583-5840'
abstract: >-
  Framework for processing, analysing and visualizing
  multi-model ensembles with remote access to
  state-of-the-art climate models and reanalysis datasets
license: GPL-3.0

GitHub Events

Total
  • Create event: 4
  • Release event: 8
  • Issues event: 8
  • Watch event: 4
  • Issue comment event: 3
  • Push event: 36
  • Pull request event: 2
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 8
  • Issues event: 8
  • Watch event: 4
  • Issue comment event: 3
  • Push event: 36
  • Pull request event: 2
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 546
  • Total Committers: 2
  • Avg Commits per committer: 273.0
  • Development Distribution Score (DDS): 0.37
Past Year
  • Commits: 477
  • Committers: 2
  • Avg Commits per committer: 238.5
  • Development Distribution Score (DDS): 0.423
Top Committers
Name Email Commits
Riccardo Soldan 4****2 344
Riccardo Soldan r****n@h****t 202
Committer Domains (Top 20 + Academic)

Dependencies

DESCRIPTION cran
  • loadeR * depends
  • RColorBrewer * imports
  • climate4R.UDG * imports
  • climate4R.indices * imports
  • downscaleR * imports
  • dplyr * imports
  • furrr * imports
  • ggplot2 * imports
  • glue * imports
  • nlme * imports
  • purrr * imports
  • raster * imports
  • rnaturalearth * imports
  • rnaturalearthdata * imports
  • sp * imports
  • stringr * imports
  • tidyr * imports
  • transformeR * imports