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