In [166]:
import datetime
import numpy as np
import scipy as sp
import scipy.fftpack
import netCDF4
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

n_start = 10
n_stop = 2400
ff = netCDF4.Dataset('./Test/Data/FORCING_nve.nc', 'r') # Data fra Filefjell 2013
dummy = netCDF4.Dataset('FORCING.nc', 'r') # dummy data set
sw_rad = ff.variables['DIR_SWdown'][n_start:n_stop]
lw_rad = ff.variables['LWdown'][n_start:n_stop]
print len(sw_rad)

q_air = ff.variables['Qair'][n_start:n_stop]
print 'Qair', min(q_air), max(q_air)

rainf = ff.variables['Rainf'][n_start:n_stop]
print 'Rainf', min(rainf), max(rainf)


dates = netCDF4.num2date(nc.variables['time'][n_start:n_stop], nc.variables['time'].units)

plt.figure(figsize=(15,5))
plt.plot(dates, sw_rad)
plt.plot(dates, lw_rad, color='red')


2390
Qair [ 0.00061] [ 0.00875]
Rainf [ 0.] [ 0.00116667]
Out[166]:
[<matplotlib.lines.Line2D at 0x1fb23c50>]

In [167]:
plt.figure(figsize=(15,5))
plt.plot(dates, q_air)
plt.plot(dates, rainf*10., color='red')


Out[167]:
[<matplotlib.lines.Line2D at 0x1f9f8240>]

In [168]:
# compare ff and dummy
param = 'LWdown'
ff_v = ff.variables[param][n_start:n_stop]
d_v = dummy.variables[param][n_start:n_stop]

plt.figure(figsize=(15,5))
plt.plot(dates, ff_v)
plt.plot(dates, d_v)


Out[168]:
[<matplotlib.lines.Line2D at 0x1fbbe710>]

In [150]:
sw_fft = sp.fftpack.fft(sw_rad)
sw_psd = np.abs(sw_fft) ** 2
fftfreq = sp.fftpack.fftfreq(len(sw_psd), 1./24)
i = fftfreq>0

In [ ]:


In [77]:
plt.figure(figsize=(15,5));
plt.plot(fftfreq[i], 10*np.log10(sw_psd[i]));
#plt.xlim(0, 5);
plt.xlabel('Frequency (1/day)');
plt.ylabel('PSD (dB)');



In [143]:
n = np.arange(72, dtype=float)
sw_func = ((np.sin(2*np.pi*1/24.*n)+1.)*50.0) * np.exp(n/(max(n))) # W/m2
lw_func = (np.sin((2*np.pi*1/24.*n) - (2*np.pi*3./24.)) * 150.)+200. # W/m2

In [144]:
plt.figure(figsize=(15,5));
plt.plot(n, sw_func)
plt.plot(n, lw_func, color='red')


Out[144]:
[<matplotlib.lines.Line2D at 0x1583cb00>]

In [ ]: