text: """
  Generate the GEMPAK Station Tables from the IEM database of station locations
  """
  from pyiem.network import Table as NetworkTable
  import datetime
  
  cfg = {
  'iowa.stns' : ['AWOS', 'IA_ASOS'],
  'ia_main.stns' : ['IA_RWIS', 'AWOS', 'IA_ASOS'],
  'tier3.stns' : ['IA_ASOS', 'AWOS', 'IA_RWIS', 'KCCI', 'ISUAG'],
  'asos.stns' : ['IA_ASOS', ],
  'awos.stns' : ['AWOS', ],
  'all.stns'  : ['KCCI', 'AWOS', 'IA_ASOS', 'ISUAG', 'IA_RWIS', 'MN_ASOS', 'WI_ASOS',
                 'IL_ASOS', 'MO_ASOS', 'KS_ASOS', 'NE_ASOS', 'SD_ASOS', 'ND_ASOS',
                 'IN_ASOS', 'OH_ASOS', 'MI_ASOS'],
  'mesonet.stns' : ['IA_ASOS', 'AWOS', 'IA_RWIS', 'KCCI', 'MN_ASOS', 'WI_ASOS', 'IL_ASOS',
                    'MO_ASOS', 'KS_ASOS', 'NE_ASOS', 'SD_ASOS', 'ND_ASOS', 'IN_ASOS',
                    'OH_ASOS', 'MI_ASOS', 'KELO', 'MN_AWOS', 'WI_AWOS', 'IL_AWOS', 'MO_AWOS',
                    'KS_AWOS', 'NE_AWOS', 'SD_AWOS', 'MN_RWIS', 'WI_RWIS', 'KS_RWIS',
                    'NE_RWIS', 'KIMT', 'CO_ASOS'],
  'azos.stns' : ['AWOS', "WV_ASOS", "WI_ASOS", "WA_ASOS", "VT_ASOS", "WY_ASOS", "VA_ASOS", "UT_ASOS", "TX_ASOS", "SC_ASOS", "PA_ASOS",
   "SD_ASOS", "RI_ASOS", "TN_ASOS", "OK_ASOS", "NH_ASOS", "NV_ASOS", "MN_ASOS", "NM_ASOS", "NY_ASOS", "OH_ASOS", "OR_ASOS",
   "NJ_ASOS", "ND_ASOS", "NE_ASOS", "ME_ASOS", "MT_ASOS", "MS_ASOS", "MI_ASOS", "LA_ASOS",
   "NC_ASOS", "MO_ASOS", "KY_ASOS", "KS_ASOS", "FL_ASOS", "GA_ASOS", "AL_ASOS", "AZ_ASOS", "ID_ASOS", "IN_ASOS",
   "MA_ASOS", "MD_ASOS", "AR_ASOS", "DE_ASOS", "IA_ASOS", "IL_ASOS", "CT_ASOS", "CA_ASOS",
   "CO_ASOS", "PO_ASOS", "HI_ASOS", "GU_ASOS", "AK_ASOS",
  ],
  'snet.stns' : ['KCCI', 'KELO', 'KIMT'],
  'kcci.stns' : ['KCCI', ],
  'kelo.stns' : ['KELO', ],
  'kimt.stns' : ['KIMT', ],
  'IA_DCP.stns' : ['DCP', ],
  'coopActive.stns': ['IA_COOP', ],
  'coopClimate.stns': ['IACLIMATE', ],
  'coop.stns': ['IA_COOP', ],
  'iem_coop.stns': ['IA_COOP', 'MN_COOP', 'WI_COOP', 'MI_COOP', 'OH_COOP', 'IN_COOP',
                    'IL_COOP', 'MO_COOP', 'KS_COOP', 'NE_COOP', 'SD_COOP', 'ND_COOP'],
  'RWIS.stns': ['IA_RWIS', ],
  }
  cfg4 = {
  'mesonet4.stns' : ['IA_ASOS', 'AWOS', 'IA_RWIS', 'KCCI', 'MN_ASOS', 'WI_ASOS', 'IL_ASOS',
                    'MO_ASOS', 'KS_ASOS', 'NE_ASOS', 'SD_ASOS', 'ND_ASOS', 'IN_ASOS',
                    'OH_ASOS', 'MI_ASOS', 'KELO', 'MN_AWOS', 'WI_AWOS', 'IL_AWOS', 'MO_AWOS',
                    'KS_AWOS', 'NE_AWOS', 'SD_AWOS', 'MN_RWIS', 'WI_RWIS', 'KS_RWIS',
                    'NE_RWIS', 'KIMT', 'CO_ASOS'],
  }
  
  
  def generate_table(fn, networks,fourchar=False):
      """
      Generate a gempak station table for filename fn and networks array networks
      """
  
      output = open(fn, 'w')
      nt = NetworkTable(networks)
      output.write("# %s on %s\n" %(
              "Generated by gen_tables.py", datetime.datetime.now() ) )
      keys = nt.sts.keys()
      keys.sort()
      for sid in keys:
          st = nt.sts[sid]
          gemID = sid
          if fourchar:
              gemID = sid[:4]
          output.write("%-8s %6s %-32.32s %2s %2s %5.0f %6.0f %4.0f %2s\n" % (
                  gemID, st["synop"] or '999999', st["name"], 
                  st["state"], st["country"], st["lat"] * 100 , st["lon"] * 100, 
                  int(st["elevation"]), st["spri"]) )
      output.close()
  
  
  for fn in cfg:
      generate_table('/mesonet/TABLES/%s' % (fn,), cfg[fn])
  for fn in cfg4:
      generate_table('/mesonet/TABLES/%s' % (fn,), cfg4[fn], True)
  