Skip to content

Releases: pySTEPS/pysteps

pysteps v1.3.1

18 May 05:53
Compare
Choose a tag to compare

Summary of main changes and new features:

  • Add an interface to the feature.blob_* methods from scikit-image. A blob is defined as a local maximum of a Gaussian-filtered image. This new utils.images.blob_detection feature detection method can be used in the motion.lucaskanade module to track cells in radar data.
  • Fix installation errors in windows which caused permissions errors in datasets.download_pysteps_data and datasets.download_mrms_data functions.
  • Fix bug with the precipitation mask of nowcasts.anvil. This caused the method to produce too much rain in non-rainy areas when rain rate was used as input.
  • Run Black on the whole source code for consistent, reproducible code formatting.
  • Add pre-commit hooks as part of the development workflow.
  • Improve documentation.

Pysteps v1.3.1 changelog:

  • dataset
    • Fix permissions errors in download_pysteps_data and download_mrms_data functions
    • Update installation instructions for Windows systems
  • motion.lucaskanade.dense_lucaskanade
    • Add option to use blob_detection as feature detection method
  • nowcasts.anvil
    • Implement precipitation mask when rainrate is set to None
    • Minor changes to default values, masking and thresholding
  • utils.images
    • Add blob_detection method

pysteps v1.3

22 Apr 06:30
2eaed83
Compare
Choose a tag to compare

Summary of main changes and new features:

  • Code formatting and bug fixes.
  • Improve documentation and test coverage.
  • New deterministic nowcasting module nowcasts.anvil implementing the ANVIL method published in Pulkkinen et al. (2020): Nowcasting of Convective Rainfall Using Volumetric Radar Observations. Learn how to use it in this example script.
  • New importer io.importers.import_mrms_grib for the for NSSL’s Multi-Radar/Multi-Sensor System (MRMS).
  • New dataset module to facilitate downloading the pysteps example data and create the configuration file.
  • New interactive notebook my_first_nowcast.ipynb available on Google Colab.

Pysteps v1.3.0 changelog:

  • dataset
    • add function download_pysteps_data to download the example data from the pysteps-data GitHub repo
    • add function create_default_pystepsrc to create a default configuration file pointing to the local pysteps data directory
    • add helper functions to easily load the example data for each data source (fmi, mch, opera, etc)
  • io.importers:
    • add function import_mrms_grib to import NSSL’s Multi-Radar/Multi-Sensor System (MRMS) grib data
    • change spatial units from meters to kilometers in import_knmi_hdf5 and fix definition of y1and y2 parameters in the metadata.
    • allow all the importers to specify the output array data type (dtype keyword) and fill invalid data with a predefined value (fillna keyword)
    • add function to safely and consistently get the rain/no rain threshold
  • motion.constant
    • constantmethod returns two-dimensional advection field instead of one motion vector
  • motion.lucaskanade
    • fix bug in dense_lucaskanade handling of MaskedArrays inputs. Previously, the method ignored the input mask, unless the masked values where set as nans
    • require ndarrays or MaskedArrays as input data to dense_lucaskanade
  • motion.vet
    • fix bug in vet keywords handling. Previously, the method argument passed to the minimizer was ignored
  • nowcasts
    • add deterministic nowcasting module nowcasts.anvil
  • utils.dimensions
    • include option trim in aggregate_fields function to allow aggregation along axes that are not perfectly divisible by a given window
  • utils.images
    • rename ShiTomasi_detection function to lowercase shitomasi_detection to comply with PEP8
    • change default value for the buffer_mask argument in the shitomasi_detection function from 0 to 5 to provide a minimum buffer to no-data in the motion.lucaskanade.dense_lucaskanade method
  • utils.interpolate
    • change default value for the epsilon argument in the rbfinterp2d function from 5 to 10 to provide a more localized interpolation of motion vectors in the motion.lucaskanade.dense_lucaskanade method

Contributors to this release:
@aperezhortal @dnerini @pulkkins @RubenImhoff

pysteps v1.2

19 Feb 08:29
Compare
Choose a tag to compare

Summary of main changes and new features:

  • Code formatting and bug fixes
  • Improve documentation and test coverage
  • Implementation of advanced ARI/VARI time series models, including options for localization and differencing, as well as the estimation of the parameters by OLS
  • Implementation of S-PROG and STEPS in the spectral domain for improved performance
  • New importer for EUMETSAT SAF CRRI data
  • Fix error during gcc installation in travis-ci for osx
  • Compatibility fixes for Numpy 1.18 and pyproj 2.2.0
  • Remove Basemap as optional dependency

Pysteps v1.2.0 changelog:

  • cascade.decomposition:
    • add a method for recomposing the cascade
    • add option to normalize the cascade levels
    • make computation of the cascade level statistics (mean and std) optional
    • add options to choose the input and output domains: spatial or spectral
    • in addition, implement option to use compact output in the spectral domain
    • use lowercase names for the field and mask arguments
  • cascade.interface:
    • modify get_method so that two functions are returned: one for decomposing and one for recomposing the cascade
  • extrapolation.semilagrangian:
    • add option to specify arbitrary time steps
  • motion.lucaskanade:
    • fix error when only one sparse vector is found
  • noise.fftgenerators:
    • add option to choose the output domain for the noise: spatial or spectral
  • nowcasts.sprog and nowcasts.steps:
    • add option to choose the domain for the computations: spatial or spectral
  • nowcasts.utils:
    • remove computation of mean and std from stack_cascades
    • use utils.tapering module to compute window functions
  • io.importers
    • add import_saf_crri importer
  • timeseries.autoregression:
    • add VAR models
    • add OLS estimation of AR/VAR parameters
    • add localized estimation of AR/VAR parameters
    • add differencing option to compute integrated AR/VAR methods
    • use lowercase names for variables and revise docstrings
  • timeseries.correlation:
    • add options for localization and differencing
    • add computation of correlation coefficients in the spectral domain
    • add method for the estimation of multivariate temporal autocorrelation
  • travis:
    • run brew update-reset and brew update before installing gcc-9
  • utils.spectral:
    • add methods for computing mean, standard deviation and correlation coefficient in the spectral domain
    • add option to normalize the RAPSD
  • visualizations.basemaps
    • add future deprecation warning for Basemap dependency

pysteps v1.1.1

24 Oct 07:59
Compare
Choose a tag to compare
  • Code formatting and bug fixes
  • Implement GeoTIFF exporter
  • Improve existing exporters
  • Add postprocessing method to compute the band-depth of an ensemble
  • Add method to merge verification objects
  • Modify LK default parameters to increase the number of corners to track
  • Improve documentation

pysteps v1.1

19 Aug 11:35
Compare
Choose a tag to compare
  • Code formatting and bug fixes
  • Refactor build system to adopt PEP517/518 standards
  • Automate pytests with tox
  • Add Proesmans optical flow method
  • Refactor Lucas-Kanade optical flow method
  • Fix bugs in vet function
  • Optimize vet function
  • Update io interface (odim_hdf5 -> opera_hdf5)
  • Add z-r parameters to MCH, FMI and KNMI importers
  • Implement FMI GeoTIFF importer
  • Add new scores:
    • Normalized MSE
    • Matthews correlation coefficient (MCC) score
    • F1 score (harmonic mean of precision and sensitivity)
  • Implement accumulation of FSS scores from multiple forecast/observation fields
  • Distinguish between type 1 and type 2 conditional biases
  • Improve documentation:
    • Release guidelines

pysteps 1.0.1

26 Jun 13:06
Compare
Choose a tag to compare

Changelog for version 1.0.1:

  • Bug fixes, code cleanups, and syntax improvements.
  • Improve documentation.
  • Implement max correlation approach for constant motion field estimation.
  • Implement new outlier detection in LK.
  • Implement new version of SSEPS nowcasting.
  • Increase code coverage.
  • Add example scripts and tutorials.

pysteps 1.0.0

07 Apr 20:15
Compare
Choose a tag to compare

Changelog for version 1.0.0:

  • Change pysteps license to the less restrictive BSD-3
  • Move documentation to Read the Docs (https://pysteps.readthedocs.io/)
  • Include a gallery of examples
  • Modify setup.py to explicitly link libraries in macOS
  • Include Travis CI and Codecov
  • Add test suites for interfaces, and the io and verification modules
  • Remove legacy config module
  • Add CONTRIBUTING.rst
  • Several docstring improvements
  • Add exporter for KINEROS2 Rainfall files (io.exporters module)
  • Add importer for MeteoSwiss AZC radar composites (io.importers module)
  • Add importer for KNMI HDF5 radar composites (io.importers module)
  • Add scripts for estimating velocity perturbator parameters
  • Add modules for deriving the auto-correlation function (ACF) and estimating precipitation lifetime
  • Implement a separate module nowcasts.sprog for S-PROG nowcasts
  • Add nowcasting module nowcasts.sseps, an experimental version of STEPS that allows for localization
  • Implement interfaces for initializing and calling different FFT methods
  • Rework of the extrapolation interface
  • Faster implementation of the rank histogram with bug fixes
  • Improve subplot handling in plot_precip_field
  • Add visualization of Fourier spectra
  • Rework interfaces for verification scores
  • Add support for MaskedArray in motion.dense_lucaskanade
  • Improve masking in nowcasts.steps module

pysteps 0.2

08 Jan 07:14
Compare
Choose a tag to compare

Change log since the previous release:

  • Bug fixes.
  • Performance and syntax improvements.
  • Improve documentation to several modules and methods.
  • Add the Variational Echo Tracking (VET) method from MAPLE to the motion module.
  • Replace the config module with a JSON pystepsrc configuration file.
  • More efficient computation of the FFT in the cascade decomposition and noise generation by using the real FFT instead of the complex FFT, i.e. rfft2/irfft2 instead of fft2/ifft2.
  • More sensible naming of several main modules: optflow -> motion, advection -> extrapolation and postproc -> postprocessing.
  • New utility methods to clip the domain by geographical coordinates.
  • New data transformation methods: normal quantile, square-root and logarithmic transformations.
  • New importer for MeteoSwiss' metranet data format.
  • New "shift and scale" post-processing method.
  • Implement the S-PROG method with probability matching.
  • New intensity-scale verification method.
  • New visualization methods: cartopy backend, exceedance probabilities and plotting motion fields on a map.
  • Support for Swiss projection when using cartopy.
  • New interface module for different FFT methods and allow the user to choose the method.
  • Fix incorrect separation into components when using the bps method for adding perturbations to the advection field.
  • Two different methods for adjusting the temporal autocorrelation coefficients in order to guarantee stationarity of the resulting AR(2) models.
  • Modify the STEPS method to have the same number of positional arguments as the other methods in the nowcasts module and reorganize the keyword arguments.
  • Move the deterministic S-PROG mask computation outside the stochastic part of the STEPS method to avoid repeated computations.

pysteps 0.1

17 Aug 08:04
Compare
Choose a tag to compare
pysteps 0.1 Pre-release
Pre-release

pysteps 0.1 is our first stable release. This beta version is being verified using radar data from the Finnish Meteorological Institute and MeteoSwiss.

Features included in pysteps 0.1:

  • Support for reading various composite radar image formats (netCDF, OPERA HDF, GIF, PGM).
  • Writing of the nowcast to netCDF following CF 1.7 conventions.
  • Optical flow methods to compute the radar echo motion fields (local and spectral approaches are available).
  • A semi-Lagrangian advection scheme to extrapolate the radar fields.
  • Spatial random field generators to create realistic correlated perturbation fields.
  • Autoregressive models to impose temporal auto-correlations.
  • Methods to generate deterministic and ensemble precipitation nowcasts.
  • Support for parallelization using Dask.
  • Scale-decomposition of precipitation fields based on the STEPS framework.
  • Verification of deterministic and spatial forecasts: RMSE, MAE, correlation, CSI, ETS, HSS, Fractions Skill Score, etc.
  • Verification of ensemble and probabilistic forecasts: reliability diagram, rank histograms, ROC curves, CRPS, ensemble spread-skill.
  • Utilities to convert, transform and aggregate precipitation fields.
  • Visualization methods to plot and animate radar rainfall fields, motion fields and ensemble nowcasts. Support for Basemap.
  • Example scripts to quickly introduce the users to the working of various modules.