Release date: 2023-09-27
Added:
matplotlib-base
None → >=3.8
Changed:
geopandas
>=0.13 → >=0.14pandas
>=1.5,<2.0 → >=2.1
Removed:
matplotlib
>=3.7
- Rearranged file-system structure:
data
directory moved intoclimada
package directory. #781
climada.util.coordinates.get_country_code
bug, occurring with non-standard longitudinal coordinates around the anti-meridian. #770
Release date: 2023-09-01
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:
Impact.impact_at_reg
method for aggregating impacts per country or custom region #642Impact.match_centroids
convenience method for matching (hazard) centroids to impact objects #602climada.util.coordinates.match_centroids
method for matching (hazard) centroids to GeoDataFrames #602- 'Extra' requirements
doc
,test
, anddev
for Python package #712 - Added method
Exposures.centroids_total_value
to replace the functionality ofExposures.affected_total_value
. This method is temporary and deprecated. #702 - New 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.Tag
class. #736 - New attribute
climada.entity.exposures.Exposures.description
: used for setting the default title in plots from plotting mathodsplot_hexbin
andplot_scatter
. In previous versions this information was stored in the deprecatedclimada.entity.tag.Tag
class. #756 - Added advanced examples in unsequa tutorial for coupled input variables and for handling efficiently the loading of multiple large files #766
- Improved error messages from
climada.CONFIG
in case of missing configuration values #670 - Refactored
Exposure.assign_centroids
using a new util functionu_coord.match_centroids
#602 - Renamed
climada.util.coordinate.assign_grid_points
tomatch_grid_points
andclimada.util.coordinates.assign_coordinates
tomatch_coordinates
#602 - Modified the method to disaggregate lines in the
lines_polys_handler
utility 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
#676 - The 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 #691 - Tests with long runtime were moved to integration tests in
climada/test
#709 - Use
myst-nb
for parsing Jupyter Notebooks for the documentation instead ofnbsphinx
#712 - Installation guide now recommends installing CLIMADA directly via
conda install
#714 Exposures.affected_total_value
now 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 #730- Add option to pass region ID to
LitPop.from_shape
#720 - Slightly improved performance on
LitPop
-internal computations #720 - Use
pytest
for executing tests #726 - Users can opt-out of the climada specific logging definitions and freely configure logging to their will, by setting the config value
logging.managed
tofalse
. #724 - Add option to read additional variables from IBTrACS when using
TCTracks.from_ibtracs_netcdf
#728 - New file format for
TCTracks
I/O with better performance. This change is not backwards compatible: If you storedTCTracks
objects withTCTracks.write_hdf5
, reload the original data and store them again. #735 - Add option to load only a subset when reading TC tracks using
TCTracks.from_simulations_emanuel
. #741 - Set
save_mat
toFalse
in theunsequa
module #746 list_dataset_infos
fromclimada.util.api_client.Client
: theproperties
argument, adict
, can now haveNone
as values. Before, only strings and lists of strings were allowed. Setting a particular property toNone
triggers a search for datasets where this property is not assigned. #752- Reduce memory requirements of
TropCyclone.from_tracks
#749 - Support for different wind speed and pressure units in
TCTracks
when runningTropCyclone.from_tracks
#749 - The title of plots created by the
Exposures
methodsplot_hexbin
andplot_scatter
can be set as a method argument. #756 - Changed the parallel package from Pathos to Multiproess in the unsequa module #763
- Updated installation instructions to use conda for core and petals #776
util.lines_polys_handler
solve polygon disaggregation issue in metre-based projection #666- Problem with
pyproj.CRS
asImpact
attribute, #706. Now CRS is always stored asstr
in WKT format. - Correctly handle assertion errors in
Centroids.values_from_vector_files
and fix the associated test #768 - Text in
Forecast
class plots can now be adjusted #769 Impact.impact_at_reg
now supports impact matrices where all entries are zero #773- upgrade 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
Centroids.from_geodataframe
andCentroids.from_pix_bounds
#721Impact.tot_value
: UseExposures.affected_total_value
to 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.
Centroids.set_raster_from_pix_bounds
#721requirements/env_developer.yml
environment specs. Use 'extra' requirements when installing the Python package instead #712- The
climada.entitity.tag.Tag
class, together withImpact.tag
,Exposures.tag
,ImpactFuncSet.tag
,MeasuresSet.tag
,Hazard.tag
attributes. This may break backwards-compatibility with respect to the files written and read by theImpact
class. #736, #743, #753, #754, #756, #767, #779 impact.tot_value
attribute removed from unsequa module #763
Release date: 2023-03-02
Removed:
pybufrkit
#662
Release date: 2023-02-27
Patch-relaese with altered base config file so that the basic installation test passes.
- The base config file
climada/conf/climada.conf
has an entry forCONFIG.hazard.test_data
.
Release date: 2023-02-17
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.sources
has 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)
climada.hazard.Hazard.from_xarray_raster(_file)
class methods for readingHazard
objects from anxarray.Dataset
, or from a file that can be read byxarray
. #507, #589, #652.climada.engine.impact.Impact
objects have new methodsfrom_hdf5
andwrite_hdf5
for reading their data from, and writing it to, H5 files #606climada.engine.impact.Impact
objects has a new class methodconcat
for concatenation of impacts based on the same exposures #529.climada.engine.impact_calc
: this module was separated fromclimada.engine.impact
and contains the code that dealing with impact calculation while the latter focuses on impact data #560.- The classes
Hazard
,Impact
andImpactFreqCurve
have 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.
- The
Impact
calculation 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
fraction
of aHazard
object toNone
which will have the same effect as if it were1
everywhere. 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
- several antimeridian issues: #524, #551, #613.
- bug in
climada.hazard.Centroids.set_on_land()
when coordinates go around the globe: #542, #543. - bug in
climada.util.coordinates.get_country_code()
when all coordinates are on sea. - suppress pointless warnings in plotting functions, #520.
- test coverage improved: #583, #594, #608, #616, #637.
- deprecated features removoed: #517, #535, #566,
climada.enginge.impact.Impact.calc()
andclimada.enginge.impact.Impact.calc_impact_yearset()
#436.