The current code in xs.generate_weights uses this kind of structure:
This is fine for '1 model - 1 vote' (independence_level='all') since in that case, members of a given model (CanESM2 and CanESM2-CRCM5) will share the same weight. If we compute weights for independence_level='GCM', we get:
CanESM2 - r1i1p1: 0.25
CanESM2 - r2i1p1: 0.25
CanESM2-CRCM5 - r1i1p1: 0.166
CanESM2-CRCM5 - r2i1p1: 0.166
CanESM2-CRCM5 - r3i1p1: 0.166
Total = 1.0
However, the thinking behind '1 GCM - 1 vote' is that the GCM is the level at which valuable information is created. The structure should thus instead be:
Where you start on the basis that the added value is provided by the realisations. In that scheme, we'd get:
CanESM2 - r1i1p1: 0.166
CanESM2 - r2i1p1: 0.166
CanESM2-CRCM5 - r1i1p1: 0.166
CanESM2-CRCM5 - r2i1p1: 0.166
CanESM2-CRCM5 - r3i1p1: 0.333 --> Big winner, since only a single model ran r3i1p1
Total = 1.0
Additional context
independence_level=all would be unaffected by the change. However, results for independence_level=GCM could be substantially different depending on the datasets provided, to the level of a breaking change rather than a bugfix.
Contribution
[X] I would be willing/able to open a Pull Request to address this bug.
Setup Information
Description
The current code in
xs.generate_weights
uses this kind of structure:This is fine for '1 model - 1 vote' (
independence_level='all'
) since in that case, members of a given model (CanESM2 and CanESM2-CRCM5) will share the same weight. If we compute weights forindependence_level='GCM'
, we get:However, the thinking behind '1 GCM - 1 vote' is that the GCM is the level at which valuable information is created. The structure should thus instead be:
Where you start on the basis that the added value is provided by the realisations. In that scheme, we'd get:
Additional context
independence_level=all
would be unaffected by the change. However, results forindependence_level=GCM
could be substantially different depending on the datasets provided, to the level of a breaking change rather than a bugfix.Contribution