// Start is called before the first frame update void Start() { //The csv file needs to be in the resources folder of the project List <Dictionary <string, object> > dataSalinity = CSVReader.Read("alldata2006-2010-2012"); SalinityPoint[] salinityPoints = new SalinityPoint[dataSalinity.Count]; List <int>[] salinityIndexesXYearMixUlimit = new List <int> [years.Length]; List <int>[] salinityIndexesXYearMixDLimit = new List <int> [years.Length]; string path = Application.persistentDataPath; for (int i = 0; i < salinityIndexesXYearMixDLimit.Length; i++) { salinityIndexesXYearMixUlimit[i] = new List <int>(); salinityIndexesXYearMixDLimit[i] = new List <int>(); } // for (int i = 0; i < dataSalinity.Count; i++) { float n; //Gets all the datapoints with freshwater and adds them to lists. They will be later used in the TimeChange script //The file needs to contain the following fields: //-Var: The salinity value of the data point. The units are PPT (Parts per thousand) //-X: X coordinate of the location of the data point. The units are meters. //-Y: Y coordinate of the location of the data point. The units are meters. //-Level: Water level of the data point. Its 10 for the deepest and 1 for the closest to the surface. //-Year: Year when the sample was taken. if (float.TryParse(dataSalinity[i]["X"].ToString(), out n) && float.TryParse(dataSalinity[i]["var"].ToString(), out n) && float.TryParse(dataSalinity[i]["Y"].ToString(), out n)) { salinityPoints[i].x = float.Parse(dataSalinity[i]["X"].ToString()); salinityPoints[i].y = float.Parse(dataSalinity[i]["Y"].ToString()); salinityPoints[i].salinity = float.Parse(dataSalinity[i]["var"].ToString()); salinityPoints[i].waterLayer = int.Parse(dataSalinity[i]["level"].ToString()); salinityPoints[i].year = int.Parse(dataSalinity[i]["year"].ToString()); if (salinityPoints[i].salinity <= 0.5 && salinityPoints[i].year != 0) { salinityIndexesXYearMixDLimit[Array.IndexOf(years, salinityPoints[i].year)].Add(i); } if (salinityPoints[i].salinity <= 10 && salinityPoints[i].year != 0) { salinityIndexesXYearMixUlimit[Array.IndexOf(years, salinityPoints[i].year)].Add(i); } } } SaveSalinityPoints(salinityPoints); int dummyIndex; for (int i = 0; i < years.Length; i++) { for (int j = 0; j < salinityIndexesXYearMixDLimit[i].Count - 1; j++) { for (int k = j + 1; k < salinityIndexesXYearMixDLimit[i].Count; k++) { if (salinityPoints[salinityIndexesXYearMixDLimit[i][k]].salinity > salinityPoints[salinityIndexesXYearMixDLimit[i][j]].salinity) { dummyIndex = salinityIndexesXYearMixDLimit[i][j]; salinityIndexesXYearMixDLimit[i][j] = salinityIndexesXYearMixDLimit[i][k]; salinityIndexesXYearMixDLimit[i][k] = dummyIndex; } } } } for (int i = 0; i < years.Length; i++) { for (int j = 0; j < salinityIndexesXYearMixUlimit[i].Count - 1; j++) { for (int k = j + 1; k < salinityIndexesXYearMixUlimit[i].Count; k++) { if (salinityPoints[salinityIndexesXYearMixUlimit[i][k]].salinity > salinityPoints[salinityIndexesXYearMixUlimit[i][j]].salinity) { dummyIndex = salinityIndexesXYearMixUlimit[i][j]; salinityIndexesXYearMixUlimit[i][j] = salinityIndexesXYearMixUlimit[i][k]; salinityIndexesXYearMixUlimit[i][k] = dummyIndex; } } } } Save(salinityIndexesXYearMixDLimit, 1); Save(salinityIndexesXYearMixUlimit, 2); List <int>[] exArray1 = Load(1); List <int>[] exArray2 = Load(2); }
// Start is called before the first frame update void Start() { List <Dictionary <string, object> > dataSalinity = CSVReader.Read("alldata2006-2010-2012"); SalinityPoint[] salinityPoints = new SalinityPoint[dataSalinity.Count]; List <int>[] salinityIndexesXYearMixUlimit = new List <int> [5]; List <int>[] salinityIndexesXYearMixDLimit = new List <int> [5]; string path = Application.persistentDataPath; for (int i = 0; i < 5; i++) { salinityIndexesXYearMixUlimit[i] = new List <int>(); salinityIndexesXYearMixDLimit[i] = new List <int>(); } for (int i = 0; i < dataSalinity.Count; i++) { float n; if (float.TryParse(dataSalinity[i]["X"].ToString(), out n) && float.TryParse(dataSalinity[i]["var"].ToString(), out n) && float.TryParse(dataSalinity[i]["Y"].ToString(), out n)) { salinityPoints[i].x = float.Parse(dataSalinity[i]["X"].ToString()); salinityPoints[i].y = float.Parse(dataSalinity[i]["Y"].ToString()); salinityPoints[i].salinity = float.Parse(dataSalinity[i]["var"].ToString()); salinityPoints[i].waterLayer = int.Parse(dataSalinity[i]["level"].ToString()); salinityPoints[i].year = int.Parse(dataSalinity[i]["year"].ToString()); if (salinityPoints[i].salinity <= 0.5 && salinityPoints[i].year != 0) { salinityIndexesXYearMixDLimit[(salinityPoints[i].year - 2005) / 2].Add(i); } if (salinityPoints[i].salinity <= 10 && salinityPoints[i].year != 0) { salinityIndexesXYearMixUlimit[(salinityPoints[i].year - 2005) / 2].Add(i); } } } SaveSalinityPoints(salinityPoints); int dummyIndex; for (int i = 0; i < 5; i++) { for (int j = 0; j < salinityIndexesXYearMixDLimit[i].Count - 1; j++) { for (int k = j + 1; k < salinityIndexesXYearMixDLimit[i].Count; k++) { if (salinityPoints[salinityIndexesXYearMixDLimit[i][k]].salinity > salinityPoints[salinityIndexesXYearMixDLimit[i][j]].salinity) { dummyIndex = salinityIndexesXYearMixDLimit[i][j]; salinityIndexesXYearMixDLimit[i][j] = salinityIndexesXYearMixDLimit[i][k]; salinityIndexesXYearMixDLimit[i][k] = dummyIndex; } } } } for (int i = 0; i < 5; i++) { for (int j = 0; j < salinityIndexesXYearMixUlimit[i].Count - 1; j++) { for (int k = j + 1; k < salinityIndexesXYearMixUlimit[i].Count; k++) { if (salinityPoints[salinityIndexesXYearMixUlimit[i][k]].salinity > salinityPoints[salinityIndexesXYearMixUlimit[i][j]].salinity) { dummyIndex = salinityIndexesXYearMixUlimit[i][j]; salinityIndexesXYearMixUlimit[i][j] = salinityIndexesXYearMixUlimit[i][k]; salinityIndexesXYearMixUlimit[i][k] = dummyIndex; } } } } Save(salinityIndexesXYearMixDLimit, 1); Save(salinityIndexesXYearMixUlimit, 2); List <int>[] exArray1 = Load(1); List <int>[] exArray2 = Load(2); }