Source code for satpy.writers.cf.coords_attrs

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Set CF-compliant attributes to x and y spatial dimensions."""

import logging

from satpy.writers.cf.crs import _is_projected

logger = logging.getLogger(__name__)


[docs]def add_xy_coords_attrs(dataarray): """Add relevant attributes to x, y coordinates.""" # If there are no coords, return dataarray if not dataarray.coords.keys() & {"x", "y", "crs"}: return dataarray # If projected area if _is_projected(dataarray): dataarray = _add_xy_projected_coords_attrs(dataarray) else: dataarray = _add_xy_geographic_coords_attrs(dataarray) if 'crs' in dataarray.coords: dataarray = dataarray.drop_vars('crs') return dataarray
[docs]def _add_xy_projected_coords_attrs(dataarray, x='x', y='y'): """Add relevant attributes to x, y coordinates of a projected CRS.""" if x in dataarray.coords: dataarray[x].attrs['standard_name'] = 'projection_x_coordinate' dataarray[x].attrs['units'] = 'm' if y in dataarray.coords: dataarray[y].attrs['standard_name'] = 'projection_y_coordinate' dataarray[y].attrs['units'] = 'm' return dataarray
[docs]def _add_xy_geographic_coords_attrs(dataarray, x='x', y='y'): """Add relevant attributes to x, y coordinates of a geographic CRS.""" if x in dataarray.coords: dataarray[x].attrs['standard_name'] = 'longitude' dataarray[x].attrs['units'] = 'degrees_east' if y in dataarray.coords: dataarray[y].attrs['standard_name'] = 'latitude' dataarray[y].attrs['units'] = 'degrees_north' return dataarray