Autor |
Beitrag |
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 10.08.13 20:14
Kleiner Fehler: Beersheba = Be'er Scheva ist doppelt durch verschiedene Schreibweisen.
de.wikipedia.org/wiki/Be%27er_Scheva
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 11.08.13 09:27
Hallo,
Im 2.Programm gebe ich jetzt die Windstärke statt der Windgeschwindigkeit in m/s an. Mit der Windstärke kann man irgendwie mehr anfangen.
Die Liste der Orte ist etwas korrigiert und erweitert.
Außerdem gibt's jetzt einen Schalter zu openweathermap.org/. Das gehört sich so, da die ja die Temperaturdaten liefern.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Hidden
|
|
jasocul
Beiträge: 6386
Erhaltene Danke: 146
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 11.08.13 14:52
Ein Ergänzungsvorschlag:
Unter Dusche habe ich immer komische Ideen. Während meines Geographie-Studiums gab es auch ein wenig Feld-Forschung. Unter anderem ging es um die Messung der Verdunstungskälte. Dies ist die Basis zur Ermittlung der gefühlten Temperatur. Damals war das aber für die Wetter-Dienste und -Berichte eine Angabe, die nicht relevant war. Sie wurde auch nur über eine Versuchsanordnung gemessen. Inzwischen gibt es aber sogar eine Formel dafür (was ich unter Dusche gehofft habe).
Alle notwendigen Variablen sind in den ermittelten Daten vorhanden. Vielleicht ist das ja noch ein netter Zusatz für das Programm.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 11.08.13 15:55
Hallo,
ich komme aus der Dusche und lese
jasocul hat folgendes geschrieben : | Dies ist die Basis zur Ermittlung der gefühlten Temperatur. ... Inzwischen gibt es aber sogar eine Formel dafür (was ich unter Dusche gehofft habe).
|
Superidee, und schon ist es in der Revision 2 des 2.Programms drin.
Außerdem habe ich für die Fans von Grad Fahrenheit eine Umschaltmöglichkeit eingebaut.
Zusätzlich kann die Darstellung jetzt auch ausgedruckt werden.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: jasocul
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: So 11.08.13 17:43
Hallo,
Zitat: | Außerdem habe ich für die Fans von Grad Fahrenheit eine Umschaltmöglichkeit eingebaut. |
Die große Anzeige der Temperatur wird umgerechnet, die kleinen in den seitlichen Angaben nicht.
Ich hatte eigentlich noch eine graphische Aufarbeitung der Daten mit Splines etc erwartet
Gruß Horst
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 11.08.13 20:06
Hallo,
Horst_H hat folgendes geschrieben : | Ich hatte eigentlich noch eine graphische Aufarbeitung der Daten mit Splines etc erwartet |
So, Du möchtest Splines?
In Revision 3/4 des 2.Programms gibt es jetzt wahlweise eine 14-Tage-Vorschau. Diese enthält in einer grafischen Auswertung die Temperaturkurve (grün) und Luftdruckkurve (blau), natürlich mit kubischen Splines verbunden und nicht mit schnöden Strecken.
Hat Spaß gemacht, das umzusetzen. Allerdings war es auch ein wenig Stress.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 12.08.13 08:39
Hallo,
und noch ein paar Änderungen (Rev 5 im 1.Beitrag).
In der 14-Tage-Vorschau wird jetzt auch der mögliche Temperaturbereich von der niedrigsten zur höchsten Temperatur des Tages angezeigt.
Außerdem habe ich noch ein paar weitere Änderungen durchgeführt und zwei kleine Fehler (u.a. Datumsanzeige) entfernt.
Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: lenamarkert
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 12.08.13 09:08
Auffällig:
Die Werte am 21.8. scheinen alle falsch zu sein: Temperaturen unglaubwürdig - bitte Plausibilitätskontrolle einbauen!
Das Programm wird immer besser! SUPER!!!
Wünschenswert: Alle Flughäfen dieser Welt haben Klimadaten - bitte alle in der Liste aufführen
Beispiel:
Ägypten: Kairo vorhanden, Hurghada und Marsa Alam fehlen
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 12.08.13 09:19
Hallo,
hathor hat folgendes geschrieben : | Auffällig:
Die Werte am 21.8. scheinen alle falsch zu sein: Temperaturen unglaubwürdig - bitte Plausibilitätskontrolle einbauen! |
Ist mir auch schon aufgefallen. So dankenswert es ist, dass Openweathermap kostenlos(!) die Daten zur Verfügung stellt, so ärgerlich ist es, dass diese in wenigen Minuten teilweise erheblich schwanken, aber auch fehlerhafte Werte geliefert werden. Zum Beispiel sind die Bezeichnungen für die Wetter-Icons mitunter falsch. Widersprüche der Form "keine Wolken, aber Regen", usw. treten leider häufig auf.
Ich werde mal sehen, was ich machen kann.
hathor hat folgendes geschrieben : | Wünschenswert: Alle Flughäfen dieser Welt haben Klimadaten - bitte alle in der Liste aufführen |
Mache ich. Allerdings dauert es heute noch etwas länger.
Irgendwie muss ich doch noch etwas Anderes machen. Programmieren macht aber viel mehr Spaß.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 12.08.13 09:25
Mathematiker hat folgendes geschrieben : | Programmieren macht aber viel mehr Spaß.
Beste Grüße
Mathematiker |
Das merkt man! Weiter so!
---
Plausibilitätstest
www.tu-freiberg.de/f.../FOG_Vol_7.pdf;
Ab Seite 14
Falls Link nicht geht: Google -> FOG_Vol_7.pdf
|
|
Gerd Kayser
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Mo 12.08.13 15:46
Mathematiker hat folgendes geschrieben : | So dankenswert es ist, dass Openweathermap kostenlos(!) die Daten zur Verfügung stellt, so ärgerlich ist es, dass diese in wenigen Minuten teilweise erheblich schwanken, aber auch fehlerhafte Werte geliefert werden. Zum Beispiel sind die Bezeichnungen für die Wetter-Icons mitunter falsch. Widersprüche der Form "keine Wolken, aber Regen", usw. treten leider häufig auf. |
- Ziehe den Wettercode heran und weise dann ein entsprechendes Wetterbildchen zu.
- Das Wetter kann man nur für die nächsten Stunden ziemlich genau vorhersagen. Was in einigen Tagen für ein Wetter herrscht, ist schlicht und einfach Kaffeesatzleserei. Es gibt nicht an jeder Straßenecke eine Wetterstation, die ihre Messdaten an die Wetterdienste liefert. Man wohnt ja auch nicht direkt neben einer Wetterstation, so dass das Wetter im Raum zwischen den Wetterstationen mit mehr oder weniger Aufwand berechnet werden muss. In einem Gebiet kann es gleichzeitig regnen und trocken sein. Viele haben sicherlich schon mal folgende Situation erlebt: Auf der einen Seite der Straße herrscht Sonnenschein, und es ist trocken. 10 m weiter auf der anderen Straßenseite aber regnet es.
- Man kann allenfalls für das Wetter in einigen Tagen eine Tendenz vorhersagen bzw. berechnen. Diese Tendenz kann zutreffen. Sie muss es aber nicht. Deshalb macht es wenig Sinn, für einen bestimmten Ort in einigen Tagen detaillierte Angaben zu machen.
- Zum Thema Plausibilitätskontrolle. Dem Wetter ist es so was von egal, ob sich in einer Grafik in einigen Tagen ein Knick bei der Temperaturkurve abzeichnet oder nicht. Wie gesagt, die Vorhersage kann zutreffen. Sie muss es aber nicht.
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mo 12.08.13 16:08
Hallo,
ich erwische "nur" 9300 Flughäfen, ist das nicht reichlich übertrieben?
www.partow.net/misce...ous/airportdatabase/
Dann sollte man doch eine zusätzliche Datei mit den Koordinaten / Name/ Land ( Zeitzone) mitsenden, statt alles in der .DFM zu verhackstücken.
Gruß Horst
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 12.08.13 16:17
Hallo,
ich habe mir noch einmal die Daten genauer angesehen und habe einfach einen großen Denkfehler gehabt.
Ich bin davon ausgegangen, dass unter "day" die Maximaltemperatur übermittelt wird. Das ist falsch; es ist die Mittagstemperatur.
Deshalb treten auch so komische Werte am 21.8., zumindest für mitteleuropäische Städte, auf.
In der Revision 6 wird jetzt die Kurve der Maximaltemperaturen des Tages gezeichnet.
Und wer es mag, kann sich zusätzlich die Temperaturkurve für morgens, mittags, abends und nachts einzeln anzeigen lassen.
Außerdem ist es schon klar, dass es dem Wetter vollkommen egal ist, ob man aus mathematischer Sicht die Kurve schön findet oder nicht. Das Wetter macht was es will!
Danke für den Link.
Ich habe schon ein paar, wenige Flughäfen ergänzt. Es ist aber mühsam die geografischen Koordinaten zusammenzusuchen. Mit dem Link geht's wahrscheinlich schneller.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 12.08.13 17:28
Stimmt!
Auszug:
EDDB:SXF:SCHONEFELD:BERLIN:GERMANY:52:22:48:N:13:31:21:E:0157
EDDC:DRS:DRESDEN:DRESDEN:GERMANY:51:07:57:N:13:46:01:E:0755
EDDF:FRA:FRANKFURT MAIN:FRANKFURT:GERMANY:50:01:35:N:08:32:35:E:0364
EDDE:ERF:ERFURT:ERFURT:GERMANY:50:58:48:N:10:57:29:E:1034
Zuletzt bearbeitet von hathor am Di 13.08.13 09:24, insgesamt 1-mal bearbeitet
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mo 12.08.13 19:11
Hallo,
ich bin mir unsicher, wie man am besten mit den Flughäfen verfahren soll.
Ich habe sie mal nach 3-Stelligem Code sortiert, falls der vorhanden war.Damit verbleiben 1500 Flughäfen.Es ist doch einfacher FRA nach PEK.
Damit fallen aber viele amerikanische Flughäfen raus
Diese Version läßt 'N/A' und damit 4186 Flughäfen drin.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| program Transform;
uses sysutils,classes; const delimiter = ':'; separator =#9; var L,Z,Erg : tStringlist; s: string; lon,lat : double; i,EndPos,StartPos: integer;
begin L := tStringlist.create; Z := tStringlist.create; Erg := tStringlist.create; L.Loadfromfile('GlobalAirportDatabase.txt');
For i := 0 to L.Count-1 do begin Z.clear;
s := L[i]; StartPos := 1; For EndPos := 1 to Length(s) do if s[EndPos] = delimiter then begin Z.Add(copy(s,StartPos,EndPos-StartPos)); StartPos:= EndPos+1; end; Z.Add(copy(s,StartPos,EndPos-StartPos));
begin s := ''''+z[1]+','+z[0]+','+z[3]+','+z[4]+''''; lat := (StrToInt(z[7])/60+StrToInt(z[6]))/60+StrToInt(z[5]); IF z[8] = 'S' then lat := -lat; lon := (StrToInt(z[11])/60+StrToInt(z[10]))/60+StrToInt(z[9]); IF z[12] <> 'E' then lon := -lon; If (lat <> 0.0) AND (lon <> 0.0) then begin s:= s+separator+FloatToStr(lat)+separator+FloatToStr(lon); Erg.Add(s); end; end; end; Erg.Sort; Erg.SaveToFile('Ausgabe.txt');
Erg.free; z.free; L.free; end. |
Eventuell sollte man eine separate Liste nur für Flughäfen in Erwägung ziehen.
Alleine in den USA sind es über 4000 Flughäfen
www.airnav.com/airports/browse.html
Gruß Horst
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Horst_H am Di 13.08.13 08:30, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Tastaro
Beiträge: 414
Erhaltene Danke: 23
|
Verfasst: Di 13.08.13 07:53
Hallo,
ich habe noch eine eher triviale Anmerkung: Könntest Du die Position der Formulare auf poScreenCenter stellen? Bei mir tauchen sie immer auf der Kante zwischen dem ersten und zweiten Monitor auf. Steht die Position zur Zeit auf poDesktopCenter?
Beste Grüße
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 13.08.13 08:10
Hallo,
Tastaro hat folgendes geschrieben : | Könntest Du die Position der Formulare auf poScreenCenter stellen? Bei mir tauchen sie immer auf der Kante zwischen dem ersten und zweiten Monitor auf. |
Schon geändert.
Ich kann mir das einfach nicht merken.
Außerdem habe ich jetzt die Ortsliste als komprimierte Ressource im Programm. Dadurch wird die Exe einiges kleiner.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 13.08.13 08:47
Das Problem mit der veralteten ZLIB-Version vom Mathematiker hatten wir schon mal vor einigen Monaten...
Wer eine neuere Version hat muss nur eine Zeile ändern:
Delphi-Quelltext 1: 2:
| ZLib.ZDeCompress(InpBuf, sz, OutBuf, OutBytes); |
Änderungen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88:
| var Form1: TForm1; datenverzeichnis, DaCo: string;
const configfile = 'wetter10.ini';
function GetSpecialFolder(Folder: Integer): String; begin SetLength(Result,MAX_PATH); If SHGetSpecialFolderPath(0, PChar(Result), Folder, false) then SetLength(Result,StrLen(PChar(Result))) else Result:=''; end;
procedure TForm1.FormActivate(Sender: TObject); var ini:tinifile; nr:integer; begin minutealt:=0; listbox1.doublebuffered:=true; datenverzeichnis:= GetSpecialFolder(CSIDL_APPDATA) +'\Wetterdaten2\'; if not DirectoryExists(datenverzeichnis) then mkdir(datenverzeichnis); DaCo:= datenverzeichnis+configfile; if FileExists(DaCo) then Label4.Caption:= ' INI-File: '+DaCo +' exists' else Label4.Caption:= ' INI-File: '+DaCo +' NOT exists';
ini := TIniFile.create(DaCo); try nr:=ini.readinteger('Start','Nr',0); radiogroup1.itemindex:=ini.readinteger('Start','14Tage',1); listbox1.itemindex:=nr; finally ini.free; end; listbox1click(sender); tc:=30; end;
procedure TForm1.FormCreate(Sender: TObject); procedure loadliste(const kk:string); var ms1: TResourcestream; ms2: TMemoryStream; begin Form1.WindowState:=wsMaximized; ms1 := TResourceStream.Create(hinstance,kk,'RT_RCDATA'); try ms2 := TMemoryStream.Create; try DecompressStream(ms1, ms2); listbox1.items.LoadFromStream(ms2); finally ms2.Free; end; finally ms1.Free; end; end; begin liste:=tstringlist.create; liste2:=tstringlist.create; loadliste('mort');
end;
procedure TForm1.FormDestroy(Sender: TObject); var ini:tinifile; begin liste.free; liste2.free; ini := TIniFile.Create(DaCo); try ini.Writeinteger('Start','Nr',listbox1.itemindex); ini.Writeinteger('Start','14Tage',radiogroup1.itemindex); finally ini.free; end; end; |
|
|
Tranx
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Di 13.08.13 14:37
Auf jeden Fall ein super Programm. Doch ich bin bei der Suche auf einen Fehler gestoßen, möglicherweise durch faksche Datenübertragung: Die Station Davis in der Antarktis zeigt -54°C - -60°C an, auch der Luftdruck ist mit 670 - 680 hPa deutlich zu niedrig für Meeresniveau. Dann müsste man ja arge Sorgen haben, dass doert ein extremes Tiefdruckgebiet sei und damit extrem gefährliche Stürme herrschen müssten.Wenn man die Daten per google aufruft, sind dort grad mal -12°C, was auch sehr viel wahrscheinlicher ist, weil Davis an der Küste liegt, und derartige Temperaturen im Winter in der Antarktis wohl nur im Landesinneren auftreten.
Was mich vermuten lässt, dass falsche Daten übertragen werden, war auch, dass gestern angeblich in Hintertux-Österreich -18°C geherrscht haben sollten. Heute ist der Fehler bei Hintertux werg. Derartige Fehler sind selbst mit Plausibilitätsprüfungen nicht auszumerzen.
Ansonsten ein super Programm.
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Di 13.08.13 16:26
Hallo,
Die Anzeige von Fahrenheit ist noch nicht optimal, wie ich zuvor gemosert habe
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure auswertung2tage; .... ziel.font.size:=16; if radiobutton1.checked then ziel.textout(x-65,y,format('%.0f°C',[tr])) else ziel.textout(x-65,y,format('%.0f°F',[9*tr/5+32])); if radiobutton1.checked then ziel.textout(x,y+16,format('Temperatur %.0f °C',[tr])) else ziel.textout(x,y+16,format('Temperatur %.0f°F',[9*tr/5+32])); |
Ich gebe zu, man müsste eigentlich die Temperatur dort gar nicht mehr zusätzlich eintragen.
Gruß Horst
|
|
|