Giter Site home page Giter Site logo

mpvginde / pysteps Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pysteps/pysteps

1.0 0.0 0.0 3.4 MB

Python framework for short-term ensemble prediction systems.

Home Page: https://pysteps.github.io/

License: BSD 3-Clause "New" or "Revised" License

Python 97.17% Cython 2.83%

pysteps's Introduction

pysteps - Python framework for short-term ensemble prediction systems

docs pysteps documentation My first nowcast pysteps example gallery
status Test pysteps Documentation Status Coverage Codacy Badge Check Black
package Latest github release Anaconda Cloud Latest PyPI version DOI
community GitHub contributors Conda downloads License

What is pysteps?

Pysteps is an open-source and community-driven Python library for probabilistic precipitation nowcasting, i.e. short-term ensemble prediction systems.

The aim of pysteps is to serve two different needs. The first is to provide a modular and well-documented framework for researchers interested in developing new methods for nowcasting and stochastic space-time simulation of precipitation. The second aim is to offer a highly configurable and easily accessible platform for practitioners ranging from weather forecasters to hydrologists.

The pysteps library supports standard input/output file formats and implements several optical flow methods as well as advanced stochastic generators to produce ensemble nowcasts. In addition, it includes tools for visualizing and post-processing the nowcasts and methods for deterministic, probabilistic, and neighbourhood forecast verification.

Quick start

Use pysteps to compute and plot a radar extrapolation nowcast in Google Colab with this interactive notebook.

Installation

The recommended way to install pysteps is with conda from the conda-forge channel:

$ conda install -c conda-forge pysteps

More details can be found in the installation guide.

Usage

Have a look at the gallery of examples to get a good overview of what pysteps can do.

For a more detailed description of all the available methods, check the API reference page.

Example data

A set of example radar data is available in a separate repository: pysteps-data. More information on how to download and install them is available here.

Contributions

We welcome contributions!

For feedback, suggestions for developments, and bug reports please use the dedicated issues page.

For more information, please read our contributors guidelines.

Reference publications

The overall library is described in

Pulkkinen, S., D. Nerini, A. Perez Hortal, C. Velasco-Forero, U. Germann, A. Seed, and L. Foresti, 2019: Pysteps: an open-source Python library for probabilistic precipitation nowcasting (v1.0). Geosci. Model Dev., 12 (10), 4185–4219, doi:10.5194/gmd-12-4185-2019.

While the more recent blending module is described in

Imhoff, R.O., L. De Cruz, W. Dewettinck, C.C. Brauer, R. Uijlenhoet, K-J. van Heeringen, C. Velasco-Forero, D. Nerini, M. Van Ginderachter, and A.H. Weerts, 2023: Scale-dependent blending of ensemble rainfall nowcasts and NWP in the open-source pysteps library. Q J R Meteorol Soc., 1-30, doi: 10.1002/qj.4461.

Contributors

https://contrib.rocks/image?repo=pySTEPS/pysteps

pysteps's People

Contributors

dnerini avatar pulkkins avatar aperezhortal avatar cvelascof avatar loforest avatar rubenimhoff avatar spulkkin avatar esmailghaemi avatar feldmann-m avatar mpvginde avatar chiara-arpae avatar pkars-fmi avatar dbkhout avatar codacy-badger avatar fangyh09 avatar ritvje avatar joep1999 avatar ladc avatar nathalierombeek avatar pkars avatar aitaten avatar albertocarpentieri avatar

Stargazers

 avatar

pysteps's Issues

Correct noise cascade initialisation

Task related to this pySTEPS issue: 332

Now, the all noise cascade levels are initialized to zero.
It is probably better to initialize the noise with the appropriate noise field as provided by the EPS term.

The noise cascade has holds 2 time levels of noise. Both time levels should be initialized with the same noise field. If not the overall power of the noise cascade level will not converge to the correct power.

Parallellized ensemble run seems to lose track of ensemble number and order

If I run an ensemble using multiple cores (so, dask will parallellize the ensemble members over the cores), it seems that the ensemble order is lost, resulting in weird transitions (due to noise from a different member that ends up in that member). See for instance (these are three 15-min instance in the forecast):
2023-08-17 08_37_39-P_fc in 202308160545_blended_nowcast_ensemble_newc
2023-08-17 08_38_00-P_fc in 202308160545_blended_nowcast_ensemble_newc

2023-08-17 08_38_07-P_fc in 202308160545_blended_nowcast_ensemble_newc

Or maybe even clearer:
MicrosoftTeams-image

Has any of you come across this and/or know how to fix it?

If I run on 1 core, this problem does not occur, so it gives the impression that this has to do with parallellizing using dask.

Prepare flooding cases suggested by Ricardo

The 10 flooding events that occurred in Antwerp as proposed by @ReinosoRadar:

  • 10/08/2014 ⬅ No appropriate NWP data
  • 13/08/2015 ⬅ No appropriate NWP data
  • 30/05/2016
  • 05/09/2018 ⬅ No appropriate NWP data
  • 09/02/2020
  • 17/06/2020
  • 16/08/2020
  • 08/02/2021 ⬅ No appropriate NWP data
  • 04/07/2021
  • 24/07/2021

We could check for sensitivity to:

  • number of members
  • number of NPW-models
  • number of lagged NWP-members
  • Window size of rolling-average for climatological skill
  • ?

Implement no-rain-radar + rain-nwp case

Task related to this pySTEPS issue 309

From the A. Seed comments as quoted by @ladc:

  • If QPE zero and NWP nonzero ➡ NWP provides the advection.
  • Set radar mean and variance and advection to zero
  • Use default power spectrum slopes (?) and the default auto-correlations set the rate of blending from zero rain to NWP forecasts through the calculations of nowcasting skill as a function of lead time and scale.

Add tests for no-rain combinations

Add tests for the different combinations of no rain in NWP, radar, and both.
@RubenImhoff could you pull the version in my hackaton branch and check if your case still works there? Thanks a lot!
I currently get errors for my tests (more specifically the decomposed precip still contains nans)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.