示例#1
0
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
示例#2
0
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
示例#3
0
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):
示例#4
0
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,