IODA Bundle
gpsbufr2nc.py File Reference

Go to the source code of this file.

Namespaces

 gpsbufr2nc
 

Functions

def gpsbufr2nc.splitdate (yyyymmddhh)
 
def gpsbufr2nc.makedate (yyyy, mm, dd, hh)
 
def gpsbufr2nc.daterange (date1, date2, hrinc)
 

Variables

 gpsbufr2nc.get_bin = lambda x, n: format(x, 'b').zfill(n)
 
 gpsbufr2nc.ScriptName = os.path.basename(sys.argv[0])
 
string gpsbufr2nc.UsageString = "USAGE: {0:s} [options] <obs_type> <input_prepbufr> <output_netcdf>".format(ScriptName)
 
 gpsbufr2nc.op = OptionParser(usage=UsageString)
 
 gpsbufr2nc.type
 
 gpsbufr2nc.dest
 
 gpsbufr2nc.default
 
 gpsbufr2nc.help
 
 gpsbufr2nc.metavar
 
 gpsbufr2nc.action
 
 gpsbufr2nc.MyOptions
 
 gpsbufr2nc.MyArgs
 
 gpsbufr2nc.MaxMsgs = MyOptions.max_msgs
 
 gpsbufr2nc.ClobberOfile = MyOptions.clobber
 
 gpsbufr2nc.ObsType = MyArgs[0]
 
 gpsbufr2nc.bufrFname = MyArgs[1]
 
 gpsbufr2nc.netcdfFname = MyArgs[2]
 
bool gpsbufr2nc.BadArgs = False
 
string gpsbufr2nc.hdrstr = 'YEAR MNTH DAYS HOUR MINU SECO PCCF ELRC SAID PTID GEODU QFRO'
 
 gpsbufr2nc.bufr = ncepbufr.open(bufrFname)
 
list gpsbufr2nc.dates = []
 
 gpsbufr2nc.date1 = str(dates.max())
 
 gpsbufr2nc.YYYY1 = date2[0:4]
 
 gpsbufr2nc.MM1 = date2[4:6]
 
 gpsbufr2nc.DD1 = date2[6:8]
 
string gpsbufr2nc.datestart = '%04s%s%02s00' % (YYYY1,MM1,DD1)
 
string gpsbufr2nc.dateend = '%04s%02s%02s18' % (YYYY2,MM2,DD2)
 
 gpsbufr2nc.nc = netCDF4.Dataset(netcdfFname,'w',format='NETCDF4')
 
 gpsbufr2nc.lat = nc.createVariable('Latitude',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.units
 
 gpsbufr2nc.lon = nc.createVariable('Longitude',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.hgt = nc.createVariable('Height',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.time = nc.createVariable('Time',np.int64,'nobs',zlib=True)
 
 gpsbufr2nc.ob = nc.createVariable('Observation',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.long_name
 
 gpsbufr2nc.oberr = nc.createVariable('ObservationErrorBufr',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.obpcc = nc.createVariable('ObservationPercentConfidence',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.profpcc = nc.createVariable('ProfilePercentConfidence',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.satidn = nc.createVariable('SatelliteID',np.int16,'nobs',zlib=True)
 
 gpsbufr2nc.platidn = nc.createVariable('PlatformTransmitterID',np.int16,'nobs',zlib=True)
 
 gpsbufr2nc.rcurv = nc.createVariable('EarthLocalRadiusCurv',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.imp = nc.createVariable('ImpactParameter',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
 gpsbufr2nc.qf = nc.createVariable('QualityFlags',np.int16,'nobs',zlib=True)
 
 gpsbufr2nc.geo = nc.createVariable('GeoidUndulation',np.float32,'nobs',zlib=True,fill_value=bufr.missing_value)
 
int gpsbufr2nc.nob = 0
 
 gpsbufr2nc.hdr = np.asarray(bufr.read_subset(hdrstr).squeeze())
 
string gpsbufr2nc.yyyymmddhhss = '%04i%02i%02i%02i%02i%02i' % tuple(hdr[0:6])
 
 gpsbufr2nc.date = datetime.datetime(int(hdr[0]),int(hdr[1]),int(hdr[2]),int(hdr[3]),int(hdr[4]),int(hdr[5]))
 
 gpsbufr2nc.timeval = netCDF4.date2num(date,units=time.units)
 
 gpsbufr2nc.pcc = hdr[6]
 
 gpsbufr2nc.roc = hdr[7]
 
 gpsbufr2nc.satid = int(hdr[8])
 
 gpsbufr2nc.ptid = int(hdr[9])
 
 gpsbufr2nc.geoid = hdr[10]
 
 gpsbufr2nc.qfro = int(hdr[11])
 
 gpsbufr2nc.nreps_this_ROSEQ2 = bufr.read_subset('{ROSEQ2}').squeeze()
 
 gpsbufr2nc.nreps_this_ROSEQ1 = len(nreps_this_ROSEQ2)
 
 gpsbufr2nc.data1 = np.asarray(bufr.read_subset('ROSEQ1',seq=True))
 
 gpsbufr2nc.data2 = np.asarray(bufr.read_subset('ROSEQ3',seq=True))
 
 gpsbufr2nc.levs1 = data1.shape[1]
 
 gpsbufr2nc.levs2 = data2.shape[1]
 
 gpsbufr2nc.levs = levs1
 
list gpsbufr2nc.lats = []
 
list gpsbufr2nc.pccs = []
 
list gpsbufr2nc.geoids = []
 
list gpsbufr2nc.qflags = []
 
int gpsbufr2nc.ncount = 0
 
 gpsbufr2nc.latval = data1[0,k]
 
 gpsbufr2nc.lonval = data1[1,k]
 
 gpsbufr2nc.hgtval = data2[0,k]
 
 gpsbufr2nc.ref = data2[1,k]
 
 gpsbufr2nc.ref_error = data2[3,k]
 
 gpsbufr2nc.ref_pccf = data2[5,k]
 
int gpsbufr2nc.m = 6*(i+1)-3
 
 gpsbufr2nc.freq = data1[m,k]
 
 gpsbufr2nc.impact = data1[m+1,k]
 
 gpsbufr2nc.bend = data1[m+2,k]
 
 gpsbufr2nc.bend_error = data1[m+4,k]
 
 gpsbufr2nc.bend_pccf = data1[int(6*nreps_this_ROSEQ2[k])+3,k]