%pylab inline import windng.io as wio import windng.plot.windplot as wplot import windng.weibull as weibull import windng.wind as wind with open('sample_data_80m.txt') as f: for i in range(10): print f.readline(), df = wio.read_wind('sample_data_80m.txt', freq='10T', index_name=None) df.head() df.tail() df.describe() df['1-aug-2010':'10-aug-2010'][['speed', 'gust']].plot(figsize=(14, 4)) plt.grid(True, which='both') monthly = wind.monthly_means(df['speed']) monthly monthly.describe() wind.downsample(df['speed'], freq='M') wind.downsample(df['speed'], freq='D').head() wplot.plot_means(monthly, style='-o') plt.figure(figsize=(14, 4)) wplot.plot_means(wind.downsample(df['speed'], freq='W'), title='Weekly means') periods = wind.reference_periods(monthly, years=1) periods rp_index = 1 start = periods['start'][rp_index].start_time end = periods['end'][rp_index].end_time rp_df = df[start:end] rp_df.head() rp_df.tail() rp_df.describe() rp_monthly = monthly[start:end] rp_monthly wplot.plot_means(monthly, style='-o') wplot.plot_means(rp_monthly['mean'], style='-o', lw=2) with open('sample_lt_data.txt') as f: for i in range(10): print f.readline(), lt_df = wio.read_wind('sample_lt_data.txt', freq='H', index_name=None) lt_df.head() lt_df.tail() lt_df.describe() lt_monthly = wind.monthly_means(lt_df['M(m/s)']) lt_monthly.head() lt_monthly.tail() lt_monthly.describe() model = wind.lt_analysis(monthly, lt_monthly) print model.summary_as_series() model.used_data model.used_data.reindex(monthly.index).plot(style='-o') plt.grid(True, which='both') wplot.plot_regression_scatter(model.used_data['lt_source'], model.used_data['mast'], model.slope, model.intercept) df['speed'] *= (model.lt_speed / rp_df['speed'].mean()) assert abs(rp_df['speed'].mean() - model.lt_speed) < 1e-7 speed_dist = wind.speed_hist(rp_df['speed'], dataframe=True) speed_dist shape, scale = weibull.weibull_fit(rp_df['speed']) print 'Weibull fit' print 'Shape = {}'.format(shape) print 'Scale = {}'.format(scale) wplot.plot_speed_hist(speed_dist, weibull=(shape, scale)) freq_rose = wind.freq_rose(rp_df['dir'], dataframe=True) freq_rose wplot.bar_rose(freq_rose['freq']) plt.title('Frequency rose') power_rose = wind.power_rose(rp_df['speed'], rp_df['dir'], dataframe=True) power_rose wplot.bar_rose(power_rose['freq'], color='r') plt.title('Power rose') ti = wind.turbulence(rp_df['speed'], rp_df['std_speed']) ti wplot.plot_char_ti(ti, lw=2) wplot.plot_repr_ti(ti, lw=2) kwargs = dict() kwargs['mm'] = 1 kwargs['lon'] = 0 kwargs['lat'] = 40 kwargs['hubheight'] = 80 kwargs['shortname'] = 'Sample mast' kwargs['longname'] = 'Sample mast 80 m' kwargs['speedcol'] = 'speed' kwargs['dircol'] = 'dir' rp_df['TI'] = 100 * rp_df['std_speed'] / rp_df['speed'] rp_df['Temperature'] = 12 rp_df['Density'] = 1.225 wio.write_openwind(rp_df, 'sample_data_80m_LT_ow.csv', **kwargs) with open('sample_data_80m_LT_ow.csv') as f: for i in range(10): print f.readline(), ftable = wind.freq_table(rp_df['speed'], rp_df['dir'], nsectors=12, dataframe=True) from IPython.core.display import HTML display(HTML(ftable.to_html())) wio.make_tab('sample_data_80m_LT.tab', ftable, desc='Sample data', height=80) with open('sample_data_80m_LT.tab') as f: print f.read()