Skip to content

perf: compute forecast quantiles block-wise to bound memory - #1313

Merged
peanutfun merged 5 commits into
CLIMADA-project:developfrom
EnvDroneSense:feature/forecast-quantile-memory
Sep 2, 2026
Merged

peanutfun merged 5 commits into
CLIMADA-project:developfrom
EnvDroneSense:feature/forecast-quantile-memory

Conversation

@EnvDroneSense

@EnvDroneSense EnvDroneSense commented Aug 25, 2026 •

Copy link
Copy Markdown

Changes proposed in this PR:

  • Add climada.util.forecast.sparse_quantile_axis0, which takes a quantile along axis 0 of a sparse matrix by densifying a block of columns at a time rather than the whole matrix. The block size is derived from a max_memory_mb budget.
  • Call it from HazardForecast._quantile (intensity and fraction) and ImpactForecast._quantile (imp_mat), replacing the .toarray() on the full matrix.

This PR fixes #1203

Peak memory no longer scales with the number of centroids. Measured on a full DWD ICON-EU-EPS run, 2560 events x 164,984 cells, float32, with [icon_full.py](https://github.com/user-attachments/files/31507435/icon_full.py) :

old    8110.9 ms (best of 3)   peak   3382.3 MB
new    2375.7 ms (best of 3)   peak    280.5 MB

The script asserts the two paths return equal arrays on every run.

One constraint worth flagging: implicit zeros have to take part in the quantile. A column of [0, 0, 0, -1, 9] has median 0.0, not the 4.0 you get from its two stored values. That is why the helper densifies blocks instead of reducing over matrix.data, which would be faster but silently wrong.

HazardForecast.quantile and ImpactForecast.quantile densified the entire
sparse matrix before calling np.quantile, so peak memory scaled with
n_events * n_centroids regardless of sparsity. On large forecasts this
exhausts memory and kills the process.

Add climada.util.forecast.sparse_quantile_axis0, which densifies at most
block_size columns at a time. Each column's quantile is independent, so
the result is unchanged; only the peak allocation differs. Implicit zeros
still take part in the quantile, as reducing over stored values alone
would silently inflate the result on sparse data.

The blocks are temporaries owned by the helper, so np.quantile may
partition them in place. That spares a second full-size copy: np.quantile
otherwise duplicates its input, which is why the old peak was twice the
dense size and why the block-wise version is faster rather than slower.

Measured on synthetic forecasts (density 0.02), results asserted
bit-identical to the previous code path:

  200 ev x  5k centr:  16.2 ->  8.3 MB peak, 2.41x faster
  500 ev x 20k centr: 160.8 -> 35.9 MB peak, 1.67x faster
 1000 ev x 50k centr: 802.1 -> 79.0 MB peak, 1.96x faster

The existing test_reduce, test_quantile_min_max and test_median_quantile
assert against the dense np.quantile reference and pass unmodified.

This PR fixes CLIMADA-project#1203

@peanutfun peanutfun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@EnvDroneSense Thank you for raising a PR! I am happy about your contribution and your code generally looks good, but your PR description is lengthy, has many unsupported claims, and overall looks AI-generated.

In your "Results" section you claim a speedup and reduction in memory usage with the new code. How did you conduct these measurements? What code did you execute? Later, you claim that setting overwrite_input=True is faster. I see that it is reasonable to save memory, but the entire addition of the new function already serves that purpose. Did you measure the additional speedup as well? Also, the entire "Speedup" section never shows speedup but discusses saving memory. Finally, you claim that results are identical, but the unit tests use assert_allclose instead of assert_array_equal.

The dim is not None branch of both _quantile methods delegates to reduce_unique_selection and is not changed here. It was not measured, and if it densifies by another route then #1203 is only partly addressed by this PR. Happy to extend the scope if you would prefer that handled in one go.

This is not necessary. The "dim is not None branch" calls reduce_unique_selection, which performs a subselection and then delegates back to the calling attribute, in this case _quantile, so there is no extension needed to apply your changes to that particular branch.

I would be happy if you could answer my questions regarding your benchmarks. Please also review my code comments, which I would like to see resolved before approving a merge.

Again, thank you for your contribution! ☺️

Comment thread climada/engine/test/test_impact_forecast.py Outdated
Comment thread climada/util/forecast.py Outdated
Comment thread climada/util/forecast.py Outdated
Comment thread climada/util/test/test_forecast.py Outdated
Replace the block_size column count with a max_memory_mb budget.

- preserve the input dtype instead of forcing float64
- accept a sequence of quantiles, as np.quantile does
- handle a matrix with no columns
- fix the densification spy: it patched csr_matrix while the helper
  densifies csc_matrix, so it asserted nothing
@EnvDroneSense

Copy link
Copy Markdown
Author

@peanutfun sorry for the messy PR. (I have rewritten it)

On the speedup: part of that was me misinterpreting my own benchmark results, so I have redone them from scratch. This time I measured against real data rather than synthetic icon_full.py, and the results look quite good:

run 2026-08-27 00:00:00
2560 events x 164,984 cells, density 0.055, dense would be 1,689.4 MB

old    8110.9 ms (best of 3)   peak   3382.3 MB
new    2375.7 ms (best of 3)   peak    280.5 MB

On overwrite_input=True: I measured it separately this time. At the default 8 MB budget it makes no difference to peak memory (280.5 MB either way) but is about 2x faster (2078 vs 4985 ms), because without it every block gets copied before sorting. So it is a speed optimization rather than a memory one. icon_overwrite.py

2560 events x 164,984 cells, budget 8 MB = 781 columns over 212 blocks, best of 5

overwrite_input=True      2078 ms   peak  280.5 MB
overwrite_input=False     4985 ms   peak  280.5 MB
identical

I have also implemented the changes you recommended. One thing I am unsure about: the default for max_memory_mb is currently an arbitrary 8 MB. Is that acceptable, and if not, how would you suggest picking a better one? Should it go into climada.conf instead?

Thank you for your review, I am trying to learn more about code optimization.

@peanutfun

Copy link
Copy Markdown
Member

@EnvDroneSense Excellent work! Using your benchmark code, I could replicate these numbers on my computer. The tests also run through on my end. A final request: Please update the test test_quantile_uses_block_wise_helper with a mock for sparse_quantile_axis0, ensuring that it is called with the correct matrix object, and add a similar test for the HazardForecast class. Once this is done, we are ready to merge!

Mock sparse_quantile_axis0 where each forecast class uses it and assert
it receives the matrix object itself, rather than inferring the call from
a toarray() spy. Add the matching test for HazardForecast, which reduces
intensity and fraction and so must call the helper twice.
@EnvDroneSense

EnvDroneSense commented Sep 1, 2026 •

Copy link
Copy Markdown
Author

@peanutfun Great. Both tests mock sparse_quantile_axis0 and assert it receives the matrix object itself; the HazardForecast one covers both calls.

@peanutfun peanutfun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work! Thanks again ☺️

@peanutfun
peanutfun merged commit 697e8d6 into CLIMADA-project:develop Sep 2, 2026
1 check was pending
spjuhel added a commit that referenced this pull request Oct 15, 2026
commit 45f8885
Merge: 6ba1f6f 720b31d
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 17:14:18 2026 +0200

    Merge branch 'feature/option-appraisal-costincome' of github.com:CLIMADA-project/climada_python into feature/option-appraisal-costincome

commit 6ba1f6f
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 17:13:25 2026 +0200

    fixes tests

commit d2d891f
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 17:10:24 2026 +0200

    other minor fixes

commit bf7fb2e
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 16:50:52 2026 +0200

    Fixes some linter issues, removes datetime

commit b5da6bf
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 16:13:40 2026 +0200

    Tuple -> tuple

commit 720b31d
Merge: d5778d9 c0fcc8d
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Wed Sep 23 17:57:36 2026 +0200

    Merge branch 'develop' into feature/option-appraisal-costincome

commit c0fcc8d
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Tue Sep 22 16:13:26 2026 +0200

    Fix exposure coordinate extraction for `CalcDeltaImpact` (#1304)

    * Use final exposure for centroid coords

    * Fix querying exposure coords in CalcDeltaImpact

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>

commit b158053
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Tue Sep 15 16:49:20 2026 +0200

    Trigger pipeline for pull requests (#1318)

    * Trigger pipeline for pull requests and pushes to main, develop, releases.
    * Add info on approving workflow runs to CONTRIBUTING.md

commit dea46fa
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Sep 4 11:03:56 2026 +0200

    pin rasterio to 1.4

commit 4f4a1bd
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Thu Sep 3 19:33:41 2026 +0200

    remove noaa nightlight test

commit 697e8d6
Author: EnvDroneSense <thomas.remote.sensing@outlook.com>
Date:   Wed Sep 2 14:56:20 2026 +0200

    Compute forecast quantiles block-wise to bound memory (#1313)

    Add `sparse_quantile_axis0` to densify sparse matrices blockwise
    before computing the column quantiles.

    ---------

    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit 9efa386
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 17:42:20 2026 +0200

    fix damage

commit 05481fd
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Fri Aug 28 16:27:33 2026 +0200

    Upgrade GitHub Actions and Python versions (#1281)

    * Upgrade actions and Python versions

    Python 3.11 to 3.13.

    * Upgrade Python version in pyproject.toml

    * docs: Update supported versions

    * pin pandas

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>

commit 6b921e3
Merge: 6c7e3c8 bd6b09a
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:40:30 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit bd6b09a
Author: ankurmahiwal118028 <mahiinfo10@gmail.com>
Date:   Fri Aug 28 17:08:07 2026 +0530

    Fix #814: raise clear error for empty Hazard in ImpactCalc.impact (#1290)

    * Raise clear error for empty Hazard in ImpactCalc.impact

    Computing impact with a Hazard containing zero events previously
    crashed deep inside ``np.array_split`` with the obscure message
    "number sections must be larger than 0". This adds an early guard
    in ``ImpactCalc.impact`` that raises a ``ValueError`` with a clear
    explanation when ``self.hazard.size == 0``.

    Closes #814

    * Update climada/engine/test/test_impact_calc.py

    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

    ---------

    Co-authored-by: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
    Co-authored-by: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit 6c7e3c8
Merge: 54d100c ca00465
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:33:06 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit ca00465
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Fri Aug 28 13:32:17 2026 +0200

    fix future warning: H is deprecated (#1307)

    * use h (H is deprecated)

    * add comment to affine pin

commit a694663
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Fri Aug 28 13:31:06 2026 +0200

    fix fiona deprecation warning (#1308)

    * remove obsolete DEF_CRS_FIONA

    * add comment to affine pin

commit 54d100c
Merge: 5b03edb d2af313
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:05:56 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit d2af313
Author: Giovanni Cozzolongo <79092266+giovannicozzolongo@users.noreply.github.com>
Date:   Thu Aug 20 11:24:41 2026 +0200

    Read forecast dates from xarray (#1310)

    Preserve explicitly mapped date variables in
    HazardForecast.from_xarray_raster.

commit 5b03edb
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Wed Aug 19 11:02:31 2026 +0200

    add comment to affine pin

commit 80a2975
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Wed Aug 19 10:36:03 2026 +0200

    dependencies: pin affine to 2.4

commit 8100a31
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jul 15 12:18:41 2026 +0200

    Use Zenodo for downloading distance to coastline dataset (#1301)

commit cf0aa86
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Mon Jul 13 16:22:25 2026 +0200

    Handle 0-dim arrays being passed to ordinal converter (#1300)

commit 222a6e5
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Jun 19 16:11:18 2026 +0200

    pin matplotlib to 3.10

commit 5d0a985
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 17 11:23:05 2026 +0200

    Update installation guide (#1296)

    * Fix formatting errors.
    * Move switching branches to FAQ.
    * Fix some links.

commit d5778d9
Merge: a56dcc6 7094124
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jun 10 15:13:21 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

commit 7094124
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 10 11:55:53 2026 +0200

    Fix README links and update structure (#1101)

    * Fix README links and structure
    * Improve petals description

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>
    Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit a1e7107
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 10 11:31:14 2026 +0200

    Add forecast classes (#1115)

    * Add HazardForecast and ImpactForecast classes.
    * Add tests.
    * Add new forecast tutorial.

    ---------

    Co-authored-by: Evelyn Mühlhofer <42063186+Evelyn-M@users.noreply.github.com>
    Co-authored-by: Luca Severino <91593121+luseverin@users.noreply.github.com>
    Co-authored-by: Valentin Gebhart <60438839+ValentinGebhart@users.noreply.github.com>
    Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
    Co-authored-by: Chahan Kropf <chahan.kropf@posteo.com>
    Co-authored-by: elianekobler <138141646+elianekobler@users.noreply.github.com>

commit a56dcc6
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jun 10 09:50:52 2026 +0200

    removes tests for removed method

commit 7e30183
Merge: dd9c738 a99b10b
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jun 10 09:36:03 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

commit a99b10b
Merge: 805e2da aae360f
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Wed Jun 10 09:33:31 2026 +0200

    MeasureConfig dataclasses

    [Option Appraisal Module] [Package 1: Measures] Split 1: Adds `MeasureConfig` dataclasses for serializable measure configuration.

commit aae360f
Merge: 92990e4 a423c78
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jun 10 09:12:00 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit 805e2da
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Mon Jun 8 16:08:27 2026 +0200

    Docs/pixi installation (#1295)

    * first draft

    * improvments

    * notice about windows

    * make installation instructions more concise, add comments

    * layout corrections

    * improve section order

commit dd9c738
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 11:59:34 2026 +0200

    Adds test for custom cost incomes and cash flow computation

commit f191980
Merge: d09d18f a423c78
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:11:15 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

commit 92990e4
Merge: 8a4d13b 5ae3f7f
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:10:34 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit 8a4d13b
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:10:06 2026 +0200

    updates notebook outputs

commit 6ef99a2
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:09:14 2026 +0200

    Updates custom cash flow values

commit d09d18f
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:01:30 2026 +0200

    Removes method not in use

commit 3165652
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 09:57:37 2026 +0200

    Removes double checks

commit dc29f9b
Author: spjuhel <pro@sjuhel.org>
Date:   Thu May 28 16:55:16 2026 +0200

    Implement somes comments from Vale

commit ee1e854
Author: spjuhel <pro@sjuhel.org>
Date:   Thu May 28 16:06:58 2026 +0200

    idem

commit 1264c8e
Author: spjuhel <pro@sjuhel.org>
Date:   Thu May 28 15:59:51 2026 +0200

    Implements comments from Vale

commit 991562d
Author: Valentin Gebhart <valentin.gebhart@usys.ethz.ch>
Date:   Fri May 22 08:15:13 2026 +0200

    some typos and rephrasing

commit 3e8c51a
Merge: 044b7f4 3133447
Author: spjuhel <pro@sjuhel.org>
Date:   Wed May 13 14:47:26 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

commit 044b7f4
Merge: 2ee944b 2b19cf8
Author: spjuhel <pro@sjuhel.org>
Date:   Wed May 13 14:43:27 2026 +0200

    Merge branch 'develop' into feature/option-appraisal-costincome

commit 7803112
Merge: 0423a6f 3133447
Author: spjuhel <pro@sjuhel.org>
Date:   Wed May 13 14:27:52 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses
spjuhel added a commit that referenced this pull request Oct 15, 2026
commit 48c6c43
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 11:01:44 2026 +0200

    Removes deprecated test

commit 7090874
Merge: 6f450c6 399120f
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 11:00:38 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-new-measure-base

commit 6f450c6
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 10:55:21 2026 +0200

    Tutorial update, advanced examples

commit b8492fe
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 10:54:42 2026 +0200

    url typo

commit eb196eb
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 10:52:25 2026 +0200

    Fixed calc_impact (kwargs, args for `ImpactCalc.impact()`, docstring)

commit f9f9009
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Oct 15 10:51:55 2026 +0200

    Typos

commit 7e34485
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 17:34:46 2026 +0200

    Removes unused `implementation_duration`

commit 0f25f96
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Oct 14 17:32:01 2026 +0200

    Squashed commit of the following:

    commit 45f8885
    Merge: 6ba1f6f 720b31d
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Oct 14 17:14:18 2026 +0200

        Merge branch 'feature/option-appraisal-costincome' of github.com:CLIMADA-project/climada_python into feature/option-appraisal-costincome

    commit 6ba1f6f
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Oct 14 17:13:25 2026 +0200

        fixes tests

    commit d2d891f
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Oct 14 17:10:24 2026 +0200

        other minor fixes

    commit bf7fb2e
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Oct 14 16:50:52 2026 +0200

        Fixes some linter issues, removes datetime

    commit b5da6bf
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Oct 14 16:13:40 2026 +0200

        Tuple -> tuple

    commit 720b31d
    Merge: d5778d9 c0fcc8d
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Wed Sep 23 17:57:36 2026 +0200

        Merge branch 'develop' into feature/option-appraisal-costincome

    commit c0fcc8d
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Tue Sep 22 16:13:26 2026 +0200

        Fix exposure coordinate extraction for `CalcDeltaImpact` (#1304)

        * Use final exposure for centroid coords

        * Fix querying exposure coords in CalcDeltaImpact

        ---------

        Co-authored-by: emanuel-schmid <schmide@ethz.ch>

    commit b158053
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Tue Sep 15 16:49:20 2026 +0200

        Trigger pipeline for pull requests (#1318)

        * Trigger pipeline for pull requests and pushes to main, develop, releases.
        * Add info on approving workflow runs to CONTRIBUTING.md

    commit dea46fa
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Sep 4 11:03:56 2026 +0200

        pin rasterio to 1.4

    commit 4f4a1bd
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Thu Sep 3 19:33:41 2026 +0200

        remove noaa nightlight test

    commit 697e8d6
    Author: EnvDroneSense <thomas.remote.sensing@outlook.com>
    Date:   Wed Sep 2 14:56:20 2026 +0200

        Compute forecast quantiles block-wise to bound memory (#1313)

        Add `sparse_quantile_axis0` to densify sparse matrices blockwise
        before computing the column quantiles.

        ---------

        Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

    commit 9efa386
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Aug 28 17:42:20 2026 +0200

        fix damage

    commit 05481fd
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Fri Aug 28 16:27:33 2026 +0200

        Upgrade GitHub Actions and Python versions (#1281)

        * Upgrade actions and Python versions

        Python 3.11 to 3.13.

        * Upgrade Python version in pyproject.toml

        * docs: Update supported versions

        * pin pandas

        ---------

        Co-authored-by: emanuel-schmid <schmide@ethz.ch>

    commit 6b921e3
    Merge: 6c7e3c8 bd6b09a
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Aug 28 13:40:30 2026 +0200

        Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

    commit bd6b09a
    Author: ankurmahiwal118028 <mahiinfo10@gmail.com>
    Date:   Fri Aug 28 17:08:07 2026 +0530

        Fix #814: raise clear error for empty Hazard in ImpactCalc.impact (#1290)

        * Raise clear error for empty Hazard in ImpactCalc.impact

        Computing impact with a Hazard containing zero events previously
        crashed deep inside ``np.array_split`` with the obscure message
        "number sections must be larger than 0". This adds an early guard
        in ``ImpactCalc.impact`` that raises a ``ValueError`` with a clear
        explanation when ``self.hazard.size == 0``.

        Closes #814

        * Update climada/engine/test/test_impact_calc.py

        Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

        ---------

        Co-authored-by: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
        Co-authored-by: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
        Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

    commit 6c7e3c8
    Merge: 54d100c ca00465
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Aug 28 13:33:06 2026 +0200

        Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

    commit ca00465
    Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
    Date:   Fri Aug 28 13:32:17 2026 +0200

        fix future warning: H is deprecated (#1307)

        * use h (H is deprecated)

        * add comment to affine pin

    commit a694663
    Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
    Date:   Fri Aug 28 13:31:06 2026 +0200

        fix fiona deprecation warning (#1308)

        * remove obsolete DEF_CRS_FIONA

        * add comment to affine pin

    commit 54d100c
    Merge: 5b03edb d2af313
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Aug 28 13:05:56 2026 +0200

        Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

    commit d2af313
    Author: Giovanni Cozzolongo <79092266+giovannicozzolongo@users.noreply.github.com>
    Date:   Thu Aug 20 11:24:41 2026 +0200

        Read forecast dates from xarray (#1310)

        Preserve explicitly mapped date variables in
        HazardForecast.from_xarray_raster.

    commit 5b03edb
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Wed Aug 19 11:02:31 2026 +0200

        add comment to affine pin

    commit 80a2975
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Wed Aug 19 10:36:03 2026 +0200

        dependencies: pin affine to 2.4

    commit 8100a31
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Wed Jul 15 12:18:41 2026 +0200

        Use Zenodo for downloading distance to coastline dataset (#1301)

    commit cf0aa86
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Mon Jul 13 16:22:25 2026 +0200

        Handle 0-dim arrays being passed to ordinal converter (#1300)

    commit 222a6e5
    Author: emanuel-schmid <schmide@ethz.ch>
    Date:   Fri Jun 19 16:11:18 2026 +0200

        pin matplotlib to 3.10

    commit 5d0a985
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Wed Jun 17 11:23:05 2026 +0200

        Update installation guide (#1296)

        * Fix formatting errors.
        * Move switching branches to FAQ.
        * Fix some links.

    commit d5778d9
    Merge: a56dcc6 7094124
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Jun 10 15:13:21 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

    commit 7094124
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Wed Jun 10 11:55:53 2026 +0200

        Fix README links and update structure (#1101)

        * Fix README links and structure
        * Improve petals description

        ---------

        Co-authored-by: emanuel-schmid <schmide@ethz.ch>
        Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
        Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

    commit a1e7107
    Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
    Date:   Wed Jun 10 11:31:14 2026 +0200

        Add forecast classes (#1115)

        * Add HazardForecast and ImpactForecast classes.
        * Add tests.
        * Add new forecast tutorial.

        ---------

        Co-authored-by: Evelyn Mühlhofer <42063186+Evelyn-M@users.noreply.github.com>
        Co-authored-by: Luca Severino <91593121+luseverin@users.noreply.github.com>
        Co-authored-by: Valentin Gebhart <60438839+ValentinGebhart@users.noreply.github.com>
        Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
        Co-authored-by: Chahan Kropf <chahan.kropf@posteo.com>
        Co-authored-by: elianekobler <138141646+elianekobler@users.noreply.github.com>

    commit a56dcc6
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Jun 10 09:50:52 2026 +0200

        removes tests for removed method

    commit 7e30183
    Merge: dd9c738 a99b10b
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Jun 10 09:36:03 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

    commit a99b10b
    Merge: 805e2da aae360f
    Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
    Date:   Wed Jun 10 09:33:31 2026 +0200

        MeasureConfig dataclasses

        [Option Appraisal Module] [Package 1: Measures] Split 1: Adds `MeasureConfig` dataclasses for serializable measure configuration.

    commit aae360f
    Merge: 92990e4 a423c78
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed Jun 10 09:12:00 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

    commit 805e2da
    Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
    Date:   Mon Jun 8 16:08:27 2026 +0200

        Docs/pixi installation (#1295)

        * first draft

        * improvments

        * notice about windows

        * make installation instructions more concise, add comments

        * layout corrections

        * improve section order

    commit dd9c738
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 11:59:34 2026 +0200

        Adds test for custom cost incomes and cash flow computation

    commit f191980
    Merge: d09d18f a423c78
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 10:11:15 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

    commit 92990e4
    Merge: 8a4d13b 5ae3f7f
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 10:10:34 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

    commit 8a4d13b
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 10:10:06 2026 +0200

        updates notebook outputs

    commit 6ef99a2
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 10:09:14 2026 +0200

        Updates custom cash flow values

    commit d09d18f
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 10:01:30 2026 +0200

        Removes method not in use

    commit 3165652
    Author: spjuhel <pro@sjuhel.org>
    Date:   Fri May 29 09:57:37 2026 +0200

        Removes double checks

    commit dc29f9b
    Author: spjuhel <pro@sjuhel.org>
    Date:   Thu May 28 16:55:16 2026 +0200

        Implement somes comments from Vale

    commit ee1e854
    Author: spjuhel <pro@sjuhel.org>
    Date:   Thu May 28 16:06:58 2026 +0200

        idem

    commit 1264c8e
    Author: spjuhel <pro@sjuhel.org>
    Date:   Thu May 28 15:59:51 2026 +0200

        Implements comments from Vale

    commit 991562d
    Author: Valentin Gebhart <valentin.gebhart@usys.ethz.ch>
    Date:   Fri May 22 08:15:13 2026 +0200

        some typos and rephrasing

    commit 3e8c51a
    Merge: 044b7f4 3133447
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed May 13 14:47:26 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-costincome

    commit 044b7f4
    Merge: 2ee944b 2b19cf8
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed May 13 14:43:27 2026 +0200

        Merge branch 'develop' into feature/option-appraisal-costincome

    commit 7803112
    Merge: 0423a6f 3133447
    Author: spjuhel <pro@sjuhel.org>
    Date:   Wed May 13 14:27:52 2026 +0200

        Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit a9e9c5f
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Wed Oct 14 17:30:12 2026 +0200

    Apply batched suggestions from code review

    Co-authored-by: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>

commit 399120f
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Mon Oct 5 08:44:31 2026 +0200

    remove Euler installation docs (#1329)

    * remove Euler installation docs

    * update pr number

commit f6b5f41
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Thu Sep 24 15:52:54 2026 +0200

    minimal fixes (#1325)

commit f7272d7
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Thu Sep 24 15:52:03 2026 +0200

    fix shapely deprecations (#1324)

    * fix shapely deprecations

    * fix import

    * fix contains_xy location

    * blacken

    * fix more imports

commit dac0947
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Thu Sep 24 15:51:01 2026 +0200

    fix arguments in compute_angular_windspeeds (#1323)

commit c0fcc8d
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Tue Sep 22 16:13:26 2026 +0200

    Fix exposure coordinate extraction for `CalcDeltaImpact` (#1304)

    * Use final exposure for centroid coords

    * Fix querying exposure coords in CalcDeltaImpact

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>

commit b158053
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Tue Sep 15 16:49:20 2026 +0200

    Trigger pipeline for pull requests (#1318)

    * Trigger pipeline for pull requests and pushes to main, develop, releases.
    * Add info on approving workflow runs to CONTRIBUTING.md

commit dea46fa
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Sep 4 11:03:56 2026 +0200

    pin rasterio to 1.4

commit 4f4a1bd
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Thu Sep 3 19:33:41 2026 +0200

    remove noaa nightlight test

commit 697e8d6
Author: EnvDroneSense <thomas.remote.sensing@outlook.com>
Date:   Wed Sep 2 14:56:20 2026 +0200

    Compute forecast quantiles block-wise to bound memory (#1313)

    Add `sparse_quantile_axis0` to densify sparse matrices blockwise
    before computing the column quantiles.

    ---------

    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit 9efa386
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 17:42:20 2026 +0200

    fix damage

commit 05481fd
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Fri Aug 28 16:27:33 2026 +0200

    Upgrade GitHub Actions and Python versions (#1281)

    * Upgrade actions and Python versions

    Python 3.11 to 3.13.

    * Upgrade Python version in pyproject.toml

    * docs: Update supported versions

    * pin pandas

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>

commit 6b921e3
Merge: 6c7e3c8 bd6b09a
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:40:30 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit bd6b09a
Author: ankurmahiwal118028 <mahiinfo10@gmail.com>
Date:   Fri Aug 28 17:08:07 2026 +0530

    Fix #814: raise clear error for empty Hazard in ImpactCalc.impact (#1290)

    * Raise clear error for empty Hazard in ImpactCalc.impact

    Computing impact with a Hazard containing zero events previously
    crashed deep inside ``np.array_split`` with the obscure message
    "number sections must be larger than 0". This adds an early guard
    in ``ImpactCalc.impact`` that raises a ``ValueError`` with a clear
    explanation when ``self.hazard.size == 0``.

    Closes #814

    * Update climada/engine/test/test_impact_calc.py

    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

    ---------

    Co-authored-by: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
    Co-authored-by: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit 6c7e3c8
Merge: 54d100c ca00465
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:33:06 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit ca00465
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Fri Aug 28 13:32:17 2026 +0200

    fix future warning: H is deprecated (#1307)

    * use h (H is deprecated)

    * add comment to affine pin

commit a694663
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Fri Aug 28 13:31:06 2026 +0200

    fix fiona deprecation warning (#1308)

    * remove obsolete DEF_CRS_FIONA

    * add comment to affine pin

commit 54d100c
Merge: 5b03edb d2af313
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Aug 28 13:05:56 2026 +0200

    Merge branch 'develop' of github.com:CLIMADA-project/climada_python into develop

commit d2af313
Author: Giovanni Cozzolongo <79092266+giovannicozzolongo@users.noreply.github.com>
Date:   Thu Aug 20 11:24:41 2026 +0200

    Read forecast dates from xarray (#1310)

    Preserve explicitly mapped date variables in
    HazardForecast.from_xarray_raster.

commit 5b03edb
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Wed Aug 19 11:02:31 2026 +0200

    add comment to affine pin

commit 80a2975
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Wed Aug 19 10:36:03 2026 +0200

    dependencies: pin affine to 2.4

commit 8100a31
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jul 15 12:18:41 2026 +0200

    Use Zenodo for downloading distance to coastline dataset (#1301)

commit cf0aa86
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Mon Jul 13 16:22:25 2026 +0200

    Handle 0-dim arrays being passed to ordinal converter (#1300)

commit 222a6e5
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Fri Jun 19 16:11:18 2026 +0200

    pin matplotlib to 3.10

commit 5d0a985
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 17 11:23:05 2026 +0200

    Update installation guide (#1296)

    * Fix formatting errors.
    * Move switching branches to FAQ.
    * Fix some links.

commit 7094124
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 10 11:55:53 2026 +0200

    Fix README links and update structure (#1101)

    * Fix README links and structure
    * Improve petals description

    ---------

    Co-authored-by: emanuel-schmid <schmide@ethz.ch>
    Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
    Co-authored-by: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>

commit a1e7107
Author: Lukas Riedel <34276446+peanutfun@users.noreply.github.com>
Date:   Wed Jun 10 11:31:14 2026 +0200

    Add forecast classes (#1115)

    * Add HazardForecast and ImpactForecast classes.
    * Add tests.
    * Add new forecast tutorial.

    ---------

    Co-authored-by: Evelyn Mühlhofer <42063186+Evelyn-M@users.noreply.github.com>
    Co-authored-by: Luca Severino <91593121+luseverin@users.noreply.github.com>
    Co-authored-by: Valentin Gebhart <60438839+ValentinGebhart@users.noreply.github.com>
    Co-authored-by: Chahan M. Kropf <chahan.kropf@usys.ethz.ch>
    Co-authored-by: Chahan Kropf <chahan.kropf@posteo.com>
    Co-authored-by: elianekobler <138141646+elianekobler@users.noreply.github.com>

commit a99b10b
Merge: 805e2da aae360f
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Wed Jun 10 09:33:31 2026 +0200

    MeasureConfig dataclasses

    [Option Appraisal Module] [Package 1: Measures] Split 1: Adds `MeasureConfig` dataclasses for serializable measure configuration.

commit aae360f
Merge: 92990e4 a423c78
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jun 10 09:12:00 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit 805e2da
Author: Emanuel Schmid <51439563+emanuel-schmid@users.noreply.github.com>
Date:   Mon Jun 8 16:08:27 2026 +0200

    Docs/pixi installation (#1295)

    * first draft

    * improvments

    * notice about windows

    * make installation instructions more concise, add comments

    * layout corrections

    * improve section order

commit 96f6f95
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:21:42 2026 +0200

    Adds guide

commit e53690b
Merge: 3ed1b5c a423c78
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:14:51 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-new-measure-base

commit 92990e4
Merge: 8a4d13b 5ae3f7f
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:10:34 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit 8a4d13b
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:10:06 2026 +0200

    updates notebook outputs

commit 6ef99a2
Author: spjuhel <pro@sjuhel.org>
Date:   Fri May 29 10:09:14 2026 +0200

    Updates custom cash flow values

commit ee1e854
Author: spjuhel <pro@sjuhel.org>
Date:   Thu May 28 16:06:58 2026 +0200

    idem

commit 1264c8e
Author: spjuhel <pro@sjuhel.org>
Date:   Thu May 28 15:59:51 2026 +0200

    Implements comments from Vale

commit 991562d
Author: Valentin Gebhart <valentin.gebhart@usys.ethz.ch>
Date:   Fri May 22 08:15:13 2026 +0200

    some typos and rephrasing

commit a423c78
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Wed May 20 16:13:44 2026 +0200

    Fixes CHANGELOG.md not updated in [#1201]

commit a74b03c
Merge: 5ae3f7f bb0c406
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Tue May 19 14:18:07 2026 +0200

    Merge pull request #1201 from CLIMADA-project/feature/interpolated-trajectories

     Risk Trajectory Split 5: Interpolated Risk Trajectories

commit bb0c406
Author: spjuhel <pro@sjuhel.org>
Date:   Tue May 19 14:01:41 2026 +0200

    Fix tests and period aggregation

commit e609c32
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 18 15:51:25 2026 +0200

    Tests to pytest format

commit 0a52333
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 18 15:50:12 2026 +0200

    Better bounds inclusion in per_period_risk_metrics

commit f903cbf
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 18 13:20:03 2026 +0200

    Implement much better period aggregation

commit 1ff0a98
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 18 13:19:39 2026 +0200

    Implement comments from Chahan

commit 59f8a78
Merge: 39d557c 5ae3f7f
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 18 09:21:20 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/interpolated-trajectories

commit 5ae3f7f
Author: Simona Meiler <47355042+simonameiler@users.noreply.github.com>
Date:   Fri May 15 03:58:37 2026 -0700

    Fix TCTracks.from_FAST duplicate loading from year loop (#1269)

    * Fix TCTracks.from_FAST duplicate loading from year loop

    * Refactor test_from_FAST: extend fixture to 2 years, remove separate regression test

    The test fixture FAST_test_tracks.nc now has year=[2025,2026] (only
    seeds_per_month is extended; track variables retain their n_trk dim).
    The existing len(tc_track.data)==5 assertion now acts as the regression
    check: the buggy year-loop code would return 5x2=10 tracks.

    The separate test_from_FAST_not_multiplied_by_year_dim (with its
    temporary-file scaffolding) is removed.

    * Update changelo

    ---------

    Co-authored-by: Simona Meiler <simona.meiler@usys.ethz.ch>
    Co-authored-by: Chahan Kropf <chahan.kropf@posteo.com>

commit 7803112
Merge: 0423a6f 3133447
Author: spjuhel <pro@sjuhel.org>
Date:   Wed May 13 14:27:52 2026 +0200

    Merge remote-tracking branch 'origin/develop' into feature/option-appraisal-dataclasses

commit 3133447
Merge: cb38e22 20f8485
Author: Samuel Juhel <10011382+spjuhel@users.noreply.github.com>
Date:   Wed May 13 14:24:57 2026 +0200

    Merge pull request #1274 from CLIMADA-project/feature/option-appraisal-split-make-legacy

    [Option Appraisal Module] [Package 1: Measures] Split 0: Move old measures to _legacy module

commit 20f8485
Merge: 7986917 2b19cf8
Author: spjuhel <pro@sjuhel.org>
Date:   Wed May 13 10:23:02 2026 +0200

    Merge branch 'develop' into feature/option-appraisal-split-make-legacy

commit 3ed1b5c
Author: spjuhel <pro@sjuhel.org>
Date:   Tue May 12 15:34:47 2026 +0200

    Updates calc_impact code and docstring

commit 8d6ef87
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 11 14:58:40 2026 +0200

    propagates name change

commit 05cd6c4
Author: spjuhel <pro@sjuhel.org>
Date:   Mon May 11 14:56:03 2026 +0200

    Rename base.py -> measure.py

commit cb38e22
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Tue Apr 21 15:21:50 2026 +0200

    purge .gitignore

commit 2b19cf8
Author: emanuel-schmid <schmide@ethz.ch>
Date:   Tue Apr 21 14:47:27 2026 +0200

    recover common_test_fixtures

commit 39d557c
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Apr 8 08:47:37 2026 +0200

    Update tests

commit da737ae
Merge: 6528721 12713e4
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Apr 8 08:42:40 2026 +0200

    Merge branch 'feature/conftest-for-common-fixtures' into feature/interpolated-trajectories

commit 6528721
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Apr 7 16:40:24 2026 +0200

    Better TOC

commit b815433
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Mar 27 14:43:19 2026 +0100

    Forgot to run all cells

commit f7927f2
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Mar 27 14:37:25 2026 +0100

    Implements comments from Chahan

commit 63535f5
Merge: 7aca568 60d3957
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Mar 26 11:36:38 2026 +0100

    Merge remote-tracking branch 'origin/develop' into feature/interpolated-trajectories

commit 7aca568
Merge: f5f484f 8895be3
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Mar 26 11:24:26 2026 +0100

    Merge remote-tracking branch 'origin/develop' into feature/interpolated-trajectories

commit f5f484f
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Mar 25 17:13:12 2026 +0100

    Update tuto

commit d25ed40
Merge: 5dffa17 ea8e9b6
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Mar 25 16:47:54 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 5dffa17
Merge: bbec035 99703d3
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Mar 25 16:47:50 2026 +0100

    Merge remote-tracking branch 'origin/develop' into feature/interpolated-trajectories

commit bbec035
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Mar 12 13:56:34 2026 +0100

    Added a test for negative intensity hazards

commit bb4fbba
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Mar 11 11:29:12 2026 +0100

    Polish (unused imports, lsp/pylint errors)

commit a032cc5
Merge: 7c2426c 152f594
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Mar 11 10:55:23 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 7c2426c
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Feb 26 10:52:10 2026 +0100

    Fixes header display in doc

commit 6922834
Merge: be86a85 0ba7e35
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Feb 26 10:34:19 2026 +0100

    Merge branch 'feature/docbuild-fixes' into feature/interpolated-trajectories

commit be86a85
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Feb 26 10:33:04 2026 +0100

    updates notebook

commit d3a37cf
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 25 17:05:15 2026 +0100

    Fixes integration tests

commit f8ba95c
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 25 16:59:49 2026 +0100

    Fixes names

commit 9ca3940
Merge: 402b173 e55a481
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 25 16:51:18 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 402b173
Merge: 495a1dc 33e7bac
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Feb 13 15:47:07 2026 +0100

    Merge remote-tracking branch 'origin/develop' into feature/interpolated-trajectories

commit 495a1dc
Merge: 50cc9ee bb08305
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Feb 12 10:46:49 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 50cc9ee
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 12:05:18 2026 +0100

    Updates Notebook

commit 4f3fb40
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:49:26 2026 +0100

    Tiny fix from notebook warning

commit 592a84c
Merge: 9d646e0 0cda1e2
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:31:58 2026 +0100

    Merge branch 'feature/conftest-for-common-fixtures' into feature/interpolated-trajectories

commit 9d646e0
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:29:12 2026 +0100

    wrong branch

commit 989fe9e
Merge: 006ab46 5f96532
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:26:15 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 006ab46
Merge: a221770 dea5796
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:16:26 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit a221770
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:16:10 2026 +0100

    test update

commit e12b755
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Feb 11 11:11:39 2026 +0100

    Updates integration tests

commit 58f4e84
Merge: 723f7f4 e83b768
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Feb 10 10:43:45 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 723f7f4
Merge: 628c427 7a58d5b
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Feb 10 09:52:08 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit 628c427
Merge: b04a5e3 f334b8c
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Feb 10 09:49:13 2026 +0100

    Merge branch 'feature/snapshots' into feature/interpolated-trajectories

commit b04a5e3
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Jan 8 10:32:16 2026 +0100

    Removes low level thingy from high level interface (and docs)

commit 26ac588
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Jan 8 10:25:28 2026 +0100

    Fix name in docstring

commit 4f7c336
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 17:22:59 2026 +0100

    Removed unused attribute

commit 8f537cf
Merge: fa3ae24 77b76c4
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 16:54:19 2026 +0100

    Merge branch 'feature/snapshots' into feature/interpolated-trajectories

commit fa3ae24
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 16:53:52 2026 +0100

    fix lsp complaints about type hints

commit 8053554
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 16:53:35 2026 +0100

    better type hint

commit fc3825e
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 16:53:13 2026 +0100

    naming, type hint

commit 71d23d9
Author: spjuhel <pro@sjuhel.org>
Date:   Wed Jan 7 16:52:55 2026 +0100

    fix

commit b7d39d3
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:53:10 2026 +0100

    updates API reference

commit 7db2d26
Merge: d63e606 183783f
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:51:47 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit d63e606
Merge: e8741c0 cf40e8f
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:51:06 2026 +0100

    Merge branch 'feature/impact-computation-strategies' into feature/interpolated-trajectories

commit e8741c0
Merge: e837b46 76e237f
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:50:22 2026 +0100

    Merge branch 'feature/interpolation-strategies' into feature/interpolated-trajectories

commit e837b46
Merge: 36e078d 25fbcda
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:49:42 2026 +0100

    Merge branch 'feature/snapshots' into feature/interpolated-trajectories

commit 36e078d
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Jan 6 10:06:59 2026 +0100

    pylint compliance

commit 68ee822
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Jan 5 18:08:27 2026 +0100

    Pylint compliance

commit 09e7af9
Merge: 94e292a 463568c
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Jan 5 16:08:10 2026 +0100

    Merge branch 'feature/interpolation-strategies' into feature/interpolated-trajectories

commit 94e292a
Merge: ca23d19 1ec88bf
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Jan 5 16:06:09 2026 +0100

    Merge branch 'feature/static-risk-traj' into feature/interpolated-trajectories

commit ca23d19
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Jan 5 14:23:23 2026 +0100

    updates tests and fixtures

commit ebd91bf
Merge: a2ae1f0 765bb00
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Dec 23 10:35:16 2025 +0100

    Merge branch 'feature/common_test_fixtures' into feature/interpolated-trajectories

commit 765bb00
Author: spjuhel <pro@sjuhel.org>
Date:   Tue Dec 23 10:33:17 2025 +0100

    First suggestion

commit a2ae1f0
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Dec 22 14:00:24 2025 +0100

    Adds ref to notebook in rst index

commit ad941d8
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Dec 22 13:54:18 2025 +0100

    clean Notebook

commit ed8ed0f
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Dec 22 13:45:52 2025 +0100

    Fixes legend colors for non always negative contributions

commit 08ebe0e
Author: spjuhel <pro@sjuhel.org>
Date:   Mon Dec 22 13:45:19 2025 +0100

    Makes caching configurable

commit 50b4286
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 17:40:42 2025 +0100

    updates tutorial

commit 2a95391
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 17:40:16 2025 +0100

    waterfall time plot with negative contributions

commit e4ec92d
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 17:39:57 2025 +0100

    fixes init imports

commit 2068ee8
Merge: 480c89d e12e014
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 15:23:57 2025 +0100

    Merge branch 'feature/snapshots' into feature/interpolated-trajectories

commit 480c89d
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 15:18:22 2025 +0100

    updates Tutorial [wip]

commit 063a4ce
Author: spjuhel <pro@sjuhel.org>
Date:   Fri Dec 19 09:45:00 2025 +0100

    fixes imports

commit f0f635b
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Dec 18 16:29:51 2025 +0100

    Tidies up `calc_risk_metrics`

commit 2a0cf66
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Dec 18 15:21:01 2025 +0100

    fixes namespace

commit 6443876
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Dec 18 15:18:11 2025 +0100

    updates from feature/risk_trajectory

commit b8b4881
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Dec 18 15:16:11 2025 +0100

    Updates from feature/risk_trajectory

commit cf7a80a
Author: spjuhel <pro@sjuhel.org>
Date:   Thu Dec 18 15:12:25 2025 +0100

    cherry pick
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants