3 import binning_utils 
as bu
 
    4 import predefined_configs 
as pconf
 
    5 from collections 
import defaultdict
 
    6 from copy 
import deepcopy
 
   17 obsBinVars = defaultdict(list)
 
   18 obsBinVars[vu.obsVarQC] += [bu.goodQCMethod, bu.badQCMethod, bu.allQCMethod]
 
   19 obsBinVars[vu.obsVarLat] += [bu.identityBinMethod, bu.latbandsMethod]
 
   20 obsBinVars[vu.obsVarLT] += [bu.identityBinMethod]
 
   21 obsBinVars[vu.obsVarNormErr] += [bu.identityBinMethod]
 
   22 obsBinVars[vu.obsRegionBinVar] += [
'CONUS']
 
   23 obsBinVars[vu.obsRegionBinVar] += [bu.geoirlatlonboxMethod]
 
   29 surfBinVars = deepcopy(obsBinVars)
 
   35 profPressBinVars = deepcopy(obsBinVars)
 
   36 profPressBinVars[vu.obsVarPrs] += [bu.identityBinMethod, bu.PjetMethod]
 
   37 profPressBinVars[vu.obsVarLat] += [bu.PjetMethod]
 
   40 for latBand 
in pconf.namedLatBands[
'values']:
 
   41     profPressBinVars[vu.obsVarPrs] += [latBand]
 
   47 profAltBinVars = deepcopy(obsBinVars)
 
   48 profAltBinVars[vu.obsVarAlt] += [bu.identityBinMethod, bu.altjetMethod]
 
   49 profAltBinVars[vu.obsVarLat] += [bu.altjetMethod]
 
   52 for latBand 
in pconf.namedLatBands[
'values']:
 
   53     profAltBinVars[vu.obsVarAlt] += [latBand]
 
   59 radianceBinVars = deepcopy(obsBinVars)
 
   60 radianceBinVars[vu.obsVarGlint] += [bu.identityBinMethod]
 
   61 radianceBinVars[vu.obsVarSenZen] += [bu.identityBinMethod]
 
   68     radianceBinVars[vu.obsVarLandFrac] += [bu.identityBinMethod,
 
   77 polmwBinVars = deepcopy(radianceBinVars)
 
   78 polmwBinVars[vu.obsVarACI] += [bu.identityBinMethod]
 
   79 polmwBinVars[vu.obsVarSCI] += [bu.OkamotoMethod]
 
   87 geoirBinVars = deepcopy(radianceBinVars)
 
   88 geoirBinVars[vu.obsVarACI] += [bu.identityBinMethod]
 
   89 geoirBinVars[vu.obsVarCldFrac] += [bu.identityBinMethod,
 
   93 for var 
in pconf.cldfracBinVars.keys():
 
   94     if var != vu.obsVarLandFrac 
or binBYLandFrac:
 
   95         geoirBinVars[var] += [bu.clrskyMethod]
 
   96         geoirBinVars[var] += [bu.cldskyMethod]
 
  100     for var 
in pconf.landfracBinVars.keys():
 
  101         for surfBand 
in pconf.namedLandFracBands[
'values']:
 
  102             geoirBinVars[var] += [surfBand]
 
  107     bu.ScaleOkamotoMethod,
 
  112 for method 
in geoirSCIMethods:
 
  113     geoirBinVars[vu.obsVarSCI] += [method]
 
  122 modelBinVars = defaultdict(list)
 
  123 modelBinVars[vu.noBinVar] += [bu.noBinMethod]
 
  124 modelBinVars[vu.modVarLat] += [bu.identityBinMethod]
 
  125 modelBinVars[vu.modVarLat] += [bu.latbandsMethod]
 
  126 modelBinVars[vu.modVarLev] += [bu.identityBinMethod]
 
  128 for latBand 
in pconf.namedLatBands[
'values']:
 
  129   modelBinVars[vu.modVarLev] += [latBand]
 
  130 modelBinVars[vu.modelRegionBinVar] += [bu.geoirlatlonboxMethod]
 
  137 nullBinVars = {vu.miss_s: []}
 
  139 nullDiagSpaceInfo = {
 
  140     'DiagSpaceGrp': vu.miss_s,
 
  142     'binVarConfigs': nullBinVars,
 
  146 profile_s  = 
'profile' 
  148 radiance_s = 
'radiance' 
  156 amsuacldGrp = 
'amsuacld' 
  161     convGrp: {
'npwork': 36, 
'npread': 36, 
'analyze_walltime': 
'00:10:00'},
 
  162     abiGrp: {
'npwork': 12, 
'npread': 36, 
'analyze_walltime': 
'01:00:00'},
 
  163     ahiGrp: {
'npwork': 12, 
'npread': 36, 
'analyze_walltime': 
'01:00:00'},
 
  164     amsuaGrp: {
'npwork': 36, 
'npread': 36, 
'analyze_walltime': 
'00:12:00'},
 
  165     amsuacldGrp: {
'npwork': 36, 
'npread': 36, 
'analyze_walltime': 
'00:12:00'},
 
  166     mhsGrp: {
'npwork': 36, 
'npread': 36, 
'analyze_walltime': 
'00:08:00'},
 
  167     modelGrp: {
'npwork': 10, 
'npread': 36, 
'analyze_walltime': 
'03:30:00'},
 
  185         'DiagSpaceGrp': profile_s,
 
  188         'binVarConfigs': profPressBinVars,
 
  189         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  192         'DiagSpaceGrp': profile_s,
 
  195         'binVarConfigs': profAltBinVars,
 
  196         'diagNames': pconf.relativeDiagnostics+pconf.sigmaDiagnostics,
 
  199         'DiagSpaceGrp': profile_s,
 
  202         'binVarConfigs': profAltBinVars,
 
  203         'diagNames': pconf.relativeDiagnostics+pconf.sigmaDiagnostics,
 
  206         'DiagSpaceGrp': profile_s,
 
  209         'binVarConfigs': profAltBinVars,
 
  210         'diagNames': pconf.relativeDiagnostics+pconf.sigmaDiagnostics,
 
  213         'DiagSpaceGrp': profile_s,
 
  216         'binVarConfigs': profPressBinVars,
 
  217         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  220         'DiagSpaceGrp': sfc_s,
 
  223         'binVarConfigs': surfBinVars,
 
  224         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  227         'DiagSpaceGrp': profile_s,
 
  230         'binVarConfigs': profPressBinVars,
 
  231         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  235         'DiagSpaceGrp': radiance_s,
 
  238         'binVarConfigs': geoirBinVars,
 
  239         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  240         'channels': [8,9,10,11,13,14,15,16],
 
  243         'DiagSpaceGrp': radiance_s,
 
  246         'binVarConfigs': geoirBinVars,
 
  247         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  248         'channels': [8,9,10,11,13,14,15,16],
 
  251         'DiagSpaceGrp': radiance_s,
 
  254         'binVarConfigs': geoirBinVars,
 
  255         'diagNames': pconf.defaultDiagnostics,
 
  256         'channels': [8,9,10,11,13,14,15,16],
 
  258     'ahi-clr_himawari8': {
 
  259         'DiagSpaceGrp': radiance_s,
 
  262         'binVarConfigs': geoirBinVars,
 
  263         'diagNames': pconf.defaultDiagnostics,
 
  264         'channels': [8,9,10,11,13,14,15,16],
 
  267         'DiagSpaceGrp': radiance_s,
 
  269         'binVarConfigs': radianceBinVars,
 
  270         'diagNames': pconf.defaultDiagnostics,
 
  274         'DiagSpaceGrp': radiance_s,
 
  277         'binVarConfigs': radianceBinVars,
 
  278         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  282         'DiagSpaceGrp': radiance_s,
 
  285         'binVarConfigs': radianceBinVars,
 
  286         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  290         'DiagSpaceGrp': radiance_s,
 
  293         'binVarConfigs': radianceBinVars,
 
  294         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  298         'DiagSpaceGrp': radiance_s,
 
  301         'binVarConfigs': radianceBinVars,
 
  302         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  303         'channels': [5,6,7,8,9],
 
  306         'DiagSpaceGrp': radiance_s,
 
  309         'binVarConfigs': radianceBinVars,
 
  310         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  311         'channels': [5,6,7,8,9],
 
  314         'DiagSpaceGrp': radiance_s,
 
  317         'binVarConfigs': radianceBinVars,
 
  318         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  319         'channels': [5,6,7,9],
 
  321     'amsua_n19--hydro': {
 
  322         'DiagSpaceGrp': radiance_s,
 
  324         'binVarConfigs': radianceBinVars,
 
  325         'diagNames': pconf.defaultDiagnostics,
 
  326         'channels': [1,2,3,15],
 
  328     'amsua_n19--nohydro': {
 
  329         'DiagSpaceGrp': radiance_s,
 
  331         'binVarConfigs': radianceBinVars,
 
  332         'diagNames': pconf.defaultDiagnostics,
 
  333         'channels': [4,5,6,7,9,10,11,12,13,14],
 
  336         'DiagSpaceGrp': radiance_s,
 
  338         'anGrp': amsuacldGrp,
 
  339         'binVarConfigs': polmwBinVars,
 
  340         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  341         'channels': [1,2,3,4,15],
 
  343     'amsua-cld_metop-a': {
 
  344         'DiagSpaceGrp': radiance_s,
 
  346         'anGrp': amsuacldGrp,
 
  347         'binVarConfigs': polmwBinVars,
 
  348         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  349         'channels': [1,2,3,4,15],
 
  351     'amsua-cld_metop-b': {
 
  352         'DiagSpaceGrp': radiance_s,
 
  354         'anGrp': amsuacldGrp,
 
  355         'binVarConfigs': polmwBinVars,
 
  356         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  357         'channels': [1,2,3,4,15],
 
  360         'DiagSpaceGrp': radiance_s,
 
  362         'anGrp': amsuacldGrp,
 
  363         'binVarConfigs': polmwBinVars,
 
  364         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  365         'channels': [1,2,3,4,15],
 
  368         'DiagSpaceGrp': radiance_s,
 
  370         'anGrp': amsuacldGrp,
 
  371         'binVarConfigs': polmwBinVars,
 
  372         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  373         'channels': [1,2,3,4,15],
 
  376         'DiagSpaceGrp': radiance_s,
 
  378         'anGrp': amsuacldGrp,
 
  379         'binVarConfigs': polmwBinVars,
 
  380         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  381         'channels': [1,2,3,4,15],
 
  384         'DiagSpaceGrp': radiance_s,
 
  386         'binVarConfigs': radianceBinVars,
 
  387         'diagNames': pconf.defaultDiagnostics,
 
  388         'channels': [24,26,28,32,37,39],
 
  391         'DiagSpaceGrp': radiance_s,
 
  393         'binVarConfigs': radianceBinVars,
 
  394         'diagNames': pconf.defaultDiagnostics,
 
  395         'channels': range(1,16),
 
  398         'DiagSpaceGrp': radiance_s,
 
  400         'binVarConfigs': radianceBinVars,
 
  401         'diagNames': pconf.defaultDiagnostics,
 
  402         'channels': [16,29,32,35,38,41,44],
 
  405         'DiagSpaceGrp': radiance_s,
 
  408         'binVarConfigs': radianceBinVars,
 
  409         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  410         'channels': range(1,6),
 
  413         'DiagSpaceGrp': radiance_s,
 
  416         'binVarConfigs': radianceBinVars,
 
  417         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  418         'channels': range(1,6),
 
  421         'DiagSpaceGrp': radiance_s,
 
  424         'binVarConfigs': radianceBinVars,
 
  425         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  426         'channels': range(1,6),
 
  429         'DiagSpaceGrp': radiance_s,
 
  432         'binVarConfigs': radianceBinVars,
 
  433         'diagNames': pconf.defaultDiagnostics+pconf.sigmaDiagnostics,
 
  434         'channels': range(1,6),
 
  437         'DiagSpaceGrp': radiance_s,
 
  439         'binVarConfigs': radianceBinVars,
 
  440         'diagNames': pconf.defaultDiagnostics,
 
  444         'DiagSpaceGrp': radiance_s,
 
  446         'binVarConfigs': radianceBinVars,
 
  447         'diagNames': pconf.defaultDiagnostics,
 
  448         'channels': range(1,16),
 
  451         'DiagSpaceGrp': radiance_s,
 
  453         'binVarConfigs': radianceBinVars,
 
  454         'diagNames': pconf.defaultDiagnostics,
 
  455         'channels': range(1,16),
 
  458         'DiagSpaceGrp': radiance_s,
 
  460         'binVarConfigs': radianceBinVars,
 
  461         'diagNames': pconf.defaultDiagnostics,
 
  462         'channels': range(1,16),
 
  465         'DiagSpaceGrp': radiance_s,
 
  467         'binVarConfigs': radianceBinVars,
 
  468         'diagNames': pconf.defaultDiagnostics,
 
  469         'channels': range(1,16),
 
  473         'DiagSpaceGrp': model_s,
 
  476         'binVarConfigs': modelBinVars,
 
  477         'diagNames': pconf.modelDiags,