def get_stereographic_array_descriptor(self):

        # projection for BEDMAP2 and other common Antarctic data sets
        projection = pyproj.Proj('+proj=stere +lat_ts=-71.0 +lat_0=-90 '
                                 '+lon_0=0.0  +k_0=1.0 +x_0=0.0 +y_0=0.0 '
                                 '+ellps=WGS84')

        # a square 61x61 cell map with 100 km resolution and
        xMax = 3000e3
        res = 100e3
        nx = 2*int(xMax/res)+1
        x = numpy.linspace(-xMax, xMax, nx)
        descriptor = ProjectionGridDescriptor(projection)
        meshName = '{}km_Antarctic_stereo'.format(int(res*1e-3))
        descriptor.create(x, x, meshName)
        return descriptor
Пример #2
0
    def get_observation_descriptor(self, fileName):  # {{{
        '''
        get a MeshDescriptor for the observation grid

        Parameters
        ----------
        fileName : str
            observation file name describing the source grid

        Returns
        -------
        obsDescriptor : ``MeshDescriptor``
            The descriptor for the observation grid
        '''
        # Authors
        # -------
        # Xylar Asay-Davis

        # create a descriptor of the observation grid using the x/y polar
        # stereographic coordinates
        projection = get_antarctic_stereographic_projection()
        obsDescriptor = ProjectionGridDescriptor.read(projection,
                                                      fileName=fileName,
                                                      xVarName='x',
                                                      yVarName='y')
        return obsDescriptor  # }}}
Пример #3
0
def _get_antarctic_stereographic_comparison_descriptor(config):  # {{{
    """
    Get a descriptor of an Antarctic steregraphic comparison grid, used for
    remapping and determining the grid name

    Parameters
    ----------
    config :  instance of ``MpasAnalysisConfigParser``
        Contains configuration options

    Returns
    -------
    descriptor : ``ProjectionGridDescriptor`` object
        A descriptor of the Antarctic comparison grid
    """
    # Authors
    # -------
    # Xylar Asay-Davis

    climSection = 'climatology'

    comparisonStereoWidth = config.getfloat(climSection,
                                            'comparisonAntarcticStereoWidth')
    comparisonStereoResolution = config.getfloat(
        climSection, 'comparisonAntarcticStereoResolution')

    projection = get_antarctic_stereographic_projection()

    xMax = 0.5 * comparisonStereoWidth * 1e3
    nx = int(comparisonStereoWidth / comparisonStereoResolution) + 1
    x = numpy.linspace(-xMax, xMax, nx)

    meshName = '{}x{}km_{}km_Antarctic_stereo'.format(
        comparisonStereoWidth, comparisonStereoWidth,
        comparisonStereoResolution)
    descriptor = ProjectionGridDescriptor.create(projection, x, x, meshName)

    return descriptor  # }}}
Пример #4
0
maskedMeltRate = numpy.ma.masked_array(ds.melt_actual,
                                       mask=(ds.melt_actual.values == 0.))

ds['meltRate'] = xarray.DataArray(maskedMeltRate,
                                  dims=ds.melt_actual.dims,
                                  coords=ds.melt_actual.coords,
                                  attrs=ds.melt_actual.attrs)

ds = ds.drop('melt_actual')

inGridName = '{}x{}km_1.0km_Antarctic_stereo'.format(lx, ly)

projection = pyproj.Proj('+proj=stere +lat_ts=-71.0 +lat_0=-90 +lon_0=0.0 '
                         '+k_0=1.0 +x_0=0.0 +y_0=0.0 +ellps=WGS84')

inDescriptor = ProjectionGridDescriptor(projection)

inDescriptor.read(inFileName,
                  xVarName='xaxis',
                  yVarName='yaxis',
                  meshName=inGridName)

outDescriptor = get_Antarctic_stereographic_comparison_descriptor(config)
outGridName = outDescriptor.meshName

outFileName = 'Rignot_2013_melt_rates_{}.nc'.format(outGridName)

mappingFileName = 'map_{}_to_{}.nc'.format(inGridName, outGridName)

remapper = Remapper(inDescriptor, outDescriptor, mappingFileName)