Користувач:MaryankoD/Клімат
Перейти до навігації
Перейти до пошуку
Два гарних джерела:
- http://www.yr.no - таблиця температур і опадів
- climate-data.org - загальний опис
Аналіз вручну (більше населених пунктів):
Скрипт[ред. | ред. код]
#!/usr/bin/perl
$line = "January 2.4°C 6.2°C -0.8°C 8
February 4.4°C 8.9°C 0.8°C 7
March 7.6°C 13.0°C 2.9°C 7
April 12.9°C 19.2°C 7.1°C 7
May 17.9°C 24.5°C 11.4°C 7
June 22.0°C 28.8°C 15.0°C 6
July 24.2°C 31.2°C 17.3°C 4
August 23.5°C 30.8°C 16.3°C 3
September 19.6°C 27.1°C 13.0°C 3
October 13.8°C 20.3°C 8.5°C 5
November 9.1°C 14.1°C 5.0°C 7
December 4.6°C 8.3°C 1.3°C 9";
if ($line =~ m/January (.*)°C (.*)°C (.*)°C (.*)/)
{
$jannorm = $1;
$janwarm = $2;
$jancold = $3;
$janprec = $4;
}
if ($line =~ m/February (.*)°C (.*)°C (.*)°C (.*)/)
{
$febnorm = $1;
$febwarm = $2;
$febcold = $3;
$febprec = $4;
}
if ($line =~ m/March (.*)°C (.*)°C (.*)°C (.*)/)
{
$marnorm = $1;
$marwarm = $2;
$marcold = $3;
$marprec = $4;
}
if ($line =~ m/April (.*)°C (.*)°C (.*)°C (.*)/)
{
$aprnorm = $1;
$aprwarm = $2;
$aprcold = $3;
$aprprec = $4;
}
if ($line =~ m/May (.*)°C (.*)°C (.*)°C (.*)/)
{
$maynorm = $1;
$maywarm = $2;
$maycold = $3;
$mayprec = $4;
}
if ($line =~ m/June (.*)°C (.*)°C (.*)°C (.*)/)
{
$junnorm = $1;
$junwarm = $2;
$juncold = $3;
$junprec = $4;
}
if ($line =~ m/July (.*)°C (.*)°C (.*)°C (.*)/)
{
$julnorm = $1;
$julwarm = $2;
$julcold = $3;
$julprec = $4;
}
if ($line =~ m/August (.*)°C (.*)°C (.*)°C (.*)/)
{
$augnorm = $1;
$augwarm = $2;
$augcold = $3;
$augprec = $4;
}
if ($line =~ m/September (.*)°C (.*)°C (.*)°C (.*)/)
{
$sepnorm = $1;
$sepwarm = $2;
$sepcold = $3;
$sepprec = $4;
}
if ($line =~ m/October (.*)°C (.*)°C (.*)°C (.*)/)
{
$octnorm = $1;
$octwarm = $2;
$octcold = $3;
$octprec = $4;
}
if ($line =~ m/November (.*)°C (.*)°C (.*)°C (.*)/)
{
$novnorm = $1;
$novwarm = $2;
$novcold = $3;
$novprec = $4;
}
if ($line =~ m/December (.*)°C (.*)°C (.*)°C (.*)/)
{
$decnorm = $1;
$decwarm = $2;
$deccold = $3;
$decprec = $4;
}
$avenorm = ($jannorm + $febnorm + $marnorm + $aprnorm + $maynorm + $junnorm + $julnorm + $augnorm + $sepnorm + $octnorm + $novnorm + $decnorm) / 12;
$aveprec = $janprec + $febprec + $marprec + $aprprec + $mayprec + $junprec + $julprec + $augprec + $sepprec + $octprec + $novprec + $decprec;
$avecold = ($jancold + $febcold + $marcold + $aprcold + $maycold + $juncold + $julcold + $augcold + $sepcold + $octcold + $novcold + $deccold) / 12;
$avewarm = ($janwarm + $febwarm + $marwarm + $aprwarm + $maywarm + $junwarm + $julwarm + $augwarm + $sepwarm + $octwarm + $novwarm + $decwarm) / 12;
$sernorm = sprintf("%.1f", $avenorm);
$sercold = sprintf("%.1f", $avecold);
$serwarm = sprintf("%.1f", $avewarm);
open FID, ">climate.txt";
print FID<<EndCard
== Географія ==
=== Клімат ===
{{Клімат міста
|Місто_род=Прежені
|Джерело=[http://www.yr.no/place/Romania/Botosani/Pr%C4%83jeni/statistics.html www.yr.no]
| Січ_сер=$jannorm | Січ_опади=$janprec
| Лют_сер=$febnorm | Лют_опади=$febprec
| Бер_сер=$marnorm | Бер_опади=$marprec
| Кві_сер=$aprnorm | Кві_опади=$aprprec
| Тра_сер=$maynorm | Тра_опади=$mayprec
| Чер_сер=$junnorm | Чер_опади=$junprec
| Лип_сер=$julnorm | Лип_опади=$julprec
| Сер_сер=$augnorm | Сер_опади=$augprec
| Вер_сер=$sepnorm | Вер_опади=$sepprec
| Жов_сер=$octnorm | Жов_опади=$octprec
| Лис_сер=$novnorm | Лис_опади=$novprec
| Гру_сер=$decnorm | Гру_опади=$decprec
| Рік_сер=$sernorm | Рік_опади=$aveprec
| Січ_сер_мін=$jancold | Січ_сер_макс=$janwarm
| Лют_сер_мін=$febcold | Лют_сер_макс=$febwarm
| Бер_сер_мін=$marcold | Бер_сер_макс=$marwarm
| Кві_сер_мін=$aprcold | Кві_сер_макс=$aprwarm
| Тра_сер_мін=$maycold | Тра_сер_макс=$maywarm
| Чер_сер_мін=$juncold | Чер_сер_макс=$junwarm
| Лип_сер_мін=$julcold | Лип_сер_макс=$julwarm
| Сер_сер_мін=$augcold | Сер_сер_макс=$augwarm
| Вер_сер_мін=$sepcold | Вер_сер_макс=$sepwarm
| Жов_сер_мін=$octcold | Жов_сер_макс=$octwarm
| Лис_сер_мін=$novcold | Лис_сер_макс=$novwarm
| Гру_сер_мін=$deccold | Гру_сер_макс=$decwarm
| Рік_сер_мін=$sercold | Рік_сер_макс=$serwarm
|br=}}
EndCard
;
Інший скрипт[ред. | ред. код]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
df = pd.read_csv('kikou.csv', delimiter = '\t')
jannorm = df.iloc[0,1]
janprec = int(df.iloc[6,1])
febnorm = df.iloc[0,2]
febprec = int(df.iloc[6,2])
marnorm = df.iloc[0,3]
marprec = int(df.iloc[6,3])
aprnorm = df.iloc[0,4]
aprprec = int(df.iloc[6,4])
maynorm = df.iloc[0,5]
mayprec = int(df.iloc[6,5])
junnorm = df.iloc[0,6]
junprec = int(df.iloc[6,6])
julnorm = df.iloc[0,7]
julprec = int(df.iloc[6,7])
augnorm = df.iloc[0,8]
augprec = int(df.iloc[6,8])
sepnorm = df.iloc[0,9]
sepprec = int(df.iloc[6,9])
octnorm = df.iloc[0,10]
octprec = int(df.iloc[6,10])
novnorm = df.iloc[0,11]
novprec = int(df.iloc[6,11])
decnorm = df.iloc[0,12]
decprec = int(df.iloc[6,12])
jancold = df.iloc[1,1]
janwarm = df.iloc[2,1]
febcold = df.iloc[1,2]
febwarm = df.iloc[2,2]
marcold = df.iloc[1,3]
marwarm = df.iloc[2,3]
aprcold = df.iloc[1,4]
aprwarm = df.iloc[2,4]
maycold = df.iloc[1,5]
maywarm = df.iloc[2,5]
juncold = df.iloc[1,6]
junwarm = df.iloc[2,6]
julcold = df.iloc[1,7]
julwarm = df.iloc[2,7]
augcold = df.iloc[1,8]
augwarm = df.iloc[2,8]
sepcold = df.iloc[1,9]
sepwarm = df.iloc[2,9]
octcold = df.iloc[1,10]
octwarm = df.iloc[2,10]
novcold = df.iloc[1,11]
novwarm = df.iloc[2,11]
deccold = df.iloc[1,12]
decwarm = df.iloc[2,12]
avenorm = int((jannorm + febnorm + marnorm + aprnorm + maynorm + junnorm + julnorm + augnorm + sepnorm + octnorm + novnorm + decnorm) / 12)
aveprec = int(janprec + febprec + marprec + aprprec + mayprec + junprec + julprec + augprec + sepprec + octprec + novprec + decprec)
avecold = int((jancold + febcold + marcold + aprcold + maycold + juncold + julcold + augcold + sepcold + octcold + novcold + deccold) / 12)
avewarm = int((janwarm + febwarm + marwarm + aprwarm + maywarm + junwarm + julwarm + augwarm + sepwarm + octwarm + novwarm + decwarm) / 12)
text =u"== Географія ==\n" + \
u"\n" + \
u"=== Клімат ===\n" + \
u"\n" + \
u"{{Клімат міста\n" + \
u"|Місто_род=\n" + \
u"|Джерело=[ climate-data.org]\n" + \
u"\n" + \
u"| Січ_сер=" + str(jannorm) + u" | Січ_сер_опади=" + str(janprec) + u"\n" + \
u"| Лют_сер=" + str(febnorm) + u" | Лют_сер_опади=" + str(febprec) + u"\n" + \
u"| Бер_сер=" + str(marnorm) + u" | Бер_сер_опади=" + str(marprec) + u"\n" + \
u"| Кві_сер=" + str(aprnorm) + u" | Кві_сер_опади=" + str(aprprec) + u"\n" + \
u"| Тра_сер=" + str(maynorm) + u" | Тра_сер_опади=" + str(mayprec) + u"\n" + \
u"| Чер_сер=" + str(junnorm) + u" | Чер_сер_опади=" + str(junprec) + u"\n" + \
u"| Лип_сер=" + str(julnorm) + u" | Лип_сер_опади=" + str(julprec) + u"\n" + \
u"| Сер_сер=" + str(augnorm) + u" | Сер_сер_опади=" + str(augprec) + u"\n" + \
u"| Вер_сер=" + str(sepnorm) + u" | Вер_сер_опади=" + str(sepprec) + u"\n" + \
u"| Жов_сер=" + str(octnorm) + u" | Жов_сер_опади=" + str(octprec) + u"\n" + \
u"| Лис_сер=" + str(novnorm) + u" | Лис_сер_опади=" + str(novprec) + u"\n" + \
u"| Гру_сер=" + str(decnorm) + u" | Гру_сер_опади=" + str(decprec) + u"\n" + \
u"| Рік_сер=" + str(avenorm) + u" | Рік_сер_опади=" + str(aveprec) + u"\n" + \
u"\n" + \
u"| Січ_сер_мін=" + str(jancold) + u" | Січ_сер_макс=" + str(janwarm) + u"\n" + \
u"| Лют_сер_мін=" + str(febcold) + u" | Лют_сер_макс=" + str(febwarm) + u"\n" + \
u"| Бер_сер_мін=" + str(marcold) + u" | Бер_сер_макс=" + str(marwarm) + u"\n" + \
u"| Кві_сер_мін=" + str(aprcold) + u" | Кві_сер_макс=" + str(aprwarm) + u"\n" + \
u"| Тра_сер_мін=" + str(maycold) + u" | Тра_сер_макс=" + str(maywarm) + u"\n" + \
u"| Чер_сер_мін=" + str(juncold) + u" | Чер_сер_макс=" + str(junwarm) + u"\n" + \
u"| Лип_сер_мін=" + str(julcold) + u" | Лип_сер_макс=" + str(julwarm) + u"\n" + \
u"| Сер_сер_мін=" + str(augcold) + u" | Сер_сер_макс=" + str(augwarm) + u"\n" + \
u"| Вер_сер_мін=" + str(sepcold) + u" | Вер_сер_макс=" + str(sepwarm) + u"\n" + \
u"| Жов_сер_мін=" + str(octcold) + u" | Жов_сер_макс=" + str(octwarm) + u"\n" + \
u"| Лис_сер_мін=" + str(novcold) + u" | Лис_сер_макс=" + str(novwarm) + u"\n" + \
u"| Гру_сер_мін=" + str(deccold) + u" | Гру_сер_макс=" + str(decwarm) + u"\n" + \
u"| Рік_сер_мін=" + str(avecold) + u" | Рік_сер_макс=" + str(avewarm) + u"\n" + \
u"|br=}}\n"
print(text)