In [76]:
from pylab import *
import netCDF4
import pandas as pd

In [77]:
nc = netCDF4.Dataset('gdas.44512.2010040100.nc')

In [78]:
print netCDF4.chartostring(nc.variables['hdr_sid'][-1,:])


PRDA2

In [79]:
nobs,dum = shape(nc.variables['obs_arr'])

In [103]:
obs_arr = nc.variables['obs_arr'][:,:]
hdr_typ = netCDF4.chartostring(nc.variables['hdr_typ'][:,:])
hdr_sid = netCDF4.chartostring(nc.variables['hdr_sid'][:,:])
hdr_vld = netCDF4.chartostring(nc.variables['hdr_vld'][:,:])
obs_qty = netCDF4.chartostring(nc.variables['obs_qty'][:,:])
hdr_arr = nc.variables['hdr_arr'][:,:]

In [104]:
id=int8(obs_arr[:,0])

In [109]:
d={}
d['station_id']  = hdr_sid[id]
d['lon'] = hdr_arr[id,0]
d['lat'] = hdr_arr[id,1]
d['elev'] = hdr_arr[id,2]
d['time'] = hdr_vld[id]
d['grib_code'] = obs_arr[:,1]
d['press'] = obs_arr[:,2]
d['height'] = obs_arr[:,3]
d['obs_val'] = obs_arr[:,4]
d['quality'] = obs_qty[:]

In [106]:
df = pd.DataFrame(d)

In [110]:
df['year'] = df['time'].str[0:4]
df['mon'] = df['time'].str[4:6]
df['day'] = df['time'].str[6:8]
df['hour'] = df['time'].str[9:11]
del df['time']

In [117]:
print df.ix[0]


elev                15
grib_code           11
height        14.99732
lat             -69.96
lon              41.66
obs_val         284.75
press             1008
quality              2
station_id       74494
mon                 04
year              2010
day                 01
hour                00
Name: 0, dtype: object

In [ ]: