Пример #1
0
    def setup_config(self, autocloseFileLimitFraction=0.5,
                     maxChunkSize=10000):
        config = MpasAnalysisConfigParser()
        config.add_section('input')
        config.set('input', 'autocloseFileLimitFraction',
                   str(autocloseFileLimitFraction))
        config.set('input', 'maxChunkSize', str(maxChunkSize))
        config.set('input', 'mpasMeshName', 'QU240')

        config.add_section('output')
        config.set('output', 'baseDirectory', self.test_dir)
        config.set('output', 'mappingSubdirectory', '.')
        config.set('output', 'mpasClimatologySubdirectory', 'clim/mpas')
        config.set('output', 'mpasRemappedClimSubdirectory',
                   'clim/mpas/remap')

        config.add_section('climatology')
        config.set('climatology', 'startYear', '2')
        config.set('climatology', 'endYear', '2')
        config.set('climatology', 'comparisonLatResolution', '0.5')
        config.set('climatology', 'comparisonLonResolution', '0.5')

        config.set('climatology', 'mpasInterpolationMethod', 'bilinear')

        config.add_section('oceanObservations')
        config.set('oceanObservations', 'interpolationMethod', 'bilinear')
        config.set('oceanObservations', 'climatologySubdirectory', 'clim/obs')
        config.set('oceanObservations', 'remappedClimSubdirectory',
                   'clim/obs/remap')

        return config
Пример #2
0
 def setup_config(self, autocloseFileLimitFraction=0.5, maxChunkSize=10000):
     config = MpasAnalysisConfigParser()
     config.add_section('input')
     config.set('input', 'autocloseFileLimitFraction',
                str(autocloseFileLimitFraction))
     config.set('input', 'maxChunkSize', str(maxChunkSize))
     return config
Пример #3
0
    def get_latlon_array_descriptor(self):
        configPath = str(self.datadir.join('config.analysis'))
        config = MpasAnalysisConfigParser()
        config.read(configPath)

        lat = numpy.array(config.getExpression('interpolate', 'lat',
                                               usenumpyfunc=True))
        lon = numpy.array(config.getExpression('interpolate', 'lon',
                                               usenumpyfunc=True))

        descriptor = LatLonGridDescriptor.create(lat, lon, units='degrees')
        return descriptor
 def doTest(generate, expectedResults):
     config = MpasAnalysisConfigParser()
     config.add_section('output')
     config.set('output', 'generate', generate)
     for analysisName in expectedResults:
         expectedResult = expectedResults[analysisName]
         result = checkGenerate(
             config,
             analysisName=analysisName,
             mpasCore=cores[analysisName],
             analysisCategory=categories[analysisName])
         self.assertEqual(result, expectedResult)
Пример #5
0
 def doTest(generate, expectedResults):
     config = MpasAnalysisConfigParser()
     config.add_section('output')
     config.set('output', 'generate', generate)
     for taskName in expectedResults:
         genericTask = AnalysisTask(config=config,
                                    taskName=taskName,
                                    componentName=cores[taskName],
                                    tags=tags[taskName])
         expectedResult = expectedResults[taskName]
         result = genericTask.check_generate()
         self.assertEqual(result, expectedResult)
Пример #6
0
    def test_destination_from_numpy_lat_lon(self):
        """
        test horizontal interpolation from an MPAS mesh to a destination
        lat/lon grid determined from config options 'lat' and 'lon'.

        Xylar Asay-Davis
        02/25/2017
        """

        configPath = str(self.datadir.join('config.analysis'))
        config = MpasAnalysisConfigParser()
        config.read(configPath)

        lat = numpy.array(
            config.getExpression('interpolate', 'lat', usenumpyfunc=True))
        lon = numpy.array(
            config.getExpression('interpolate', 'lon', usenumpyfunc=True))

        mpasMeshFileName = str(self.datadir.join('mpasMesh.nc'))
        timeSeriesFileName = str(self.datadir.join('timeSeries.0002-01-01.nc'))

        suffix = 'destination_from_config_options'
        weightFileName = '{}/weights_{}.nc'.format(self.test_dir, suffix)
        outFileName = '{}/remapped_{}.nc'.format(self.test_dir, suffix)

        interpolate.build_remap_weights(sourceFileName=mpasMeshFileName,
                                        outWeightFileName=weightFileName,
                                        sourceFileType='mpas',
                                        method='bilinear',
                                        destinationLat=lat,
                                        destinationLon=lon)

        assert os.path.exists(weightFileName)

        interpolate.remap(inFileName=timeSeriesFileName,
                          outFileName=outFileName,
                          inWeightFileName=weightFileName,
                          sourceFileType='mpas')

        assert os.path.exists(outFileName)
Пример #7
0
        print ""
        print "Plotting 2-d maps of sea-ice concentration and thickness " \
            "climatologies..."
        from mpas_analysis.sea_ice.modelvsobs import seaice_modelvsobs
        seaice_modelvsobs(config,
                          streamMap=seaIceStreamMap,
                          variableMap=seaIceVariableMap)

    # GENERATE LAND-ICE DIAGNOSTICS

    if config.getboolean('plot', 'displayToScreen'):
        plt.show()

    return  # }}}


if __name__ == "__main__":

    # process command line arguments and run analysis from configuration
    if len(sys.argv) <= 1:
        print "usage: %s <in_config_file> [<in_config_file2>]" % sys.argv[0]
        exit(1)

    configFileNames = sys.argv[1:]
    config = MpasAnalysisConfigParser()
    config.read(configFileNames)

    analysis(config)

# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python
 def setup_config(self, autocloseFileLimitFraction=0.5):
     config = MpasAnalysisConfigParser()
     config.add_section('input')
     config.set('input', 'autocloseFileLimitFraction',
                str(autocloseFileLimitFraction))
     return config
Пример #9
0
 def setup_config(self):
     configPath = self.datadir.join('config.analysis')
     self.config = MpasAnalysisConfigParser()
     self.config.read(str(configPath))