Користувач: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)