Diskussion:RainAlarm

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

To Do

Website:

App.:

  • Grössenanpassung der Ellipsen (und dann der Regionen) integrieren?
  • Erzeugen eines animierten GIFs (im Moment einer Webseiten-Anfrage) und integrieren in die Website.
  • Ticket #4 RegionForecast.changePosition => ?
  • Ticket #1 Rotate and Scale Algorithm => Reicht das noch? Am liebsten im Sinne von Originalregionen (mit allen Regenstärken-Kategorien) mitrotieren.
  • RainAlarm.java => Texte anpassen: Siehe unten.
  • Refactoring: MrGimoList?
  • Ev. Weglassen der Kategorie "< 1.0 mm/h" im Radarbild (bedeutet kaum Regen) durch Bildvorverarbeitung (Schwellwert dunkler?).

JSON

Auruf: GET <URL>&format=json

Beispiel:

 {
   "message":"Niederschlag unwahrscheinlich in den nächsten zwei Stunden!", 
   "raining":false,
   "rainStart":-1,
   "rainStop":-1
 }

JSON-Attributes:

message: string

  • "text" => enthält die Informationen in Textform

raining: boolean

  • true => es regnet
  • false => es regnet nicht

rainStart: integer

  • -1 => start unbekannt
  • 0 => zurzeit Niederschlag
  • 1... max => start in x min

rainStop: integer

  • -1 => stop Unbekannt
  • 0... max => stop in x min

RainAlarm.java

Folgende Ausgabe gibt es (abhängig von start und stop):

  • Kein arrivalNowcast (start): "Niederschlag unwahrscheinlich in den nächsten zwei Stunden!" (start = -1)
  • arrivalNowcast (start):
    • 1. "Aktuell Niederschlag." (start = 0)
    • 2. "Niederschlag möglich in ca. xx Min." (start > 0)
  • durationNowcast (stop):
    • 1. "Er dauert voraussichtlich ca. yy Min.!" (stop > start)
    • 2. "Er dauert voraussichtlich mehr als zwei Stunden!" (stop = -1)

http://dev.ifs.hsr.ch/rainalarm/browser/trunk/rainalarm/src/ch/hsr/ifs/rainalarm/

Die aktuelle Revision 76, Zeile 48 ff. sieht so aus:

   private String createSMS(int[] startStopRain) {
       int start = startStopRain[0];
       int stop = startStopRain[1];
       String duration = "";
        
       if (start == -1)
           return "Kaum Niederschlag innert 2h.";
       if (stop == -1)
           duration = "lÀnger als " + (120 - start) + " Min";
       else
           duration = (stop - start) + "Min.";
       if (start == 0)
           return "Es regnet(schneit) voraussichtlich noch " + duration + SUFFIX;
       
       return "Niederschlag möglich in ca. " + start + " Min, dauert voraussichtlich " + duration + SUFFIX;
   }

Hier sollte 1. von Niederschlag die Rede sein und 2. sollte start (besser: arrivalNowcast) und stop (besser durationNowcast) angegeben werden - auch im Antwort-Text. Daher Neu, Zeile 48 ff. :

   final int MAXFORECASTDURATION = 120;
   private String createSMS(int[] startStopRain) {
       int start = startStopRain[0];
       int stop = startStopRain[1];
       String durationText = "";
       String text = "";
       final int NODATA = -1;
       
       // Kein Niederschlag in Sicht
       if (start == NODATA)
           return "Niederschlag unwahrscheinlich in den nächsten zwei Stunden!";
       
       // Niederschlag ins Sicht (mit Dauer) oder Niederschlag dauert an (noch Dauer...).
       if (stop == NODATA || (stop - start) >= MAXFORECASTDURATION) 
           durationText = "; er dauert voraussichtlich lÀnger als" + (MAXFORECASTDURATION - start) + " Min.!";
       else 
           durationText = "; er dauert voraussichtlich ca. " + (stop - start) + " Min.!";
       
       if (start == 0)
           text = "Aktuell Niederschlag" + durationText;
       else 
           text = "Niederschlag möglich in ca. " + start + " Min." + durationText;
                   
       return text + SUFFIX;
   }

Ideen

  • Umgang mit "Fehlende Daten beim Bundesamt". Siehe z.B. die Abbildung rechts.
    hier
  • Koordinaten umrechnen (zurzeit WGS84 alleine)