Displaying differences for changeset
 
display as  

src/java/m/cfa/durationcurve/guiDC_Model.java

@@ -35,7 +35,7 @@
 import org.jfree.data.xy.XYSeriesCollection;
 
 /**
-* Last Updated: 9-April-2019
+* Last Updated: 28-August-2020
 * @author Tyler Wible
 * @since 12-June-2011
 */
@@ -554,7 +554,7 @@
         
         //Get Units and conversion for current WQ test
         String[] resultArray = WaterQualityInfo.getWqTestDataInfo(wqTest, database);
-        //String wqCode = resultArray[0];
+        String wqCode = resultArray[0];
         String wqLabel = resultArray[1];
         //String units = resultArray[2];
         double ldcConversion = Double.parseDouble(resultArray[3]);
@@ -619,7 +619,7 @@
         String[][] seasonalWQ_user = DoubleArray.getSeasonalData(WQdata_user, seasonBegin, seasonEnd);
 
         //Graph resulting LDC data
-        Object[] returnArray = graphLDC(wqLabel, ldcEndUnits, ldcConversion, sortedData_combined, sortedData_user, period1Data, period2Data, period3Data, WQdata_combined, WQdata_user, seasonalWQ_combined, seasonalWQ_user,  mQn, m, n);
+        Object[] returnArray = graphLDC(wqCode, wqLabel, ldcEndUnits, ldcConversion, sortedData_combined, sortedData_user, period1Data, period2Data, period3Data, WQdata_combined, WQdata_user, seasonalWQ_combined, seasonalWQ_user,  mQn, m, n);
         String paragraphTitle = (String) returnArray[0];
         double totalCount = (Double) returnArray[1];
 
@@ -651,7 +651,8 @@
      * @return the name/title of the dynamic paragraph to be created to accompany the graph created during this function
      * @throws IOException 
      */
-    private Object[] graphLDC(String WQlabel,
+    private Object[] graphLDC(String wqCode,
+                              String WQlabel,
                               String endUnits,
                               double conversion,
                               String[][] sortedData_combined,
@@ -773,46 +774,58 @@
                 if(WQdata_combined[i][0].equalsIgnoreCase(sortedData_combined[j][0])){
                     totalCount = totalCount+1;
                     //Create an XYSeries for WQ points
+                    double tempFlowValue = Double.parseDouble(sortedData_combined[j][1]);
                     double tempWQValue = Double.parseDouble(WQdata_combined[i][1]);
-                    WQ_load = (Double.parseDouble(sortedData_combined[j][1]))*conversion*tempWQValue;
-                    WQ_pts.add(xyRanks[j][0],WQ_load);
+                    WQ_load = tempFlowValue * conversion * tempWQValue;
+                    
+                    //Find what exceedance rank matches with which flow rate
+                    double xyRankValue = xyRanks[j][0];
+                    double xyLoadValue = loadRanks[j][1]; //Same formate/order as xyRanks but flow was converted to a load value
+                    for(int k=0; k<xyRanks.length; k++){
+                        if(xyRanks[k][1] == Double.parseDouble(sortedData_combined[j][1])){
+                           xyRankValue = xyRanks[k][0];
+                           xyLoadValue = loadRanks[k][1];
+                           break;
+                        }
+                    }                    
+                    WQ_pts.add(xyRankValue,WQ_load);
 
                     //Create an XYSeries only if user WQ data is not empty
                     if(WQdata_user.length > 0 && WQdata_user.length > ctr){
                         if(WQdata_user[ctr][0].equalsIgnoreCase(sortedData_combined[j][0])){
-                            WQ_pts_user.add(xyRanks[j][0],WQ_load);
+                            WQ_pts_user.add(xyRankValue,WQ_load);
                             ctr++;
                         }
                     }
 
                     //Also add to category box plot data
-                    if((xyRanks[j][0] <= 10) & (xyRanks[j][0] >= 0)){
+                    if((xyRankValue <= 10) & (xyRankValue >= 0)){
                         high_data.add(WQ_load);
-                        if(WQ_load > xyRanks[j][1]){
+                        if(WQ_load > xyLoadValue){
                             highexceed_count++;
                         }
                     }
-                    if((xyRanks[j][0] <= 40) & (xyRanks[j][0] > 10)){
+                    if((xyRankValue <= 40) & (xyRankValue > 10)){
                         moist_data.add(WQ_load);
-                        if(WQ_load > xyRanks[j][1]){
+                        if(WQ_load > xyLoadValue){
                             moistexceed_count++;
                         }
                     }
-                    if((xyRanks[j][0] <= 60) & (xyRanks[j][0] > 40)){
+                    if((xyRankValue <= 60) & (xyRankValue > 40)){
                         mid_data.add(WQ_load);
-                        if(WQ_load > xyRanks[j][1]){
+                        if(WQ_load > xyLoadValue){
                             midexceed_count++;
                         }
                     }
-                    if((xyRanks[j][0] <= 90) & (xyRanks[j][0] > 60)){
+                    if((xyRankValue <= 90) & (xyRankValue > 60)){
                         dry_data.add(WQ_load);
-                        if(WQ_load > xyRanks[j][1]){
+                        if(WQ_load > xyLoadValue){
                             dryexceed_count++;
                         }
                     }
-                    if((xyRanks[j][0] <= 100) & (xyRanks[j][0] > 90)){
+                    if((xyRankValue <= 100) & (xyRankValue > 90)){
                         low_data.add(WQ_load);
-                        if(WQ_load > xyRanks[j][1]){
+                        if(WQ_load > xyLoadValue){
                             lowexceed_count++;
                         }
                     }
@@ -820,14 +833,14 @@
                         if(seasonalWQ_combined[k][0].equalsIgnoreCase(sortedData_combined[j][0])){
                             double tempSeasonalWQValue = Double.parseDouble(seasonalWQ_combined[k][1]);
                             Seasonal_WQ_load = (Double.parseDouble(sortedData_combined[j][1]))*conversion*tempSeasonalWQValue;
-                            Seasonal_WQ_pts.add(xyRanks[j][0],Seasonal_WQ_load);
+                            Seasonal_WQ_pts.add(xyRankValue,Seasonal_WQ_load);
                         }
                     }
                     for(int k=0;k<seasonalWQ_user.length;k++){
                         if(seasonalWQ_user[k][0].equalsIgnoreCase(sortedData_combined[j][0])){
                             double tempSeasonalWQValue = Double.parseDouble(seasonalWQ_user[k][1]);
                             Seasonal_WQ_load = (Double.parseDouble(sortedData_combined[j][1]))*conversion*tempSeasonalWQValue;
-                            Seasonal_WQ_pts_user.add(xyRanks[j][0],Seasonal_WQ_load);
+                            Seasonal_WQ_pts_user.add(xyRankValue,Seasonal_WQ_load);
                         }
                     }
                     break;
@@ -849,40 +862,40 @@
 
         //Pollution Source paragraph is only for nutrient tests so check if the current test is for nutrients:
         boolean nutrient = false;
-        if (wqTest.equalsIgnoreCase("00597") || wqTest.equalsIgnoreCase("00600") || wqTest.equalsIgnoreCase("00601") || wqTest.equalsIgnoreCase("00602") || 
-                wqTest.equalsIgnoreCase("00604") || wqTest.equalsIgnoreCase("00605") || wqTest.equalsIgnoreCase("00606") || wqTest.equalsIgnoreCase("00607") || 
-                wqTest.equalsIgnoreCase("00608") || wqTest.equalsIgnoreCase("00610") || wqTest.equalsIgnoreCase("00613") || wqTest.equalsIgnoreCase("00615") || 
-                wqTest.equalsIgnoreCase("00618") || wqTest.equalsIgnoreCase("00619") || wqTest.equalsIgnoreCase("00620") || wqTest.equalsIgnoreCase("00623") || 
-                wqTest.equalsIgnoreCase("00624") || wqTest.equalsIgnoreCase("00625") || wqTest.equalsIgnoreCase("00628") || wqTest.equalsIgnoreCase("00630") || 
-                wqTest.equalsIgnoreCase("00631") || wqTest.equalsIgnoreCase("00635") || wqTest.equalsIgnoreCase("00636") || wqTest.equalsIgnoreCase("00639") || 
-                wqTest.equalsIgnoreCase("00650") || wqTest.equalsIgnoreCase("00653") || wqTest.equalsIgnoreCase("00660") || wqTest.equalsIgnoreCase("00665") || 
-                wqTest.equalsIgnoreCase("00666") || wqTest.equalsIgnoreCase("00667") || wqTest.equalsIgnoreCase("00669") || wqTest.equalsIgnoreCase("00670") || 
-                wqTest.equalsIgnoreCase("00671") || wqTest.equalsIgnoreCase("00672") || wqTest.equalsIgnoreCase("00673") || wqTest.equalsIgnoreCase("00674") || 
-                wqTest.equalsIgnoreCase("00675") || wqTest.equalsIgnoreCase("00676") || wqTest.equalsIgnoreCase("00677") || wqTest.equalsIgnoreCase("00678") || 
-                wqTest.equalsIgnoreCase("01425") || wqTest.equalsIgnoreCase("01465") || wqTest.equalsIgnoreCase("49567") || wqTest.equalsIgnoreCase("49570") || 
-                wqTest.equalsIgnoreCase("62854") || wqTest.equalsIgnoreCase("62855") || wqTest.equalsIgnoreCase("64832") || wqTest.equalsIgnoreCase("70507") || 
-                wqTest.equalsIgnoreCase("71845") || wqTest.equalsIgnoreCase("71846") || wqTest.equalsIgnoreCase("71850") || wqTest.equalsIgnoreCase("71851") || 
-                wqTest.equalsIgnoreCase("71855") || wqTest.equalsIgnoreCase("71856") || wqTest.equalsIgnoreCase("71886") || wqTest.equalsIgnoreCase("71887") || 
-                wqTest.equalsIgnoreCase("71888") || wqTest.equalsIgnoreCase("76008") || wqTest.equalsIgnoreCase("76009") || wqTest.equalsIgnoreCase("76010") || 
-                wqTest.equalsIgnoreCase("82046") || wqTest.equalsIgnoreCase("83044") || wqTest.equalsIgnoreCase("83047") || wqTest.equalsIgnoreCase("83050") || 
-                wqTest.equalsIgnoreCase("83053") || wqTest.equalsIgnoreCase("83056") || wqTest.equalsIgnoreCase("83059") || wqTest.equalsIgnoreCase("83062") ||
-                wqTest.equalsIgnoreCase("83065") || wqTest.equalsIgnoreCase("83068") || wqTest.equalsIgnoreCase("83071") || wqTest.equalsIgnoreCase("83074") || 
-                wqTest.equalsIgnoreCase("83077") || wqTest.equalsIgnoreCase("83080") || wqTest.equalsIgnoreCase("83083") || wqTest.equalsIgnoreCase("83086") || 
-                wqTest.equalsIgnoreCase("83089") || wqTest.equalsIgnoreCase("83092") || wqTest.equalsIgnoreCase("83095") || wqTest.equalsIgnoreCase("83098") || 
-                wqTest.equalsIgnoreCase("83101") || wqTest.equalsIgnoreCase("83108") || wqTest.equalsIgnoreCase("83111") || wqTest.equalsIgnoreCase("83114") || 
-                wqTest.equalsIgnoreCase("83117") || wqTest.equalsIgnoreCase("83326") || wqTest.equalsIgnoreCase("83329") || wqTest.equalsIgnoreCase("83332") || 
-                wqTest.equalsIgnoreCase("83335") || wqTest.equalsIgnoreCase("83338") || wqTest.equalsIgnoreCase("83341") || wqTest.equalsIgnoreCase("83344") || 
-                wqTest.equalsIgnoreCase("83347") || wqTest.equalsIgnoreCase("83350") || wqTest.equalsIgnoreCase("83353") || wqTest.equalsIgnoreCase("83356") || 
-                wqTest.equalsIgnoreCase("83359") || wqTest.equalsIgnoreCase("83362") || wqTest.equalsIgnoreCase("83365") || wqTest.equalsIgnoreCase("83368") || 
-                wqTest.equalsIgnoreCase("83371") || wqTest.equalsIgnoreCase("83374") || wqTest.equalsIgnoreCase("83377") || wqTest.equalsIgnoreCase("83380") || 
-                wqTest.equalsIgnoreCase("83383") || wqTest.equalsIgnoreCase("83390") || wqTest.equalsIgnoreCase("83393") || wqTest.equalsIgnoreCase("83396") || 
-                wqTest.equalsIgnoreCase("83399") || wqTest.equalsIgnoreCase("90859") || wqTest.equalsIgnoreCase("91003") || wqTest.equalsIgnoreCase("91004") || 
-                wqTest.equalsIgnoreCase("99116") || wqTest.equalsIgnoreCase("99120") || wqTest.equalsIgnoreCase("99121") || wqTest.equalsIgnoreCase("99122") || 
-                wqTest.equalsIgnoreCase("99123") || wqTest.equalsIgnoreCase("99124") || wqTest.equalsIgnoreCase("99125") || wqTest.equalsIgnoreCase("99126") || 
-                wqTest.equalsIgnoreCase("99133") || wqTest.equalsIgnoreCase("99410") || wqTest.equalsIgnoreCase("99411") || wqTest.equalsIgnoreCase("99412") || 
-                wqTest.equalsIgnoreCase("99413") || wqTest.equalsIgnoreCase("99414") || wqTest.equalsIgnoreCase("99415") || wqTest.equalsIgnoreCase("99416") || 
-                wqTest.equalsIgnoreCase("99889") || wqTest.equalsIgnoreCase("99891") || wqTest.equalsIgnoreCase("99892") || wqTest.equalsIgnoreCase("99893") || 
-                wqTest.equalsIgnoreCase("99894")){
+        if (wqCode.equalsIgnoreCase("00597") || wqCode.equalsIgnoreCase("00600") || wqCode.equalsIgnoreCase("00601") || wqCode.equalsIgnoreCase("00602") || 
+                wqCode.equalsIgnoreCase("00604") || wqCode.equalsIgnoreCase("00605") || wqCode.equalsIgnoreCase("00606") || wqCode.equalsIgnoreCase("00607") || 
+                wqCode.equalsIgnoreCase("00608") || wqCode.equalsIgnoreCase("00610") || wqCode.equalsIgnoreCase("00613") || wqCode.equalsIgnoreCase("00615") || 
+                wqCode.equalsIgnoreCase("00618") || wqCode.equalsIgnoreCase("00619") || wqCode.equalsIgnoreCase("00620") || wqCode.equalsIgnoreCase("00623") || 
+                wqCode.equalsIgnoreCase("00624") || wqCode.equalsIgnoreCase("00625") || wqCode.equalsIgnoreCase("00628") || wqCode.equalsIgnoreCase("00630") || 
+                wqCode.equalsIgnoreCase("00631") || wqCode.equalsIgnoreCase("00635") || wqCode.equalsIgnoreCase("00636") || wqCode.equalsIgnoreCase("00639") || 
+                wqCode.equalsIgnoreCase("00650") || wqCode.equalsIgnoreCase("00653") || wqCode.equalsIgnoreCase("00660") || wqCode.equalsIgnoreCase("00665") || 
+                wqCode.equalsIgnoreCase("00666") || wqCode.equalsIgnoreCase("00667") || wqCode.equalsIgnoreCase("00669") || wqCode.equalsIgnoreCase("00670") || 
+                wqCode.equalsIgnoreCase("00671") || wqCode.equalsIgnoreCase("00672") || wqCode.equalsIgnoreCase("00673") || wqCode.equalsIgnoreCase("00674") || 
+                wqCode.equalsIgnoreCase("00675") || wqCode.equalsIgnoreCase("00676") || wqCode.equalsIgnoreCase("00677") || wqCode.equalsIgnoreCase("00678") || 
+                wqCode.equalsIgnoreCase("01425") || wqCode.equalsIgnoreCase("01465") || wqCode.equalsIgnoreCase("49567") || wqCode.equalsIgnoreCase("49570") || 
+                wqCode.equalsIgnoreCase("62854") || wqCode.equalsIgnoreCase("62855") || wqCode.equalsIgnoreCase("64832") || wqCode.equalsIgnoreCase("70507") || 
+                wqCode.equalsIgnoreCase("71845") || wqCode.equalsIgnoreCase("71846") || wqCode.equalsIgnoreCase("71850") || wqCode.equalsIgnoreCase("71851") || 
+                wqCode.equalsIgnoreCase("71855") || wqCode.equalsIgnoreCase("71856") || wqCode.equalsIgnoreCase("71886") || wqCode.equalsIgnoreCase("71887") || 
+                wqCode.equalsIgnoreCase("71888") || wqCode.equalsIgnoreCase("76008") || wqCode.equalsIgnoreCase("76009") || wqCode.equalsIgnoreCase("76010") || 
+                wqCode.equalsIgnoreCase("82046") || wqCode.equalsIgnoreCase("83044") || wqCode.equalsIgnoreCase("83047") || wqCode.equalsIgnoreCase("83050") || 
+                wqCode.equalsIgnoreCase("83053") || wqCode.equalsIgnoreCase("83056") || wqCode.equalsIgnoreCase("83059") || wqCode.equalsIgnoreCase("83062") ||
+                wqCode.equalsIgnoreCase("83065") || wqCode.equalsIgnoreCase("83068") || wqCode.equalsIgnoreCase("83071") || wqCode.equalsIgnoreCase("83074") || 
+                wqCode.equalsIgnoreCase("83077") || wqCode.equalsIgnoreCase("83080") || wqCode.equalsIgnoreCase("83083") || wqCode.equalsIgnoreCase("83086") || 
+                wqCode.equalsIgnoreCase("83089") || wqCode.equalsIgnoreCase("83092") || wqCode.equalsIgnoreCase("83095") || wqCode.equalsIgnoreCase("83098") || 
+                wqCode.equalsIgnoreCase("83101") || wqCode.equalsIgnoreCase("83108") || wqCode.equalsIgnoreCase("83111") || wqCode.equalsIgnoreCase("83114") || 
+                wqCode.equalsIgnoreCase("83117") || wqCode.equalsIgnoreCase("83326") || wqCode.equalsIgnoreCase("83329") || wqCode.equalsIgnoreCase("83332") || 
+                wqCode.equalsIgnoreCase("83335") || wqCode.equalsIgnoreCase("83338") || wqCode.equalsIgnoreCase("83341") || wqCode.equalsIgnoreCase("83344") || 
+                wqCode.equalsIgnoreCase("83347") || wqCode.equalsIgnoreCase("83350") || wqCode.equalsIgnoreCase("83353") || wqCode.equalsIgnoreCase("83356") || 
+                wqCode.equalsIgnoreCase("83359") || wqCode.equalsIgnoreCase("83362") || wqCode.equalsIgnoreCase("83365") || wqCode.equalsIgnoreCase("83368") || 
+                wqCode.equalsIgnoreCase("83371") || wqCode.equalsIgnoreCase("83374") || wqCode.equalsIgnoreCase("83377") || wqCode.equalsIgnoreCase("83380") || 
+                wqCode.equalsIgnoreCase("83383") || wqCode.equalsIgnoreCase("83390") || wqCode.equalsIgnoreCase("83393") || wqCode.equalsIgnoreCase("83396") || 
+                wqCode.equalsIgnoreCase("83399") || wqCode.equalsIgnoreCase("90859") || wqCode.equalsIgnoreCase("91003") || wqCode.equalsIgnoreCase("91004") || 
+                wqCode.equalsIgnoreCase("99116") || wqCode.equalsIgnoreCase("99120") || wqCode.equalsIgnoreCase("99121") || wqCode.equalsIgnoreCase("99122") || 
+                wqCode.equalsIgnoreCase("99123") || wqCode.equalsIgnoreCase("99124") || wqCode.equalsIgnoreCase("99125") || wqCode.equalsIgnoreCase("99126") || 
+                wqCode.equalsIgnoreCase("99133") || wqCode.equalsIgnoreCase("99410") || wqCode.equalsIgnoreCase("99411") || wqCode.equalsIgnoreCase("99412") || 
+                wqCode.equalsIgnoreCase("99413") || wqCode.equalsIgnoreCase("99414") || wqCode.equalsIgnoreCase("99415") || wqCode.equalsIgnoreCase("99416") || 
+                wqCode.equalsIgnoreCase("99889") || wqCode.equalsIgnoreCase("99891") || wqCode.equalsIgnoreCase("99892") || wqCode.equalsIgnoreCase("99893") || 
+                wqCode.equalsIgnoreCase("99894")){
             nutrient = true;
         }