/// <summary> /// Returns the data that should be placed in the JTable at the given row and column. </summary> /// <param name="row"> the row for which to return data. </param> /// <param name="col"> the column for which to return data. </param> /// <returns> the data that should be placed in the JTable at the given row and col. </returns> public virtual object getValueAt(int row, int col) { if (_sortOrder != null) { row = _sortOrder[row]; } StateCU_ClimateStation station = (StateCU_ClimateStation)_data.get(row); switch (col) { case __COL_ID: return(station.getID()); case __COL_NAME: return(station.getName()); case __COL_ELEVATION: return(new double?(station.getElevation())); case __COL_LATITUDE: return(new double?(station.getLatitude())); case __COL_REGION1: return(station.getRegion1()); case __COL_REGION2: return(station.getRegion2()); case __COL_ZH: if (StateCU_Util.isMissing(station.getZh())) { return(null); } else { return(new double?(station.getZh())); } case __COL_ZM: if (StateCU_Util.isMissing(station.getZm())) { return(null); } else { return(new double?(station.getZm())); } } return(""); }
/// <summary> /// Write a list of StateCU_BlaneyCriddle to an opened file. </summary> /// <param name="data_Vector"> A Vector of StateCU_BlaneyCriddle to write. </param> /// <param name="out"> output PrintWriter. </param> /// <param name="props"> Properties to control the output. Currently only the /// optional Precision property can be set, indicating how many digits after the /// decimal should be printed (default is 3). </param> /// <exception cref="IOException"> if an error occurs. </exception> //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: private static void writeVector(java.util.List<StateCU_BlaneyCriddle> data_Vector, java.io.PrintWriter out, RTi.Util.IO.PropList props) throws java.io.IOException private static void writeVector(IList <StateCU_BlaneyCriddle> data_Vector, PrintWriter @out, PropList props) { int i, j; string cmnt = "#>"; // Missing data are handled by formatting all as strings (blank if necessary). bool version10 = false; // Indicate if old Version 10 format is written if (props == null) { props = new PropList("StateCU_BlaneyCriddle"); } string Precision = props.getValue("Precision"); string Version = props.getValue("Version"); if (!string.ReferenceEquals(Version, null) && Version.Equals("10")) { // Version 10 is an older version. version10 = true; } int Precision_int = 3; if ((!string.ReferenceEquals(Precision, null)) && StringUtil.isInteger(Precision)) { Precision_int = StringUtil.atoi(Precision); } @out.println(cmnt); @out.println(cmnt + " StateCU Blaney-Criddle Crop Coefficient (KBC) File"); @out.println(cmnt); @out.println(cmnt + " Record 1 format (a80)"); @out.println(cmnt); @out.println(cmnt + " Title remark: Title"); @out.println(cmnt); @out.println(cmnt + " Record 2 format (free format)"); @out.println(cmnt); @out.println(cmnt + " NumCurves nc: Number of crop coefficient curves"); @out.println(cmnt); @out.println(cmnt + " Record 3 format (free format)"); @out.println(cmnt); @out.println(cmnt + " ID id: Crop number (not used by StateCU)"); @out.println(cmnt + " CropName cropn: Crop name (e.g., ALFALFA)"); @out.println(cmnt + " CurveType flag: Growth curve type"); @out.println(cmnt + " Day = perennial; specify 25 values"); @out.println(cmnt + " for start, middle, end of month"); @out.println(cmnt + " Percent = annual; specify 21 values"); @out.println(cmnt + " for 0, 5, ..., 100% of season"); @out.println(cmnt); if (!version10) { // Include newer format information... @out.println(cmnt + " BCMethod ktsw: Blaney-Criddle Method"); @out.println(cmnt + " 0 = SCS Modified Blaney-Criddle"); @out.println(cmnt + " 1 = Original Blaney-Criddle"); @out.println(cmnt + " 2 = Modifed Blaney-Criddle w/ Elev. Adj."); @out.println(cmnt + " 3 = Original Blaney-Criddle w/ Elev. Adj."); @out.println(cmnt + " 4 = Pochop"); @out.println(cmnt); } @out.println(cmnt + " Record 4 format (free format)"); @out.println(cmnt); @out.println(cmnt + "Position nckca: Percent (0 to 100) of growing season for annual crop"); @out.println(cmnt + " nckcp: Day of year (1 to 366) for perennial crop"); @out.println(cmnt + "Coeff ckca: Crop coefficient for annual crop"); @out.println(cmnt + " OR ckcp: Crop coefficient for perennial crop"); @out.println(cmnt); @out.println(cmnt + "Title..."); @out.println(cmnt + "NumCurves"); @out.println(cmnt + "ID CropName CurveType"); @out.println(cmnt + "Position Coeff"); @out.println(cmnt + "----------------------------"); @out.println(cmnt + "EndHeader"); @out.println("Crop Coefficient Curves for Blaney-Criddle"); int num = 0; if (data_Vector != null) { num = data_Vector.Count; } @out.println(num); StateCU_BlaneyCriddle kbc = null; int[] nckca = null; int[] nckcp = null; double[] ckca = null; double[] ckcp = null; int size = 0; string value_format = "%9." + Precision_int + "f"; for (i = 0; i < num; i++) { kbc = (StateCU_BlaneyCriddle)data_Vector[i]; if (kbc == null) { continue; } // Just get all the data. Null arrays are used as a check // below to know what data to output... nckca = kbc.getNckca(); nckcp = kbc.getNckcp(); ckca = kbc.getCkca(); ckcp = kbc.getCkcp(); // Do not truncate the name to 20 characters if version 10 because // doing so may result in arbitrary cut of the current crop names and // result in different output from old anyhow. string name = kbc.getName(); // Since free format, the ID must always have something. If // we don't know, put -999... string id = "" + (i + 1); // Default to sequential number if (version10) { // Previously used -999 id = "-999"; } if (!StateCU_Util.isMissing(kbc.getID())) { // Changes elsewhere impact this so also use -999 unless it is a number if (StringUtil.isInteger(kbc.getID())) { id = "" + kbc.getID(); } else { id = "-999"; } // Can't use the crop name because StateCU expects a number (?) //id = kbc.getID(); } // Output based on the version because file comparisons may be done when verifying files. if (version10) { // No ktsw... @out.println(id + " " + name + " " + kbc.getFlag()); } else { // With ktsw, but OK if blank. @out.println(id + " " + name + " " + kbc.getFlag() + " " + kbc.getKtsw()); } if (nckca != null) { size = nckca.Length; } else { size = nckcp.Length; } for (j = 0; j < size; j++) { if (nckca != null) { // Print annual curve (Percent)... @out.println(StringUtil.formatString(nckca[j], "%-3d") + StringUtil.formatString(ckca[j], value_format)); } else { // Print perennial curve (Day)... @out.println(StringUtil.formatString((int)nckcp[j], "%-3d") + StringUtil.formatString(ckcp[j], value_format)); } } } }
/// <summary> /// Write a list of StateCU_ClimateStation to an opened file. </summary> /// <param name="dataList"> A list of StateCU_ClimateStation to write. </param> /// <param name="out"> output PrintWriter. </param> /// <exception cref="IOException"> if an error occurs. </exception> //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: private static void writeStateCUFile(java.util.List<StateCU_ClimateStation> dataList, java.io.PrintWriter out) throws java.io.IOException private static void writeStateCUFile(IList <StateCU_ClimateStation> dataList, PrintWriter @out) { int i; string iline; string cmnt = "#>"; // Missing data handled by formatting all as strings... string format = "%-12.12s%6.6s%9.9s %-20.20s%-8.8s %-24.24s%8.8s%8.8s"; IList <object> v = new List <object>(8); // Reuse for all output lines. @out.println(cmnt); @out.println(cmnt + " StateCU Climate Stations File"); @out.println(cmnt); @out.println(cmnt + " Record format (a12,f6.2,f9.2,2x,a20,a8,2x,a24,8.2f,2.2f)"); @out.println(cmnt); @out.println(cmnt + " StationID: Station identifier (e.g., 3951)"); @out.println(cmnt + " Lat: Latitude (decimal degrees)"); @out.println(cmnt + " Elev: Elevation (feet)"); @out.println(cmnt + " Region1: Region1 (e.g., County)"); @out.println(cmnt + " Region2: Region2 (e.g., Hydrologic Unit Code, HUC)"); @out.println(cmnt + "StationName: Station name"); @out.println(cmnt + " zHumid: Height of humidity and temperature measurements (feet, daily analysis only)"); @out.println(cmnt + " zWind: Height of wind speed measurement (feet, daily analysis only)"); @out.println(cmnt); @out.println(cmnt + " StationID Lat Elev Region1 Region2 StationName zHumid zWind"); @out.println(cmnt + "---------eb----eb-------exxb------------------eb------exxb----------------------eb------eb------e"); @out.println(cmnt + "EndHeader"); int num = 0; if (dataList != null) { num = dataList.Count; } StateCU_ClimateStation sta = null; for (i = 0; i < num; i++) { sta = dataList[i]; if (sta == null) { continue; } v.Clear(); v.Add(sta._id); // Latitude... if (StateCU_Util.isMissing(sta.__latitude)) { v.Add(""); } else { v.Add(StringUtil.formatString(sta.__latitude, "%6.2f")); } // Elevation... if (StateCU_Util.isMissing(sta.__elevation)) { v.Add(""); } else { v.Add(StringUtil.formatString(sta.__elevation, "%9.2f")); } v.Add(sta.__region1); v.Add(sta.__region2); v.Add(sta._name); // zh... if (StateCU_Util.isMissing(sta.__zh)) { v.Add(""); } else { v.Add(StringUtil.formatString(sta.__zh, "%8.2f")); } // zm... if (StateCU_Util.isMissing(sta.__zm)) { v.Add(""); } else { v.Add(StringUtil.formatString(sta.__zm, "%8.2f")); } iline = StringUtil.formatString(v, format); @out.println(iline); } }