1. Startseite
  2. Portal
  3. Forum
    1. Unerledigte Themen
  4. Galerie
    1. Alben
    2. Karte
  5. Lexikon
  6. Kartensysteme
    1. Europaanalyse
    2. Gewitteranalyse
    3. Nowcast
  7. FAQ
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Galerie
  • Lexikon
  • Seiten
  • FAQ
  • Erweiterte Suche
  1. Forum
  2. NETZWERKE & BLITZORTUNG
  3. Blitzentladung & Aufzeichnung
  4. Blitzortung - deutsch

strikes.txt Alternative?

    • Problem
  • SSV-UFS IG
  • 24. März 2014 um 08:30
  • Erledigt
  • SSV-UFS IG
    Gast
    • 24. März 2014 um 08:30
    • #1

    Hallo liebe BO-Gemeinde und Freunde / Kollegen

    Wir haben für unsere Seite eine Spooterplatz-Map gemacht wo wir die Spotterplätze zur Gewitterbeobachtung anzeigen lassen.
    Ebenso habe ich derzeit über die strikes.txt auf die Blitzdaten zugegriffen und wollte so immer die aktuellsten Blitze auf der Karte
    anzeigen lassen.

    Dies hat soweit bis vor einer Woche super funktioniert.
    Doch heute erscheint "NOT FOUND" und das Script um die Blitze anzuzeigen wird unbrauchbar.

    GIbt es hier eine alternative, ohne dass ich jetzt erst eine neue BO-Station (RED) besorgen und löten muss?
    Falls nein, das wäre sehr sehr schade.

    Kann mir hier freundlicherweise jemand helfen? Das mit den Logs ist auch nicht gerade gut lösbar, da die Daten aktuell sein müssen.
    Am besten wäre so eine Kästchen mit Blitzanzahl-Anzeige wie es bei der Blitzortung-Android-App der Fall ist.

    PHP
    //START BLITZORTUNG 
        <?php
        $time = time();
        // username and password
        $strikes_path='http://WohlerRo:********@data.blitzortung.org/Data_1/Protected/strokes.txt';
        $File= fopen ($strikes_path, "r");
        $strikes= 0;
        while (fscanf ($File,"%d-%d-%d %d:%d:%f %f %f", $year, $mon, $day, $hour, $min, $sec, $lat, $lon) == 8) {
            $strike_time= gmmktime($hour, $min, $sec, $mon, $day, $year);
            if (($strike_time <= $time)&&($strike_time > $time-6000)){
                echo "var marker1 = add_marker($lat,$lon,'";
                if ($time-$strike_time < 1200) {
                    echo "white"; }
                else if ($time-$strike_time < 2400) {
                    echo "gelb"; }
                else if ($time-$strike_time < 3600) {
                    echo "orange"; }
                else if ($time-$strike_time < 4800) {
                    echo "red_light"; }
                else if ($time-$strike_time < 6000) {
                    echo "red"; }
                echo "');marker1.setMap(map);";
            }
        }
        $start_date= getdate($time);
        $year_end = $start_date['year'];
        $mon_end = $start_date['mon'];
        $day_end = $start_date['mday'];
        $hour_end = $start_date['hours'];
        $min_end = $start_date['minutes'];
        $end_date= getdate($time-7200);
        $hour_start = $end_date['hours'];
        $min_start = $end_date['minutes'];
        ?>
            //ENDE BLITZORTUNG
    
    
        function add_marker(lat,lon,ico) {
            var infowindow = new google.maps.InfoWindow({
                                                        content: "<font color=white>loading Strikedata...</font>"
                                                        });
    
    
    
    
            var icon =  white[ico] || gelb[ico] || orange[ico] || red_light[ico] || red[ico] ||{};
            var marker1 = new google.maps.Marker({
                                                 position: new google.maps.LatLng(lat,lon),
                                                 map: map,
                                                 icon: icon.icon,
                                                 //title: title
                                                 });
            return marker1;
        }
        //google.maps.event.addListener(marker1, "mouseover", function () { document.getElementById('out_bo').innerHTML = content;});
    
    
        var flightPath = new google.maps.Polygon({
                                                 path: flightPlanCoordinates,
                                                 strokeColor: "#0055FF",
                                                 strokeOpacity: 0.8,
                                                 strokeWeight: 0,
                                                 fillColor: "#0055FF",
                                                 fillOpacity: 0.10
                                                 });
        flightPath.setMap(map);
    Alles anzeigen

    Gruss
    Dominic

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 25. März 2014 um 16:56
    • #2

    Hallo Dominic,

    Zitat von SSV-UFS IG

    Wir haben für unsere Seite eine Spooterplatz-Map gemacht wo wir die Spotterplätze zur Gewitterbeobachtung anzeigen lassen.
    Ebenso habe ich derzeit über die strikes.txt auf die Blitzdaten zugegriffen und wollte so immer die aktuellsten Blitze auf der Karte
    anzeigen lassen.

    Dies hat soweit bis vor einer Woche super funktioniert.
    Doch heute erscheint "NOT FOUND" und das Script um die Blitze anzuzeigen wird unbrauchbar.

    GIbt es hier eine alternative, ohne dass ich jetzt erst eine neue BO-Station (RED) besorgen und löten muss?
    Falls nein, das wäre sehr sehr schade.

    Das Datenformat hat sich geändert. Du musst dein Script anpassen. Schau im internen Bereich von Blitzortung.org unter Dienste -> Verschiedenes, da findest du alle Infos, die du brauchst.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 25. März 2014 um 17:21
    • #3

    Hi

    Danke das hab ich schon.
    Doch kann ich mit log-Files nichts anfangen, das Datum und Zeit ist ja nie bekannt, es sollten die
    aktuellsten Daten angezeigt werden. Die Androidapp von Blitzortung hat das ja auch mit aktuellsten Blitzen und sogar solchen "Kacheln" auf Raster 5km mit Blitzanzahl drin, wie kann ich das machen?

    Hab davon eben sehr wenig Ahnung ;)

    Gruss
    Dominic

  • SSV-UFS IG
    Gast
    • 25. März 2014 um 17:52
    • #4

    Jetzt hab ich den Pfad angepasst.
    Hab jetzt

    PHP
    $strikes_path = 'http://WohlerRo:**********@data.blitzortung.org/Data_1/Protected/Strokes/'.date("Y")."/".date("m")."/".date("d")."/".date("H")."/".date("i").'.log';

    Das gibt mir dieses aus:

    Code
    http://WohlerRo:**********@data.blitzortung.org/Data_1/Protected/Strokes/2014/03/25/17/50.log

    Öffne ich das im Browser (******* durch PW ersetzt natürlich) dann erhalte ich auch ein NOT FOUND.
    Normal ??

    Es geht um folgende Zeilen:

    PHP
    $strikes_path = 'http://WohlerRo:**********@data.blitzortung.org/Data_1/Protected/Strokes/'.date("Y")."/".date("m")."/".date("d")."/".date("H")."/".date("i").'.log';
        $File= fopen ($strikes_path, "r");
        $strikes= 0;
        while (fscanf ($File,"%d-%d-%d %d:%d:%f %f %f", $year, $mon, $day, $hour, $min, $sec, $lat, $lon) == 8) {
            $strike_time= gmmktime($hour, $min, $sec, $mon, $day, $year);
            if (($strike_time <= $time)&&($strike_time > $time-6000)){
                echo "var marker1 = add_marker($lat,$lon,'";
                if ($time-$strike_time < 1200) {
                    echo "white"; }
                else if ($time-$strike_time < 2400) {
                    echo "gelb"; }
                else if ($time-$strike_time < 3600) {
                    echo "orange"; }
                else if ($time-$strike_time < 4800) {
                    echo "red_light"; }
                else if ($time-$strike_time < 6000) {
                    echo "red"; }
                echo "');marker1.setMap(map);";
           }
        }
    Alles anzeigen

    Das File wird ja gescannt nach einem Muster, nun frage ich mich ob das noch so ist oder wie ich hier vorgehen soll.
    Zudem sind aktuelle Logs ja leider nicht vorhanden :(

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 25. März 2014 um 17:59
    • #5

    Hallo Dominic,

    Zitat von SSV-UFS IG

    Doch kann ich mit log-Files nichts anfangen, das Datum und Zeit ist ja nie bekannt, es sollten die
    aktuellsten Daten angezeigt werden. Die Androidapp von Blitzortung hat das ja auch mit aktuellsten Blitzen und sogar solchen "Kacheln" auf Raster 5km mit Blitzanzahl drin, wie kann ich das machen?


    Die aktuelle Zeit und das aktuelle Datum ist doch bekannt!

    Weiter unten unter "PHP Script to show individual maps on a web servers" gibt es auch ein Beispielscript, wie man die Daten nutzt.

    Das Script das du hast, muss ja jemand geschrieben haben, und mit den Infos auf der internen Seite und dem Beispielscript sollte der doch in der Lage sein, das Script anzupassen.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 25. März 2014 um 18:08
    • #6

    Das PHP-Script to Show bezieht sich leider auf das alte:

    Zitat

    $strokes_dir= 'http://' . $username . ':' . $password . '@http://blitzortung.net/Data_' . $region . '/Protected/Strokes/';

    Ich hab jetzt diese Zeile im Visier:

    PHP
    while (fscanf ($File,"%d-%d-%d %d:%d:%f %f %f", $year, $mon, $day, $hour, $min, $sec, $lat, $lon) == 8) {

    Versuchsweise hab ich jetzt ein -log genommen das existirert:

    Code
    http://data.blitzortung.org/Data_1/Protected/Strokes/2014/03/22/17/00.log


    (leider existrieren keine Logs vom aktuellen Datum und aktueller Zeit oder wie ist das verzögert?)

    Wenn ich das Log mit der While-Zeile vergleiche kann ich bisher folgendes entschlüsseln:

    2014-03-22 17:00:15.532394634 pos;41.727864;2.674386;0 str;5.91 dev;8402 sta;11;243;377,819,839,300,726,60,502,409,882,342,712,712,559,372,226,914,398,568,765,751,595,786,838,760,800,763,233,14,821,766,717,39,440,173,810,391,169,516,229,443,546,780,529,869,260,782,787,145,221,721,797,572,522,829,750,774,434,205,761,784,737,52,232,416,566,931,334,438,160,883,408,147,561,252,733,54,680,294,389,19,7,51,101,531,674,823,734,862,166,932,297,107,37,304,576,538,402,172,66,272,672,120,747,421,501,897,685,878,905,818,843,847,258,826,503,418,745,2,779,718,889,885,444,72,811,217,364,483,879,694,832,127,700,845,301,99,631,749,430,884,505,283,783,21,194,727,519,711,442,439,752,833,708,755,627,710,388,68,64,105,257,816,688,271,211,370,824,281,329,236,247,248,896,703,113,893,488,404,866,289,524,715,735,33,376,920,390,412,859,43,383,891,381,198,380,675,81,912,46,785,330,367,435,450,941,374,699,618,323,921,357,246,125,452,738,585,903,355,673,781,630,910,587,813,453,590,573,777,598,803,591,740,923,589,725,702,18,30,417,479,768,625,193

    Das ist jeweils eine Zeile. In PHP würde dann die While-Schleife entschlüsselt so aussehen:

    Code
    [code=php]while (fscanf ($File,"2014-03-22 17:00:15.532394634 41.727864 2.674386", $year, $mon, $day, $hour, $min, $sec, $lat, $lon) == 8) {


    [/code]

    Doch halt! Das kann so nicht stimmen, weil in der .log-Datei ja noch das pos; dazwischen ist... wie bringe ich das nun weg?
    Mit dem == 8 verstehe ich die 8 weiteren Sparten wie sta, etc. Also weiter als bis jetzt komm ich aktuell nicht, bin aber näher dran :D

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 25. März 2014 um 18:11
    • #7
    Zitat von SSV-UFS IG

    Jetzt hab ich den Pfad angepasst.
    Hab jetzt

    PHP
    $strikes_path = 'http://WohlerRo:**********@data.blitzortung.org/Data_1/Protected/Strokes/'.date("Y")."/".date("m")."/".date("d")."/".date("H")."/".date("i").'.log';

    Das gibt mir dieses aus:

    Code
    http://WohlerRo:**********@data.blitzortung.org/Data_1/Protected/Strokes/2014/03/25/17/50.log

    Öffne ich das im Browser (******* durch PW ersetzt natürlich) dann erhalte ich auch ein NOT FOUND.
    Normal ??

    Solange es keine Blitze gibt, gibt es auch keine Datei. Bei keiner Blitzaktivität gibt es überhaupt keine Datei, bei geringer Blitzaktivität kann es ein wenig dauern, bis die Datei da ist.

    Du hast aber auch noch einen Fehler drin, die Zeit muss in UTC sein.

    Schau dir das Beispielscript an. Dort siehst du auch, wie man die Datei scannt.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 25. März 2014 um 18:31
    • #8

    Ich hab jezt das Beispielscript genommen und auf meine Daten angepasst:

    Code
    http://ssv-ufs.ch/438475031984750981743509871345/stest.php

    Auch wenn ich nun die Log extra für den 23. März anpasse (da es hier Blitze hatte in der Schweiz) sehe ich keine.
    ;) Ich werd mich mal länger befassen damit... Dann kommt noch die Anzeige auf der Map (JS) hinzu ..

    Aber danke erstmal :) :thumbup:

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 25. März 2014 um 18:56
    • #9

    Hallo Dominic,

    Zitat von SSV-UFS IG

    Ich hab jezt das Beispielscript genommen und auf meine Daten angepasst:

    Code
    http://ssv-ufs.ch/438475031984750981743509871345/stest.php

    Auch wenn ich nun die Log extra für den 23. März anpasse (da es hier Blitze hatte in der Schweiz) sehe ich keine.


    Ich weiß nicht, wie lange zurück die Logs zur Verfügung stehen, vielleicht ist der 23. März schon zu lange her.

    Zitat von SSV-UFS IG

    ;) Ich werd mich mal länger befassen damit... Dann kommt noch die Anzeige auf der Map (JS) hinzu ..


    Dann viel Erfolg. :thumbup:

    Zitat von SSV-UFS IG

    Aber danke erstmal :) :thumbup:


    Gern geschehen.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 25. März 2014 um 21:16
    • #10

    Funzt noch nicht ganz... Hab das Script übernommen...
    keine Quadrate keine Anzeige.


    Das hier ein Blitz drauf ist kommt nur davon, weil ich als Karte das da Verlinkt hab:

    Mist.... :(

  • SSV-UFS IG
    Gast
    • 26. März 2014 um 13:39
    • #11

    Ich habe jetzt einiges angepasst.

    Die Karte ist uner aufrufbar.

    Dennoch funktioniert es noch nicht.
    Sieht jemand hier vielleicht ein Fehler oder hat mir jemand ein Tip?? Die Karte ist dynamisch, d.h. die aktuellen Blitze im Mittelmeer (Ibiza, Frankreich, etc) müssten ja angezegit werden.

    Ich selbst hab jetzt gesucht und komme leider nicht auf den Nenner warum es nicht geht :(

    Script folgt im nächsten Thread da mehr als 10'000 Zeichen :D

  • SSV-UFS IG
    Gast
    • 26. März 2014 um 13:41
    • #12

    [...gekürzt....]

    2 Mal editiert, zuletzt von SSV-UFS IG (27. März 2014 um 13:43) aus folgendem Grund: Nicht mehr Bestandteil des Problems :=) Zu langer Code :D

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 26. März 2014 um 16:56
    • #13

    Hallo Dominic,

    Zitat von SSV-UFS IG

    Ich habe jetzt einiges angepasst.

    Die Karte ist uner aufrufbar.

    Dennoch funktioniert es noch nicht.
    Sieht jemand hier vielleicht ein Fehler oder hat mir jemand ein Tip?? Die Karte ist dynamisch, d.h. die aktuellen Blitze im Mittelmeer (Ibiza, Frankreich, etc) müssten ja angezegit werden.

    Ich selbst hab jetzt gesucht und komme leider nicht auf den Nenner warum es nicht geht :(


    Wenn du keine Blitzdaten von Server liest, können auch keine Blitze angezeigt werden. Da sind einige Fehler bei dir im Script. Vergleiche nochmal mit Egons Beispielscript. Ich kann dir jetzt nicht dein ganzes Script reparieren, das musst du schon selber machen.

    Außerdem solltest du jetzt, wo du dein Passwort gepostet hast, selbiges ändern.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 26. März 2014 um 17:32
    • #14

    Hui, ja ok das mach ich gleich, hab ich nicht gemerkt :)

    Ich werde das mal vergleichen, Danke.

  • SSV-UFS IG
    Gast
    • 27. März 2014 um 13:30
    • #15

    Soweit so gut, ich hab jetzt alle sverglichen und entsprechend angeapsst.
    Super bisher läufts, ich habe aber wohl noch ein Zeitliches Problem, der Timeintervall hab ich bei 7200, die neusten Blitze (weiss) etc.
    werden nicht angezegit. Nur die Roten :(( Was ist hier noch falsch, ich finde den Fehler nicht :( ?

    Map: (man muss halt nach Italien scrollen odermit Maus fahren, da ist aktuell das Gewitter)

    Code:

    PHP
    $end_time= time();  $l_time=$end_time-7200;  $run_time= $l_time;	$strokes_dir= 'http://' . $username . ':' . $password . '@blitzortung.net/Data_' . $region . '/Protected/Strokes/' .gmdate("Y/m/d/H/",$run_time) . $run_time/600%6 . '0.log';    $strokes= 0;     $file= fopen($strokes_dir, 'r');    while ($line= fgets ($file, 16384)) {        $line= trim($line);        $raw= explode (" ",$line);        list ($year,$mon,$day)= explode("-",$raw [0]);        list ($hour,$min,$sec)= explode(":",$raw [1]);        $stroke_time= gmmktime($hour, $min, $sec, $mon, $day, $year);        strtok($raw[2],';');        $lat= strtok(';');        $lon= strtok(';');    	if (($stroke_time <= $end_time)&&($stroke_time > $end_time-7200)) {          echo "var marker1 = add_marker($lat,$lon,'";            echo "red";            if ($end_time-$stroke_time < 7200/6) {                //$col= $white;                echo "white"; }            else if ($end_time-$stroke_time < 2*7200/6) {                //$col= $yellow;                echo "gelb"; }            else if ($end_time-$stroke_time < 3*7200/6) {                //$col= $orange;                echo "orange"; }            else if ($end_time-$stroke_time < 4*7200/6) {                //&$col= $red_light;                echo "red_light"; }            else if ($end_time-$stroke_time < 5*7200/6) {               // $col= $red;               echo "red";                 }                  echo "');marker1.setMap(map);";            $strokes++; } }    fclose ($file);

    Die Ausgabe des Logs stimmt alles ist ok, nur die anderen Blitze werden nicht angezeigt nur die Roten, welche diese Zeile ausmachen:

    PHP
    if (($stroke_time <= $end_time)&&($stroke_time > $end_time-7200)) { 
             echo "var marker1 = add_marker($lat,$lon,'";
                echo "red";

    Der Rest untendran kümmert das Script wohl nicht ....
    Zu meiner Verständnichkeit, die Zahl nach dem Punkt (.) ist das dann der Timestamp???

    (Auszug aus Log):

    Zitat

    2014-03-26 10:00:42.701198749 pos;42.393020;3.850376;0 str;5.10

    Einmal editiert, zuletzt von SSV-UFS IG (27. März 2014 um 16:22)

  • robo
    Klimaforscher
    Reaktionen
    8
    Punkte
    2.018
    Beiträge
    389
    Website
    http://blitzortung.boeck.ws/
    • 27. März 2014 um 17:34
    • #16

    Hallo Dominic,

    Zitat von SSV-UFS IG

    Soweit so gut, ich hab jetzt alle sverglichen und entsprechend angeapsst.
    Super bisher läufts, ich habe aber wohl noch ein Zeitliches Problem, der Timeintervall hab ich bei 7200, die neusten Blitze (weiss) etc.
    werden nicht angezegit. Nur die Roten :(( Was ist hier noch falsch, ich finde den Fehler nicht :( ?


    Wenn du nur ein einzelnes Logfile einliest, nämlich das von vor 2 Stunden, dann werden dir auch nur die Blitze in dem 10-Minuten-Intervall von vor 2 Stunden angezeigt.

    Außerdem hast du weiter unten bei der Farbzuordnung auch noch einen logischen Fehler im Code. Der kommt dann zu tragen, wenn du die ganzen letzten 2 Stunden komplett einliest.

    Zitat von SSV-UFS IG

    Zu meiner Verständnichkeit, die Zahl nach dem Punkt (.) ist das dann der Timestamp???

    (Auszug aus Log):


    10:00:42.701198749 ist der Timestamp.

    Noch eine andere Sache. Du schreibst die Blitzpositionen in dein Script rein, d. h. man kann sie dort auslesen. Das ist aber nicht gewollt. Darum arbeitet z. B. MyBlitzortung da mit Layern. Außerdem schreibst du alle Blitze der ganzen Region 1 in dein Script, auch die, die man nicht sieht. Du solltest einen Eventhandler einbauen, der immer dann, wenn die Karte gezoomt oder verschoben wird, die Blitze nur für den sichtbaren Bereich neu einzeichnet. Dazu solltest du die Blitze aber nicht immer wieder neu vom Server lesen, sondern dir einen Cache anlegen.

    cu Robo :)

  • SSV-UFS IG
    Gast
    • 27. März 2014 um 21:53
    • #17

    Hi

    Danke für Deine Antwort.

    Zitat

    Wenn du nur ein einzelnes Logfile einliest, nämlich das von vor 2 Stunden, dann werden dir auch nur die Blitze in dem 10-Minuten-Intervall von vor 2 Stunden angezeigt.

    Außerdem hast du weiter unten bei der Farbzuordnung auch noch einen logischen Fehler im Code. Der kommt dann zu tragen, wenn du die ganzen letzten 2 Stunden komplett einliest.

    Was meinst Du mit logischen Fehler??
    Ich hab das vom Beispielscript übernommen von der BO.

    Allerdings wie krieg ich das denn hin dass er nicht nur ein einzelnes Logfile ausliest? Und wie kommst Du auf "vor 2 Stunden" ?
    Hab aktuell keine Plan, hab jetzt vieles Probiert z.B. strokes_dir etc in die While-Schleife zu packen aber dann erhalte ich gar nix mehr..

  • SSV-UFS IG
    Gast
    • 2. April 2014 um 10:26
    • #18

    Ich bin am verzweilfen, hat niemand eine Idee?
    Ich habe jetzt den kompletten Code vom Beispiel PHP Script übernommen.

    Einzig die $map hab ich weggelassen, weil ich die Blitze ja via JS auf unserer Google-Maps karte anzeigen lassen will und
    es funktioniert trotzdem nicht. Die Strokes Datei existiert (wurde erstellt) und die Zeit wird auch angeapsst, jedoch
    sind jeweils keine Daten drin und 'Strokes_tmp' wird nicht mal erstellet.

    Ich finde das Problem leider nicht :(

    Hier der Code (hab nur die wichtigsten Funktionen drin, Rest hab ich rausgenommen für diesen Thread damits nicht zu lang wird):

    PHP
    $local_strokes_file= 'Strokes';
        $tmp_strokes_file= 'Strokes_tmp';
    
    
        //
        $font_file_bold= 'DejaVuSans-Bold.ttf';
        $font_file= 'DejaVuSans.ttf';
        $font_size_1= 10;
        $font_size_2= 8;
        $font_size_3= 7;
    
    
    
    
        $region= "1";
        $time_interval = 7200;
        //
        // strokes and stations path
        //
    
        $stations_file= 'http://' . $username . ':' . $password . '@blitzortung.net/Data_' . $region . '/Protected/stations.txt.gz';
        $strokes_dir= 'http://' . $username . ':' . $password . '@blitzortung.net/Data_' . $region . '/Protected/Strokes/' . gmdate("Y/m/d/H/",$run_time) . $run_time/600%6 . '0.log';
    
    
    // times
    //
    $end_time= time();
    
    
    
    
    //
    // renew local data file
    //
    if (filemtime($local_strokes_file) < $end_time-60) {
    
    
      touch ($local_strokes_file);
    
    
      $l_time=$end_time-$time_interval;
      $l_file= fopen($local_strokes_file, 'r');
      $t_file= fopen($tmp_strokes_file, 'w');
      while ($line= fgets ($l_file, 16384)) {
        list ($date,$time)= explode (" ",$line);
        list ($year,$mon,$day)= explode("-",$date);
        list ($hour,$min,$sec)= explode(":",$time);
        $l_time= gmmktime($hour, $min, $sec, $mon, $day, $year);
        if ($l_time >= $end_time-$time_interval) {
          fwrite ($t_file, $line); } }
      fclose ($l_file);
      fclose ($t_file);
      rename ($tmp_strokes_file,$local_strokes_file);
    
    
      $run_time= $l_time;
      $l_file= fopen($local_strokes_file, 'a');
      while ($run_time < $end_time+600) {
        $filename= $strokes_dir . gmdate("Y/m/d/H/",$run_time) . $run_time/600%6 . '0.log';
        if ($file= fopen($filename, 'r')) {
          while ($line= fgets ($file, 16384)) {
            list ($date,$time)= explode (" ",$line);
            list ($year,$mon,$day)= explode("-",$date);
            list ($hour,$min,$sec)= explode(":",$time);
            $stroke_time= gmmktime($hour, $min, $sec, $mon, $day, $year);
            if ($stroke_time > $l_time) {
              fwrite ($l_file, $line); } }
          fclose ($file); }
        $run_time+= 600; }
      fclose ($l_file); }
    
    
        $strokes= 0;
    $file= fopen($local_strokes_file, 'r');
    while ($line= fgets ($file, 16384)) {
      $line= trim($line);
      $raw= explode (" ",$line);
      list ($year,$mon,$day)= explode("-",$raw [0]);
      list ($hour,$min,$sec)= explode(":",$raw [1]);
      $stroke_time= gmmktime($hour, $min, $sec, $mon, $day, $year);
      strtok($raw[2],';');
      $lat= strtok(';')*pi()/180.0;
      $lon= strtok(';')*pi()/180.0;
      if (($stroke_time <= $end_time)&&($stroke_time > $end_time-$time_interval)) { //&&($lon >= $west)&&($lon <= $east)&&($lat <= $north)&&($lat >= $south)) {
             echo "var marker1 = add_marker($lat,$lon,'";
                //$x= (int)(($img_width)*($lon-$west)/($east-$west));
                //$y= (int)($img_width*(mercator_proj($north)-mercator_proj($lat))/($east-$west));
                echo "red";
                if ($end_time-$stroke_time < $time_interval/6) {
                    //$col= $white;
                    echo "white"; }
                else if ($end_time-$stroke_time < 2*$time_interval/6) {
                    //$col= $yellow;
                    echo "gelb"; }
                else if ($end_time-$stroke_time < 3*$time_interval/6) {
                    //$col= $orange;
                    echo "orange"; }
                else if ($end_time-$stroke_time < 4*$time_interval/6) {
                    //&$col= $red_light;
                    echo "red_light"; }
                else if ($end_time-$stroke_time < 5*$time_interval/6) {
                   // $col= $red;
                   echo "red";
                     }
                      echo "');marker1.setMap(map);";
                $strokes++; } }
        fclose ($file);
    Alles anzeigen

    Wäre sehr dankbar, wenn sich jemand dem Problem annehmen könnte, am Freitag ist auch hier bei uns Saisonstart und es ist sehr schade würde das nicht laufen,
    denn ich bin schon seit knapp 2 Monate dran das Problem in den Griff zu kriegen.

  • SSV-UFS IG
    Gast
    • 2. April 2014 um 11:36
    • #19

    Inzwischen hab ich 1 Problem gefunden.
    Wenn ich Region 1 habe wird meine Strokes-Datei nicht gefüllt.

    Ändere ich aber auf Region 2, dann werden Daten geschrieben bis zum geht nicht mehr ;)
    Nur Region 1 (Europa) kommen keine Daten. warum das denn?

    Jedoch auch bei Region 2, wenn die Daten vorhanden sind, erhalte ich keine Anzeige auf der Karte.

    LG

  • SSV-UFS IG
    Gast
    • 2. April 2014 um 11:57
    • #20

    Sorry Leute!!
    Zu viel Kaffe verdirbt wohl auch der Brei!!! hahahaha :D

    Nach langem rumprobieren hab ich nun die Lösung gefunden!
    Es lag daran dass die strokes_tmp einfach nicht erstellt wurde!

    Ich hab einfach noch die folgende Zeile hinzugefügt:

    PHP
    touch ($tmp_stroke_file);

    Und noch ein paar Anpassungen im JS gemacht und jetzt funktionierts!!
    Danke trotzdem für Eure Hilfe!!

    WOW :D

Radar

Regenradar

Link-Box

Zellenabstand und Zelleninnenabstand in Tabellen
Wegweiser
Kartenanlyse
Webcam
  1. Datenschutzerklärung
  2. Impressum
  3. Nutzungsbedingungen
  4. Kontakt

Partner
Viktor´s Supportboard
Besucherzaehler



Community-Software: WoltLab Suite™ 6.1.25
© Wetter-Board 2004-2026