********************** What's New ********************** v0.6.0 ------ Enhancements ~~~~~~~~~~~~ * Removed deprecated setuptools in favor for importlib by @maxmargraf in https://github.com/pycomlink/pycomlink/pull/179 * Clarified cnn-based wet-dry classification docstrings by jpolz in https://github.com/pycomlink/pycomlink/pull/180 * Updated default value and docstring for a part of the nearby rainfall retrival by @maxmargraf in https://github.com/pycomlink/pycomlink/pull/181 Maintenance ~~~~~~~~~~~~ * Dropped support for python 3.9. in https://github.com/pycomlink/pycomlink/pull/181 Bug fixes ~~~~~~~~~ * added a correct reshape option for cnn-based wet-dry classification by @jpolz in https://github.com/pycomlink/pycomlink/pull/176 v0.5.0 ------ Enhancements ~~~~~~~~~~~~ * Climatological variogram model parameters by @overeem11 in https://github.com/pycomlink/pycomlink/pull/166 * Integrate code for pytorch inference and dynamically load model from URL by @xkalet07 in https://github.com/pycomlink/pycomlink/pull/164 * Integrate code for TensorFlow inference and dynamically load model from URL by @toufikshit in https://github.com/pycomlink/pycomlink/pull/163 Maintenance ~~~~~~~~~~~~ * Extend supported Python versions to 3.11, 3.12 and 3.13 by @cchwala in https://github.com/pycomlink/pycomlink/pull/167 * Add notebooks to docs by @cchwala in https://github.com/pycomlink/pycomlink/pull/142 Bug fixes ~~~~~~~~~ v0.4.1 ------- Enhancements ~~~~~~~~~~~~ Maintenance ~~~~~~~~~~~~ Bug fixes ~~~~~~~~~ * added MLP model files to MANIFEST.in so that they are available in pypi package v0.4.0 ------- The main change here is that we dropped tensorflow as dependency and removed all related code because there were complicated issues with using outdated tensorflow code. This release should hopefully be easiert to install now because of easiert to resolve dependencies. Enhancements ~~~~~~~~~~~~ * Add MLP-based rainfall detection with scikit-learn backend (by eoydvin #156) Maintenance ~~~~~~~~~~~~ * switch from m2r2 to myst-parser for readthedocs (by cchwala #155) * Add poligrain as dependency and remove overlapping code (by nblettner #153) * Remove tensorflow as dependency (by nblettner #151) Bug fixes ~~~~~~~~~ v0.3.10 ------- Enhancements ~~~~~~~~~~~~ * added more flexible handling of input for `a_b()` function (by maxmargraf in PR #141) * updaetd WAA example notebook with WAA example with method from Pastorek (by cchwala in PR #136) Maintenance ~~~~~~~~~~~~ * Refactoring of nearby-link approach code (by maxmargraf in PR #139) Bug fixes ~~~~~~~~~ * Fixed some errors in the nearby-link approach code (by maxmargraf in PR #139) * Fixed bug in `read_cmlh5_file_to_xarray()` (by maxmargraf in PR #138) v0.3.9 ------ Enhancements ~~~~~~~~~~~~ * Added IDW and Kriging interpolation comparison noteboook (by cchwala in PR #132) Maintenance ~~~~~~~~~~~~ * Updated README with current list of example notebooks * Removed pinning of scipy and pandas versions (by cchwala in PR #132) Bug fixes ~~~~~~~~~ * Added test for Kriging and fixed wrong naming of IDW test (by cchwala in PR #132) v0.3.8 ------ Enhancements ~~~~~~~~~~~~ * Extended implementation of "nearby wet-dry approach" and added some fixes and more test (by maxmargraf in PR #129) v0.3.7 ------ Maintenance ~~~~~~~~~~~~ * Change absolute imports of pycomlink to relative imports (by cchwala in PR #119) * Drop Python 3.7 and Python 3.8 support in CI (by cchwala in PR #120) * Replaced depreciated np.complex and np.bool (by maxmargraf in PR #122, #123 and #124) Bug fixes ~~~~~~~~~ * Fix problems related to missing pol argument in example workflow (by cchwala in PR #116) v0.3.6 ------ Enhancements ~~~~~~~~~~~~ * Implemented "nearby wet-dry approach" from RAINLINK (by maxmargraf in PR #113) * Updated ITU recommendation for k-R power law to version from 2005 (by nblettner in PR #110) Maintenance ~~~~~~~~~~~~ * remove parameters from model.compile() in wet-dry CNN method (by cchwala in PR #112) v0.3.5 ------ Enhancements ~~~~~~~~~~~~ * Added `bottelneck` as dependency to allow `max_gap` keyword in `xarray.DataArray.interpolate` (by maxmargraf in PR #99) * Added WAA model after Pastorek et al. 2021 (by nblettern via direct commit to master branch) * Added function and example notebook for blackout gap detection (by maxmargraf in PR #101) * Refactore and extended grid intersction code, now using sparse matrices (by cchwala in PR #106) Maintenance ~~~~~~~~~~~~ * Pinned scipy to < 1.9 because of problem in pykrige Bug fixes ~~~~~~~~~ * Fixed problems in IDW code (by cchwala in PR #105) v0.3.4 ------ Bug fixes ~~~~~~~~~ * Reference files are now included in conda-forge build (PR #97) Maintenance ~~~~~~~~~~~~ * `tensorflow-gpu` dependency (which seems to be obsolete) was removed from requirements (PR #97) v0.3.3 ------ Enhancements ~~~~~~~~~~~~ * Added xarray-wrapper for WAA Leijnse and updated WAA example notebook (by cchwala in PR #82) * Add CNN-based anomaly detection for CML data (by Glawion in PR#87) * xarray wrapper now uses `xr.apply_ufunc` to apply processing functions along time dimension, instead of looping over the `channel_id` dimension. This should be a lot more flexible. (by cchwala in PR #89) Bug fixes ~~~~~~~~~ * Fixed problem with xarray_wrapper for calc_R_from_A (by cchwala in PR #89) Maintenance ~~~~~~~~~~~~ * Move CI from Travis to Github Actions (by maxmargraf in PR #85) * Add readthedocs and zenodo badge to README (by maxmargraaf in PR #85) v0.3.2 ------ * minor fix to include example NetCDF data in source distribution (by cchwala in PR #84) v0.3.1 ------ * small update to how the dependencies are defined * testing for Python verions 3.7, 3.8 and 3.9 v0.3.0 ------ Backward Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * The old API using `pycomlink.core.Comlink` objects has been removed. All processing functions now work with `xarray.DataArrays` or pure `numpy.ndarray`. Most of the original functions and notebooks from v0.2.x do not work anymore, but the basic parts have already been refactored so that the full processing chain, from raw CML data to rainfall fields works in v0.3.0. Enhancements ~~~~~~~~~~~~ * Added new example notebook for basic processing workflow (by cchwala in PR #77) * Added new example data (by maxmargraf in PR #75) * started docs from scratch with working integration to readthedocs (by jpolz in PR #74) * read data from cmlh5 files to `xarray.Dataset` (by maxmargraf in PR #68) * Added functions to perform wet-dry classification with trained CNN (by jpolz in PR #67) * applied black formatting to codebase (by nblettner in PR #66) * make repo runnable via mybinder (by jpolz in PR #64) v0.2.4 ------ * Added WAA calculation and test for method proposed by Leijnse et al 2008 * Added function to calculate WAA directly from A_obs for Leijnse et al 2008 method. * Added WAA example notebook * Added function to derive attenuation value `A_min_max` from min/max CML measurements (these measurements periodically provide the min and max value over a defined time period, typically 15 minutes). (by DanSereb in PR #37 and #45) * Added function to derive rain rate `R` from `A_min_max` (by DanSereb in PR #37 and #45) * Added example notebook with simple comparison of processing of "instantaneous" and "min-max" CML data (by DanSereb in PR #37 and #45) v0.2.3 ------ Bug fixes ~~~~~~~~~ * Added missing kwarg for polarization in `calc_A` in `Processor`. Before, `calc_A` always used the default polarization for the A-R relation which leads to rain rate overestimation! * Changed reference values in test for Ordinary Kriging interpolator, because `pykrige v1.4.0` seems to produce slightly different results than `v1.3.1` v0.2.2 ------ Enhancements ~~~~~~~~~~~~ * Codebase is Python 3 now, keeping backwards compatibility to Python 2.7 via using the `future` module. * min-max CML data can now be written to and read from cmlh5. Standard column names are `tx_min`, `tx_max`, `rx_min` and `rx_max`. When reading from cmlh5 without specifying dedicated column names, the function tries out the standard column names for min-max and instantaneous. If it does not find any match it will print an error message. * Added example file with min-max data for 75 CMLs. This dataset is derived from the existing example dataset of 75 CMLs with instantaneous measurements. * Added example notebook comparing min-max and instantaneous CML data * Added TravisCI and Codecov and increased the test coverage a little * Extended functionality for `append_data`. A maximum length or maximum allowed age for the data can be specified * More options for interpolation. Added option to pass `max_distance` for IDW and Added option for resampling in `Interpolator` (instead of just doing hourly means of variable `R`) * Interpolated fields are now always transformed into an `xarray.Dataset`. The `Dataset` is also stored as attribute if the `Interpolator` object * Improved grid intersection calculation in validator Bug fixes ~~~~~~~~~ * `t_start` and `t_stop` have not been taken into account in the main interpolation loop * Fix: Catching `LinAlgError` in Kriging interpolation v0.2.1 ------ Minor update * removing geopandas dependecy * update MANIFEST.in to include notebooks and example data in pypi releases v0.2.0 ------ Backward Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Complete rewrite of interpolator classes. The old interpolator class `spatial.interpol.Interpolator()` is depreciated. New interpolator base classes for IDW and Kriging have been added together with a convenience inteprolator for CML data. Usage is showcased in a new example notebook. * Some old functionality has moved to separate files. * resampling to a given `DatetimeIndex` is now availabel in `util.temporal` and will be removed from `validatoin.validator.Validation()` class soon. * calculation of wet-dry error is now in module `validation.stats` * calculation of spatial coverage with CMLs was moved to function `spatial.coverage.calc_coverage_mask()`. * error metric for performance evaluation of wet-dry classification is now in `validation.stats`. Errors are now returned with meaningful names as namedtuples. `validation.validator.calc_wet_dry_error()` is depreciated now. Enhancements ~~~~~~~~~~~~ * Read and write to and from multiple cmlh5 files (#12) * Improved `NaN` handling in `wet` indicator for baseline determination * Speed up of KDtreeIDW using numba and by reusing previously calculated variables * Added example notebook for baseline determination * Added data set of 75 CMLs (with fake locations) * Added example notebook to show usage of new interpolator classes * Added decorator to mark depreciated code Bug fixes ~~~~~~~~~ * `setup.py` now reads all packages subdirectories correctly * Force integers for shape in `nans` helper function in `stft` module * Always use first value of `dry_stop` timestamp list in `stft` module. The old code did not work anyway for a list with length = 1 and would have failed if `dry_stop` would have been a scalar value. Now we assume that we always get a list of values (which should be true for `mlab.find`. v0.1.1 ------ No info for older version...