Changelog#
4.1.0#
Release date: 2024-02-14
Dependency Changes#
Added:
pyproj>=3.5numexpr>=2.9
Updated:
contextily>=1.3 → >=1.5dask>=2023 → >=2024numba>=0.57 → >=0.59pandas>=2.1 → >=2.1,<2.2pint>=0.22 → >=0.23scikit-learn>=1.3 → >=1.4scipy>=1.11 → >=1.12sparse>=0.14 → >=0.15xarray>=2023.8 → >=2024.1overpy=0.6 → =0.7peewee=3.16.3 → =3.17.1
Removed:
proj(in favor ofpyproj)
Added#
Convenience method
api_client.Client.get_dataset_file, combiningget_dataset_infoanddownload_dataset, returning a single file objet. #821Read and Write methods to and from csv files for the
DiscRatesclass. #818Add
CalcDeltaClimateto unsequa module to allow uncertainty and sensitivity analysis of impact change calculations #844Add function
safe_dividein util which handles division by zero and NaN values in the numerator or denominator #844Add reset_frequency option for the impact.select() function. #847
Changed#
Update Developer and Installation Guides for easier accessibility by new developers. 808
Add
shapesargument togeo_im_from_arrayto allow flexible turning on/off of plotting coastline inplot_intensity. #805Update
CONTRIBUTING.mdto better explain types of contributions to this repository #797The default tile layer in Exposures maps is not Stamen Terrain anymore, but CartoDB Positron. Affected methods are
climada.engine.Impact.plot_basemap_eai_exposure,climada.engine.Impact.plot_basemap_impact_exposureandclimada.entity.Exposures.plot_basemap. #798Recommend using Mamba instead of Conda for installing CLIMADA #809
Hazard.from_xarray_rasternow allows arbitrary values as ‘event’ coordinates #837climada.test.get_test_filenow compares the version of the requested test dataset with the version of climada itself and selects the most appropriate dataset. In this way a test file can be updated without the need of changing the code of the unittest. #822Explicitly require
pyprojinstead ofproj(the latter is now implicitly required) #845
Fixed#
Hazard.from_xarray_rasternow stores strings as default values forHazard.event_name#795Fix the dist_approx util function when used with method=”geosphere” and log=True and points that are very close. #792
climada.util.yearsets.sample_from_poisson: fix a bug (#819) and inconsistency that occurs when lambda events per year (lam) are set to 1. [#823]In the TropCyclone class in the Holland model 2008 and 2010 implementation, a doublecounting of translational velocity is removed #833
climada.util.test.test_financeandclimada.test.test_engineupdated to recent input data from worldbank #841Set
nodefaultsin Conda environment specs becausedefaultsare not compatible with conda-forge #845Avoid redundant calls to
np.uniqueinImpact.impact_at_reg#848
4.0.1#
Release date: 2023-09-27
Dependency Changes#
Added:
matplotlib-baseNone → >=3.8
Changed:
geopandas>=0.13 → >=0.14pandas>=1.5,<2.0 → >=2.1
Removed:
matplotlib>=3.7
Changed#
Rearranged file-system structure:
datadirectory moved intoclimadapackage directory. #781
Fixed#
climada.util.coordinates.get_country_codebug, occurring with non-standard longitudinal coordinates around the anti-meridian. #770
4.0.0#
Release date: 2023-09-01
Dependency Updates#
Added:
Changed:
cartopy>=0.20.0,<0.20.3 → >=0.21cfgrib>=0.9.7,<0.9.10 → =0.9.9contextily>=1.0 → >=1.3dask>=2.25 → >=2023eccodes[auto] → =2.27gdal!=3.4.1 → >=3.6geopandas>=0.8 → >=0.13h5py>=2.10 → >=3.8haversine>=2.3 → >=2.8matplotlib>=3.2,< 3.6 → >=3.7netcdf4>=1.5 → >=1.6numba>=0.51,!=0.55.0 → >=0.57openpyxl>=3.0 → >=3.1pandas-datareader>=0.9 → >=0.10pathos>=0.2 → >=0.3pint>=0.15 → >=0.22proj!=9.0.0 → >=9.1pycountry>=20.7 → >=22.3pytables>=3.6 → >=3.7rasterio>=1.2.7,<1.3 → >=1.3requests>=2.24 → >=2.31salib>=1.3.0 → >=1.4scikit-learn>=1.0 → >=1.2scipy>=1.6 → >=1.10sparse>=0.13 → >=0.14statsmodels>=0.11 → >=0.14tabulate>=0.8 → >=0.9tqdm>=4.48 → >=4.65xarray>=0.13 → >=2023.5xlrd>=1.2 → >=2.0xlsxwriter>=1.3 → >=3.1
Removed:
Added#
Impact.impact_at_regmethod for aggregating impacts per country or custom region #642Impact.match_centroidsconvenience method for matching (hazard) centroids to impact objects #602climada.util.coordinates.match_centroidsmethod for matching (hazard) centroids to GeoDataFrames #602‘Extra’ requirements
doc,test, anddevfor Python package #712Added method
Exposures.centroids_total_valueto replace the functionality ofExposures.affected_total_value. This method is temporary and deprecated. #702New method
climada.util.api_client.Client.purge_cache: utility function to remove outdated files from the local file system to free disk space. (#737)New attribute
climada.hazard.Hazard.haz_type: used for assigning impacts to hazards. In previous versions this information was stored in the now removedclimada.hazard.tag.Tagclass. #736New attribute
climada.entity.exposures.Exposures.description: used for setting the default title in plots from plotting mathodsplot_hexbinandplot_scatter. In previous versions this information was stored in the deprecatedclimada.entity.tag.Tagclass. #756Added advanced examples in unsequa tutorial for coupled input variables and for handling efficiently the loading of multiple large files #766
Changed#
Improved error messages from
climada.CONFIGin case of missing configuration values #670Refactored
Exposure.assign_centroidsusing a new util functionu_coord.match_centroids#602Renamed
climada.util.coordinate.assign_grid_pointstomatch_grid_pointsandclimada.util.coordinates.assign_coordinatestomatch_coordinates#602Modified the method to disaggregate lines in the
lines_polys_handlerutility module in order to better conserve the total length of all lines on average #679.Added test for non-default impact function id in the
lines_polys_handler#676The sigmoid and step impact functions now require the user to define the hazard type. #675
Improved error messages produced by
ImpactCalc.impact()in case hazard type is not found in exposures/impf_set #691Tests with long runtime were moved to integration tests in
climada/test#709Use
myst-nbfor parsing Jupyter Notebooks for the documentation instead ofnbsphinx#712Installation guide now recommends installing CLIMADA directly via
conda install#714Exposures.affected_total_valuenow takes a hazard intensity threshold as argument. Affected values are only those for which at least one event exceeds the threshold. (previously, all exposures points with an assigned centroid were considered affected). By default the centroids are reassigned. #702 #730Add option to pass region ID to
LitPop.from_shape#720Slightly improved performance on
LitPop-internal computations #720Use
pytestfor executing tests #726Users can opt-out of the climada specific logging definitions and freely configure logging to their will, by setting the config value
logging.managedtofalse. #724Add option to read additional variables from IBTrACS when using
TCTracks.from_ibtracs_netcdf#728New file format for
TCTracksI/O with better performance. This change is not backwards compatible: If you storedTCTracksobjects withTCTracks.write_hdf5, reload the original data and store them again. #735Add option to load only a subset when reading TC tracks using
TCTracks.from_simulations_emanuel. #741Set
save_mattoFalsein theunsequamodule #746list_dataset_infosfromclimada.util.api_client.Client: thepropertiesargument, adict, can now haveNoneas values. Before, only strings and lists of strings were allowed. Setting a particular property toNonetriggers a search for datasets where this property is not assigned. #752Reduce memory requirements of
TropCyclone.from_tracks#749Support for different wind speed and pressure units in
TCTrackswhen runningTropCyclone.from_tracks#749The title of plots created by the
Exposuresmethodsplot_hexbinandplot_scattercan be set as a method argument. #756Changed the parallel package from Pathos to Multiproess in the unsequa module #763
Updated installation instructions to use conda for core and petals #776
Fixed#
util.lines_polys_handlersolve polygon disaggregation issue in metre-based projection #666Problem with
pyproj.CRSasImpactattribute, #706. Now CRS is always stored asstrin WKT format.Correctly handle assertion errors in
Centroids.values_from_vector_filesand fix the associated test #768Text in
Forecastclass plots can now be adjusted #769Impact.impact_at_regnow supports impact matrices where all entries are zero #773upgrade pathos 0.3.0 -> 0.3.1 issue #761 (for unsequa module #763)
Fix bugs with pandas 2.0 (iteritems -> items, append -> concat) (fix issue #700 for unsequa module) #763)
Remove matplotlib styles in unsequa module (fixes issue #758) #763
Deprecated#
Centroids.from_geodataframeandCentroids.from_pix_bounds#721Impact.tot_value: UseExposures.affected_total_valueto compute the total value affected by a hazard intensity above a custom threshold #702climada.entity.tag.Tag. #779. The class is not used anymore but had to be kept for reading Exposures HDF5 files that were created with previous versions of CLIMADA.
Removed#
Centroids.set_raster_from_pix_bounds#721requirements/env_developer.ymlenvironment specs. Use ‘extra’ requirements when installing the Python package instead #712The
climada.entitity.tag.Tagclass, together withImpact.tag,Exposures.tag,ImpactFuncSet.tag,MeasuresSet.tag,Hazard.tagattributes. This may break backwards-compatibility with respect to the files written and read by theImpactclass. #736, #743, #753, #754, #756, #767, #779impact.tot_valueattribute removed from unsequa module #763
v3.3.2#
Release date: 2023-03-02
Dependency Updates#
Removed:
pybufrkit#662
v3.3.1#
Release date: 2023-02-27
Description#
Patch-relaese with altered base config file so that the basic installation test passes.
Changed#
The base config file
climada/conf/climada.confhas an entry forCONFIG.hazard.test_data.
v3.3.0#
Release date: 2023-02-17
Dependency Changes#
new:
sparse (>=0.13) for #578
updated:
python 3.9 - python 3.8 will still work, but python 3.9 is now the default version for installing climada (#614)
contextily >=1.0 (no longer restricted to <1.2 as
contextily.sourceshas been replaced in #517)cartopy >=0.20.0,<0.20.3 (>=0.20.3 has an issue with geographic crs in plots)
matplotlib >=3.2,<3.6 (3.6 depends on cartopy 0.21)
Added#
climada.hazard.Hazard.from_xarray_raster(_file)class methods for readingHazardobjects from anxarray.Dataset, or from a file that can be read byxarray. #507, #589, #652.climada.engine.impact.Impactobjects have new methodsfrom_hdf5andwrite_hdf5for reading their data from, and writing it to, H5 files #606climada.engine.impact.Impactobjects has a new class methodconcatfor concatenation of impacts based on the same exposures #529.climada.engine.impact_calc: this module was separated fromclimada.engine.impactand contains the code that dealing with impact calculation while the latter focuses on impact data #560.The classes
Hazard,ImpactandImpactFreqCurvehave a novel attributefrequency_unit. Before it was implicitly set to annual, now it can be specified and accordingly displayed in plots. #532.CONTRIBUTING.md #518.
Changelog based on the CLIMADA release overview and https://keepachangelog.com template #626.
Changed#
The
Impactcalculation underwent a major refactoring. Now the suggested way to run an impact calculation is byclimada.engine.impact_calc.ImpactCalc.impact(). #436, #527.Addition of uncertainty helper methods variables: list of hazard, list of impact function sets, and hazard fraction. This allows to pre-compute hazards or impact function sets from different sources from which one can then sample uniformly. #513
Full initialization of most Climada objects is now possible (and suggested!) in one step, by simply calling the constructor with all arguments required for coherently filling the object with data: #560, #553, #550, #564, #563, #565, #573, #569, #570, #574, #559, #571, #549, #567, #568, #562.
It is possible now to set the
fractionof aHazardobject toNonewhich will have the same effect as if it were1everywhere. This saves a lot of memory and calculation time, #541.The online documentation has been completely overhauled: #597, #600, #609, #620, #615, #617, #622, #656.
Updated installation instructions #644
Fixed#
Deprecated#
climada.enginge.impact.Impact.calc()andclimada.enginge.impact.Impact.calc_impact_yearset()#436.