def get_PAmask(coordinates=[], domain='EUR-11'): """ generates a matrix with 1/0 values over land areas. (NaN for water regions) :param coordinates: 2D array with lat lon coordinates representing tree observation :param domain: region (default='EUR-11') """ from scipy import spatial import numpy as np from netCDF4 import Dataset from flyingpigeon import config DIR_MASKS = config.masks_dir() if domain=='EUR-11': nc = DIR_MASKS + '/sftlf_EUR-11_ECMWF-ERAINT_evaluation_r1i1p1_KNMI-RACMO22E_v1_fx.nc' else: logger.debug('domain not found') ds = Dataset(nc, mode='r') lats = ds.variables['lat'] lons = ds.variables['lon'] sftlf = np.array(ds.variables['sftlf']) domain = lats.shape lats1D = np.array(lats).ravel() lons1D = np.array(lons).ravel() tree = spatial.KDTree(zip(lats1D,lons1D)) l, i = tree.query(coordinates) PA = np.zeros(len(lats1D)) PA[i] = 1 PAmask = PA.reshape(domain) PAmask[sftlf<=50] = np.nan return PAmask
def get_PAmask(coordinates=[], domain='EUR-11'): """ generates a matrix with 1/0 values over land areas. (NaN for water regions) :param coordinates: 2D array with lat lon coordinates representing tree observation :param domain: region (default='EUR-11') """ from scipy import spatial import numpy as np from netCDF4 import Dataset from flyingpigeon import config DIR_MASKS = config.masks_dir() if domain == 'EUR-11': nc = DIR_MASKS + '/sftlf_EUR-11_ECMWF-ERAINT_evaluation_r1i1p1_KNMI-RACMO22E_v1_fx.nc' else: logger.debug('domain not found') ds = Dataset(nc, mode='r') lats = ds.variables['lat'] lons = ds.variables['lon'] sftlf = np.array(ds.variables['sftlf']) domain = lats.shape lats1D = np.array(lats).ravel() lons1D = np.array(lons).ravel() tree = spatial.KDTree(zip(lats1D, lons1D)) l, i = tree.query(coordinates) PA = np.zeros(len(lats1D)) PA[i] = 1 PAmask = PA.reshape(domain) PAmask[sftlf <= 50] = np.nan return PAmask
from cdo import Cdo from tempfile import mkstemp import os from flyingpigeon.utils import drs_filename, get_variable, calc_grouping , sort_by_filename from flyingpigeon import config import logging logger = logging.getLogger(__name__) DIR_MASKS = config.masks_dir() DIR_SHP = config.shapefiles_dir() def countries(): """ :return: a list of all countries codes. """ countries = _COUNTRIES_.keys() countries.sort() return countries def countries_longname(): """ :return: the longname of all countries. """ longname = '' for country in countries(): longname = longname + "%s : %s \n" % (country, _COUNTRIES_[country]['longname']) return longname def masking(resource, mask, prefix=None, dir_output=None):
from cdo import Cdo from tempfile import mkstemp import os from flyingpigeon.utils import drs_filename, get_variable, calc_grouping, sort_by_filename from flyingpigeon import config import logging logger = logging.getLogger(__name__) DIR_MASKS = config.masks_dir() DIR_SHP = config.shapefiles_dir() def countries(): """ :return: a list of all country codes. """ countries = _COUNTRIES_.keys() #countries = ['DEU', 'FRA', 'GBR', 'ESP', 'ITA'] countries.sort() return countries def countries_longname(): """ :return: the long name of all countries. """ longname = '' for country in countries(): longname = longname + "%s : %s \n" % (country,