Land mask download

Script to download a land mask (it’s not really a land mask, but we’re only using it in plotting, so it’s fine).

#!/usr/bin/env python

# Retrieve a soil temperature file from ERA5-land

# This is just an easy way to get a high-resolution land mask for plotting

import os
import cdsapi

opdir = "%s/ERA5/monthly/reanalysis" % os.getenv("SCRATCH")
if not os.path.isdir(opdir):
    os.makedirs(opdir, exist_ok=True)

if not os.path.isfile("%s/land_mask.nc" % opdir):  # Only bother if we don't have it

    c = cdsapi.Client()

    # Variable and date are arbitrary
    # Just want something that is only defined in land grid-cells.

    ctrlB = {
        "variable": "soil_temperature_level_1",
        "year": "2001",
        "month": "03",
        "time": "00:00",
        "format": "netcdf",
        "product_type": "monthly_averaged_reanalysis",
    }

    c = cdsapi.Client()
    c.retrieve(
        "reanalysis-era5-land-monthly-means",
        ctrlB,
        "%s/%s.nc" % (opdir, "land_mask"),
    )

# Use system call to run ncks on output file
# To remove 'expver' variable (otherwise iris won't load it)
os.system(
    "ncks -O -C -x -v expver %s/%s.nc %s/%s.nc"
    % (opdir, "land_mask", opdir, "land_mask")
)