Displaying differences for changeset
 
display as  

src/java/cfa/FlowStatistics.java

@@ -79,193 +79,210 @@
         stationName = stationName.replace(",", "");
         
         //Initialize the summary result table
-        int summarySize = 60;
-        if(showMonthlyTF) summarySize = 180;
+        int summarySize = 65;
+        if(showMonthlyTF) summarySize = 197;
         
         String[][] statsSummaryTable = new String[summarySize][1];
         statsSummaryTable[0][0] = "Flow Statistics for " + stationID + "; " + stationName + "; created on " + today;
         statsSummaryTable[1][0] = "Analysis Period (calendar year)";
-        statsSummaryTable[2][0] = "Maximum [cfs]";
-        statsSummaryTable[3][0] = "Minimum [cfs]";
-        statsSummaryTable[4][0] = "Upper Quartile [cfs]";
-        statsSummaryTable[5][0] = "Lower Quartile [cfs]";
-        statsSummaryTable[6][0] = "Median [cfs]";
-        statsSummaryTable[7][0] = "Average [cfs]";
-        statsSummaryTable[8][0] = "Standard Deviation [cfs]";
-        statsSummaryTable[9][0] = "Variance";
-        statsSummaryTable[10][0] = "Skewness";
-        statsSummaryTable[11][0] = "Coefficient of Variation";
-        statsSummaryTable[12][0] = "Maximum (1-day) [cfs]";
-        statsSummaryTable[13][0] = "Date of Maximum (1-day)";
-        statsSummaryTable[14][0] = "Minimum (1-day) [cfs]";
-        statsSummaryTable[15][0] = "Date of Minimum (1-day)";
-        statsSummaryTable[16][0] = "Maximum (3-day) [cfs]";
-        statsSummaryTable[17][0] = "Dates of Maximum (3-day)";
-        statsSummaryTable[18][0] = "Minimum (3-day) [cfs]";
-        statsSummaryTable[19][0] = "Dates of Minimum (3-day)";
-        statsSummaryTable[20][0] = "Maximum (7-day) [cfs]";
-        statsSummaryTable[21][0] = "Dates of Maximum (7-day)";
-        statsSummaryTable[22][0] = "Minimum (7-day) [cfs]";
-        statsSummaryTable[23][0] = "Dates of Minimum (7-day)";
-        statsSummaryTable[24][0] = "Minimum (7-day) / Annual Average  [cfs]";
-        statsSummaryTable[25][0] = "Maximum (30-day) [cfs]";
-        statsSummaryTable[26][0] = "Dates of Maximum (30-day)";
-        statsSummaryTable[27][0] = "Minimum (30-day) [cfs]";
-        statsSummaryTable[28][0] = "Dates of Minimum (30-day)";
-        statsSummaryTable[29][0] = "Maximum (90-day) [cfs]";
-        statsSummaryTable[30][0] = "Dates of Maximum (90-day)";
-        statsSummaryTable[31][0] = "Minimum (90-day) [cfs]";
-        statsSummaryTable[32][0] = "Dates of Minimum (90-day)";
-        statsSummaryTable[33][0] = "Number of Zero Flow Days";
-        statsSummaryTable[34][0] = "Number of Flow Reversals";
-        statsSummaryTable[35][0] = "Number of Flow Rises";
-        statsSummaryTable[36][0] = "Number of Flow Falls";
-        statsSummaryTable[37][0] = "Number of High Pulses (> " + highPercentile + " percentile)";
-        statsSummaryTable[38][0] = "Threshold for High Pulses (> " + highPercentile + " percentile) [cfs]";
-        statsSummaryTable[39][0] = "Average Duration of High Pulses (> " + highPercentile + " percentile) [days]";
-        statsSummaryTable[40][0] = "Number of Low Pulses (< " + lowPercentile + " percentile)";
-        statsSummaryTable[41][0] = "Threshold for Low Pulses (< " + lowPercentile + " percentile) [cfs]";
-        statsSummaryTable[42][0] = "Average Duration of Low Pulses (< " + lowPercentile + " percentile) [days]";
-        statsSummaryTable[43][0] = "Average Positive Difference Between Consecutive Days [cfs]";
-        statsSummaryTable[44][0] = "Average Negative Difference Between Consecutive Days [cfs]";
-        statsSummaryTable[45][0] = "Temporal Centriod of Discharge [Day of Calendary Year]";
-        statsSummaryTable[46][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Maximum) [cfs]";
-        statsSummaryTable[47][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Minimum) [cfs]";
-        statsSummaryTable[48][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Upper Quartile) [cfs]";
-        statsSummaryTable[49][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Lower Quartile) [cfs]";
-        statsSummaryTable[50][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Median) [cfs]";
-        statsSummaryTable[51][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Average) [cfs]";
-        statsSummaryTable[52][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Standard Deviation) [cfs]";
-        statsSummaryTable[53][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Variance)";
-        statsSummaryTable[54][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Skewness)";
-        statsSummaryTable[55][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Coefficient of Variation)";
+        statsSummaryTable[2][0] = "Count";
+        statsSummaryTable[3][0] = "Maximum [cfs]";
+        statsSummaryTable[4][0] = "Minimum [cfs]";
+        statsSummaryTable[5][0] = "Upper Quartile [cfs]";
+        statsSummaryTable[6][0] = "Lower Quartile [cfs]";
+        statsSummaryTable[7][0] = "Median [cfs]";
+        statsSummaryTable[8][0] = "Average [cfs]";
+        statsSummaryTable[9][0] = "Standard Deviation [cfs]";
+        statsSummaryTable[10][0] = "Variance";
+        statsSummaryTable[11][0] = "Skewness";
+        statsSummaryTable[12][0] = "Coefficient of Variation";
+        statsSummaryTable[13][0] = "Maximum (1-day) [cfs]";
+        statsSummaryTable[14][0] = "Date of Maximum (1-day)";
+        statsSummaryTable[15][0] = "Minimum (1-day) [cfs]";
+        statsSummaryTable[16][0] = "Date of Minimum (1-day)";
+        statsSummaryTable[17][0] = "Maximum (3-day) [cfs]";
+        statsSummaryTable[18][0] = "Dates of Maximum (3-day)";
+        statsSummaryTable[19][0] = "Minimum (3-day) [cfs]";
+        statsSummaryTable[20][0] = "Dates of Minimum (3-day)";
+        statsSummaryTable[21][0] = "Maximum (7-day) [cfs]";
+        statsSummaryTable[22][0] = "Dates of Maximum (7-day)";
+        statsSummaryTable[23][0] = "Minimum (7-day) [cfs]";
+        statsSummaryTable[24][0] = "Dates of Minimum (7-day)";
+        statsSummaryTable[25][0] = "Minimum (7-day) / Annual Average  [cfs]";
+        statsSummaryTable[26][0] = "Maximum (30-day) [cfs]";
+        statsSummaryTable[27][0] = "Dates of Maximum (30-day)";
+        statsSummaryTable[28][0] = "Minimum (30-day) [cfs]";
+        statsSummaryTable[29][0] = "Dates of Minimum (30-day)";
+        statsSummaryTable[30][0] = "Maximum (90-day) [cfs]";
+        statsSummaryTable[31][0] = "Dates of Maximum (90-day)";
+        statsSummaryTable[32][0] = "Minimum (90-day) [cfs]";
+        statsSummaryTable[33][0] = "Dates of Minimum (90-day)";
+        statsSummaryTable[34][0] = "Number of Zero Flow Days";
+        statsSummaryTable[35][0] = "Number of Flow Reversals";
+        statsSummaryTable[36][0] = "Number of Flow Rises";
+        statsSummaryTable[37][0] = "Number of Flow Falls";
+        statsSummaryTable[38][0] = "Number of High Pulses (> " + highPercentile + " percentile)";
+        statsSummaryTable[39][0] = "Threshold for High Pulses (> " + highPercentile + " percentile) [cfs]";
+        statsSummaryTable[40][0] = "Average Duration of High Pulses (> " + highPercentile + " percentile) [days]";
+        statsSummaryTable[41][0] = "Number of Low Pulses (< " + lowPercentile + " percentile)";
+        statsSummaryTable[42][0] = "Threshold for Low Pulses (< " + lowPercentile + " percentile) [cfs]";
+        statsSummaryTable[43][0] = "Average Duration of Low Pulses (< " + lowPercentile + " percentile) [days]";
+        statsSummaryTable[44][0] = "Average Positive Difference Between Consecutive Days [cfs]";
+        statsSummaryTable[45][0] = "Average Negative Difference Between Consecutive Days [cfs]";
+        statsSummaryTable[46][0] = "Temporal Centriod of Discharge [Day of Calendary Year]";
+        statsSummaryTable[47][0] = "Richards-Baker Flow 'Flashiness' Index";
+        statsSummaryTable[48][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Count)";
+        statsSummaryTable[49][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Maximum) [cfs]";
+        statsSummaryTable[50][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Minimum) [cfs]";
+        statsSummaryTable[51][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Upper Quartile) [cfs]";
+        statsSummaryTable[52][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Lower Quartile) [cfs]";
+        statsSummaryTable[53][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Median) [cfs]";
+        statsSummaryTable[54][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Average) [cfs]";
+        statsSummaryTable[55][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Standard Deviation) [cfs]";
+        statsSummaryTable[56][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Variance)";
+        statsSummaryTable[57][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Skewness)";
+        statsSummaryTable[58][0] = "Season " + seasonBegin + " to " + seasonEnd + " (Coefficient of Variation)";
         
         if(showMonthlyTF){
-            statsSummaryTable[56][0] = "January (Maximum) [cfs]";
-            statsSummaryTable[57][0] = "January (Minimum) [cfs]";
-            statsSummaryTable[58][0] = "January (Upper Quartile) [cfs]";
-            statsSummaryTable[59][0] = "January (Lower Quartile) [cfs]";
-            statsSummaryTable[60][0] = "January (Median) [cfs]";
-            statsSummaryTable[61][0] = "January (Average) [cfs]";
-            statsSummaryTable[62][0] = "January (Standard Deviation) [cfs]";
-            statsSummaryTable[63][0] = "January (Variance)";
-            statsSummaryTable[64][0] = "January (Skewness)";
-            statsSummaryTable[65][0] = "January (Coefficient of Variation)";
-            statsSummaryTable[66][0] = "February (Maximum) [cfs]";
-            statsSummaryTable[67][0] = "February (Minimum) [cfs]";
-            statsSummaryTable[68][0] = "February (Upper Quartile) [cfs]";
-            statsSummaryTable[69][0] = "February (Lower Quartile) [cfs]";
-            statsSummaryTable[70][0] = "February (Median) [cfs]";
-            statsSummaryTable[71][0] = "February (Average) [cfs]";
-            statsSummaryTable[72][0] = "February (Standard Deviation) [cfs]";
-            statsSummaryTable[73][0] = "February (Variance)";
-            statsSummaryTable[74][0] = "February (Skewness)";
-            statsSummaryTable[75][0] = "February (Coefficient of Variation)";
-            statsSummaryTable[76][0] = "March (Maximum) [cfs]";
-            statsSummaryTable[77][0] = "March (Minimum) [cfs]";
-            statsSummaryTable[78][0] = "March (Upper Quartile) [cfs]";
-            statsSummaryTable[79][0] = "March (Lower Quartile) [cfs]";
-            statsSummaryTable[80][0] = "March (Median) [cfs]";
-            statsSummaryTable[81][0] = "March (Average) [cfs]";
-            statsSummaryTable[82][0] = "March (Standard Deviation) [cfs]";
-            statsSummaryTable[83][0] = "March (Variance)";
-            statsSummaryTable[84][0] = "March (Skewness)";
-            statsSummaryTable[85][0] = "March (Coefficient of Variation)";
-            statsSummaryTable[86][0] = "April (Maximum) [cfs]";
-            statsSummaryTable[87][0] = "April (Minimum) [cfs]";
-            statsSummaryTable[88][0] = "April (Upper Quartile) [cfs]";
-            statsSummaryTable[89][0] = "April (Lower Quartile) [cfs]";
-            statsSummaryTable[90][0] = "April (Median) [cfs]";
-            statsSummaryTable[91][0] = "April (Average) [cfs]";
-            statsSummaryTable[92][0] = "April (Standard Deviation) [cfs]";
-            statsSummaryTable[93][0] = "April (Variance)";
-            statsSummaryTable[94][0] = "April (Skewness)";
-            statsSummaryTable[95][0] = "April (Coefficient of Variation)";
-            statsSummaryTable[96][0] = "May (Maximum) [cfs]";
-            statsSummaryTable[97][0] = "May (Minimum) [cfs]";
-            statsSummaryTable[98][0] = "May (Upper Quartile) [cfs]";
-            statsSummaryTable[99][0] = "May (Lower Quartile) [cfs]";
-            statsSummaryTable[100][0] = "May (Median) [cfs]";
-            statsSummaryTable[101][0] = "May (Average) [cfs]";
-            statsSummaryTable[102][0] = "May (Standard Deviation) [cfs]";
-            statsSummaryTable[103][0] = "May (Variance)";
-            statsSummaryTable[104][0] = "May (Skewness)";
-            statsSummaryTable[105][0] = "May (Coefficient of Variation)";
-            statsSummaryTable[106][0] = "June (Maximum) [cfs]";
-            statsSummaryTable[107][0] = "June (Minimum) [cfs]";
-            statsSummaryTable[108][0] = "June (Upper Quartile) [cfs]";
-            statsSummaryTable[109][0] = "June (Lower Quartile) [cfs]";
-            statsSummaryTable[100][0] = "June (Median) [cfs]";
-            statsSummaryTable[111][0] = "June (Average) [cfs]";
-            statsSummaryTable[112][0] = "June (Standard Deviation) [cfs]";
-            statsSummaryTable[113][0] = "June (Variance)";
-            statsSummaryTable[114][0] = "June (Skewness)";
-            statsSummaryTable[115][0] = "June (Coefficient of Variation)";
-            statsSummaryTable[116][0] = "July (Maximum) [cfs]";
-            statsSummaryTable[117][0] = "July (Minimum) [cfs]";
-            statsSummaryTable[118][0] = "July (Upper Quartile) [cfs]";
-            statsSummaryTable[119][0] = "July (Lower Quartile) [cfs]";
-            statsSummaryTable[120][0] = "July (Median) [cfs]";
-            statsSummaryTable[121][0] = "July (Average) [cfs]";
-            statsSummaryTable[122][0] = "July (Standard Deviation) [cfs]";
-            statsSummaryTable[123][0] = "July (Variance)";
-            statsSummaryTable[124][0] = "July (Skewness)";
-            statsSummaryTable[125][0] = "July (Coefficient of Variation)";
-            statsSummaryTable[126][0] = "August (Maximum) [cfs]";
-            statsSummaryTable[127][0] = "August (Minimum) [cfs]";
-            statsSummaryTable[128][0] = "August (Upper Quartile) [cfs]";
-            statsSummaryTable[129][0] = "August (Lower Quartile) [cfs]";
-            statsSummaryTable[130][0] = "August (Median) [cfs]";
-            statsSummaryTable[131][0] = "August (Average) [cfs]";
-            statsSummaryTable[132][0] = "August (Standard Deviation) [cfs]";
-            statsSummaryTable[133][0] = "August (Variance)";
-            statsSummaryTable[134][0] = "August (Skewness)";
-            statsSummaryTable[135][0] = "August (Coefficient of Variation)";
-            statsSummaryTable[136][0] = "September (Maximum) [cfs]";
-            statsSummaryTable[137][0] = "September (Minimum) [cfs]";
-            statsSummaryTable[138][0] = "September (Upper Quartile) [cfs]";
-            statsSummaryTable[139][0] = "September (Lower Quartile) [cfs]";
-            statsSummaryTable[140][0] = "September (Median) [cfs]";
-            statsSummaryTable[141][0] = "September (Average) [cfs]";
-            statsSummaryTable[142][0] = "September (Standard Deviation) [cfs]";
-            statsSummaryTable[143][0] = "September (Variance)";
-            statsSummaryTable[144][0] = "September (Skewness)";
-            statsSummaryTable[145][0] = "September (Coefficient of Variation)";
-            statsSummaryTable[146][0] = "October (Maximum) [cfs]";
-            statsSummaryTable[147][0] = "October (Minimum) [cfs]";
-            statsSummaryTable[148][0] = "October (Upper Quartile) [cfs]";
-            statsSummaryTable[149][0] = "October (Lower Quartile) [cfs]";
-            statsSummaryTable[150][0] = "October (Median) [cfs]";
-            statsSummaryTable[151][0] = "October (Average) [cfs]";
-            statsSummaryTable[152][0] = "October (Standard Deviation) [cfs]";
-            statsSummaryTable[153][0] = "October (Variance)";
-            statsSummaryTable[154][0] = "October (Skewness)";
-            statsSummaryTable[155][0] = "October (Coefficient of Variation)";
-            statsSummaryTable[156][0] = "November (Maximum) [cfs]";
-            statsSummaryTable[157][0] = "November (Minimum) [cfs]";
-            statsSummaryTable[158][0] = "November (Upper Quartile) [cfs]";
-            statsSummaryTable[159][0] = "November (Lower Quartile) [cfs]";
-            statsSummaryTable[160][0] = "November (Median) [cfs]";
-            statsSummaryTable[161][0] = "November (Average) [cfs]";
-            statsSummaryTable[162][0] = "November (Standard Deviation) [cfs]";
-            statsSummaryTable[163][0] = "November (Variance)";
-            statsSummaryTable[164][0] = "November (Skewness)";
-            statsSummaryTable[165][0] = "November (Coefficient of Variation)";
-            statsSummaryTable[166][0] = "December (Maximum) [cfs]";
-            statsSummaryTable[167][0] = "December (Minimum) [cfs]";
-            statsSummaryTable[168][0] = "December (Upper Quartile) [cfs]";
-            statsSummaryTable[169][0] = "December (Lower Quartile) [cfs]";
-            statsSummaryTable[170][0] = "December (Median) [cfs]";
-            statsSummaryTable[171][0] = "December (Average) [cfs]";
-            statsSummaryTable[172][0] = "December (Standard Deviation) [cfs]";
-            statsSummaryTable[173][0] = "December (Variance)";
-            statsSummaryTable[174][0] = "December (Skewness)";
-            statsSummaryTable[175][0] = "December (Coefficient of Variation)";
+            statsSummaryTable[59][0] = "January (Count)";
+            statsSummaryTable[60][0] = "January (Maximum) [cfs]";
+            statsSummaryTable[61][0] = "January (Minimum) [cfs]";
+            statsSummaryTable[62][0] = "January (Upper Quartile) [cfs]";
+            statsSummaryTable[63][0] = "January (Lower Quartile) [cfs]";
+            statsSummaryTable[64][0] = "January (Median) [cfs]";
+            statsSummaryTable[65][0] = "January (Average) [cfs]";
+            statsSummaryTable[66][0] = "January (Standard Deviation) [cfs]";
+            statsSummaryTable[67][0] = "January (Variance)";
+            statsSummaryTable[68][0] = "January (Skewness)";
+            statsSummaryTable[69][0] = "January (Coefficient of Variation)";
+            statsSummaryTable[70][0] = "February (Count)";
+            statsSummaryTable[71][0] = "February (Maximum) [cfs]";
+            statsSummaryTable[72][0] = "February (Minimum) [cfs]";
+            statsSummaryTable[73][0] = "February (Upper Quartile) [cfs]";
+            statsSummaryTable[74][0] = "February (Lower Quartile) [cfs]";
+            statsSummaryTable[75][0] = "February (Median) [cfs]";
+            statsSummaryTable[76][0] = "February (Average) [cfs]";
+            statsSummaryTable[77][0] = "February (Standard Deviation) [cfs]";
+            statsSummaryTable[78][0] = "February (Variance)";
+            statsSummaryTable[79][0] = "February (Skewness)";
+            statsSummaryTable[80][0] = "February (Coefficient of Variation)";
+            statsSummaryTable[81][0] = "March (Count)";
+            statsSummaryTable[82][0] = "March (Maximum) [cfs]";
+            statsSummaryTable[83][0] = "March (Minimum) [cfs]";
+            statsSummaryTable[84][0] = "March (Upper Quartile) [cfs]";
+            statsSummaryTable[85][0] = "March (Lower Quartile) [cfs]";
+            statsSummaryTable[86][0] = "March (Median) [cfs]";
+            statsSummaryTable[87][0] = "March (Average) [cfs]";
+            statsSummaryTable[88][0] = "March (Standard Deviation) [cfs]";
+            statsSummaryTable[89][0] = "March (Variance)";
+            statsSummaryTable[90][0] = "March (Skewness)";
+            statsSummaryTable[91][0] = "March (Coefficient of Variation)";
+            statsSummaryTable[92][0] = "April (Count)";
+            statsSummaryTable[93][0] = "April (Maximum) [cfs]";
+            statsSummaryTable[94][0] = "April (Minimum) [cfs]";
+            statsSummaryTable[95][0] = "April (Upper Quartile) [cfs]";
+            statsSummaryTable[96][0] = "April (Lower Quartile) [cfs]";
+            statsSummaryTable[97][0] = "April (Median) [cfs]";
+            statsSummaryTable[98][0] = "April (Average) [cfs]";
+            statsSummaryTable[99][0] = "April (Standard Deviation) [cfs]";
+            statsSummaryTable[100][0] = "April (Variance)";
+            statsSummaryTable[101][0] = "April (Skewness)";
+            statsSummaryTable[102][0] = "April (Coefficient of Variation)";
+            statsSummaryTable[103][0] = "May (Count)";
+            statsSummaryTable[104][0] = "May (Maximum) [cfs]";
+            statsSummaryTable[105][0] = "May (Minimum) [cfs]";
+            statsSummaryTable[106][0] = "May (Upper Quartile) [cfs]";
+            statsSummaryTable[107][0] = "May (Lower Quartile) [cfs]";
+            statsSummaryTable[108][0] = "May (Median) [cfs]";
+            statsSummaryTable[109][0] = "May (Average) [cfs]";
+            statsSummaryTable[110][0] = "May (Standard Deviation) [cfs]";
+            statsSummaryTable[111][0] = "May (Variance)";
+            statsSummaryTable[112][0] = "May (Skewness)";
+            statsSummaryTable[113][0] = "May (Coefficient of Variation)";
+            statsSummaryTable[114][0] = "June (Count)";
+            statsSummaryTable[115][0] = "June (Maximum) [cfs]";
+            statsSummaryTable[116][0] = "June (Minimum) [cfs]";
+            statsSummaryTable[117][0] = "June (Upper Quartile) [cfs]";
+            statsSummaryTable[118][0] = "June (Lower Quartile) [cfs]";
+            statsSummaryTable[119][0] = "June (Median) [cfs]";
+            statsSummaryTable[120][0] = "June (Average) [cfs]";
+            statsSummaryTable[121][0] = "June (Standard Deviation) [cfs]";
+            statsSummaryTable[122][0] = "June (Variance)";
+            statsSummaryTable[123][0] = "June (Skewness)";
+            statsSummaryTable[124][0] = "June (Coefficient of Variation)";
+            statsSummaryTable[125][0] = "July (Count)";
+            statsSummaryTable[126][0] = "July (Maximum) [cfs]";
+            statsSummaryTable[127][0] = "July (Minimum) [cfs]";
+            statsSummaryTable[128][0] = "July (Upper Quartile) [cfs]";
+            statsSummaryTable[129][0] = "July (Lower Quartile) [cfs]";
+            statsSummaryTable[130][0] = "July (Median) [cfs]";
+            statsSummaryTable[131][0] = "July (Average) [cfs]";
+            statsSummaryTable[132][0] = "July (Standard Deviation) [cfs]";
+            statsSummaryTable[133][0] = "July (Variance)";
+            statsSummaryTable[134][0] = "July (Skewness)";
+            statsSummaryTable[135][0] = "July (Coefficient of Variation)";
+            statsSummaryTable[136][0] = "August (Count)";
+            statsSummaryTable[137][0] = "August (Maximum) [cfs]";
+            statsSummaryTable[138][0] = "August (Minimum) [cfs]";
+            statsSummaryTable[139][0] = "August (Upper Quartile) [cfs]";
+            statsSummaryTable[140][0] = "August (Lower Quartile) [cfs]";
+            statsSummaryTable[141][0] = "August (Median) [cfs]";
+            statsSummaryTable[142][0] = "August (Average) [cfs]";
+            statsSummaryTable[143][0] = "August (Standard Deviation) [cfs]";
+            statsSummaryTable[144][0] = "August (Variance)";
+            statsSummaryTable[145][0] = "August (Skewness)";
+            statsSummaryTable[146][0] = "August (Coefficient of Variation)";
+            statsSummaryTable[147][0] = "September (Count)";
+            statsSummaryTable[148][0] = "September (Maximum) [cfs]";
+            statsSummaryTable[149][0] = "September (Minimum) [cfs]";
+            statsSummaryTable[150][0] = "September (Upper Quartile) [cfs]";
+            statsSummaryTable[151][0] = "September (Lower Quartile) [cfs]";
+            statsSummaryTable[152][0] = "September (Median) [cfs]";
+            statsSummaryTable[153][0] = "September (Average) [cfs]";
+            statsSummaryTable[154][0] = "September (Standard Deviation) [cfs]";
+            statsSummaryTable[155][0] = "September (Variance)";
+            statsSummaryTable[156][0] = "September (Skewness)";
+            statsSummaryTable[157][0] = "September (Coefficient of Variation)";
+            statsSummaryTable[158][0] = "October (Count)";
+            statsSummaryTable[159][0] = "October (Maximum) [cfs]";
+            statsSummaryTable[160][0] = "October (Minimum) [cfs]";
+            statsSummaryTable[161][0] = "October (Upper Quartile) [cfs]";
+            statsSummaryTable[162][0] = "October (Lower Quartile) [cfs]";
+            statsSummaryTable[163][0] = "October (Median) [cfs]";
+            statsSummaryTable[164][0] = "October (Average) [cfs]";
+            statsSummaryTable[165][0] = "October (Standard Deviation) [cfs]";
+            statsSummaryTable[166][0] = "October (Variance)";
+            statsSummaryTable[167][0] = "October (Skewness)";
+            statsSummaryTable[168][0] = "October (Coefficient of Variation)";
+            statsSummaryTable[169][0] = "November (Count)";
+            statsSummaryTable[170][0] = "November (Maximum) [cfs]";
+            statsSummaryTable[171][0] = "November (Minimum) [cfs]";
+            statsSummaryTable[172][0] = "November (Upper Quartile) [cfs]";
+            statsSummaryTable[173][0] = "November (Lower Quartile) [cfs]";
+            statsSummaryTable[174][0] = "November (Median) [cfs]";
+            statsSummaryTable[175][0] = "November (Average) [cfs]";
+            statsSummaryTable[176][0] = "November (Standard Deviation) [cfs]";
+            statsSummaryTable[177][0] = "November (Variance)";
+            statsSummaryTable[178][0] = "November (Skewness)";
+            statsSummaryTable[179][0] = "November (Coefficient of Variation)";
+            statsSummaryTable[180][0] = "December (Count)";
+            statsSummaryTable[181][0] = "December (Maximum) [cfs]";
+            statsSummaryTable[182][0] = "December (Minimum) [cfs]";
+            statsSummaryTable[183][0] = "December (Upper Quartile) [cfs]";
+            statsSummaryTable[184][0] = "December (Lower Quartile) [cfs]";
+            statsSummaryTable[185][0] = "December (Median) [cfs]";
+            statsSummaryTable[186][0] = "December (Average) [cfs]";
+            statsSummaryTable[187][0] = "December (Standard Deviation) [cfs]";
+            statsSummaryTable[188][0] = "December (Variance)";
+            statsSummaryTable[189][0] = "December (Skewness)";
+            statsSummaryTable[190][0] = "December (Coefficient of Variation)";
         }
-        statsSummaryTable[statsSummaryTable.length - 4][0] = "Flow Statistics based on Indicators of Hydrologic Alteration from:";
-        statsSummaryTable[statsSummaryTable.length - 3][0] = "B.D. Richter; J.V. Baumgartner; J. Powell; D.P. Braun. 1996. 'A Method For Assessing Hydrologic Aleration Within Ecosystems.' Conservation Biology 10(4): 1163-1174.";
-        statsSummaryTable[statsSummaryTable.length - 2][0] = "B.D. Richter; J.V. Baumgartner; R. Wigington; D.P Braun. 1997. 'How Much Water Does A River Need?' Freshwater Biology. 37: 231-249.";
-        statsSummaryTable[statsSummaryTable.length - 1][0] = "B.D. Richter; J.V. Baumgartner; D.P. Braun; J. Powell. 1998. 'A Spatial Assessment Of Hydrologic Alteration Within A River Network.' Regul. Rivers: Res. Mgmt. 14: 329-340.";
+        statsSummaryTable[statsSummaryTable.length - 6][0] = "Flow Statistics based on Indicators of Hydrologic Alteration from:";
+        statsSummaryTable[statsSummaryTable.length - 5][0] = "B.D. Richter; J.V. Baumgartner; J. Powell; D.P. Braun. 1996. 'A Method For Assessing Hydrologic Aleration Within Ecosystems.' Conservation Biology 10(4): 1163-1174.";
+        statsSummaryTable[statsSummaryTable.length - 4][0] = "B.D. Richter; J.V. Baumgartner; R. Wigington; D.P Braun. 1997. 'How Much Water Does A River Need?' Freshwater Biology. 37: 231-249.";
+        statsSummaryTable[statsSummaryTable.length - 3][0] = "B.D. Richter; J.V. Baumgartner; D.P. Braun; J. Powell. 1998. 'A Spatial Assessment Of Hydrologic Alteration Within A River Network.' Regul. Rivers: Res. Mgmt. 14: 329-340.";
+        statsSummaryTable[statsSummaryTable.length - 2][0] = "Richards-Baker Flashiness Index from:";
+        statsSummaryTable[statsSummaryTable.length - 1][0] = "D.B. Baker; R.P. Richards; T.T. Loftus; J.W. Kramer. 2004. 'A New Flashiness Index: Characteristics and Applications to Midwestern Rivers and Streams.' Journal of the Americal Water Resources Association (JAWRA) April 2004: 503-522.";
         
         //Calculate all data statistics
         //These are not annual statistics because the data can include more than 1 year
@@ -490,15 +507,12 @@
         ArrayList<Double> allData = new ArrayList<Double>();
         ArrayList<Double> diffPositive = new ArrayList<Double>();
         ArrayList<Double> diffNegative = new ArrayList<Double>();
-        double max_1day = -9999;
-        double min_1day = 9999;
-        double oldValue = 0;
-        String max_1day_date = "-1";
-        String min_1day_date = "-1";
+        double max_1day = -9999, min_1day = 9999;
+        String max_1day_date = "-1", min_1day_date = "-1";
         boolean increasing = false;
         int ctr_zero = 0, ctr_rises = 0, ctr_falls = 0, ctr_reversals = 0;
         String date1 = "1900-01-01";
-        double centroidSum = 0, sum = 0;
+        double centroidSum = 0, sum = 0, RBI_numerator = 0, oldValue = 0;
         for(int i=0; i<flowData.length; i++){
             String date2 = flowData[i][0];
             double month = Double.parseDouble(flowData[i][0].substring(5,7));
@@ -548,6 +562,7 @@
                 }else if(diff < 0){
                     diffNegative.add(diff);
                 }
+                RBI_numerator = RBI_numerator + Math.abs(diff);
 
                 //Calculate flow reversals for consecutive days only
                 if(value > oldValue){
@@ -583,6 +598,7 @@
         }
         double mean_all = doubleMath.meanArithmetic(allData);
         double centroid = centroidSum / sum;
+        double flashinessIndex = RBI_numerator / sum;
         
         //Calculate 3-day statistics
         Object[] resultArray = doubleArray.getMdayData(flowData, 3, "arithmetic");
@@ -701,58 +717,60 @@
         
         
         //Build Flow Statistics Summary for output
-        int summarySize = 60;
-        if(showMonthlyTF) summarySize = 180;
+        int summarySize = 65;
+        if(showMonthlyTF) summarySize = 197;
         String[] additionalSummary = new String[summarySize];
         additionalSummary[0] = "";//blank
         additionalSummary[1] = dataHeader;//Method
-        additionalSummary[2] = String.valueOf(doubleMath.round(doubleMath.max(allData), 3));//Maximum, overall
-        additionalSummary[3] = String.valueOf(doubleMath.round(doubleMath.min(allData), 3));//Minimum, overall
-        additionalSummary[4] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(allData,0.75), 3));//Upper Quartile, overall
-        additionalSummary[5] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(allData,0.25), 3));//Lower Quartile, overall
-        additionalSummary[6] = String.valueOf(doubleMath.round(doubleMath.Median(allData), 3));//Median, overall
-        additionalSummary[7] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(allData), 3));//Average, overall
-        additionalSummary[8] = String.valueOf(doubleMath.round(doubleMath.StandardDeviationSample(allData), 3));//Standard Deviation, overall
-        additionalSummary[9] = String.valueOf(doubleMath.round(doubleMath.VarianceSample(allData), 3));//Variance, overall
-        additionalSummary[10] = String.valueOf(doubleMath.round(doubleMath.SkewnessSample(allData), 3));//Skewness, overall
-        additionalSummary[11] = String.valueOf(doubleMath.round(doubleMath.CoefficientOfVariation(allData), 3));//Coefficient of Variation, overall
-        additionalSummary[12] = String.valueOf(doubleMath.round(max_1day,3));//Maximum (1-day)
-        additionalSummary[13] = max_1day_date;//Date of Maximum (1-day)
-        additionalSummary[14] = String.valueOf(doubleMath.round(min_1day,3));//Minimum (1-day)
-        additionalSummary[15] = min_1day_date;//Date of Minimum (1-day)
-        additionalSummary[16] = String.valueOf(doubleMath.round(max_3day,3));//Maximum (3-day)
-        additionalSummary[17] = max_3day_date;//Dates of Maximum (3-day)
-        additionalSummary[18] = String.valueOf(doubleMath.round(min_3day,3));//Minimum (3-day)
-        additionalSummary[19] = min_3day_date;//Dates of Minimum (3-day)
-        additionalSummary[20] = String.valueOf(doubleMath.round(max_7day,3));//Maximum (7-day)
-        additionalSummary[21] = max_7day_date;//Dates of Maximum (7-day)
-        additionalSummary[22] = String.valueOf(doubleMath.round(min_7day,3));//Minimum (7-day)
-        additionalSummary[23] = min_7day_date;//Dates of Minimum (7-day)
-        additionalSummary[24] = String.valueOf(doubleMath.round(min_7day_ave,3));//Minimum (7-day)
-        additionalSummary[25] = String.valueOf(doubleMath.round(max_30day,3));//Maximum (30-day)
-        additionalSummary[26] = max_30day_date;//Dates of Maximum (30-day)
-        additionalSummary[27] = String.valueOf(doubleMath.round(min_30day,3));//Minimum (30-day)
-        additionalSummary[28] = min_30day_date;//Dates of Minimum (30-day)
-        additionalSummary[29] = String.valueOf(doubleMath.round(max_90day,3));//Maximum (90-day)
-        additionalSummary[30] = max_90day_date;//Dates of Maximum (90-day)
-        additionalSummary[31] = String.valueOf(doubleMath.round(min_90day,3));//Minimum (90-day)
-        additionalSummary[32] = min_90day_date;//Dates of Minimum (90-day)
-        additionalSummary[33] = String.valueOf(ctr_zero);//Number of Zero Flow Days
-        additionalSummary[34] = String.valueOf(ctr_reversals);//Number of Flow Reversals
-        additionalSummary[35] = String.valueOf(ctr_rises);//Number of Flow Rises
-        additionalSummary[36] = String.valueOf(ctr_falls);//Number of Flow Falls
-        additionalSummary[37] = String.valueOf(ctr_highPulse);//Number of High Pulses
-        additionalSummary[38] = String.valueOf(doubleMath.round(highLimit,1));//Threshold for High Pulses
-        additionalSummary[39] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(highPulses), 3));//Average Duration of High Pulses
-        additionalSummary[40] = String.valueOf(ctr_lowPulse);//Number of Low Pulses
-        additionalSummary[41] = String.valueOf(doubleMath.round(lowLimit,1));//Threshold for Low Pulses
-        additionalSummary[42] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(lowPulses), 3));//Average Duration of Low Pulses
-        additionalSummary[43] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(diffPositive),3));//Average Positive Difference Between Consecutive Days
-        additionalSummary[44] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(diffNegative),3));//Average Negative Difference Between Consecutive Days
-        additionalSummary[45] = String.valueOf(doubleMath.round(centroid,2));//Temporal centroid of annual discharge (Julian day, not water-year day)
+        additionalSummary[2] = String.valueOf(allData.size());//Count, overall
+        additionalSummary[3] = String.valueOf(doubleMath.round(doubleMath.max(allData), 3));//Maximum, overall
+        additionalSummary[4] = String.valueOf(doubleMath.round(doubleMath.min(allData), 3));//Minimum, overall
+        additionalSummary[5] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(allData,0.75), 3));//Upper Quartile, overall
+        additionalSummary[6] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(allData,0.25), 3));//Lower Quartile, overall
+        additionalSummary[7] = String.valueOf(doubleMath.round(doubleMath.Median(allData), 3));//Median, overall
+        additionalSummary[8] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(allData), 3));//Average, overall
+        additionalSummary[9] = String.valueOf(doubleMath.round(doubleMath.StandardDeviationSample(allData), 3));//Standard Deviation, overall
+        additionalSummary[10] = String.valueOf(doubleMath.round(doubleMath.VarianceSample(allData), 3));//Variance, overall
+        additionalSummary[11] = String.valueOf(doubleMath.round(doubleMath.SkewnessSample(allData), 3));//Skewness, overall
+        additionalSummary[12] = String.valueOf(doubleMath.round(doubleMath.CoefficientOfVariation(allData), 3));//Coefficient of Variation, overall
+        additionalSummary[13] = String.valueOf(doubleMath.round(max_1day,3));//Maximum (1-day)
+        additionalSummary[14] = max_1day_date;//Date of Maximum (1-day)
+        additionalSummary[15] = String.valueOf(doubleMath.round(min_1day,3));//Minimum (1-day)
+        additionalSummary[16] = min_1day_date;//Date of Minimum (1-day)
+        additionalSummary[17] = String.valueOf(doubleMath.round(max_3day,3));//Maximum (3-day)
+        additionalSummary[18] = max_3day_date;//Dates of Maximum (3-day)
+        additionalSummary[19] = String.valueOf(doubleMath.round(min_3day,3));//Minimum (3-day)
+        additionalSummary[20] = min_3day_date;//Dates of Minimum (3-day)
+        additionalSummary[21] = String.valueOf(doubleMath.round(max_7day,3));//Maximum (7-day)
+        additionalSummary[22] = max_7day_date;//Dates of Maximum (7-day)
+        additionalSummary[23] = String.valueOf(doubleMath.round(min_7day,3));//Minimum (7-day)
+        additionalSummary[24] = min_7day_date;//Dates of Minimum (7-day)
+        additionalSummary[25] = String.valueOf(doubleMath.round(min_7day_ave,3));//Minimum (7-day)
+        additionalSummary[26] = String.valueOf(doubleMath.round(max_30day,3));//Maximum (30-day)
+        additionalSummary[27] = max_30day_date;//Dates of Maximum (30-day)
+        additionalSummary[28] = String.valueOf(doubleMath.round(min_30day,3));//Minimum (30-day)
+        additionalSummary[29] = min_30day_date;//Dates of Minimum (30-day)
+        additionalSummary[30] = String.valueOf(doubleMath.round(max_90day,3));//Maximum (90-day)
+        additionalSummary[31] = max_90day_date;//Dates of Maximum (90-day)
+        additionalSummary[32] = String.valueOf(doubleMath.round(min_90day,3));//Minimum (90-day)
+        additionalSummary[33] = min_90day_date;//Dates of Minimum (90-day)
+        additionalSummary[34] = String.valueOf(ctr_zero);//Number of Zero Flow Days
+        additionalSummary[35] = String.valueOf(ctr_reversals);//Number of Flow Reversals
+        additionalSummary[36] = String.valueOf(ctr_rises);//Number of Flow Rises
+        additionalSummary[37] = String.valueOf(ctr_falls);//Number of Flow Falls
+        additionalSummary[38] = String.valueOf(ctr_highPulse);//Number of High Pulses
+        additionalSummary[39] = String.valueOf(doubleMath.round(highLimit,1));//Threshold for High Pulses
+        additionalSummary[40] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(highPulses), 3));//Average Duration of High Pulses
+        additionalSummary[41] = String.valueOf(ctr_lowPulse);//Number of Low Pulses
+        additionalSummary[42] = String.valueOf(doubleMath.round(lowLimit,1));//Threshold for Low Pulses
+        additionalSummary[43] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(lowPulses), 3));//Average Duration of Low Pulses
+        additionalSummary[44] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(diffPositive),3));//Average Positive Difference Between Consecutive Days
+        additionalSummary[45] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(diffNegative),3));//Average Negative Difference Between Consecutive Days
+        additionalSummary[46] = String.valueOf(doubleMath.round(centroid,2));//Temporal centroid of annual discharge (Julian day, not water-year day)
+        additionalSummary[47] = String.valueOf(doubleMath.round(flashinessIndex,4));//Richards-Baker Index for flow 'flashiness'
         
         //Add seasonal stats summary
-        int index = 46;
+        int index = 48;
         resultArray = addSimpleStatsSummary(additionalSummary, seasonal_data, index);
         additionalSummary = (String[]) resultArray[0];
         index = (int) resultArray[1];
@@ -806,20 +824,15 @@
             resultArray = addSimpleStatsSummary(additionalSummary, dec_data, index);
             additionalSummary = (String[]) resultArray[0];
             index = (int) resultArray[1];
-            
-            //References section blanks
-            additionalSummary[index] = "";//blank
-            additionalSummary[index + 1] = "";//blank
-            additionalSummary[index + 2] = "";//blank
-            additionalSummary[index + 3] = "";//blank
-        }else{
-            //References section blanks
-            additionalSummary[index] = "";//blank
-            additionalSummary[index + 1] = "";//blank
-            additionalSummary[index + 2] = "";//blank
-            additionalSummary[index + 3] = "";//blank
         }
-        
+        //References section blanks
+        additionalSummary[index] = "";//blank
+        additionalSummary[index + 1] = "";//blank
+        additionalSummary[index + 2] = "";//blank
+        additionalSummary[index + 3] = "";//blank
+        additionalSummary[index + 4] = "";//blank
+        additionalSummary[index + 5] = "";//blank
+
         //Add these statistics to the existing results
         statsSummaryTable = doubleArray.appendcolumn_Matrix(statsSummaryTable, additionalSummary);
         
@@ -827,7 +840,10 @@
         return returnArray;
     }
     /**
+     * Calculates a statistics summary of the provided data and appends it 
+     * (beginning at 'index') to the provided statsSummaryTable.
      * 
+     * This calculates 11 parameters
      * @param statsSummaryTable
      * @param data
      * @param index
@@ -836,18 +852,19 @@
     private Object[] addSimpleStatsSummary(String[] statsSummaryTable, ArrayList<Double> data, int index){
         DoubleMath doubleMath = new DoubleMath();
 
-        statsSummaryTable[index] = String.valueOf(doubleMath.round(doubleMath.max(data), 3));//Maximum
-        statsSummaryTable[index + 1] = String.valueOf(doubleMath.round(doubleMath.min(data), 3));//Minimum
-        statsSummaryTable[index + 2] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(data, 0.75), 3));//Upper Quartile
-        statsSummaryTable[index + 3] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(data,0.25), 3));//Lower Quartile
-        statsSummaryTable[index + 4] = String.valueOf(doubleMath.round(doubleMath.Median(data), 3));//Median
-        statsSummaryTable[index + 5] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(data), 3));//Average
-        statsSummaryTable[index + 6] = String.valueOf(doubleMath.round(doubleMath.StandardDeviationSample(data), 3));//Standard Deviation
-        statsSummaryTable[index + 7] = String.valueOf(doubleMath.round(doubleMath.VarianceSample(data), 3));//Variance
-        statsSummaryTable[index + 8] = String.valueOf(doubleMath.round(doubleMath.SkewnessSample(data), 3));//Skewness
-        statsSummaryTable[index + 9] = String.valueOf(doubleMath.round(doubleMath.CoefficientOfVariation(data), 3));//January (Coefficient of Variation
+        statsSummaryTable[index] = String.valueOf(data.size());//count
+        statsSummaryTable[index + 1] = String.valueOf(doubleMath.round(doubleMath.max(data), 3));//Maximum
+        statsSummaryTable[index + 2] = String.valueOf(doubleMath.round(doubleMath.min(data), 3));//Minimum
+        statsSummaryTable[index + 3] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(data, 0.75), 3));//Upper Quartile
+        statsSummaryTable[index + 4] = String.valueOf(doubleMath.round(doubleMath.Percentile_function(data,0.25), 3));//Lower Quartile
+        statsSummaryTable[index + 5] = String.valueOf(doubleMath.round(doubleMath.Median(data), 3));//Median
+        statsSummaryTable[index + 6] = String.valueOf(doubleMath.round(doubleMath.meanArithmetic(data), 3));//Average
+        statsSummaryTable[index + 7] = String.valueOf(doubleMath.round(doubleMath.StandardDeviationSample(data), 3));//Standard Deviation
+        statsSummaryTable[index + 8] = String.valueOf(doubleMath.round(doubleMath.VarianceSample(data), 3));//Variance
+        statsSummaryTable[index + 9] = String.valueOf(doubleMath.round(doubleMath.SkewnessSample(data), 3));//Skewness
+        statsSummaryTable[index + 10] = String.valueOf(doubleMath.round(doubleMath.CoefficientOfVariation(data), 3));//Coefficient of Variation
         
-        index = index + 10;
+        index = index + 11;
         Object[] returnArray = {statsSummaryTable, index};
         return returnArray;
     }