%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Filtering data points by cell %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% min_x = min(small_dataset(:,2)); min_y = min(small_dataset(:,1)); max_x = max(small_dataset(:,2)); max_y = max(small_dataset(:,1)); length_x = max_x - min_x; length_y = max_y - min_y; % Distance in meters for x and y axis distance_meter_x = distanceGPS(min_y,min_x,min_y,max_x); % 290.727318201 m distance_meter_y = distanceGPS(min_y,min_x,max_y,min_x); % 1107.98493863 m % 10x10 row=110,column=29 % 25x25 row=44,column=12 % 20x20 row=55,column=14 % 30x30 row=37,column=10 % 40x40 row=28,column=7 % 50x50 row=20,column=5 %%%%%%%%% % 10x10 row_num_10=110; column_num_10=29; distance_x_10 = length_x/column_num_10; distance_y_10 = length_y/row_num_10; count_10 = 0; cells_no_data_10 = 0; cells_with_data_10 = 0; total_10 = 0; for row=1:1:row_num_10 for column=1:1:column_num_10 if row == row_num_10 && column == column_num_10 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_10)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_10)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_10 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_10)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_10)) & small_dataset(:,2)<(min_x + column*distance_x_10),1:4); elseif column == column_num_10 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_10)) & small_dataset(:,1)<(min_y + row*distance_y_10) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_10)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_10)) & small_dataset(:,1)<(min_y + row*distance_y_10) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_10)) & small_dataset(:,2)<(min_x + column*distance_x_10),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 total_10 = total_10 + std(temp(:,3)); count_10 = count_10 + 1; cells_with_data_10 = cells_with_data_10 + 1; else cells_no_data_10 = cells_no_data_10 + 1; end end end %%%%%%%%% % 20x20 row_num_20=55; column_num_20=14; distance_x_20 = length_x/column_num_20; distance_y_20 = length_y/row_num_20; count_20 = 0; cells_no_data_20 = 0; cells_with_data_20 = 0; total_20 = 0; for row=1:1:row_num_20 for column=1:1:column_num_20 if row == row_num_20 && column == column_num_20 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_20)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_20)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_20 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_20)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_20)) & small_dataset(:,2)<(min_x + column*distance_x_20),1:4); elseif column == column_num_20 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_20)) & small_dataset(:,1)<(min_y + row*distance_y_20) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_20)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_20)) & small_dataset(:,1)<(min_y + row*distance_y_20) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_20)) & small_dataset(:,2)<(min_x + column*distance_x_20),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 total_20 = total_20 + std(temp(:,3)); count_20 = count_20 + 1; cells_with_data_20 = cells_with_data_20 + 1; else cells_no_data_20 = cells_no_data_20 + 1; end end end %%%%%%%%% % 25x25 row_num_25=44; column_num_25=12; distance_x_25 = length_x/column_num_25; distance_y_25 = length_y/row_num_25; count_25 = 0; cells_no_data_25 = 0; cells_with_data_25 = 0; total_25 = 0; for row=1:1:row_num_25 for column=1:1:column_num_25 if row == row_num_25 && column == column_num_25 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_25)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_25)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_25 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_25)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_25)) & small_dataset(:,2)<(min_x + column*distance_x_25),1:4); elseif column == column_num_25 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_25)) & small_dataset(:,1)<(min_y + row*distance_y_25) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_25)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_25)) & small_dataset(:,1)<(min_y + row*distance_y_25) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_25)) & small_dataset(:,2)<(min_x + column*distance_x_25),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 total_25 = total_25 + std(temp(:,3)); count_25 = count_25 + 1; cells_with_data_25 = cells_with_data_25 + 1; else cells_no_data_25 = cells_no_data_25 + 1; end end end %%%%%%%%% % 30x30 % 30x30 row=37,column=10 row_num_30=37; column_num_30=10; distance_x_30 = length_x/column_num_30; distance_y_30 = length_y/row_num_30; count_30 = 0; cells_no_data_30 = 0; cells_with_data_30 = 0; total_30 = 0; for row=1:1:row_num_30 for column=1:1:column_num_30 if row == row_num_30 && column == column_num_30 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_30)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_30)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_30 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_30)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_30)) & small_dataset(:,2)<(min_x + column*distance_x_30),1:4); elseif column == column_num_30 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_30)) & small_dataset(:,1)<(min_y + row*distance_y_30) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_30)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_30)) & small_dataset(:,1)<(min_y + row*distance_y_30) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_30)) & small_dataset(:,2)<(min_x + column*distance_x_30),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 total_30 = total_30 + std(temp(:,3)); count_30 = count_30 + 1; cells_with_data_30 = cells_with_data_30 + 1; else cells_no_data_30 = cells_no_data_30 + 1; end end end %%%%%%%%% % 40x40 % 40x40 row=28,column=7 row_num_40=28; column_num_40=7; distance_x_40 = length_x/column_num_40; distance_y_40 = length_y/row_num_40; count_40 = 0; cells_no_data_40 = 0; cells_with_data_40 = 0; total_40 = 0; for row=1:1:row_num_40 for column=1:1:column_num_40 if row == row_num_40 && column == column_num_40 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_40)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_40)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_40 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_40)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_40)) & small_dataset(:,2)<(min_x + column*distance_x_40),1:4); elseif column == column_num_40 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_40)) & small_dataset(:,1)<(min_y + row*distance_y_40) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_40)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_40)) & small_dataset(:,1)<(min_y + row*distance_y_40) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_40)) & small_dataset(:,2)<(min_x + column*distance_x_40),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 total_40 = total_40 + std(temp(:,3)); count_40 = count_40 + 1; cells_with_data_40 = cells_with_data_40 + 1; else cells_no_data_40 = cells_no_data_40 + 1; end end end %%%%%%%%% % 50x50 row_num_50=20; column_num_50=5; distance_x_50 = length_x/column_num_50; distance_y_50 = length_y/row_num_50; cells_no_data_50 = 0; cells_with_data_50 = 0; total_50 = 0; count_50 = 0; for row=1:1:row_num_50 for column=1:1:column_num_50 if row == row_num_50 && column == column_num_50 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_50)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_50)) & small_dataset(:,2)<=max_x,1:4); elseif row == row_num_50 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_50)) & small_dataset(:,1)<=max_y & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_50)) & small_dataset(:,2)<(min_x + column*distance_x_50),1:4); elseif column == column_num_50 temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_50)) & small_dataset(:,1)<(min_y + row*distance_y_50) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_50)) & small_dataset(:,2)<=max_x,1:4); else temp = small_dataset(small_dataset(:,1)>=(min_y + ((row-1)*distance_y_50)) & small_dataset(:,1)<(min_y + row*distance_y_50) & ... small_dataset(:,2)>=(min_x + ((column-1)*distance_x_50)) & small_dataset(:,2)<(min_x + column*distance_x_50),1:4); end % isempty returns 1 if true and 0 for false if isempty(temp) == 0 count_50 = count_50 + 1; total_50 = total_50 + std(temp(:,3)); cells_with_data_50 = cells_with_data_50 + 1; else cells_no_data_50 = cells_no_data_50 + 1; end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Plots %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(42); bar([row_num_10*column_num_10,row_num_20*column_num_20,row_num_30*column_num_30,row_num_40*column_num_40,row_num_50*column_num_50]); ylabel('Number of squares'); xlabel('Dimensions [m]'); labels = {'10x10','20x20','30x30','40x40','50x50'}; set(gca,'xticklabel',labels); figure(41); bar_10 = total_10/cells_with_data_10; bar_20 = total_20/cells_with_data_20; bar_25 = total_25/cells_with_data_25; bar_30 = total_30/cells_with_data_30; bar_40 = total_40/cells_with_data_40; bar_50 = total_50/cells_with_data_50; bar([bar_10,bar_20,bar_30,bar_40,bar_50]); ylabel('Mean STD per square'); xlabel('Dimensions [m]'); labels = {'10x10','20x20','30x30','40x40','50x50'}; set(gca,'xticklabel',labels); figure(43); bar([length(small_dataset)/count_10,length(small_dataset)/count_20,length(small_dataset)/count_30,length(small_dataset)/count_40,length(small_dataset)/count_50]); ylabel('Mean observations per square'); xlabel('Dimensions [m]'); labels = {'10x10','20x20','30x30','40x40','50x50'}; set(gca,'xticklabel',labels);