vignettes/articles/pl.Rmd
pl.Rmd
Głównym celem pakietu climate jest zapewnienie wygodnego i programowalnego dostępu do danych meteorologicznych i hydrologicznych z publicznie dostępnych repozytoriów:
Polski Instytut Metrologii i Gospodarki Wodnej - Państwowy Instytut Badawczy (IMGW-PIB)
OGIMET (ogimet.com)
Strona University of Wyoming - dane atmosferycznego profilowania pionowego (http://weather.uwyo.edu/upperair/).
Pakiet climate składa się z czterech głównych funkcji - dwóch dla danych meteorologicznych, jednej dla danych hydrologicznych i jednej dla sondowania meteo:
meteo_ogimet() - Umożliwia pobieranie godzinnych i dziennych danych meteorologicznych ze stacji SYNOP dostępnych w repozytorium ogimet.com. Każda stacja meteorologiczna (Synoptyczna) pracująca w ramach World Meteorological framework powinna być dostępne po roku 2000 roku
meteo_imgw() - Pozwala pobrać dane
meteorologiczne interwale godzinowym, dziennym lub miesięcznym o danej
randze stacji(SYNOP / CLIMATE / PRECIP) dostępnych w kolekcji
dane.imgw.pl. Jest to wrapper funckji meteo_monthly()
,
meteo_daily()
oraz meteo_hourly()
z pakietu
imgw (poprzedniej wersji paczki).
meteo_shortening() - Skracanie nazw kolumn parametrów meteorologicznych poprawiając czytelność pobranego zestawu danych i usuwanie zduplikowanych nazw kolumn.
meteo_monthly()
, meteo_daily()
oraz
meteo_hourly()
z pakietu imgw (poprzedniej
wersji paczki).Pokażemy, jak korzystać z naszego pakietu i przygotować dane do analizy przestrzennej z dodatkową pomocą paczek dplyr oraz tidyr. Najpierw pobierzemy 10 lat (2001-2010) miesięcznych obserwacji hydrologicznych dla wszystkich dostępnych stacji i automatycznie dodają ich współrzędne przestrzenne.
#> Your system locale is: C.UTF-8 which may cause trouble.
#> Please consider changing it manually while working with climate, e.g.:
#> Sys.setlocale(category = 'LC_ALL', locale = 'en_US.UTF-8')
#> /tmp/Rtmpp2lmuh/file1af119f26c
#> /tmp/Rtmpp2lmuh/file1af169353bf7
#> /tmp/Rtmpp2lmuh/file1af11b60f3ee
#> /tmp/Rtmpp2lmuh/file1af15887a127
#> /tmp/Rtmpp2lmuh/file1af111954a4a
#> /tmp/Rtmpp2lmuh/file1af15f81f6f9
#> /tmp/Rtmpp2lmuh/file1af139803861
#> /tmp/Rtmpp2lmuh/file1af154d0da3d
#> /tmp/Rtmpp2lmuh/file1af17fe3abbf
#> /tmp/Rtmpp2lmuh/file1af179795eb9
#> /tmp/Rtmpp2lmuh/file1af153062666
#> /tmp/Rtmpp2lmuh/file1af110168160
#> id X Y date station riv_or_lake hyy idhyy idex H Q
#> 1 151160130 NA NA 2000-11-01 ?CINAWA Odra (1) 2001 1 1 147 73.6
#> 2 151160130 NA NA 2000-11-01 ?CINAWA Odra (1) 2001 1 2 183 111.0
#> 3 151160130 NA NA 2000-11-01 ?CINAWA Odra (1) 2001 1 3 234 166.0
#> 4 151160130 NA NA 2000-12-01 ?CINAWA Odra (1) 2001 2 1 156 81.4
#> 5 151160130 NA NA 2000-12-01 ?CINAWA Odra (1) 2001 2 2 182 109.0
#> 6 151160130 NA NA 2000-12-01 ?CINAWA Odra (1) 2001 2 3 222 153.0
#> T mm
#> 1 7.0 11
#> 2 8.3 11
#> 3 10.0 11
#> 4 3.4 12
#> 5 5.2 12
#> 6 7.0 12
Zmienna idex
reprezentuje id ekstremum, gdzie “1”
oznacza minimum, “2” oznacza średnią, a “3” maksimum. 1 Analizy hydrologiczne
często koncentrują się na jednej grupy zjawisk, np. związanych z
przepływami maksymalnymi. W tym celu pozostaną w ramce danych tylko
wartości przepływów maksymalnych oraz kolumny zawierające interesujące
nas informacje, tj. identyfikator stacji - id
, rok
hydrologiczny (hyy
), szerokość geograficzną X
i długość geograficznąY
. Następnie obliczymy średnią
maksymalną wartość przepływu na stacjach w każdym roku za pomocą **
dplyr ** summarise()
, oraz rozdzielimy dane według roku
używając ** tidyr **’ spread ()
aby uzyskać roczne średnie
maksymalne przepływy w kolejnych kolumnach.
h2 = h %>%
filter(idex == 3) %>%
select(id, station, X, Y, hyy, Q) %>%
group_by(hyy, id, station, X, Y) %>%
summarise(srednie_roczne_Q = round(mean(Q, na.rm = TRUE),1)) %>%
spread(hyy, srednie_roczne_Q)
#> `summarise()` has grouped output by 'hyy', 'id', 'station', 'X'. You can
#> override using the `.groups` argument.
id | station | X | Y | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
149180010 | KRZYZANOWICE | NA | NA | 200.5 | 147.4 | 87.9 | 109.2 | 170.6 | 226.9 | 152.9 | 131.0 | 160.9 | 461.1 |
149180020 | CHALUPKI | NA | NA | 174.7 | 96.7 | 57.6 | 91.8 | 146.9 | 170.6 | 110.2 | 101.6 | 124.7 | 314.6 |
149180030 | LAZISKA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 210.3 |
149180040 | GOLKOWICE | NA | NA | 4.5 | 2.0 | 1.7 | 1.7 | 2.5 | 3.3 | 2.1 | 1.7 | 2.2 | 8.6 |
149180050 | ZEBRZYDOWICE | NA | NA | 13.5 | 7.9 | 3.8 | 5.0 | 10.4 | 6.5 | 5.8 | 2.8 | 4.5 | 23.6 |
149180060 | CIESZYN | NA | NA | 57.2 | 57.7 | 29.8 | 26.8 | 65.4 | 60.7 | 54.7 | 33.0 | 34.7 | 135.0 |
Wynik pokazuje jak zmienia się maksymalna roczna średnia prędkość przepływu wody w ciągu dekady dla wszystkich dostępnych stacji w Polsce. Możemy zapisać to do:
.csv przy pomocą funckcji:
write.csv(result, file = "result.csv", sep = ";",dec = ".", col.names = T, row.names = F)
.
To polecenie zapisuje nasz wynik do pliku: result.csv
,
gdzie separatorem kolumn jest ;
, część dziesiętna liczby
następuje po .
, zachowujemy nagłówki kolumn i usuwamy nazwy
wierszy, które są po prostu liczbami obserwacji.
.xlsx przy pomocą funckcji:
write.xlsx(result, file = "result.xlsx", sheetName = "Poland", append = FALSE)
To polecenie zapisuje nasz wynik do pliku: result.xlsx
o
nazwie arkusza Poland
. Argument append=TRUE
dodaje arkusz do istniejącego pliku .xlsx
. By zapisać dane
do formatu.xlsx
najpierw należy zaisntalować pakiet
writexl przy pomocy
komendyinstall.packages("writexl")
, oraz dodać go do
naszego środowiska: library(writexl)
.
library(sf)
library(tmap)
library(rnaturalearth)
library(rnaturalearthdata)
world = ne_countries(scale = "medium", returnclass = "sf")
h3 = h2 %>%
filter(!is.na(X)) %>%
st_as_sf(coords = c("X", "Y"))
tm_shape(h3) +
tm_symbols(size = as.character(c(2001:2010)),
title.size = "Średni przepływ maksymalny") +
tm_facets(free.scales = FALSE, ncol = 4) +
tm_shape(world) +
tm_borders(col = "black", lwd = 2) +
tm_layout(legend.position = c(-1.25, 0.05),
outer.margins = c(0, 0.05, 0, -0.25),
panel.labels = as.character(c(2001:2010)))
Więcej informacji na ten temat można znaleźć w zestawie
danychhydro_abbrev
.↩︎