#!/usr/bin/env python """ Mock-up timeseries for bogue """ import os, sys import datetime, time import pycdf import numpy sys.path.append('/home/haines/nccoos/raw2proc') del(sys) from pylab import colorbar, figure, savefig, setp, getp from matplotlib.dates import DayLocator, HourLocator, DateFormatter, date2num, num2date from procutil import dt2es, es2dt # ---- on cromwell load data #if load_data: print ' ... loading data for graph' ncFile='/home/haines/data/nccoos/level1/bogue/adcp/bogue_adcp_2008_01.nc' nc = pycdf.CDF(ncFile) ncvars = nc.variables() print ncvars es = nc.var('time')[:] units = nc.var('time').units dt = [es2dt(e) for e in es] dn = date2num(dt) z = nc.var('z')[:] wd = nc.var('water_depth')[:] en = nc.var('en')[:] u = nc.var('u')[:] v = nc.var('v')[:] # nc.close() # ---- open a new figure fig = figure(figsize=(11, 8)) # ----- top plot ax = fig.add_subplot(4,1,1) ax.plot_date(dt, en, fmt='b-') # this is superfluous, since the autoscaler should get it right, but # use date2num and num2date to to convert between dates and floats if # you want; both date2num and num2date convert an instance or sequence ax.set_xlim( dt[0], dt[-1] ) setp(ax.xaxis, label_position='top') ax.set_ylabel(nc.var('en').standard_name) setp(ax, xlabel='Time') # The hour locator takes the hour or sequence of hours you want to # tick, not the base multiple ax.xaxis.set_major_locator( DayLocator(range(2,32,2)) ) ax.xaxis.set_minor_locator( HourLocator(range(0,25,12)) ) # ax.xaxis.set_major_formatter( DateFormatter('%d') ) setp(ax, xticklabels=['']) # ----- middle plot ax = fig.add_subplot(4,1,2) ax.plot_date(dt, wd, fmt='b-') ax.set_ylabel(nc.var('water_depth').standard_name) ax.set_xlim( dt[0], dt[-1] ) ax.xaxis.set_major_locator( DayLocator(range(2,32,2)) ) ax.xaxis.set_minor_locator( HourLocator(range(0,25,12)) ) # ax.xaxis.set_major_formatter( DateFormatter('%d') ) setp(ax, xticklabels=['']) setp(ax, xlabel='') # ----- middle plot ax = fig.add_subplot(4,1,3) ax.pcolor(dn, z, u.transpose(), vmin=numpy.nanmin(u), vmax=numpy.nanmax(u)) ax.plot_date(dt, wd, fmt='k-') ax.set_ylabel(nc.var('u').standard_name) ax.set_ylim(2,10) ax.set_xlim(dt[0], dt[-1]) ax.xaxis.set_major_locator( DayLocator(range(2,32,2)) ) ax.xaxis.set_minor_locator( HourLocator(range(0,25,12)) ) # ax.xaxis.set_major_formatter( DateFormatter('%d') ) setp(ax, xticklabels=['']) setp(ax, xlabel='') # colorbar() # ----- bottom plot ax = fig.add_subplot(4,1,4) ax.pcolor(dn, z, v.transpose(), vmin=numpy.nanmin(v), vmax=numpy.nanmax(v)) ax.plot_date(dt, wd, fmt='k-') ax.set_ylabel(nc.var('v').standard_name) ax.set_ylim(2,10) ax.set_xlim(dt[0], dt[-1]) ax.xaxis.set_major_locator( DayLocator(range(2,32,2)) ) ax.xaxis.set_minor_locator( HourLocator(range(0,25,12)) ) ax.xaxis.set_major_formatter( DateFormatter('%d') ) # setp(ax, xticklabels=['']) setp(ax, xlabel='Time') # colorbar() fig.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9) savefig('test_bogue_plot.png') os.system('ls') os.system('scp -r *.png haines@pitot.marine.unc.edu:/afs/isis.unc.edu/depts/marine/workspace/haines/public_html/nccoos/test')