public void getNOAAstationInfo() { string[] files = Directory.GetFiles(@"C:\Users\Admin\Documents\projects\IAPP\piloto\Climate\NOAA\data\"); foreach (string file in files) { if (file.Contains("stn")) { StreamReader sr = new StreamReader(file); string line = sr.ReadLine(); //second line is ----- ------ marking the fields line = sr.ReadLine(); string[] bits = line.Split(' '); //get the next line first station line = sr.ReadLine(); int charsum = 0; string info = ""; Station ns = new Station(); while (line != null) { charsum = 0; ns = new Station(); ns.source = "NOAA"; for (int i = 0; i < bits.Length; i++) { info = line.Substring(charsum, bits[i].Length); info = info.Trim(); switch (i) { case 0: //code string[] parts = info.Split(' '); ns.code = Convert.ToInt32(parts[0]); break; case 1: //name ns.name = info; break; case 2: //country ns.country = info; break; case 3: //state break; case 4: //lat ns.latitude = Convert.ToDouble(info); break; case 5: //lon ns.longitude = Convert.ToDouble(info); break; case 6: //ele ns.elevation = Convert.ToDouble(info); break; } charsum += bits[i].Length + 1; } stations.Add(ns); line = sr.ReadLine(); } sr.Close(); } } }
public static void writeGroup(List <StationGroup> groups, string file, List <Station> stations, List <City> cities) { string propname = "cities"; //if(file.Contains("region")) propname = "regions"; StreamWriter sw = new StreamWriter(file); using (JsonTextWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName(propname); writer.WriteStartArray(); foreach (StationGroup sg in groups) { writer.WriteStartObject(); writer.WritePropertyName("name"); writer.WriteValue(sg.name); if (propname == "cities") { var city = cities.Find(x => x.name == sg.name); if (city == null) { city = new City(); } writer.WritePropertyName("ele"); writer.WriteValue(Math.Round(city.elevation, 2)); writer.WritePropertyName("lat"); writer.WriteValue(city.location[1]); writer.WritePropertyName("lon"); writer.WriteValue(city.location[0]); } writer.WritePropertyName("stations"); writer.WriteStartArray(); foreach (int scode in sg.stationcodes) { Station s = new Station(); s = stations.Find(x => x.code == scode); if (s == null) { s = new Station(); } writer.WriteStartObject(); writer.WritePropertyName("code"); writer.WriteValue(scode); writer.WritePropertyName("name"); writer.WriteValue(s.name); writer.WritePropertyName("ele"); writer.WriteValue(Math.Round(s.elevation, 2)); writer.WritePropertyName("lat"); writer.WriteValue(s.latitude); writer.WritePropertyName("lon"); writer.WriteValue(s.longitude); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); } sw.Close(); }