{"entities":{"Q6700690":{"pageid":14419662,"ns":120,"title":"Item:Q6700690","lastrevid":54645449,"modified":"2026-01-29T18:51:43Z","type":"item","id":"Q6700690","labels":{"en":{"language":"en","value":"Wind tunnel experiment of a micro wind farm model"}},"descriptions":{"en":{"language":"en","value":"Dataset published at Zenodo repository."}},"aliases":{},"claims":{"P31":[{"mainsnak":{"snaktype":"value","property":"P31","hash":"dae155fd0809a7906855cd4fa50dd7d71bed552b","datavalue":{"value":{"entity-type":"item","numeric-id":56885,"id":"Q56885"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q6700690$4FCA4F64-DDD7-4A32-BB8D-CBAAD296309C","rank":"normal"}],"P1459":[{"mainsnak":{"snaktype":"value","property":"P1459","hash":"984a1a36ab0f0586805b0506166670f7fe7ccded","datavalue":{"value":"Simultaneous strain gage measurements of sixty porous disk models, in a scaled wind farm with one hundred models, and for fifty-six different layouts.  For detailed information about the experimental setup and wind farm layouts see:  Bossuyt, J., Meneveau, C.,  Meyers, J. (2018). Effect of layout on asymptotic boundary layer regime in deep wind farms. Physical Review Fluids. See also:https://arxiv.org/abs/1808.09579 .  For more information about the experimental design of the porous disk models, see also:  Bossuyt, J., Howland, M. F., Meneveau, C.,  Meyers, J. (2017). Measurement of unsteady loading and power output variability in a micro wind farm model in a wind tunnel.Experiments in Fluids,58(1), 1.http://doi.org/10.1007/s00348-016-2278-6  Bossuyt, J., Meneveau, C.,  Meyers, J. (2017). Wind farm power fluctuations and spatial sampling of turbulent boundary layers.Journal of Fluid Mechanics,823, 329-344.http://doi.org/10.1017/jfm.2017.328    The data contains matrices WF_U, x, and y, and variable fs for each layout. The matrix WF_U contains the reconstructed velocity signal in m/s measured by each porous disk, and has size ( 20 , 3 , number of time samples), with 20 the number of porous disk rows, and 3 the number of streamwise aligned porous disk columns in the wind farm. Matrices x, and y have size (20,3) and contain the locations of each instrumented porous disk in units of disk diameter D = 0.03m. It is important to note that the wind farm has one extra column of non-instrumented porous disk models on each side, for a total of 20x5=100 porous disk models.The variable fs contains the sampling frequency in Hz, at which all 60 porous disks are simultaneously sampled.  -------------------------------------------------------- Example code to load data in Matlab : -------------------------------------------------------- filename = U_C1_1.h5; fileID = H5F.open(filename,H5F_ACC_RDONLY,H5P_DEFAULT);  datasetID = H5D.open(fileID,WF_U); WF_U = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT); H5D.close(datasetID);  datasetID = H5D.open(fileID,fs); fs = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT); H5D.close(datasetID);  datasetID = H5D.open(fileID,x); x = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT); H5D.close(datasetID);  datasetID = H5D.open(fileID,y); y = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT); H5D.close(datasetID);  H5F.close(fileID);  -------------------------------------------------------- Example code to load data in Python: -------------------------------------------------------- import h5py filename = U_C1_1.h5 f = h5py.File(filename, r)  U = f[WF_U][()] x = f[x][()] y = f[y][()] fs = f[fs][0][0] f.close()  -------------------------------------------------------- Example code to generate figures 15 and 16 of Bossuyt et al. (2018). Effect of layout on asymptotic boundary layer regime in deep wind farms. Physical Review Fluids, in Matlab -------------------------------------------------------- WF_cases_selected = 1:7;  folder = /;% folder with files  WF_cases_l = {U_C1;U_C2;NU1_C1;NU1_C2;NU2_C1;NU2_C2;NU2_C3};% name of layout variations WF_cases_n = [6, 7, 11, 8, 11, 7, 6]; % number of layout variations for each case  WF_data.x = cell( length(WF_cases_selected) , 1);% x - coordinates of porous disk locations WF_data.y = cell( length(WF_cases_selected) , 1);% y - coordinates of porous disk locations WF_data.shift = cell( length(WF_cases_selected) , 1);% spanwise shift of layout series WF_data.fs = cell( length(WF_cases_selected) , 1); WF_data.WF_Pm = cell( length(WF_cases_selected) , 1); WF_data.WF_Um = cell( length(WF_cases_selected) , 1); WF_data.WF_U_rms = cell( length(WF_cases_selected) , 1);   for i = 1 : length(WF_cases_selected)     WF_data_case = struct;   WF_data_case.x =       cell( WF_cases_n(i) , 1);   WF_data_case.y =       cell( WF_cases_n(i) , 1);   WF_data_case.shift =     cell( WF_cases_n(i) , 1);   WF_data_case.fs =       cell( WF_cases_n(i) , 1);   WF_data_case.WF_Pm =     cell( WF_cases_n(i) , 1);   WF_data_case.WF_Um =     cell( WF_cases_n(i) , 1);   WF_data_case.WF_U_rms =    cell( WF_cases_n(i) , 1);     for j = 1:WF_cases_n(i)     clc     i     j         WF_data_var = struct;         %read the file     filename = [folder WF_cases_l{i} _ num2str(j) .h5];     fileID = H5F.open(filename,H5F_ACC_RDONLY,H5P_DEFAULT);         datasetID = H5D.open(fileID,WF_U);     WF_data_var.WF_U = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT);     H5D.close(datasetID);         datasetID = H5D.open(fileID,fs);     WF_data_case.fs{j} = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT);     H5D.close(datasetID);         datasetID = H5D.open(fileID,x);     WF_data_case.x{j} = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT);     H5D.close(datasetID);         datasetID = H5D.open(fileID,y);     WF_data_case.y{j} = H5D.read(datasetID,H5ML_DEFAULT,H5S_ALL,H5S_ALL,H5P_DEFAULT);     H5D.close(datasetID);         H5F.close(fileID);         WF_data_var.WF_P = WF_data_var.WF_U.^3;      % Time averaged power     WF_data_case.WF_Pm{j} = mean(WF_data_var.WF_P,3);         % normalize by power in first row: Pi/P1     WF_data_case.WF_Pm{j} = WF_data_case.WF_Pm{j}./mean(WF_data_case.WF_Pm{j}(1,:));         % Time averaged velocity     WF_data_case.WF_Um{j} = mean(WF_data_var.WF_U,3);         % u_rms -- TI     WF_data_case.WF_U_rms{j} = std(WF_data_var.WF_U,[],3);   end     WF_data.x{i}        = WF_data_case.x;   WF_data.y{i}        = WF_data_case.y;   WF_data.fs{i}        = WF_data_case.fs;   WF_data.WF_Pm{i}      = WF_data_case.WF_Pm;   WF_data.WF_Um{i}      = WF_data_case.WF_Um;   WF_data.WF_U_rms{i}     = WF_data_case.WF_U_rms;     %determine spanwise shift for plot legends   tmp1 = WF_data.y{i}{j-1};   tmp2 = WF_data.y{i}{j};   dy = diff( [tmp1(:,1) tmp2(:,1)] ,1,2);   dy = max(dy(abs(dy)0));   WF_data.shift{i}  = 0:dy:(WF_cases_n(i)-1)*dy;   end  %% line_tick = {o-,*-,+-,d-,s-,^-,v-,-,-,p-,h-}; line_color = [51,160,44; 141,211,199; 31,120,180; 106,61,154; 227,26,28; 177,89,40; 255,127,0; 166,206,227]./255;  legend_items = cell(size(WF_cases_selected)); for i = 1:length(legend_items)   legend_items{i} = strrep(WF_cases_l{i},_,-); end  %% average power entire farm row_start = 1; row_end = 19; f1 = figure; set(gcf,paperposition,[0,0,8.4,4.9]) hold on  for i = 1 : length(WF_cases_selected)   tmp_P = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:)));   end   plot( WF_data.shift{i} , tmp_P, line_tick{i} ,Color, line_color(i,:) ,MarkerFaceColor, line_color(i,:) ) end  % manualy plot errorbars for i = 1:length(WF_cases_selected)   tmp_P = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:)));   end   px = WF_data.shift{i} ;   py = tmp_P;   pw = 0.05;   pe = zeros(size(px))+0.01;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids.   for j = 1:WF_cases_n(i)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],:, Color, line_color(i,:),LineWidth,0.5)   end end xlabel(\\Delta_y [D]) ylabel($\\langle P_i /P_1\\rangle_{1}^{19}$,Interpreter,Latex) box(on) ylim([0.35 0.66]) xlim([-0.1 2.6]) legend1 = legend(legend_items); set(legend1,Location,southeast); print(f1, WF_Pm_all,-dpng,-r300)  %% average power end of farm row_start = 16; row_end = 19; f2 = figure; set(gcf,paperposition,[0,0,8.4,4.9]) hold on  for i = 1 : length(WF_cases_selected)   tmp_P = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:)));   end   plot( WF_data.shift{i} , tmp_P, line_tick{i} ,Color, line_color(i,:) ,MarkerFaceColor, line_color(i,:) ) end  % manualy plot errorbars for i = 1:length(WF_cases_selected)   tmp_P = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_P(j) = mean(mean( WF_data.WF_Pm{i}{j}(row_start:row_end,:)));   end   px = WF_data.shift{i} ;   py = tmp_P;   pw = 0.05;   pe = zeros(size(px))+0.02; %for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids.   for j = 1:WF_cases_n(i)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],:, Color, line_color(i,:),LineWidth,0.5)   end end xlabel(\\Delta_y [D]) ylabel($\\langle P_i /P_1\\rangle_{16}^{19}$,Interpreter,Latex) box(on) ylim([0.27 0.52]) xlim([-0.1 2.6]) legend1 = legend(legend_items); set(legend1,Location,southeast); print(f2, WF_Pm_end, -dpng,-r300)  %% plot average unsteady loading total farm row_start = 1; row_end = 19; f3 = figure; set(gcf,paperposition,[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected)   tmp_TI = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100;   end   plot( WF_data.shift{i} , tmp_TI , line_tick{i} ,Color, line_color(i,:) ,MarkerFaceColor, line_color(i,:)) end  % manualy plot errorbars for i = 1:length(WF_cases_selected)   tmp_TI = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100;   end   px = WF_data.shift{i} ;   py = tmp_TI;   pw = 0.05;   pe = zeros(size(px))+ 0.004*tmp_TI;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids.   for j = 1:WF_cases_n(i)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],:, Color, line_color(i,:),LineWidth,0.5)   end end xlabel(\\Delta_y [D]) ylabel($ \\langle TI \\rangle_{1}^{19} [\\%]$,Interpreter,Latex) box(on) xlim([-0.1 2.6]) legend1 = legend(legend_items); set(legend1,Location,northeast); print(f3, WF_TI_all,-dpng,-r300)  %% plot average unsteady loading end of farm row_start = 16; row_end = 19; f4 = figure; set(gcf,paperposition,[0,0,8.4,4.9]) hold on for i = 1 : length(WF_cases_selected)   tmp_TI = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100;   end   plot( WF_data.shift{i} , tmp_TI , line_tick{i} ,Color, line_color(i,:) ,MarkerFaceColor, line_color(i,:)) end  % manualy plot errorbars for i = 1:length(WF_cases_selected)   tmp_TI = zeros(size(WF_data.shift{i}));   for j = 1:WF_cases_n(i)     tmp_TI(j) = mean(mean(WF_data.WF_U_rms{i}{j}(row_start:row_end,:)./WF_data.WF_Um{i}{j}(row_start:row_end,:)))*100;   end   px = WF_data.shift{i} ;   py = tmp_TI;   pw = 0.05;   pe = zeros(size(px))+ 0.01*tmp_TI;%for uncertainty value see Bossuyt et al. (2018) Physical Review Fluids.   for j = 1:WF_cases_n(i)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)+pe(j) py(j)+pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j)-pw/2 px(j)+pw/2] , [py(j)-pe(j) py(j)-pe(j)],-, Color, line_color(i,:),LineWidth,0.5)     plot( [px(j) px(j)],[py(j)-pe(j) py(j)+pe(j)],:, Color, line_color(i,:),LineWidth,0.5)   end end xlabel(\\Delta_y [D]) ylabel($ \\langle TI \\rangle_{16}^{19} [\\%]$,Interpreter,Latex) box(on) xlim([-0.1 2.6]) legend1 = legend(legend_items); set(legend1,Location,northeast); print(f4, WF_TI_end,-dpng,-r300)","type":"string"},"datatype":"string"},"type":"statement","id":"Q6700690$8486A32F-532B-46FB-A71B-DBE2662A6E19","rank":"normal"}],"P28":[{"mainsnak":{"snaktype":"value","property":"P28","hash":"5851604a72cdd40de4e79399957d1d12419d2f19","datavalue":{"value":{"time":"+2018-10-19T00:00:00Z","timezone":0,"before":0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"},"type":"time"},"datatype":"time"},"type":"statement","id":"Q6700690$233DD1A4-DE68-4432-8005-1A8351A3DDFF","rank":"normal"}],"P16":[{"mainsnak":{"snaktype":"value","property":"P16","hash":"6e72a2cc5718526777bcdd624b56ff3d850320f4","datavalue":{"value":{"entity-type":"item","numeric-id":6700689,"id":"Q6700689"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q6700690$6AE4CCB9-4DAE-4C15-B6BB-95B64D80B5BB","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P16","hash":"a5fc693830e68bb4f2aa3498bbe89ad619287845","datavalue":{"value":{"entity-type":"item","numeric-id":232086,"id":"Q232086"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q6700690$2307D74F-BB2B-4FEA-9305-01367B4420B9","rank":"normal"},{"mainsnak":{"snaktype":"value","property":"P16","hash":"58f8b697ddfa5eb07e06e02b55753f25a5d030d6","datavalue":{"value":{"entity-type":"item","numeric-id":348284,"id":"Q348284"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q6700690$9373CBDD-7F6A-4449-A82E-21498F7677B1","rank":"normal"}],"P227":[{"mainsnak":{"snaktype":"value","property":"P227","hash":"358ebecf4d7545b8a3a48c3000f15a5c063a5af0","datavalue":{"value":"1467411","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q6700690$968BB382-9150-4D10-9AA8-0FC785A9C7B4","rank":"normal"}],"P27":[{"mainsnak":{"snaktype":"value","property":"P27","hash":"84afe21808f31f64a5f9dbfd91474e8de7446cb9","datavalue":{"value":"10.5281/zenodo.1467411","type":"string"},"datatype":"external-id"},"type":"statement","id":"Q6700690$D03A47A1-9A91-4981-BA70-F33DE70F5104","rank":"normal"}],"P1460":[{"mainsnak":{"snaktype":"value","property":"P1460","hash":"d1e8073b72a070520efd3d14d4b3d2d3d03859e2","datavalue":{"value":{"entity-type":"item","numeric-id":5984635,"id":"Q5984635"},"type":"wikibase-entityid"},"datatype":"wikibase-item"},"type":"statement","id":"Q6700690$7322C4A9-77FD-45A6-BD2C-556E2D7E5739","rank":"normal"}]},"sitelinks":{"mardi":{"site":"mardi","title":"Wind tunnel experiment of a micro wind farm model","badges":[],"url":"https://portal.mardi4nfdi.de/wiki/Wind_tunnel_experiment_of_a_micro_wind_farm_model"}}}}}