def _setup_visualization(owflop, history): axes = {} fig = _plt.figure() grid = _gs.GridSpec(3, 5) axes['windrose'] = fig.add_subplot(grid[0, :2], polar=True) vis.draw_windrose(axes['windrose'], owflop._ds.direction_pmf) axes['convergence'] = fig.add_subplot(grid[1, :2]) axes['step_size'] = fig.add_subplot(grid[2, :2], sharex=axes['convergence']) axes['layout'] = fig.add_subplot(grid[:, 2:]) vis.site_setup(axes['layout']) vis.draw_turbines(axes['layout'], history.isel(iteration=0).layout, owflop.rotor_radius_adim, minimal_proximity=owflop.minimal_proximity, inside=owflop.inside) vis.draw_boundaries(axes['layout'], owflop.boundaries) grid.tight_layout(fig) _plt.pause(.10) return axes
# %% save initial layout figure fig = plt.figure() ax = plt.subplot(111) vis.site_setup(ax, o.minimal_proximity) vis.draw_boundaries(ax, o.boundaries) vis.draw_turbines(ax, o._ds.layout, o.rotor_radius_adim, o.minimal_proximity) fig.savefig('IEA37C1W_16-layout_initial.pdf', bbox_inches="tight") # %% plot windrose and initial pseudogradients fig = plt.figure(figsize=(8, 1.7)) alignax = None gs = fig.add_gridspec(ncols=6, nrows=1, wspace=0., hspace=0., width_ratios=[.8, .2] + 4*[1]) axwr = fig.add_subplot(gs[0:2, 0], polar=True) vis.draw_windrose(axwr, o.wind_rose.dir_weights) axwr.set_xticks([0, np.pi/2, np.pi, 3*np.pi/2]) axwr.set_xticklabels(['N', 'O', 'S', 'W']) axwr.xaxis.set_tick_params(pad=-2) axwr.set_rticks([]) # for k, pg in enumerate([ {'title': 'simple', 'function': o.calculate_simple_vector, 'scale': 2**+1}, {'title': 'push-away', 'function': o.calculate_push_away_vector, 'scale': 2**+1}, {'title': 'push-back', 'function': o.calculate_push_back_vector, 'scale': 2**+1}, {'title': 'push-cross', 'function': o.calculate_push_cross_vector, 'scale': 2**-4}, ]):
os.chdir("../../../documents/BWFS/") plt.rc('text', usetex=True) plt.rc('font', family='serif', serif='Times') plt.rc('axes', titlesize=10) # %% save wind rose figure o = wflopg.Owflop() o.load_problem("problem-BWFS-IV-WES.yaml", wind_resource={'interpolation': 'linear'}, layout={ 'type': 'hex', 'turbines': 30 }) fig = plt.figure(figsize=(1.28, 1.7)) axwr = fig.add_subplot(111, polar=True) vis.draw_windrose(axwr, o._ds.direction_pmf) axwr.set_xticks([0, np.pi / 2, np.pi, 3 * np.pi / 2]) axwr.set_xticklabels(['N', 'O', 'S', 'W']) axwr.xaxis.set_tick_params(pad=-2) axwr.set_rticks([]) fig.savefig("Borssele_IV-wind_rose.pdf", bbox_inches="tight") # %% optimize using different parameters and turbine numbers history = {} cases = { 30: ([4, 4.5, 5, 5.5], ['4', '', '5', '']), 50: ([7.5, 8.0, 8.5], ['7.5', '8.0', '8.5']), 70: ([10, 10.5, 11, 11.5, 12, 12.5], ['10', '', '11', '', '12', '']), 90: ([13.5, 14, 14.5, 15, 15.5], ['', '14', '', '15', '']) } for kind, multiplier, scaling in [('soft', 2, [0.9, 1.1]),