Skip to content

speed-up the function to add country borders and coastlines - #1073

Merged
timschmi95 merged 3 commits into
developfrom
feature/plot_intensity_efficiency
Jul 11, 2025
Merged

speed-up the function to add country borders and coastlines#1073
timschmi95 merged 3 commits into
developfrom
feature/plot_intensity_efficiency

add whitespace line

be97efc
Select commit
Loading
Failed to load commit list.
Jenkins - WCR / Jenkins failed Jul 11, 2025 in 2s

Declarative: Post Actions: warning in 'junit' step

ci / unit_test / unit_test / Shell Script

Error in sh step, with arguments #!/bin/bash export PATH=$PATH:$CONDAPATH source activate climada_env rm -rf tests_xml/ rm -rf coverage/ make unit_test.

script returned exit code 2
Build log
pytest --junitxml=tests_xml/tests.xml --cov --cov-config=.coveragerc --cov-report html:coverage --cov-report xml:coverage.xml --cov-report term:skip-covered --ignore=climada/test climada/
============================= test session starts ==============================
platform linux -- Python 3.11.13, pytest-8.4.1, pluggy-1.6.0
rootdir: /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace
configfile: pyproject.toml
plugins: subtests-0.14.2, cov-6.2.1
collected 733 items

climada/engine/test/test_cost_benefit.py .......................         [  3%]
climada/engine/test/test_forecast.py ...                                 [  3%]
climada/engine/test/test_impact.py ..................................... [  8%]
.......                                                            [  9%]
climada/engine/test/test_impact_calc.py ..............................  [ 13%]
climada/engine/test/test_impact_data.py ...........                      [ 15%]
climada/engine/unsequa/test/test_unsequa.py ......F...........           [ 17%]
climada/entity/disc_rates/test/test_base.py ..............               [ 19%]
climada/entity/exposures/test/test_base.py ..........................    [ 23%]
climada/entity/exposures/test/test_litpop.py ......................      [ 26%]
climada/entity/exposures/test/test_mat.py .........                      [ 27%]
climada/entity/exposures/test/test_nightlight.py ...                     [ 27%]
climada/entity/impact_funcs/test/test_base.py ...........                [ 29%]
climada/entity/impact_funcs/test/test_imp_fun_set.py ................... [ 31%]
............                                                             [ 33%]
climada/entity/impact_funcs/test/test_tc.py ........                     [ 34%]
climada/entity/impact_funcs/test/test_ws.py .                            [ 34%]
climada/entity/measures/test/test_base.py ...........                    [ 36%]
climada/entity/measures/test/test_meas_set.py .....................      [ 39%]
climada/entity/tag/test/test_tag.py ...                                  [ 39%]
climada/entity/test/test_entity.py .....                                 [ 40%]
climada/hazard/centroids/test/test_centr.py ............................ [ 43%]
.........................                                                [ 47%]
climada/hazard/test/test_base.py ..................................... [ 52%]
.................                                                        [ 54%]
climada/hazard/test/test_io.py ..................                        [ 57%]
climada/hazard/test/test_storm_europe.py .......                         [ 58%]
climada/hazard/test/test_tc_cc.py ........                               [ 59%]
climada/hazard/test/test_tc_tracks.py .................................. [ 63%]
........                                                                 [ 64%]
climada/hazard/test/test_tc_tracks_synth.py ..................           [ 67%]
climada/hazard/test/test_trop_cyclone.py ..........                      [ 68%]
climada/hazard/test/test_trop_cyclone_windfields.py .........            [ 69%]
climada/util/calibrate/test/test_base.py .....                           [ 70%]
climada/util/calibrate/test/test_bayesian_optimizer.py ...........       [ 72%]
climada/util/calibrate/test/test_scipy_optimizer.py ...                  [ 72%]
climada/util/test/test__init__.py .                                      [ 72%]
climada/util/test/test_checker.py .....                                  [ 73%]
climada/util/test/test_config.py ...                                     [ 73%]
climada/util/test/test_coordinates.py .................................. [ 78%]
...........................................                              [ 84%]
climada/util/test/test_dates_times.py ......                             [ 85%]
climada/util/test/test_dwd_icon.py .....                                 [ 85%]
climada/util/test/test_files.py ............                             [ 87%]
climada/util/test/test_finance.py ................                       [ 89%]
climada/util/test/test_hdf5.py ......                                    [ 90%]
climada/util/test/test_interpolation.py .........                        [ 91%]
climada/util/test/test_lines_polys_handler.py .........................  [ 95%]
climada/util/test/test_plot.py .........                                 [ 96%]
climada/util/test/test_save.py ..                                        [ 96%]
climada/util/test/test_select.py .                                       [ 96%]
climada/util/test/test_value_representation.py ..................        [ 99%]
climada/util/test/test_yearsets.py ......                                [100%]

=================================== FAILURES ===================================
________________________ TestOutput.test_save_load_pass ________________________

self = <climada.engine.unsequa.test.test_unsequa.TestOutput testMethod=test_save_load_pass>

    def test_save_load_pass(self):
        """Test save and load output data"""
    
        exp_unc, impf_unc, _ = make_input_vars()
        haz = haz_dem()
        unc_calc = CalcImpact(exp_unc, impf_unc, haz)
    
        unc_data_save = unc_calc.make_sample(
            N=2, sampling_kwargs={"calc_second_order": True}
        )
        filename = unc_data_save.to_hdf5()
        unc_data_load = UncOutput.from_hdf5(filename)
        for attr_save, val_save in unc_data_save.__dict__.items():
            if isinstance(val_save, pd.DataFrame):
                df_load = getattr(unc_data_load, attr_save)
                self.assertTrue(df_load.equals(val_save))
        self.assertEqual(unc_data_load.sampling_method, unc_data_save.sampling_method)
        self.assertEqual(unc_data_load.sampling_kwargs, unc_data_save.sampling_kwargs)
        filename.unlink()
    
        unc_data_save = unc_calc.uncertainty(
            unc_data_save, calc_eai_exp=True, calc_at_event=False
        )
        filename = unc_data_save.to_hdf5()
        unc_data_load = UncOutput.from_hdf5(filename)
        for attr_save, val_save in unc_data_save.__dict__.items():
            if isinstance(val_save, pd.DataFrame):
                df_load = getattr(unc_data_load, attr_save)
                self.assertTrue(df_load.equals(val_save))
        self.assertEqual(unc_data_load.sampling_method, unc_data_save.sampling_method)
        self.assertEqual(unc_data_load.sampling_kwargs, unc_data_save.sampling_kwargs)
        filename.unlink()
    
        unc_data_save = unc_calc.sensitivity(
            unc_data_save, sensitivity_kwargs={"calc_second_order": True}
        )
        filename = unc_data_save.to_hdf5()
>       unc_data_load = UncOutput.from_hdf5(filename)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

climada/engine/unsequa/test/test_unsequa.py:308: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
climada/engine/unsequa/unc_output.py:1206: in from_hdf5
    setattr(unc_data, var_name[1:], store.get(var_name))
                                    ^^^^^^^^^^^^^^^^^^^
../../../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/io/pytables.py:812: in get
    return self._read_group(group)
           ^^^^^^^^^^^^^^^^^^^^^^^
../../../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/io/pytables.py:1879: in _read_group
    return s.read()
           ^^^^^^^^
../../../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/io/pytables.py:3292: in read
    columns = items[items.get_indexer(blk_items)]
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Index([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0],
      dtype='int64')
target = Index([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0],
      dtype='int64')
method = None, limit = None, tolerance = None

    @Appender(_index_shared_docs["get_indexer"] % _index_doc_kwargs)
    @final
    def get_indexer(
        self,
        target,
        method: ReindexMethod | None = None,
        limit: int | None = None,
        tolerance=None,
    ) -> npt.NDArray[np.intp]:
        method = clean_reindex_fill_method(method)
        orig_target = target
        target = self._maybe_cast_listlike_indexer(target)
    
        self._check_indexing_method(method, limit, tolerance)
    
        if not self._index_as_unique:
>           raise InvalidIndexError(self._requires_unique_msg)
E           pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

../../../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/core/indexes/base.py:3875: InvalidIndexError
----------------------------- Captured stdout call -----------------------------
2025-07-11 09:11:52,264 - climada.hazard.io - INFO - Reading /var/lib/jenkins/climada/demo/data/tc_fl_1990_2004.h5
2025-07-11 09:11:52,295 - climada.entity.exposures.base - INFO - Reading /var/lib/jenkins/climada/demo/data/exp_demo_today.h5
2025-07-11 09:11:52,412 - climada.engine.unsequa.calc_base - INFO - Effective number of made samples: 16
2025-07-11 09:11:52,412 - climada.engine.unsequa.unc_output - INFO - Writing /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091152.hdf5
2025-07-11 09:11:52,436 - climada.engine.unsequa.unc_output - INFO - Reading /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091152.hdf5
2025-07-11 09:11:52,557 - climada.engine.unsequa.calc_base - INFO - 

Estimated computaion time: 0:00:01.537600

2025-07-11 09:11:53,673 - climada.entity.exposures.base - INFO - Reading /var/lib/jenkins/climada/demo/data/exp_demo_today.h5
2025-07-11 09:11:53,711 - climada.engine.unsequa.unc_output - INFO - Writing /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091153.hdf5
2025-07-11 09:11:53,766 - climada.engine.unsequa.unc_output - INFO - Reading /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091153.hdf5
2025-07-11 09:11:54,130 - climada.engine.unsequa.unc_output - INFO - Writing /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091154.hdf5
2025-07-11 09:11:54,236 - climada.engine.unsequa.unc_output - INFO - Reading /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091154.hdf5
=============================== warnings summary ===============================
climada/util/__init__.py:27
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/__init__.py:27: FionaDeprecationWarning: This function will be removed in version 2.0. Please use CRS.from_epsg() instead.
    from .constants import *

../../../../../miniforge3/envs/climada_env/lib/python3.11/site-packages/geopandas/_compat.py:10
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/geopandas/_compat.py:10: DeprecationWarning: The 'shapely.geos' module is deprecated, and will be removed in a future version. All attributes of 'shapely.geos' are available directly from the top-level 'shapely' namespace (since shapely 2.0.0).
    import shapely.geos

climada/hazard/io.py:989: 2 warnings
climada/engine/test/test_cost_benefit.py: 16 warnings
climada/engine/test/test_impact.py: 2 warnings
climada/entity/measures/test/test_base.py: 6 warnings
climada/hazard/test/test_base.py: 3 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/io.py:989: UserWarning: Not all values are of type <class 'str'>. Casting values.
    warnings.warn(

../../../../../miniforge3/envs/climada_env/lib/python3.11/pickle.py:1718: 3 warnings
climada/engine/test/test_impact_calc.py: 1 warning
climada/engine/unsequa/test/test_unsequa.py: 2593 warnings
climada/entity/measures/test/test_base.py: 3 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/pickle.py:1718: UserWarning: Unpickling a shapely <2.0 geometry object. Please save the pickle again as this compatibility may be removed in a future version of shapely.
    setstate(state)

climada/engine/test/test_cost_benefit.py: 1944 warnings
climada/entity/exposures/test/test_mat.py: 15 warnings
climada/entity/impact_funcs/test/test_imp_fun_set.py: 450 warnings
climada/entity/measures/test/test_base.py: 3888 warnings
climada/entity/measures/test/test_meas_set.py: 195 warnings
climada/entity/test/test_entity.py: 648 warnings
climada/util/test/test_hdf5.py: 251 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/hdf5_handler.py:92: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    return "".join(chr(int(c)) for c in array)

climada/engine/test/test_cost_benefit.py: 8 warnings
climada/engine/unsequa/test/test_unsequa.py: 16 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/openpyxl/worksheet/_read_only.py:85: UserWarning: Unknown extension is not supported and will be removed
    for idx, row in parser.parse():

climada/engine/test/test_cost_benefit.py::TestSteps::test_measure_exposure_no_centroids
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/cost_benefit.py:1190: RuntimeWarning: invalid value encountered in scalar divide
    self.cost_ben_ratio[meas_name] = (

climada/engine/test/test_cost_benefit.py::TestRiskFuncs::test_impact
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/unittest/case.py:678: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestRiskFuncs.test_impact of <climada.engine.test.test_cost_benefit.TestRiskFuncs testMethod=test_impact>>)
    return self.run(*args, **kwds)

climada/engine/test/test_forecast.py: 61 warnings
climada/entity/exposures/test/test_base.py: 2 warnings
climada/hazard/centroids/test/test_centr.py: 3 warnings
climada/hazard/test/test_storm_europe.py: 6 warnings
climada/hazard/test/test_tc_tracks.py: 5 warnings
climada/hazard/test/test_tc_tracks_synth.py: 19 warnings
climada/util/test/test_coordinates.py: 1 warning
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/coordinates.py:703: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    return shapely.vectorized.contains(land_geom, lons, lat)

climada/engine/test/test_impact.py::TestIO::test_excel_io
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/impact.py:1590: UserWarning: Some event names are not str will be converted to str
    warnings.warn(

climada/engine/test/test_impact.py::TestRPmatrix::test_local_exceedance_impact_methods
climada/hazard/test/test_base.py::TestStats::test_local_exceedance_intensity_methods
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/interpolation.py:236: RuntimeWarning: divide by zero encountered in log10
    fill_value = (y_train[0], np.log10(y_asymptotic) if logy else y_asymptotic)

climada/engine/test/test_impact.py::TestImpactReg::test_admin0
climada/engine/test/test_impact.py::TestImpactReg::test_admin0
climada/hazard/centroids/test/test_centr.py::TestCentroidsTransformation::test_set_region_id_pass
climada/hazard/centroids/test/test_centr.py::TestCentroidsTransformation::test_set_region_id_pass
climada/hazard/centroids/test/test_centr.py::TestCentroidsTransformation::test_set_region_id_raster
climada/hazard/test/test_storm_europe.py::TestReader::test_generate_prob_storms
climada/util/test/test_coordinates.py::TestGetGeodata::test_country_code_pass
climada/util/test/test_coordinates.py::TestGetGeodata::test_country_code_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/coordinates.py:1625: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    else ~shapely.vectorized.contains(total_land, lon, lat)

climada/engine/test/test_impact.py: 7 warnings
climada/hazard/centroids/test/test_centr.py: 313 warnings
climada/hazard/test/test_storm_europe.py: 4 warnings
climada/util/test/test_coordinates.py: 2 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/coordinates.py:1630: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    select = shapely.vectorized.contains(

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_init
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_index.py:108: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil and dok are more efficient.
    self._set_intXint(row, col, x.flat[0])

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_single_exp_zero_mdr
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/test/test_impact_calc.py:557: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    centroids = Centroids.from_lat_lon([-26.16], [28.20])

climada/engine/test/test_impact_calc.py::TestImpactCalc::test_single_exp_zero_mdr
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/test/test_impact_calc.py:576: DeprecatedWarning: set_geometry_points is deprecated. Obsolete method call. As of climada 5.0, geometry points are set during object initialization
    exp.set_geometry_points()

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/unc_output.py:663: UserWarning: Attempting to set identical low and high xlims makes transformation singular; automatically expanding.
    ax.set_xlim([data.min(), data.max()])

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_plot_unc_imp
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/unc_output.py:754: UserWarning: No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
    ax.legend(loc="lower right")

climada/engine/unsequa/test/test_unsequa.py: 13 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/calc_base.py:330: DeprecationWarning: `salib.sample.saltelli` will be removed in SALib 1.5.1 Please use `salib.sample.sobol`
    sample_uniform = salib_sampling_method.sample(

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcDelta::test_calc_sensitivity_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcDelta::test_calc_sensitivity_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/util/__init__.py:274: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version.
    names = list(pd.unique(groups))

climada/engine/unsequa/test/test_unsequa.py: 40 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/pandas/core/dtypes/common.py:1636: DeprecationWarning: Converting `np.inexact` or `np.floating` to a dtype is deprecated. The current result is `float64` which is not strictly correct.
    npdtype = np.dtype(dtype)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/sobol.py:141: RuntimeWarning: invalid value encountered in divide
    Y = (Y - Y.mean()) / Y.std()

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/unc_output.py:1162: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->mixed,key->block1_values] [items->Index(['si', 'param', 'param2'], dtype='object')]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/unc_output.py:1162: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->mixed-integer,key->axis0] [items->None]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/unc_output.py:1162: PerformanceWarning: 
  your performance may suffer as PyTables will pickle object types that it cannot
  map directly to c-types [inferred_type->integer,key->block0_items] [items->None]
  
    store.put(var_name, var_val, format="fixed", complevel=9)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/pawn.py:142: RuntimeWarning: invalid value encountered in scalar divide
    cv = np.nanstd(p_ind) / mean

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/sample/saltelli.py:110: UserWarning: 
          Convergence properties of the Sobol' sequence is only valid if
          `N` (100) is equal to `2^n`.
          
    warnings.warn(msg)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/engine/unsequa/calc_base.py:539: DeprecationWarning: This method will be retired in future, please use enhanced_hdmr instead.
    sens_indices = method.analyze(problem_sa, X, Y, **sensitivity_kwargs)

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:688: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:694: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S_a[j] = C[0, 0] / V_Y

climada/engine/unsequa/test/test_unsequa.py: 1400 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:697: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    S_b[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:661: RuntimeWarning: invalid value encountered in scalar divide
    F_stat = ((SSR0 - SSR1) / (p1 - p0)) / (SSR1 / (R - p1))

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:688: RuntimeWarning: invalid value encountered in divide
    S[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:694: RuntimeWarning: invalid value encountered in divide
    S_a[j] = C[0, 0] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/hdmr.py:697: RuntimeWarning: invalid value encountered in divide
    S_b[j] = C[0, 1] / V_Y

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/dgsm.py:132: RuntimeWarning: invalid value encountered in scalar divide
    dgsm = vi * (bounds[1] - bounds[0]) ** 2 / (D * np.pi**2)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/fast.py:117: RuntimeWarning: invalid value encountered in scalar divide
    return (D1 / V), (1.0 - Dt / V)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/sample/saltelli.py:110: UserWarning: 
          Convergence properties of the Sobol' sequence is only valid if
          `N` (24) is equal to `2^n`.
          
    warnings.warn(msg)

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/rbd_fast.py:128: RuntimeWarning: invalid value encountered in scalar divide
    return D1 / V

climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
climada/engine/unsequa/test/test_unsequa.py::TestCalcImpact::test_calc_sensitivity_all_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/SALib/analyze/morris.py:453: RuntimeWarning: invalid value encountered in subtract
    delta_variables = np.subtract(input_matrix[:, 1:, :], input_matrix[:, 0:-1, :])

climada/entity/exposures/test/test_base.py::TestFuncs::test_affected_total_value
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_base.py:466: SparseEfficiencyWarning: Comparing a sparse matrix with a scalar less than zero using > is inefficient, try using <= instead.
    return self.tocsr().__gt__(other)

climada/entity/tag/test/test_tag.py::TestAppend::test_append_different_increase
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:32: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_different_increase
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:36: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name2.mat", "dummy file 2")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:59: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:60: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag()

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:66: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag()

climada/entity/tag/test/test_tag.py::TestAppend::test_append_empty
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:67: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_equal_same
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:50: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag1 = Tag("file_name1.mat", "dummy file 1")

climada/entity/tag/test/test_tag.py::TestAppend::test_append_equal_same
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/entity/tag/test/test_tag.py:51: DeprecatedWarning: __init__ is deprecated. This class is not supported anymore and will be removed in the next version of climada.
    tag2 = Tag("file_name1.mat", "dummy file 1")

climada/hazard/centroids/test/test_centr.py::TestCentroidsMethods::test_get_closest_point
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/centroids/centr.py:633: UserWarning: Geometry is in a geographic CRS. Results from 'distance' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    close_idx = self.geometry.distance(Point(x_lon, y_lat)).values.argmin()

climada/hazard/test/test_base.py::TestSelect::test_select_tight_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/scipy/sparse/_index.py:151: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil and dok are more efficient.
    self._set_arrayXarray(i, j, x)

climada/hazard/test/test_io.py::TestReadDefaultNetCDF::test_missing_dims
climada/hazard/test/test_io.py::TestReadDimsCoordsNetCDF::test_errors
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/io.py:613: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
    f"{list(data.dims.keys())}"

climada/hazard/test/test_storm_europe.py::TestReader::test_read_with_cent
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/centroids/centr.py:351: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.
    self.gdf = pd.concat([self.gdf] + [other.gdf for other in centr])

climada/hazard/test/test_tc_tracks.py: 15 warnings
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/xarray/core/dataarray.py:3198: DeprecationWarning: Deleting a single level of a MultiIndex is deprecated. Previously, this deleted all levels of a MultiIndex. Please also drop the following variables: {'id'} to avoid an error in the future.
    ds = self._to_temp_dataset().drop_vars(names, errors=errors)

climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_line
climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/geopandas/geodataframe.py:204: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
    object.__setattr__(self, attr, val)

climada/hazard/test/test_tc_tracks.py::TestIO::test_to_geodataframe_points
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/test/test_tc_tracks.py:694: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    gdf_points.buffer(3).unary_union.area, 348.79972062947854

climada/hazard/test/test_tc_tracks.py: 7 warnings
climada/hazard/test/test_tc_tracks_synth.py: 2 warnings
climada/hazard/test/test_trop_cyclone.py: 4 warnings
climada/hazard/test/test_trop_cyclone_windfields.py: 1 warning
  <string>:7: FutureWarning: 'H' is deprecated and will be removed in a future version. Please use 'h' instead of 'H'.

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_interp_track_pass
  <string>:7: FutureWarning: 'L' is deprecated and will be removed in a future version. Please use 'ms' instead of 'L'.

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/tc_tracks.py:458: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    exp_buffer = exposure.gdf.buffer(distance=buffer, resolution=0)

climada/hazard/test/test_tc_tracks.py::TestFuncs::test_tracks_in_exp_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/tc_tracks.py:461: UserWarning: Geometry is in a geographic CRS. Results from 'buffer' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    tc_tracks_lines = self.to_geodataframe().buffer(distance=buffer)

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_apply_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_calc_decay_no_landfall_pass
climada/hazard/test/test_tc_tracks_synth.py::TestSynth::test_random_no_landfall_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/coordinates.py:653: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
    geom = geom.geometry.unary_union

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_decay_end_ocean
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_decay_penv_gt_pcen
climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_wrong_decay_pass
climada/hazard/test/test_tc_tracks_synth.py::TestSynth::test_random_walk_single_point
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/tc_tracks_synth.py:1052: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
    rndn = 0.1 * float(np.abs(np.random.normal(size=1) * 5) + 6)

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_func_decay_p_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/tc_tracks_synth.py:1153: RuntimeWarning: invalid value encountered in divide
    return -np.log((ps_y - p_y) / (ps_y - 1.0)) / x_val

climada/hazard/test/test_tc_tracks_synth.py::TestDecay::test_func_decay_v_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/tc_tracks_synth.py:1142: RuntimeWarning: invalid value encountered in divide
    return -np.log(v_y) / x_val

climada/hazard/test/test_trop_cyclone.py::TestReader::test_cross_antimeridian
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/test/test_trop_cyclone.py:176: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    cen = Centroids.from_lat_lon([-16.95, -16.8, -16.8], [179.9, 180.1, -179.9])

climada/hazard/test/test_trop_cyclone.py::TestReader::test_cross_antimeridian
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/test/test_trop_cyclone.py:177: DeprecatedWarning: set_dist_coast is deprecated. This method is futile and will be removed in a future version. `Centroids.get_dist_coast` can be run without initialization.
    cen.set_dist_coast(precomputed=True)

climada/hazard/test/test_trop_cyclone.py: 44 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/hazard/trop_cyclone/trop_cyclone_windfields.py:133: DeprecationWarning: The 'cyclostrophic' argument is deprecated and will be removed in a futurerelease. Include it in 'model_kwargs' instead.
    warnings.warn(

climada/util/calibrate/test/test_base.py: 5 warnings
climada/util/calibrate/test/test_bayesian_optimizer.py: 3 warnings
climada/util/calibrate/test/test_scipy_optimizer.py: 3 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/calibrate/test/test_base.py:49: DeprecatedWarning: from_lat_lon is deprecated. This method will be removed in a future version. Simply use the constructor instead.
    centroids = Centroids.from_lat_lon(lat=lat, lon=lon)

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [2.] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [1.] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/calibrate/test/test_bayesian_optimizer.py::TestBayesianOptimizerOutput::test_cycle
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/calibrate/bayesian_optimizer.py:192: UserWarning: 
  Data point [-0.9] is outside the bounds of the parameter space. 
    p_space.register(

climada/util/test/test_coordinates.py::TestGetGeodata::test_all_points_on_sea
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/coordinates.py:1621: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead.
    total_land = countries.geometry.unary_union

climada/util/test/test_coordinates.py::TestGetGeodata::test_get_country_geometries_all_pass
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/test/test_coordinates.py:1456: UserWarning: Geometry is in a geographic CRS. Results from 'area' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    self.assertAlmostEqual(res.area[0], 1.639510995900778)

climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_lines
climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_lines
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_lines
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_mixed
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_geom_impact_mixed
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_impact_pnt_agg
climada/util/test/test_lines_polys_handler.py::TestGdfGeomToPnt::test_gdf_line_to_pnt
climada/util/test/test_lines_polys_handler.py::TestGdfGeomToPnt::test_gdf_line_to_pnt
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:957: UserWarning: Geometry is in a geographic CRS. Results from 'length' are likely incorrect. Use 'GeoSeries.to_crs()' to re-project geometries to a projected CRS before this operation.
  
    line_lengths = gdf_lines.length

climada/util/test/test_lines_polys_handler.py: 13 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:638: FutureWarning: The 'axis' keyword in DataFrame.groupby is deprecated and will be removed in a future version.
    group = gdf_pnts.groupby(axis=0, level=0)

climada/util/test/test_lines_polys_handler.py: 87 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:799: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    in_geom = sh.vectorized.contains(poly, x_grid, y_grid)

climada/util/test/test_lines_polys_handler.py: 37 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:838: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    in_geom = sh.vectorized.contains(poly_m, x_grid, y_grid)

climada/util/test/test_lines_polys_handler.py: 14 warnings
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:767: DeprecationWarning: The 'shapely.vectorized.contains' function is deprecated and will be removed a future version. Use 'shapely.contains_xy' instead (available since shapely 2.0.0).
    in_geom = sh.vectorized.contains(poly, x_grid, y_grid)

climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_polygons_on_grid
climada/util/test/test_lines_polys_handler.py::TestExposureGeomToPnt::test_point_exposure_from_polygons_on_grid
climada/util/test/test_lines_polys_handler.py::TestGeomImpactCalcs::test_calc_grid_impact_polys
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/lines_polys_handler.py:487: DeprecatedWarning: set_lat_lon is deprecated. latitude and longitude columns are no longer meaningful in Exposures` GeoDataFrames. They can be retrieved from Exposures.latitude and .longitude properties
    exp_pnt.set_lat_lon()

climada/util/test/test_lines_polys_handler.py::TestLPUtils::test_get_equalarea_proj
  /var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/geopandas/geoseries.py:648: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
    val = getattr(super(), mtd)(*args, **kwargs)

climada/util/test/test_plot.py::TestPlots::test_plot_from_gdf_log
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/test/test_plot.py:231: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
    return_periods["geometry"] = (

climada/util/test/test_plot.py::TestPlots::test_plot_from_gdf_no_log
  /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/climada/util/test/test_plot.py:208: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
    return_periods["geometry"] = (

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
- generated xml file: /var/lib/jenkins/jobs/climada_branches/branches/feature-plot.mh7k5l.y-efficiency/workspace/tests_xml/tests.xml -
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.11.13-final-0 _______________

Name                                                     Stmts   Miss  Cover
----------------------------------------------------------------------------
climada/__init__.py                                         20      6    70%
climada/engine/calibration_opt.py                          149    103    31%
climada/engine/cost_benefit.py                             432    180    58%
climada/engine/forecast.py                                 351     31    91%
climada/engine/impact.py                                   614    161    74%
climada/engine/impact_calc.py                              145      2    99%
climada/engine/impact_data.py                              393    146    63%
climada/engine/unsequa/calc_base.py                        155      4    97%
climada/engine/unsequa/calc_cost_benefit.py                 92      2    98%
climada/engine/unsequa/calc_delta_climate.py               110     10    91%
climada/engine/unsequa/calc_impact.py                       85      2    98%
climada/engine/unsequa/input_var.py                        267     87    67%
climada/engine/unsequa/unc_output.py                       451    105    77%
climada/entity/disc_rates/base.py                          122     23    81%
climada/entity/entity_def.py                                55      9    84%
climada/entity/exposures/base.py                           474     85    82%
climada/entity/exposures/litpop/gpw_population.py           32     24    25%
climada/entity/exposures/litpop/litpop.py                  337    202    40%
climada/entity/exposures/litpop/nightlight.py              240    180    25%
climada/entity/impact_funcs/base.py                         79     18    77%
climada/entity/impact_funcs/impact_func_set.py             253     43    83%
climada/entity/impact_funcs/storm_europe.py                 40      4    90%
climada/entity/impact_funcs/trop_cyclone.py                113     12    89%
climada/entity/measures/base.py                            158     14    91%
climada/entity/measures/measure_set.py                     209     39    81%
climada/entity/tag/tag.py                                   44      7    84%
climada/hazard/base.py                                     327     36    89%
climada/hazard/centroids/centr.py                          333     17    95%
climada/hazard/io.py                                       389     97    75%
climada/hazard/plot.py                                      87     76    13%
climada/hazard/storm_europe.py                             355    150    58%
climada/hazard/tc_tracks.py                               1012    191    81%
climada/hazard/tc_tracks_synth.py                          420    166    60%
climada/hazard/trop_cyclone/trop_cyclone.py                192     73    62%
climada/hazard/trop_cyclone/trop_cyclone_windfields.py     312      7    98%
climada/util/api_client.py                                 381    166    56%
climada/util/calibrate/base.py                             107     25    77%
climada/util/calibrate/bayesian_optimizer.py               266     75    72%
climada/util/checker.py                                     54      4    93%
climada/util/config.py                                     173     11    94%
climada/util/coordinates.py                                933    149    84%
climada/util/dwd_icon_loader.py                             89     33    63%
climada/util/files_handler.py                               73     21    71%
climada/util/finance.py                                    200     36    82%
climada/util/hdf5_handler.py                                33      1    97%
climada/util/interpolation.py                               87      1    99%
climada/util/lines_polys_handler.py                        235     31    87%
climada/util/plot.py                                       326     65    80%
climada/util/save.py                                        25      6    76%
climada/util/select.py                                      18      1    94%
climada/util/value_representation.py                        58      4    93%
climada/util/yearsets.py                                    65      3    95%
----------------------------------------------------------------------------
TOTAL                                                    12213   2944    76%

19 files skipped due to complete coverage.
Coverage HTML written to dir coverage
Coverage XML written to file coverage.xml
=========================== short test summary info ============================
FAILED climada/engine/unsequa/test/test_unsequa.py::TestOutput::test_save_load_pass - pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
= 1 failed, 732 passed, 15062 warnings, 9 subtests passed in 506.86s (0:08:26) =
/var/lib/jenkins/miniforge3/envs/climada_env/lib/python3.11/site-packages/tables/file.py:130: UnclosedFileWarning: Closing remaining open file: /var/lib/jenkins/climada/data/uncertainty/unc_output2025-07-11-091154.hdf5
  warnings.warn(UnclosedFileWarning(msg))
make: *** [Makefile:23: unit_test] Error 1

Declarative: Post Actions / Archive JUnit-formatted test results

Warning in junit step, with arguments tests_xml/*.xml.

1 tests failed

Details

  • Declarative: Checkout SCM (3.3 sec)
    • ci (8 min 34 sec)
      • lint (1 ms)
        • lint (2 min 31 sec)
      • unit_test (8 min 32 sec)
        • unit_test (8 min 30 sec)
          Error: script returned exit code 2 - logs
    • Declarative: Post Actions (1.3 sec)
      Unstable: 1 tests failed - logs