Utilizarea datelor ROCADA presupune citarea următoarei referințe bibliografice:

Dumitrescu A, Birsan MV (2015) ROCADA: a gridded daily climatic dataset over Romania (1961–2013) for nine meteorological variables. Natural Hazards 78(2): 1045–1063. DOI: 10.1007/s11069-015-1757-z

Articolul este disponibil la adresa: https://www.researchgate.net/publication/275037624_ROCADA_a_gridded_daily_climatic_dataset_over_Romania_1961-2013_for_nine_meteorological_variables

Instalare R și RStudio

R language: https://cran.r-project.org/

RStudio: https://www.rstudio.com/products/rstudio/#Desktop

Instalare biblioteci R

install.packages("rgdal")
install.packages("sp")
install.packages("raster")
install.packages("ncdf4")

Extragere date temperatură medie multipuncte

library(raster)
library(rgdal)
temp <- brick("~/Downloads/T_ave.nc")
# creare câmp date
dats <- seq(as.Date("1961-01-01"), by = "days", length.out = nlayers(temp))
names(temp) <- dats
# extragere datele dinn punctul lon=24, lat=46
orase <- readOGR("shp","orase 2004", verbose = F)
# reproiectare din stereo70 in lonlat
proj4string(orase) <- CRS("+init=epsg:3844")
orase <- spTransform(orase, CRS("+init=epsg:4326"))
orase.timis <- orase[orase$JUDET == "TIMIS",]
plot(temp[[15]])
plot(orase.timis, add = T)

# extrage tmed orase
orase.temp <- t(extract(temp, orase.timis))
colnames(orase.temp) <- orase.timis$NUMELOC
# scrie datele extrase
write.csv(orase.temp, "temp_tmis_1961_2013.csv")

Extragere date temperatură medie punct coordonate cunoscute

library(raster)
temp <- brick("~/Downloads/T_ave.nc")
# creare câmp date
dats <- seq(as.Date("1961-01-01"), by = "days", length.out = nlayers(temp))
names(temp) <- dats
# extragere datele dinn punctul lon=24, lat=46
tmp.punct <- t(extract(temp, cbind(24,46)))
summary(tmp.punct)
##        V1         
##  Min.   :-24.200  
##  1st Qu.:  1.880  
##  Median :  9.880  
##  Mean   :  8.988  
##  3rd Qu.: 16.470  
##  Max.   : 28.960
p <- spplot(temp[[1:4]])
print(p)

# scrie datele extrase
write.csv(tmp.punct, "temp_1961_2013.csv")

Extragere date temperatură medie poligon

library(raster)
library(rgdal)
temp <- brick("~/Downloads/T_ave.nc")
# creare câmp date
dats <- seq(as.Date("1961-01-01"), by = "days", length.out = nlayers(temp))
names(temp) <- dats
# citeste portiune poligon olt
olt <- readOGR("shp","olt_polygon", verbose = F)
plot(temp[[200]])
plot(olt, add=T)

# extragere valori pixeli olt
olt.temp <- extract(temp, olt, fun = mean)
# scrie datele extrase
write.csv(t(olt.temp), "temp_olt_1961_2013.csv")

Extragere date lung linie

library(raster)
library(rgdal)
temp <- brick("~/Downloads/T_ave.nc")
# creare câmp date
dats <- seq(as.Date("1961-01-01"), by = "days", length.out = nlayers(temp))
names(temp) <- dats
# coordonate
co <- coordinates(temp)
lon <- rasterFromXYZ(cbind(co,co[,1]))
lat <- rasterFromXYZ(cbind(co,co[,2]))

# extragere date segment olt
olt.rau <- readOGR("shp","olt_rau")
## OGR data source with driver: ESRI Shapefile 
## Source: "shp", layer: "olt_rau"
## with 1 features
## It has 12 fields
## Integer64 fields read as strings:  NEWFIELD1
proj4string(olt.rau) <- CRS("+init=epsg:3844")
olt.wgs84 <- spTransform(olt.rau, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))
olt.linie  <- as(olt.wgs84, "SpatialLines")
plot(temp[[1]])
plot(olt.linie, add = T)

rau.temp <- data.frame(extract(temp, olt.linie))
rau.lon <- unlist(extract(lon, olt.linie))
rau.lat <- unlist(extract(lat, olt.linie))
# scrie date
write.table(t(data.frame(rau.lon,rau.lat,rau.temp)), "rau.temp.csv", sep = ",")

Calcul valori lunare

library(raster)
temp <- brick("~/Downloads/T_ave.nc")
# creare câmp date
dats <- seq(as.Date("1961-01-01"), by = "days", length.out = nlayers(temp))
temp <- setZ(temp, z = dats, name = "zile")
# dureaza aprox 1-2 min.
temp.lun <- zApply(temp, by = format(dats,"%Y%m"), fun = mean, name = "luni")
plot(temp.lun[[1:4]])

Propuneri procesare…