1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
#Repertoire de travail
setwd("XXX")
#Packages nécessaires
library(ncdf4)
library(stringr)
library(Rcpp)
library(plyr)
library(lubridate)
library(ggplot2)
#Ouverture du fichier
nc <-nc_open("NOAA_SST_2017_Corse.nc")
#Variables
lon <- ncvar_get(nc, "lon")
dim(lon)
[1] 5
lat <- ncvar_get(nc, "lat")
dim(lat)
[1] 337
time1 = ncvar_get(nc, "time")
time = as_date(time1,tz="UTC",origin = "1800-01-01")
dim(time)
[1] 365
head(time)
[1] "2017-01-01" "2017-01-02" "2017-01-03" "2017-01-04" "2017-01-05" "2017-01-06"
#Zoom géographique
lonIdx <- which( lon >= 8.4 & lon <= 9.7)
latIdx <- which( lat >= 41.3 & lat <= 43.1)
levelIdx <- 1:length(time)
#Construction du dataframe
data_temp<-ncvar_get(nc, "sst")[lonIdx, latIdx, levelIdx]
indices <- expand.grid(lon[lonIdx], lat[latIdx], time[levelIdx])
df <- data.frame(cbind(indices, as.vector(data_temp)))
colnames(df)<-c("longitude","latitude","time","temperature")
> head(df)
longitude latitude time temperature
1 8.625 41.375 2017-01-01 16.33
2 8.875 41.375 2017-01-01 16.15
3 9.125 41.375 2017-01-01 15.91
4 9.375 41.375 2017-01-01 15.37
5 9.625 41.375 2017-01-01 15.00
6 8.625 41.625 2017-01-01 16.60
##moyenne par jour
Final1 <- tapply(df2$temperature,df2$time,mean)
Final1 = as.data.frame(Final1)
View(Final1)
colnames(Final1) = "temperature"
Final2 = as.data.frame(cbind("time"=rownames(Final1),"temperature"=Final1$temperature))
Final2
head(Final2)
> head(Final2)
time temperature
1 2017-01-01 15.8831814852628
2 2017-01-02 15.8099995959889
3 2017-01-03 15.8504542437467
4 2017-01-04 15.8649997711182
5 2017-01-05 15.7299998023293
6 2017-01-06 15.457726912065
#verification du type de données
class(Final2$temperature)
[1] "factor"
class(Final2$time)
[1] "factor"
#modification de l'intitulé des variables
names(Final2)[1]<-"jour"
names(Final2)[2]<-"temp"
#changement du type de données (vers type chaine de caractères)
Final2$temp<-as.character(Final2$temp)
##Final2$temp<-sub(" ","",Final2$temp)
##changement du type de données (vers type numérique)
Final2$temp<-as.numeric(Final2$temp)
class(Final2$temp)
[1] "numeric"
class(Final2$jour)
[1] "factor" |
Partager