ZEVS Forum

Nove ARSO samodejne postaje

Začel/a BLISKS, 29. Junij 2015, 22:43:37

Prejšnja tema - Naslednja tema

0 Člani in 1 Gost gledajo to temo.

gregach

Citat od: komar dne 12. Maj 2021, 00:07:53
Ja, bo šlo tudi hitreje. :) Označi vse podatke iz obeh stolpcev, ki ti jih da Arsov arhiv in jih najprej prekopiraj v Beležnico (WordPad), verjetno bi šlo tudi v Word. Potem pa daš komando, da program avtomatsko zamenja vse pike z vejicami, potem pa takšne podatke prekopiraš v Excel (če bi uvozil podatke direktno s pikami namesto vejicami, ti jih namreč Excel spremeni v datumsko obliko, to si najbrž že sam opazil). Potem pa se lahko igraš naprej, samo pazi na morebitne luknje v podatkih, da jih izločiš, sicer se zna zgoditi, da ti bo pri izračunu manjkajočih polurnih povprečij upošteval 0,0°C, to ti pa najbrž ne ustreza.

Sem tudi sam pisal na ARSO in so mi celo poslali podatke za december 2020 na 1 decimalko natančno, za ostalo so mi pa rekli naj si sam izračunam.  :icon_haha:
Bom najprej poizkusil na roke izračunat za 1 mesec, pa da vidim, koliko časa mi vzame, ker tole na računalniku ne vem, če mi bo ratalo.
"Baba je tako kot oblak: če gre stran bo morda še lep dan."

komar

#166
December 2020 +2,558467742°C? A je dosti natančno? Ne vem, če je trajalo več kot eno minuto ;D. Je pa zanimivo, da cel mesec ni niti ene luknje v podatkih. Komaj čakam, da se lotim še Lesc. Pa marsikdo se bo zdaj lotil še česa drugega, Pandorina skrinjica se je odprla... ;D

Če pa zbrišeš prvi podatek (01. 12. 2020 ob 00.00, ki paše še pod november 2020) in pa dodaš še 1. januar 2021 ob 0.00, ki pa paše pod december 2020, pa pride +2,560147849°C.

Če se ti ne mudi, vsaj toliko počakaj, da pogruntamo, kako podatke prekopirati v Kalkulator. :icon_confused:

Tminc

Ko ti izpiše tabelo s podatki, je nad to tabelo gumb "Shrani". Naredi ti eno datoteko, ki jo nato shraniš k sebi.
Tukaj ti pripenjam enostavno python kodo, ki ti fajl prežveči, napiše povprečno temperaturo in še nariše graf.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Ta skripta prebere log file ARSO (polurni podatki) in izpiše vrednosti za izbrani dan.

import sys
import time
import datetime
from datetime import datetime
import matplotlib.pyplot as plt

if len(sys.argv) < 1:
    print "\nUsage:   python parseARSO.py <filename>\n"
    exit()

datoteka=sys.argv[1]

print "Berem datoteko: %s" % datoteka

cas=[]
temp=[]

for line in open(datoteka, 'r'):
  fields = line.split(",")
  if fields[0] != "station id":
    c=datetime.strptime(fields[2], "%Y-%m-%d %H:%M")
    c1 = (c - datetime(1970, 1, 1)).total_seconds()
    cas.append(int(c1))
    temp.append(float(fields[3]))

cas = [x - cas[0] for x in cas]
cas = [x/3600 for x in cas]

print ("Povprečna temperatura: %.1f °C" % float(sum(temp)/len(temp)))

plt.figure()
plt.plot(cas,temp)
plt.grid(True)
plt.ylabel('temperatura [C]')
plt.xlabel('cas [h]')
plt.show()

komar

#168
December 2016: -0,929099462°C
December 2017: +2,253158602°C
December 2018: +1,644758065°C
December 2019: +2,896169355°C
December 2020: +2,560147849°C

Pri decembru 2020 sta prvi in zadnji podatek ročno popravljena, ostalo sem pustil, tako kot ima ARSO. Manjkajočih podatkov oz. lukenj ni videti. :o

Za december 2019 sem porabil minuto in 38 sekund, sem pa imel oba datuma že vnesena od prejšnjega leta, kar seveda prihrani kakšnih 10-15 sekund. Plus dodatno rabiš še enih 20 sekund za formulo, ki ti izračuna povprečje. Chuck Norris ti pa baje res izračuna v manj kot minuti, samo to so informacije iz neuradnih virov... ;D

Ti pa Excel datoteko ob priliki pošljem še po e-pošti.

@Tminc: ti pa potem zdaj lahko narediš kontrolo... A mogoče to kodo programer lahko vnese v program Vremenko (Ognjena veverica)? Tam so tudi to včasih imeli krasno rešeno, zdaj pa so od tabel in grafov ostale samo še ruševine...

gregach

Uuu, hvala obema!  :beerchug:  :praise:
Ja me boš moral naučit, da te ne bom več obremenjeval ... ker bom enkrat v prihodnosti rabil še podatke za januar in februar ...
"Baba je tako kot oblak: če gre stran bo morda še lep dan."

komar

#170
No, to me zanima, kaj se zgodi z izračuni, ko se med podatki pojavi takšna luknja, kot je npr. nastala danes med 7.30 in 13.30 uro na letališču Lesce... Saj če računaš za cel mesec, ne vpliva toliko na končni izračun povprečja, če pa računaš za en sam dan...

komar

Citat od: Tminc dne 13. Maj 2021, 14:21:30
Ko ti izpiše tabelo s podatki, je nad to tabelo gumb "Shrani". Naredi ti eno datoteko, ki jo nato shraniš k sebi.
Tukaj ti pripenjam enostavno python kodo, ki ti fajl prežveči, napiše povprečno temperaturo in še nariše graf.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Ta skripta prebere log file ARSO (polurni podatki) in izpiše vrednosti za izbrani dan.

import sys
import time
import datetime
from datetime import datetime
import matplotlib.pyplot as plt

if len(sys.argv) < 1:
    print "\nUsage:   python parseARSO.py <filename>\n"
    exit()

datoteka=sys.argv[1]

print "Berem datoteko: %s" % datoteka

cas=[]
temp=[]

for line in open(datoteka, 'r'):
  fields = line.split(",")
  if fields[0] != "station id":
    c=datetime.strptime(fields[2], "%Y-%m-%d %H:%M")
    c1 = (c - datetime(1970, 1, 1)).total_seconds()
    cas.append(int(c1))
    temp.append(float(fields[3]))

cas = [x - cas[0] for x in cas]
cas = [x/3600 for x in cas]

print ("Povprečna temperatura: %.1f °C" % float(sum(temp)/len(temp)))

plt.figure()
plt.plot(cas,temp)
plt.grid(True)
plt.ylabel('temperatura [C]')
plt.xlabel('cas [h]')
plt.show()


Če ima kdo kaj viška volje in časa ter obvlada te kode, se priporočam za 10-minutne odčitke padavin tekom sredine povodnji v Ljubljani-Bežigrad. Graf bi tudi prav prišel. V Vidmu (Dobrepolje) je namreč npr. v 5 minutah te nevihte padlo 12,4 mm.:icon_wink:

Tminc

V ARSO arhivu so na voljo samo polurni podatki s postaje Bežigrad. Verjetno je časovna resolucija pregroba in graf ne bo pomenil kaj dosti.

komar

Uf, hvala, ravno sem še ujel na spletu. 25,1 mm je padlo v 10 minutah.