Method
Climate indicators computed from daily fields
In short
CMCC publishes, on a grid of about 5.5 km covering Italy, the mean temperature, the maximum temperature and the precipitation of every single day from 1985 to 2100, bias-adjusted with the EQM technique. It publishes no indicators: whoever reads the data computes them, and here TerraOverview computes them. This method reduces the days to four numbers per cell — how much mean temperature, heatwave days, annual precipitation and consecutive dry days change between the thirty years 2036-2065 and the 1985-2014 reference. Two of those four are sums, and there is one way to do them; two are definitions, and the definitions are ours.
The steps
- One file at a time is downloaded — one field, one period — and read in windows of 31 days: a complete file weighs about 16 GB and is deleted as soon as its indicators have been computed, so never more than one file is on disk.
- Units are read from the file’s attributes and not assumed. This dataset publishes temperatures in degrees Celsius and not in the kelvin a CMIP6 field usually carries: taking one for the other would be an error of 273 degrees, and it would look like data.
- Mean temperature: the sum of the daily values divided by the number of days in the window. Annual precipitation: the sum of the millimetres of each calendar year, averaged over the years of the window.
- Consecutive dry days: the ETCCDI definition, CDD, that is the longest run of days under 1 mm inside the calendar year, averaged over the years. The threshold and the unit are ETCCDI’s and not ours, which is why they were taken: they can be cited.
- Heatwave days: a day inside a run of at least three consecutive days whose maximum temperature is above the 95th percentile of that cell’s daily maxima over the 1985-2014 reference, counted per calendar year and averaged over the window. No single version of this definition exists in the literature: this one is TerraOverview’s, and it is written out in full in decision ADR 0028. The 95th and not a more extreme cut because CMCC warns that values above the 99th percentile may be affected by the method the dataset was adjusted with: the adjustment learns from observed days, and of the very hottest there are almost none to learn from.
- The change is the difference between the future window and the reference, cell by cell and scenario by scenario, in the indicator’s own unit.
- Only the cells the source fills are kept: 11,405 of 185,565. The rest is sea and foreign territory, which the file writes as missing data; counting them would give diluted means and medians taken over the sea.
What this number is not
- It is a scenario, not a forecast. It describes how the climate would change if emissions followed a given pathway; pathways are assumptions, which is why at least two are always shown.
- It is the value of a cell about 5.5 km across, not of the building. The cell is far smaller than that of the European-scale projections, but it is still a square of thirty square kilometres: nothing in these data distinguishes a hillside from a valley floor.
- The reference is 1985-2014 and not the 1981-2010 the Italian climate literature most often uses: this source’s historical product begins in 1985 and that period cannot be rebuilt from it. Four years out of thirty move all four changes, so a value computed this way is not comparable with one computed against the other reference.
- Heatwave days must be read knowing the threshold is fixed, taken from that same cell’s 1985-2014 climate and not updated to the future one. The reference figure is not a fact about the past but a consequence of the definition: above the 95th percentile lie, by construction, five per cent of days, about eighteen a year, and requiring runs of at least three leaves thirteen of them on average. What the increase measures is how much more often a warmer climate crosses a threshold that does not move.
- There is no overall score, and none will be produced. Indicators with different units have no common scale, and inventing one would be a TerraOverview claim and not a CMCC one.
Where the code is
pipeline/python/fetch_sdeqm.pypipeline/python/indicators_sdeqm.pypipeline/python/archive_sdeqm.pypackages/sources/src/adapters/cmcc-sdeqm-climate.ts