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
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
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)
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)
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)
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
def setup_config(self): configPath = self.datadir.join('config.analysis') self.config = MpasAnalysisConfigParser() self.config.read(str(configPath))