MOSMIX-Vorhersagen im neuen Format  (Gelesen 4212 mal)

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
MOSMIX-Vorhersagen im neuen Format
am: 03.03.2018, 11:28:34
Der DWD bietet seit neuestem die MOSMIX-Vorhersagen im KML-Format über einen Zeitraum von 240 Stunden an. Die Daten werden stündlich kurz vor jeder halben Stunde unter dem Verzeichnis https://opendata.dwd.de/weather/local_forecasts/mos/ zur Verfügung gestellt. Dabei sind die aktuellsten Daten bequem unter der URL https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_S_LATEST_240.kmz abrufbar.

Die Datei hat ungefähr eine Größe von 35 MB und enthält Vorhersagedaten in einem komprimierten XML-Format für ca. 5400 Stationen. Das Format ist unter der Adresse https://www.dwd.de/DE/leistungen/met_verfahren_mosmix/met_verfahren_mosmix.html gut dokumentiert und für die Konvertierung von XML-Daten steht mit XSLT ein mächtiges Werkzeug zur Verfügung.

Meinem Vorhaben, das Meteogramm unter https://buwx.de/index.php/chart/meteogramm über DWD-Vorhersagedaten zu erzeugen, bin ich damit einen großen Schritt näher gekommen.

Da es für manche vielleicht Arbeit ersparen könnte, möchte ich die Konvertierung kurz dokumentieren:

Über einen Cron-Job wird stündlich folgendes Skript gestartet:

#!/bin/sh

# extract mos data for the given station
cd /root/dwd

MOSMIX=MOSMIX_S_LATEST_240.kmz
STATION=10738

wget -N https://opendata.dwd.de/weather/local_forecasts/mos/${MOSMIX}

if [ ${MOSMIX} -nt ${STATION}.xml ]; then
  zcat ${MOSMIX} | xsltproc --param station ${STATION} mos.xsl - > ${STATION}.xml
  zcat ${MOSMIX} | xsltproc --param station ${STATION} mos-json.xsl - > ${STATION}.json
  touch --reference=${MOSMIX} ${STATION}.xml
  touch --reference=${MOSMIX} ${STATION}.json

  xmllint --format ${STATION}.xml > /var/www/buwx/charts/meteogram/${STATION}.xml
  python -m json.tool ${STATION}.json > /var/www/buwx/charts/meteogram/${STATION}.json
fi

Mich interessiert dabei nur die Station Stuttgart-Flughafen mit der Id 10738. Die XSL-Transformation in ein eigenes XML-Format und JSON-Format wird dabei durch folgende Stylesheets definiert:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dwd="https://opendata.dwd.de/weather/lib/pointforecast_dwd_extension_V1_0.xsd"
xmlns:kml="http://www.opengis.net/kml/2.2">

  <xsl:output method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="kml:Document">
    <forecast>
      <xsl:apply-templates />
    </forecast>
  </xsl:template>

  <xsl:template match="kml:ExtendedData">
    <issuer><xsl:value-of select="dwd:ProductDefinition/dwd:Issuer" /></issuer>
    <xsl:apply-templates select="dwd:ProductDefinition/dwd:ForecastTimeSteps"/>
  </xsl:template>

<xsl:template match="dwd:ForecastTimeSteps">
    <timeSteps>
      <xsl:for-each select="dwd:TimeStep">
    <xsl:text>"</xsl:text><xsl:value-of select="." /><xsl:text>"</xsl:text>
    <xsl:if test="position() != last()">
        <xsl:text>,</xsl:text>
    </xsl:if>
      </xsl:for-each>
    </timeSteps>
</xsl:template>

  <xsl:template match="kml:Placemark">
  <xsl:if test="kml:name=$station">
    <station>
    <xsl:attribute name="name"><xsl:value-of select="kml:name"/></xsl:attribute>
    <xsl:attribute name="description"><xsl:value-of select="kml:description"/></xsl:attribute>
    <xsl:for-each select="kml:ExtendedData/dwd:Forecast">
      <forecast>
        <xsl:attribute name="elementName"><xsl:value-of select="@dwd:elementName" /></xsl:attribute>
        <xsl:call-template name="format">
           <xsl:with-param name="text" select="normalize-space()"/>
         </xsl:call-template>
      </forecast>
    </xsl:for-each>
    </station>
  </xsl:if>
  </xsl:template>

   <xsl:template name="format">
    <xsl:param name="text"/>
<xsl:variable name="replace" select="' '" />
<xsl:variable name="with" select="','" />
    <xsl:choose>
      <xsl:when test="contains($text,$replace)">
        <xsl:text>"</xsl:text><xsl:value-of select="substring-before($text,$replace)"/><xsl:text>"</xsl:text>
        <xsl:value-of select="$with"/>
        <xsl:call-template name="format">
          <xsl:with-param name="text" select="substring-after($text,$replace)"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>"</xsl:text><xsl:value-of select="$text"/><xsl:text>"</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dwd="https://opendata.dwd.de/weather/lib/pointforecast_dwd_extension_V1_0.xsd"
xmlns:kml="http://www.opengis.net/kml/2.2">

  <xsl:output method="text" indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="kml:Document">
    <xsl:text>{</xsl:text>
      <xsl:apply-templates/>
    <xsl:text>}</xsl:text>
  </xsl:template>

  <xsl:template match="kml:ExtendedData">
    <xsl:text>"issuer": "</xsl:text><xsl:value-of select="dwd:ProductDefinition/dwd:Issuer"/><xsl:text>"</xsl:text>
    <xsl:apply-templates select="dwd:ProductDefinition/dwd:ForecastTimeSteps"/>
  </xsl:template>

  <xsl:template match="dwd:ForecastTimeSteps">
    <xsl:text>, "timeSteps": [</xsl:text>
    <xsl:for-each select="dwd:TimeStep">
  <xsl:text>"</xsl:text><xsl:value-of select="." /><xsl:text>"</xsl:text>
  <xsl:if test="position() != last()">
    <xsl:text>,</xsl:text>
  </xsl:if>
    </xsl:for-each>
    <xsl:text>]</xsl:text>
  </xsl:template>

  <xsl:template match="kml:Placemark">
  <xsl:if test="kml:name=$station">
    <xsl:text>, "</xsl:text><xsl:value-of select="kml:name" /><xsl:text>": {</xsl:text>
    <xsl:text>"description": "</xsl:text><xsl:value-of select="kml:description" /><xsl:text>"</xsl:text>
    <xsl:for-each select="kml:ExtendedData/dwd:Forecast">
      <xsl:text>, "</xsl:text><xsl:value-of select="@dwd:elementName"/><xsl:text>": [</xsl:text>
        <xsl:attribute name="dwd:elementName"><xsl:value-of select="@dwd:elementName" /></xsl:attribute>
        <xsl:call-template name="format">
           <xsl:with-param name="text" select="normalize-space()"/>
         </xsl:call-template>
      <xsl:text>]</xsl:text>
    </xsl:for-each>
    <xsl:text>}</xsl:text>
  </xsl:if>
  </xsl:template>

   <xsl:template name="format">
    <xsl:param name="text"/>
<xsl:variable name="replace" select="' '" />
<xsl:variable name="with" select="','" />
    <xsl:choose>
      <xsl:when test="contains($text,$replace)">
        <xsl:text>"</xsl:text><xsl:value-of select="substring-before($text,$replace)"/><xsl:text>"</xsl:text>
        <xsl:value-of select="$with"/>
        <xsl:call-template name="format">
          <xsl:with-param name="text" select="substring-after($text,$replace)"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>"</xsl:text><xsl:value-of select="$text"/><xsl:text>"</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

Das Ergebnis lässt sich hier abrufen:

https://buwx.de/charts/meteogram/10738.xml
https://buwx.de/charts/meteogram/10738.json

... und hoffentlich auch irgendwann über mein Meteogramm. Über weitere Fortschritte werde ich berichten.

Wetterstationen.info Forum

MOSMIX-Vorhersagen im neuen Format
« am: 03.03.2018, 11:28:34 »

Offline LE-Wetter

  • Allgemeiner Moderator
    • https://www.leipzig-wetter.de
  • Registriert:
    28.01.2007, 15:34:05
  • Beiträge: 2.999
  • 51°22'05" N, 12°21'52" O, 122 m ü.NN
  • Ort:
    Leipzig
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #1 am: 03.03.2018, 13:20:43
Hallo falk,

großartig wie du dich hier ins Zeug legst  :top:
Mir sind aber als technischer Lai von solchen Vorgängen das alles böhmische Dörfer, ich kann auch wenig mit den Links anfangen.
Interessiert an einem DWD Vorhersagemodell wäre ich schon für die Webseite, auch ein Obulus für ein fertiges System, wenn es brauchbar ist, wäre i.O.
Wenn die Norweger nicht bald  mit yowindow vom Flash abrücken, ist es dort ja auch bald dunkel.

Eine Frage habe ich, lädst du dann jedes Mal 35 MB runter, oder wird nur die eine Station vorher extrahiert?
Liebe Grüße von LE-Wetter

WS 888, Mete-On1 und WD4000 und
alte Barometer, Blitzortung, Radioaktivität
https://www.leipzig-wetter.de
www.regionalwetter-sa.de
www.wetternetz-sachsen.de
www.wetterhistorie-leipzig.de

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #2 am: 03.03.2018, 13:45:07
Eine Frage habe ich, lädst du dann jedes Mal 35 MB runter, oder wird nur die eine Station vorher extrahiert?

Hallo Michael,

die 35 MB kopiere ich stündlich auf meinem Server und extrahiere die relevanten Daten, wobei die JSON-Datei nur 20 KB groß ist.

Die Möglichkeiten damit sind enorm: Mit den Daten könnte man eine eigene Wetter-App mit professionellen Daten versorgen. Über JSON ist der Zugriff sehr einfach.

Jetzt genieße ich allerdings noch das sonnige und milde Wetter nach einer gefühlten Woche Dauerfrost.

Gruß
falk

Offline SkyDevX

  • Registriert:
    29.06.2014, 21:55:38
  • Beiträge: 7
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #3 am: 03.03.2018, 14:53:25
Finde sehr, sehr cool  :top:, eine Frage: enthält die KML-Datei nur die MOS-Wettervorhersagen der Stationenstandorten oder auch für die Gitterpunkte dazwischen?

Eine ähnliche Vorgehensweise gibt es auch in diesem Forum dort werden aber für die Anzeige die POI MOSMIXes von DWD verwendet. Das Meteogramm wird gleich mitgeliefert, wie das Aussieht kann man hier oder hier sehen.
Man kann sich nur freuen, dass DWD die Daten freigibt.

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #4 am: 03.03.2018, 22:28:19
Finde sehr, sehr cool  :top:, eine Frage: enthält die KML-Datei nur die MOS-Wettervorhersagen der Stationenstandorten oder auch für die Gitterpunkte dazwischen?

Es sind nur Vorhersagedaten für ca. 5.400 Stationen weltweit verfügbar. Darunter aber nur 2.800 Hauptstationen, bei denen die Modellvorhersagen über den Abgleich mit tatsächlich gemessenen Werten statistisch optimiert werden. Die anderen Stationsdaten werden interpoliert. Über den von mir angegebenen Link wird das gut beschrieben. Der User @Lukas hat hier seine Webseite vorgestellt, über die er Meteogramme aller Stationen zur Verfügung stellt: http://www.wetterstationen.info/forum/neues-board/dwd-mos-der-ganzen-welt-auf-profiwetter-ch/

Zitat
Eine ähnliche Vorgehensweise gibt es auch in diesem Forum dort werden aber für die Anzeige die POI MOSMIXes von DWD verwendet. Das Meteogramm wird gleich mitgeliefert, wie das Aussieht kann man hier oder hier sehen.

Vielen Dank für den Link. Der ist ebenfalls sehr lehrreich. Grundlage für mein Diagramm ist dieses hier: https://www.highcharts.com/demo/combo-meteogram#https://www.yr.no/place/United_Kingdom/England/London/forecast_hour_by_hour.xml

Hier, wir bei @Lukas werden allerdings noch die Daten im alten Format ausgewertet. Im KML-Format werden für jede Stunde Vorhersagedaten geliefert statt für alle 3-Stunden. Gerade für die ersten 48h lassen sich damit Vorhersagen feiner darstellen.

Zitat
Man kann sich nur freuen, dass DWD die Daten freigibt.

Das finde ich auch fantastisch  :top:

Wetterstationen.info Forum

Re: MOSMIX-Vorhersagen im neuen Format
« Antwort #4 am: 03.03.2018, 22:28:19 »

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #5 am: 05.03.2018, 19:26:31
Ein einfaches Meteogramm ist realisiert: https://buwx.de/index.php/chart/meteogramm-dwd

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/windbarb.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

<div id="mg_container" style="height: 310px; margin: 0 auto">
    <div style="margin-top: 100px; text-align: center" id="loading">
        <i class="fa fa-spinner fa-spin"></i> Lade Wetterdaten...
    </div>
</div>

<script type="text/javascript">

/**
 * Meteogram derived by Highcharts meteogram demo for using DWD MESOMIX data.
 */
function Meteogram(dwd, container) {
    // Parallel arrays for the chart data, these are populated as the XML/JSON file
    // is loaded
    this.precipitations = [];
    this.winds = [];
    this.temperatures = [];
    this.pressures = [];

    // Initialize
    this.dwd = dwd;
    this.container = container;

    // Run
    this.parseDwdData();
}

Meteogram.prototype.getTitle = function () {
    return 'Vorhersage für Stuttgart/Echterdingen';
};

Meteogram.prototype.getChartOptions = function () {
    var meteogram = this;

    return {
        chart: {
            renderTo: this.container,
            marginBottom: 70,
            marginRight: 40,
            marginTop: 50,
            plotBorderWidth: 1,
            height: 310,
            alignTicks: false
        },

        title: {
            text: this.getTitle(),
            align: 'left'
        },

        credits: {
            text: 'Quelle: Deutscher Wetterdienst',
            href: 'https://www.dwd.de',
            position: {
                x: -40
            }
        },

        tooltip: {
            shared: true,
            useHTML: true,
            headerFormat: '<small>{point.x:%A, %e. %B, %H Uhr}</small><br>'
        },

        xAxis: [{ // Bottom X axis
            type: 'datetime',
            tickInterval: 2 * 36e5, // two hours
            minorTickInterval: 36e5, // one hour
            tickLength: 0,
            gridLineWidth: 1,
            gridLineColor: (Highcharts.theme && Highcharts.theme.background2) || '#F0F0F0',
            startOnTick: false,
            endOnTick: false,
            minPadding: 0,
            maxPadding: 0,
            offset: 30,
            showLastLabel: true,
            labels: {
                format: '{value:%H}'
            },
            crosshair: true
        }, { // Top X axis
            linkedTo: 0,
            type: 'datetime',
            tickInterval: 24 * 3600 * 1000,
            labels: {
                format: '{value:%a %e. %b}',
                align: 'left',
                x: 3,
                y: -5
            },
            opposite: true,
            tickLength: 20,
            gridLineWidth: 1
        }],

        yAxis: [{ // temperature axis
            title: {
                text: null
            },
            labels: {
                format: '{value}°',
                style: {
                    fontSize: '10px'
                },
                x: -3
            },
            plotLines: [{ // zero plane
                value: 0,
                color: '#BBBBBB',
                width: 1,
                zIndex: 2
            }],
            maxPadding: 0.3,
            minRange: 8,
            tickInterval: 1,
            gridLineColor: (Highcharts.theme && Highcharts.theme.background2) || '#F0F0F0'

        }, { // precipitation axis
            title: {
                text: null
            },
            labels: {
                enabled: false
            },
            gridLineWidth: 0,
            tickLength: 0,
            minRange: 10,
            min: 0

        }, { // Air pressure
            allowDecimals: false,
            title: { // Title on top of axis
                text: 'hPa',
                offset: 0,
                align: 'high',
                rotation: 0,
                style: {
                    fontSize: '10px',
                    color: Highcharts.getOptions().colors[2]
                },
                textAlign: 'left',
                x: 3
            },
            labels: {
                style: {
                    fontSize: '8px',
                    color: Highcharts.getOptions().colors[2]
                },
                y: 2,
                x: 3
            },
            gridLineWidth: 0,
            opposite: true,
            showLastLabel: false
        }],

        legend: {
            enabled: false
        },

        plotOptions: {
            series: {
                pointPlacement: 'between'
            }
        },

        series: [{
            name: 'Temperatur',
            data: this.temperatures,
            type: 'spline',
            marker: {
                enabled: false,
                states: {
                    hover: {
                        enabled: true
                    }
                }
            },
            tooltip: {
                pointFormat: '<span style="color:{point.color}">\u25CF</span> ' +
                    '{series.name}: <b>{point.y}°C</b><br/>'
            },
            zIndex: 1,
            color: '#FF3333',
            negativeColor: '#48AFE8'
        }, {
            name: 'Niederschlag',
            data: this.precipitations,
            type: 'column',
            color: '#68CFE8',
            yAxis: 1,
            groupPadding: 0,
            pointPadding: 0,
            grouping: false,
            dataLabels: {
                enabled: true,
                formatter: function () {
                    if (this.y > 0) {
                        return this.y;
                    }
                },
                style: {
                    fontSize: '8px',
                    color: 'gray'
                }
            },
            tooltip: {
                valueSuffix: ' mm'
            }
        }, {
            name: 'Luftdruck',
            color: Highcharts.getOptions().colors[2],
            data: this.pressures,
            type: 'spline',
            marker: {
                enabled: false
            },
            shadow: false,
            tooltip: {
                valueSuffix: ' hPa'
            },
            dashStyle: 'shortdot',
            yAxis: 2
        }, {
            name: 'Wind',
            type: 'windbarb',
            id: 'windbarbs',
            color: Highcharts.getOptions().colors[1],
            lineWidth: 1.5,
            data: this.winds,
            vectorLength: 18,
            yOffset: -15,
            tooltip: {
                pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.value_kmh} km/h</b><br/>'
            }
        }]
    };
};

/**
 * Create the chart. This function is called async when the data file is loaded and parsed.
 */
Meteogram.prototype.createChart = function () {
    Highcharts.setOptions({
        lang: {
            decimalPoint: ',',
            thousandsSep: '.',
            loading: 'Daten werden geladen...',
            months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
            weekdays: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
            shortMonths: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
            shortWeekdays: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
            exportButtonTitle: "Exportieren",
            printButtonTitle: "Drucken",
            rangeSelectorFrom: "Von",
            rangeSelectorTo: "Bis",
            rangeSelectorZoom: "Zeitraum",
            downloadPNG: 'Download als PNG-Bild',
            downloadJPEG: 'Download als JPEG-Bild',
            downloadPDF: 'Download als PDF-Dokument',
            downloadSVG: 'Download als SVG-Bild',
            resetZoom: "Zoom zurücksetzen",
            resetZoomTitle: "Zoom zurücksetzen"
        }
    });
    var meteogram = this;
    this.chart = new Highcharts.Chart(this.getChartOptions(), function (chart) {
        meteogram.onChartLoad(chart);
    });
};

Meteogram.prototype.error = function () {
    jQuery('#loading').html('<i class="fa fa-frown-o"></i> Daten konnten nicht geladen werden');
};

/**
 * Handle the data.
 */
Meteogram.prototype.parseDwdData = function () {

    var meteogram = this,
        dwd = this.dwd,
        pointStart, i;

    if (!dwd || !dwd.timeSteps || !dwd.STN_10738) {
        return this.error();
    }

    for (i=0; i<=72; i++) { // 72 hours
        var from = dwd.timeSteps[i],
            to;

        from = from.replace(/-/g, '/').replace('T', ' ').replace('.000Z', ' UTC');
        from = Date.parse(from);
        to = from + 36e5;

        if (to > pointStart + 4 * 24 * 36e5) {
            return;
        }

        meteogram.temperatures.push({
            x: from,
            y: Math.round((parseFloat(dwd.STN_10738.TTT[i])-273.15) * 10)/10,
            to: to
        });

        meteogram.precipitations.push({
            x: from,
            y: parseFloat(dwd.STN_10738.RR1c[i])/10
        });

        if (i % 2 === 0) {
            meteogram.winds.push({
                x: from,
                value: parseFloat(dwd.STN_10738.FF[i]),
                direction: parseFloat(dwd.STN_10738.DD[i]),
                value_kmh: Math.round(parseFloat(dwd.STN_10738.FF[i]) * 3.6)
            });
        }

        meteogram.pressures.push({
            x: from,
            y: parseFloat(dwd.STN_10738.PPPP[i])/100.0
        });

        if (i === 0) {
            pointStart = (from + to) / 2;
        }
    }

    // Create the chart when the data is loaded
    this.createChart();
};
// End of the Meteogram protype

// On DOM ready...
jQuery.getJSON(
    '10738.json',
    function (dwd) {
        window.meteogram = new Meteogram(dwd, 'mg_container');
    }
);
</script>

Mit HighCharts ist das schnell gemacht und kostenlos bei nicht-kommerzieller Verwendung.

Schwieriger wird es mit der Einbindung von Wettersymbolen und anderer Wetterparameter, wie Bedeckungsgrad, Sonnenscheindauer, etc. Allerdings ist so eine Wetterseite ein Langzeitprojekt und gut Ding will Weile haben...

Das JSON-Dokument musste ich leicht abändern, da die Stations-Id  10738 kein gültiger Objektname ist. Jetzt: STN_10738

Offline Lukas

    • http://www.rheintalmeteo.ch/
  • Registriert:
    01.03.2009, 20:35:33
  • Beiträge: 59
  • Ort:
    Widnau, SG, CH
  • Station:
    Davis Vantage Pro 2 Plus
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #6 am: 05.03.2018, 23:10:41
Hoi zäme,

Die Meteogramme von http://tools.wettersoftware.de/ sind wohl von meinen (https://profiwetter.ch) inspiriert :D Jedenfalls eine geile Sache!

Unglaublich, was der DWD mit den KMZs in die Welt schmeisst, die angesprochene Stunden-Auflösung ist ja genial. Ich freue mich wenn damit entwickelt wird, @falk ist ja schon auf gutem Wege  :top:

Offline Robbie

    • http://wetterstation-obernau.de
  • Registriert:
    07.04.2002, 02:00:00
  • Beiträge: 424
  • Ort:
    Aschaffenburg/Obernau
  • Station:
    WS 3001
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #7 am: 06.03.2018, 22:18:39
Hallo und zur Info.
Wollte mir auch das Programm Meteogramm einbauen. Ging auch für einen nur halbwegs versierten Internetnutzer relativ einfach. Hatte jedoch Probleme mit der Darstellung bei dem Fuchs und IE. Eine Mail an Christian und einen Tag später gab es ein Update und alles funzte. Das nennt man Top Service und das ist für mich Empfehlenswert.
Gruss Robert

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #8 am: 06.03.2018, 23:34:00
Nicht, dass ihr mich falsch versteht. Mir geht es hier weniger um fertige Lösungen für das Einbinden in Webseiten. Ich möchte stattdessen Methoden dokumentieren, mit denen sich MOSMIX-Vorhersagen im KML-Format nutzen lassen. Sozusagen als Anregung für eigene Entwicklungen. Wenn sich hier eine Diskussion zwischen Entwicklern ergibt, dann umso besser. Nicht zuletzt für mich.

Die Meteogramme von Christian und Lukas sind beide fantastisch. Mit meinen fehlerbehafteten Zwischenergebnissen komme ich nicht dagegen an. Das will ich auch gar nicht. Hier geht es um Algorithmen und nicht um Vergleiche darüber, wessen Service besser ist. Aber hey, mein Meteogramm ist nun responsiv und ihr könnte es nachbauen :-) https://buwx.de/index.php/chart/meteogramm-dwd

Wetterstationen.info Forum

Re: MOSMIX-Vorhersagen im neuen Format
« Antwort #8 am: 06.03.2018, 23:34:00 »

Offline falk

    • Wetterstation Scharnhausen
  • Registriert:
    15.04.2015, 07:28:04
  • Beiträge: 702
  • geogr. Position:
    48°42' 9°16'
  • Station:
    Davis Vantage Vue
Re: MOSMIX-Vorhersagen im neuen Format
Antwort #9 am: 08.03.2018, 08:16:26
Zum neuen Format gibt es jetzt auch eine News: https://www.dwd.de/DE/leistungen/opendata/neuigkeiten/opendata_mar2018_01.html

Es lohnt sich, die Änderungen regelmäßig zu prüfen.