Skip to content

Dataset problem: Fixing the grids in ALADIN53 and ALADIN63 datasets #2840

@sloosvel

Description

@sloosvel

Describe the dataset issue

ALADIN53 and ALADIN63 datasets have the projection coordinates shifted, leading to incorrect plots.

Image Image

The units of the projected coordinates are also given in km instead of m.

For ALADIN53, the projection coordinates are created as auxiliary coordinates because they are not monotonic, so after fixing them, they need to be promoted to DimCoords.

Additionally, in the case of ALADIN53 tas variable, the metadata of the projection contains false_easting and false_northing values that are different than 0, which in other variables of the dataset, these attributes are set 0.

I thought that the only way to fix the projection coordinates would be by regridding the datasets to a rotated pole grid, but there may be another way to derive the projected coordinate points.

I took a look at correct CORDEX datasets and noticed that the way the projection coordinates are arranged is by having the central point at 0, which makes sense because the coordinate system spans from a central longitude and a central latitude point. Then, the difference between points corresponds to the resolution of the grid. In the case of DOMAIN-11 domains, that is 12500 m; in the case of DOMAIN-22 domains, that is 25000m; and in the case of DOMAIN-44 domains, that is 50000m.

Knowing that a grid is formed by (x_points, y_points), that the difference between points is given by a fixed step that depends on the resolution, and that the central point in the coordinates is set at 0, the coordinate points can be derived in the following way:

step = 12500 # in the case of DOMAIN-11 datasets
nx = cube.coord('projection_x_coordinate').shape[0]
ny = cube.coord('projection_y_coordinate').shape[0]

x_points = np.linspace(-step*(nx-1)/2, step*(nx-1)/2, nx)
y_points = np.linspace(-step*(ny-1)/2, step*(ny-1)/2, ny)

This method seems to fix the plotting of ALADIN EUR-11 datasets:

Image Image

And I also tried it with data in other domains, such as MED-11, and it seems to work as well:

Image

Even though this domain is out of scope of the work needed to be done.

In terms of how to proceed, we could add this fix for all variables in ALADIN53 and ALADIN63 datasets. I think trying to add a general fix for all Lambert Conformal Conic datasets is more risky, because there are datasets that are already correct, so I think it would be best to apply those grid fixes just in the datasets that need it based on visual inspection.

I attach below a recipe that loads and plots ALADIN53, ALADIN63 data:

documentation:
  title: |
    test
  authors:
    - loosveldt-tomas_saskia
  description: |
    test

preprocessors:
  ts_pp:
    custom_order: true
    monthly_statistics:
      operator: mean
    climate_statistics:
      period: full

datasets:
    - {project: CORDEX, domain: EUR-11, dataset: ALADIN53, driver: CNRM-CERFACS-CNRM-CM5, ensemble: r1i1p1, institute: CNRM, rcm_version: v1}
    - {project: CORDEX, domain: EUR-11, dataset: ALADIN63, driver: CNRM-CERFACS-CNRM-CM5, ensemble: r1i1p1, institute: CNRM, rcm_version: v2}
    - {project: CORDEX, domain: MED-11, dataset: ALADIN52, driver: CNRM-CERFACS-CNRM-CM5, ensemble: r1i1p1, institute: CNRM, rcm_version: v1}



diagnostics:
  bias:
    variables:
      tas:
        short_name: tas
        mip: day
        exp: historical
        timerange: 20030101/20030102
        preprocessor: ts_pp
    scripts:
      plot: &plot_multi_dataset_default
        plot_folder: '{plot_dir}'
        plot_filename: '{plot_type}_{real_name}_{alias}_{mip}'
        facet_used_for_labels: 'alias'
        script: monitor/multi_datasets.py
        plots:
          map:
            common_cbar: true
            fontsize: 10
            show_stats: false
            plot_kwargs_bias:
              levels: [-10.0, -7.5, -5.0, -2.5, 0.0, 2.5, 5.0, 7.5, 10.0]
              x_pos_stats_avg: 0.5
              x_pos_stats_bias: 0.5

In order to be able to generate the plots, the diagnostic needs the changes in the monitor/multi_datasets.py script that are implemented in ESMValGroup/ESMValTool#4199

Metadata

Metadata

Assignees

No one assigned

    Labels

    fix for datasetRelated to dataset-specific fix files

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions