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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.py
  • pipeline/python/indicators_sdeqm.py
  • pipeline/python/archive_sdeqm.py
  • packages/sources/src/adapters/cmcc-sdeqm-climate.ts