Diskussion:RainAlarm
Aus Geoinformation HSR
Inhaltsverzeichnis
SB To Do
To Do App.:
- Erkennen von "No Data" ("Fehlende Daten beim Bundesamt") des Inputs (z.B. bei Betriebsausfall vom Monte Lama). Siehe z.B. die Abbildung rechts.
- Ggf. Übernehmen der Klassifikation der Regen- und der Schneeintensität (auch wenn's nur ein mittlerer Wert pro Ellipse/'niederschlags-Zelle' ist)
- Filtern von kleinsten Pixelgruppen
- Erzeugen eines animierten GIFs, vom Web her zugänglich
- Anpassen des Response-Texts mit Datum/Zeit und (NEU, vgl. unten)
- Berücksichtigung von Grössenveränderung, Rotation/Richtungsänderung sowie Beschleunigung/Verlangsamung
- Die Koordinaten müssen innerhalb der Schweiz liegen, also zwischen 45 und 48 Grad Nord und zwischen 4 und 11 Grad Ost.
- Woher die Ausreisser, bei denen plötzlich kommt "Niederschlag unwahrscheinlich in den nächsten zwei Stunden!"??
Unklar:
- RegionForecast.changePosition => ?
- 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?).
Ausgabe-Texte
Texte (zusammengesetzt):
- Niederschlag unwahrscheinlich in den nächsten zwei Stunden! (2010-12-31 17:05+01:00)
- Niederschlag möglich in ca. 56 Min.; er dauert voraussichtlich ca. 40 Min.! (2010-12-31 17:05+01:00)
- Niederschlag möglich in ca. 56 Min.; er dauert voraussichtlich über zwei Stunden! (2010-12-31 17:05+01:00)
- Aktuell Niederschlag; er dauert voraussichtlich noch ca. 23 Min.! (2010-12-31 17:05+01:00)
- Aktuell Niederschlag; er dauert voraussichtlich noch über zwei Stunden! (2010-12-31 17:05+01:00)
... gefolgt von "RainAlarm by http://labs.geometa.info/rainalarm (Quellen: SF Meteo und !MeteoSchweiz)".
Ausnahme-Texte:
- Und bei Problemen: Es ist ein Problem aufgetreten. Bitte versuchen Sie es später noch einmal.
- falls ausser Betrieb: Service zurzeit nicht in Betrieb. Versuchen Sie es später noch einmal.
- falls falsche oder fehlende Koordinaten: Koordinaten fehlen oder falsch. Siehe http://www.gis.hsr.ch/wiki/RainAlarm.
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
Website:
- http://dev.ifs.hsr.ch/rainalarm/browser/trunk/rainalarm-website/src/ch/hsr/ifs/rainalarm/web/QueryHandler.java: 15: "Service zurzeit nicht in Dini Mueter Betrieb..." :->
- SMS-Service => Reicht das noch dazu? "wenigstens" die standard-signature anpassen zu "www.gis.hsr.ch ," (anstelle von "http://www.hsr.ch," => beachte auch das Komma)