Meeskond "Söörlösed": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 30: Line 30:
====[[Jaamade koordinaatide XML]]====
====[[Jaamade koordinaatide XML]]====
====[[Jaamade koordinaadid koos õhutemperatuuriga  HTML-i XSLT abil ]]====
====[[Jaamade koordinaadid koos õhutemperatuuriga  HTML-i XSLT abil ]]====
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="/">
      <!-- XML dokumendid muutujatena-->
          <xsl:variable name="emhi" select="document('http://www.emhi.ee/ilma_andmed/xml/observations.php')"/>
          <xsl:variable name="gps" select="document('jaamad_koordinaadid.xml')"/>
      <html>
       
        <head>
          <title>Temperatuurid</title>
        </head>
       
        <body>
         
          <table>
           
            <tr>
             
              <td>
                <b>Jaam</b>
              </td>
              <td>
                <b>Laiuskraadid</b>
              </td>
              <td>
                <b>Laiusminutid</b>
              </td>
              <td>
                <b>Laiussekundid</b>
              </td>
              <td>
                <b>Pikkuskraadid</b>
              </td>
              <td>
                <b>Pikkusminutid</b>
              </td>
              <td>
                <b>Pikkussekundid</b>
              </td>
              <td>
                <b>Õhutemperatuur</b>
              </td>
            </tr>
            <xsl:for-each select="$emhi//station">
              <tr>
                <!-- teeme muutuja, mis jätab meelde jaama nime -->
                <xsl:variable name="jnimi" select="name"></xsl:variable>
                <td>
                  <xsl:value-of select="$jnimi"/>
                </td>
                <!-- otsime jnimi nimega jaama laiuskraadide kraadid -->
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/kraad"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/minut"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/sekund"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/kraad"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/minut"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/sekund"/>
                </td>
                <td>
                  <xsl:value-of select="airtemperature"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>
</source>


==Päevik==
==Päevik==

Revision as of 19:07, 2 April 2012

Plaan

Teeme väga hajusa rakenduse ehk veebiteenuse mis omakorda tarbib veebiteenust. Plaan järgmine: EMHI pakub iga tunni aja tagant tasuta ilmainfot oma mõningatest vaatlusjaamadest Lehel: http://www.emhi.ee/index.php?ide=32,1255 Seal on link http://www.emhi.ee/ilma_andmed/xml/observations.php kus värsked mõõdetud ilmaandmed on kättesaadavad 10 minutit peale igat täistundi.

Meil on plaan tekitada veebiteenus, mis vastavalt sisestatud GPS koordinaatidele ja kuupäev-kellaajale kuvab ilmainfo. Ilmainfo kuvamiseks peame esmalt tekitama XML faili mõõtejaamade kohta. Jaamad, mis meie XML faili lähevad peavad vastama alljärgnevale kahele tingimusele: 1. Iga jaam peab olema jaamade listis, mis on kirjas http://www.emhi.ee/ilma_andmed/xml/observations.php failis (s.t tema mõõteandmed edastatakse iga tunni tagant) 2. Jaamal peavad olema koordinaadid - need saab lingilt http://www.emhi.ee/index.php?ide=7 ,,Meteoroloogiajaamad" nimeliselt kaardilt jaama lingile klikkides. Esmalt peame valmis tegema n.ö staatilise ehk siis käsitsi sisse löödud XML faili meid huvitavate (punkt 1. olevate) jaamade koordinaatidega. Teise XML faili saame eelpool nimetatud lingilt: http://www.emhi.ee/ilma_andmed/xml/observations.php XSLT abil paneme need 2 kokku - seda esitame oma XML-i pähe.

Edasi on meil plaan kirjutada 2 C# juppi. 1. Programm, mis hakkab iga tunni tagant EMHI käest ilmaandmeid küsima ja neid andmebaasi kirjutama. 2. Veebiteenus, mis saadud kuupäeva-kellaaja ja Eesti piires olevate koordinaatide abil arvutab välja ilmaandmed.

Ilmainfo väljaarvutamiseks kasutaks esialgu kahe lähima jaama vahel lineaarset interpoleerimist. S.t see võiks käia nii: N: Roomassaare jaamas on 1 kraad sooja ja Virtsu jaamas on 4 kraadi sooja. Nende andmete põhjal tahan teada, palju Kuivastus on sooja. Olgu Roomassaare-Virtsu vahemaa 80 km ning Kuivastu-Virtsu vahemaa 15 km. Roomasaarest -Virtsu tõuseb temp. iga kilomeetri kohta 3/80 kraadi, seega saan välja arvutada suvalise punkti temperatuuri, mis jääb Roomassaare-Virtsu vahele. Et Kuivastu on 15 km Virtsust-Roomassaare poole, siis lahutan 4-(15*3/80)=4-45/80=4-0,55=3,45 kraadi.

XML

Jaamade koordinaatide XML

Jaamade koordinaadid koos õhutemperatuuriga HTML-i XSLT abil

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="/">
      <!-- XML dokumendid muutujatena--> 
          <xsl:variable name="emhi" select="document('http://www.emhi.ee/ilma_andmed/xml/observations.php')"/>
          <xsl:variable name="gps" select="document('jaamad_koordinaadid.xml')"/>
      <html>
        
        <head>
          <title>Temperatuurid</title>
        </head>
        
        <body>
          
          <table>
            
            <tr>
              
              <td>
                <b>Jaam</b>
              </td>
              <td>
                <b>Laiuskraadid</b>
              </td>
              <td>
                <b>Laiusminutid</b>
              </td>
              <td>
                <b>Laiussekundid</b>
              </td>
              <td>
                <b>Pikkuskraadid</b>
              </td>
              <td>
                <b>Pikkusminutid</b>
              </td>
              <td>
                <b>Pikkussekundid</b>
              </td>
              <td>
                <b>Õhutemperatuur</b>
              </td>
            </tr>
            <xsl:for-each select="$emhi//station">
              <tr>
                <!-- teeme muutuja, mis jätab meelde jaama nime -->
                <xsl:variable name="jnimi" select="name"></xsl:variable>
                <td>
                  <xsl:value-of select="$jnimi"/>
                </td>
                <!-- otsime jnimi nimega jaama laiuskraadide kraadid -->
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/kraad"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/minut"/>
                </td>
                 <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/sekund"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/kraad"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/minut"/>
                </td>
                <td>
                  <xsl:value-of select="$gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/sekund"/>
                </td>
                <td>
                  <xsl:value-of select="airtemperature"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Päevik