POLTEMP 1.0H6

POLTEMP 1.0H6

Dzisiaj pojawi się nowa wersja serii Poltemp, oznaczona jako 1.0H6. Zmiany w stosunku do wersji poprzedniej:

  • Dodano dane ze stacji w Pułtusku. Z uwagi na silną niehomogeniczność usunięto dane sprzed 1961.
  • Dodano dane ze stacji w Lgocie Górnej
  • Przeprowadzono homogenizację danych ze stacji w Kłodzku (zmiana lokalizacji stacji w latach 70. XX w.)
  • Uzupełniono dane ze stacji Gdańsk-Rębiechowo (klimatologiczna) danymi ze stacji synoptycznej z tej samej lokalizacji (01.04.1993 – 31.12.1999). Oczywiście z zachowaniem metody wyliczania średniej dobowej charakterystycznej dla stacji klimatologicznych
  • Poprawiono dane ze stacji Szepietowo z dni 18-31 grudnia 1995 (regr. lin. z Białystok) i innych dni z lat 1991-1998
  • Poprawione dane ze stacji Borusowa z dni:
    6 – 13 maja 1998 (błędne dane z terminu wieczornego, np: https://meteomodel.pl/dane/historyczne-dane-pomiarowe/?data=1998-05-09&rodzaj=te&imgwid=250200230&dni=01&ord=desc )
    9 – 13 czerwca 1998
    7 – 8 września 1991
  • Nowa funkcja agregacji danych (skrypt R)
  • Nowa metoda krigingu: wynik agregacji danych (df1) jest poddawany interpolacji IDW (na bardzo rzadkiej siatce):grd <- as.data.frame(spsample(df1, „regular”, n=300))
    P.idw <- gstat::idw(VALUE ~ 1, df1, newdata=grd, idp=3.0)

    wynik idw jest zapisywany jako dodatkowe dane wejściowe do krigingu, które są później łączone z zagregowanymi danymi ze stacji:

    data_idw <- read.csv(dataf_idw,sep=”\t”, header=T)
    data <- read.csv(dataf,sep=”\t”, header=T)
    df <- rbind(data,data_idw)

    Kriging liczony jest na połączonych danych.

  • Z uwagi na zmienioną metodę krigingu (idw + kriging blokowy [DEM]) wyniki są nieco bardziej zbliżone do IDW, chyba że istnieje silna zależność wartości
    anomalii od wysokości.
  • Obliczenia dokonywane są na siatce kilometrowej
  • Rozdzielczość 4×4 km

Źródło danych administracyjnych:

Granice administracyjne


Data pobrania z CODGiK: 18-01-2019

Z uwagi na zmiany w liczbie stacji wchodzących do agregacji, zmieniły się  również szacowane wartości normalne dla średnich dobowych temperatur powietrza. Wartości te zostały policzone tylko dla okresu referencyjnego 1981-2010 i nie są liczone na bieżąco. Bieżące oszacowanie obszarowej średniej dobowej temperatury powietrza wynika z dodania obliczonej dla konkretnego dnia (np. 28 czerwca 2019) anomalii obszarowej (która wyliczona jest na podstawie danych ze stacji pomiarowych) do wyliczonej wcześniej średniej temperatury tego dnia w okresie referencyjnym. Przykładowo: wyliczono, że średnia obszarowa temperatura dobowa w dniu 28 czerwca  w latach 1981-2010 wynosi 17.18°C. Z danych ze stacji z dnia 28 czerwca 2019 wynika średnia anomalia obszarowa tej doby równa +0.29°C, a więc oszacowana obszarowa średnia dobowa temperatura powietrza w tym dniu to 17.18 + 0.29 = 17.47°C. Wartość ta nie jest więc wyliczona, jako średnia obszarowa z średnich temperatur dobowych ze stacji. Wynika to z faktu, że oszacowanie średniej temperatury obszarowej mocno zależy od doboru stacji. Brak danych ze Śnieżki w danym dniu może spowodować znaczne różnice w tym oszacowaniu. Z kolei anomalie temperatury są zwykle mocno skorelowane na dużym obszarze – ciepły dzień we Wrocławiu zwykle jest również ciepłym dniem w Poznaniu. Braki w danych znacznie mniej wpływają na wartości wyliczonej średniej obszarowej anomalii temperatury.

Powyżej: norma temperatury powietrza dla 28 czerwca.

Część danych w serii jest homogenizowana. Szczególnie dotyczy to takich stacji, jak Elbląg-Milejewo, Wrocław, Warszawa, Białystok. Dane ze stacji klimatologicznych w latach 1971-1995 zostały przeliczone ponownie przy użyciu obecnej metody wyliczania średniej dobowej temperatury powietrza w celu zachowania jednorodności.

Dane z serii 1.0H6 można znaleźć pod poniższym adresem:

https://meteomodel.pl/klimat/poltemp/1.0H6/

Obecnie są tam dostępne katalogi:

  • agg: zawiera agregację danych miesięcznych – pliki wejściowe do interpolacji danych miesięcznych
  • daily: zawiera wyliczone dobowe anomalie temperatury powietrza jako pliki png i rastry (tif)
  • monthly: zawiera wyliczone średnie miesięczne anomalie temperatury powietrza jako pliki png i rastry (tif) – będzie uzupełniony wieczorem
  • normals: zawiera wyliczone wartości normalne dla danych dni w okresie referencyjnym jako pliki png i rastry (tif)
  • trends: zawiera wyliczone średnie roczne dla kilkudziesięciu stacji wraz z trendem

Oraz pliki:

  • tseries-daily.txt: seria czasowa anomalii dobowych
  • tseries-normals.txt: wartości średnie w okresie referencyjnym 1981-2010

Dodatkowo później pojawią się pliki połączone z serią historyczną.

Poniżej: porównanie anomalii dobowej z 11 marca 2019 wg wstępnej analizy (po lewej) i ostatecznej.

Poniżej: porównanie anomalii dobowej z 16 kwietnia 2019 wg wstępnej analizy (po lewej) i ostatecznej.

 

Przykładowy skrypt R do czytania rastrów:

 

library(raster)
library(httr)

url <- "https://meteomodel.pl/klimat/poltemp/1.0H6/daily/tif/2019/04/anom.2019-04-30.tif"
tif <- tempfile(fileext='.tif')
httr::GET(url,httr::write_disk(path=tif))
r <- raster(tif)

pal<-c("#FFA0FF","#FE77FE","#E059FF","#C63DAF","#B51EA0","#8C0096","#7700B5","#4400D1","#0000FE","#0063FF","#00B5FF","#00D6FF","#CBFEFE","#FDFDFD","#30FF70","#4FFE4F","#B5EF1E","#DAFE00","#FEFE00","#FEDA00","#FFC600","#FFAA00","#FF7F00","#FF3F00","#FF0000","#D10033","#B50077","#CC00A0","#FF00B5","#FF8CB5","#FFA0FF")
pal <- colorRampPalette(pal)(24)
brk <- seq(-12,12,1)
levs=c(seq(from=-20, to=20, by=0.5))
labs <- sprintf("%.1f", levs)

plot(r, main=paste("Anomalia dobowa"),cex.main=1, xaxt='n', yaxt='n', col=pal,breaks=brk)
contour(r, levels=levs, labcex=1, labels=labs, add=T, drawlabels=T)

 

UWAGA! Dane zapisane w układzie lat-lon (epsg:4326) i nie przycięte do granic. Aby prawidłowo policzyć średnią obszarową należy zrobić reprojekcję rastra do siatki kilometrowej i przyciąć do granic Polski.

 

Print Friendly, PDF & Email

7 Replies to “POLTEMP 1.0H6”

  1. A jak wygląda kwestia zmiany sposobu liczenia średnich dobowych na stacjach klimatologicznych? Są jakieś postępy czy sprawa czeka w zawieszeniu na swój czas?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.