Diskussion:RainAlarm: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stefan (Diskussion | Beiträge) (→To Do) |
(→JSON) |
||
| Zeile 17: | Zeile 17: | ||
== JSON == | == 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 == | == RainAlarm.java == | ||
Version vom 23. Dezember 2009, 16:07 Uhr
To Do
Website:
- Die Koordinaten müssen innerhalb der Schweiz liegen, also zwischen 45 und 48 Grad Nord und zwischen 4 und 11 Grad Ost.
- 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..." :->
- Ticket #2 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)
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.
- Koordinaten umrechnen (zurzeit WGS84 alleine)