Bonjour,

Je suis débutant avec R. J'utilise le package NCDF, et j'utilise un programme permettant d'ouvrir de nombreux fichiers .nc et d'en sortir un seul fichier CSV. Le script se trouve ci-dessous. Mon problème est que dans certains cas, les fichiers .nc ne sont pas présents (manque de données), et par conséquent le script bloque. Je ne parviens pas à lui faire vérifier que le fichier existe avant de tenter d'y lire les données. Cette fonction n'existe-t-elle pas ? Y a-t-il un moyen détourné à utliiser ?

Merci !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
library(ncdf)
 
# date de début et date de fin
date_debut=as.POSIXct('2009-01-01',tz='UTC')
date_fin=as.POSIXct('2009-12-31',tz='UTC')
 
# création d'une sequence de date au format aaaammjj
seq_date=format(seq(date_debut,date_fin,by='days'),format='%Y%m%d')
 
# initialisation de la table de sortie (lon et lat sont les 2 premières colonnes)
file_init=open.ncdf(paste('out2d-fra10_NO_hr_',seq_date[1],'.nc',sep=''))
lat_Chim=as.vector(get.var.ncdf(file_init,"lat"))
N_lat=length(which(!duplicated(lat_Chim)))
lon_Chim=as.vector(get.var.ncdf(file_init,"lon")) 
N_lon=length(which(!duplicated(lon_Chim)))
dfr=data.frame(longitude=lon_Chim,latitude=lat_Chim)  
 
# complétion du fichier avec les concentrations horaires
for(day in seq_date){
  file=open.ncdf(paste('out2d-fra10_NO_hr_',day,'.nc',sep=''))
  par(mfrow=c(4,6))
  # title(day)
  for(i in 1:24){
   NO=get.var.ncdf(file,"NO",start=c(1,1,i),count=c(N_lon,N_lat,1))
   dfr[[paste('NO_',day,'_H',i,sep='')]]=as.vector(NO)
   # exemple de sortie graphique
   # image.plot(NO)
  }
}
 
# écriture du fichier
write.table(dfr,file='assemblenc.csv',row.names=F,col.names=T,sep=';')