J'ai un fichier NetCDF contenant des variables 4-D:Impossible de modifier les valeurs des variables spécifiques sur une dimension spécifique dans netcdf
variables:
double maxvegetfrac(time_counter, veget, lat, lon) ;
maxvegetfrac:_FillValue = 1.00000002004088e+20 ;
maxvegetfrac:history = "From Topo.115MaCTRL_WAM_360_180" ;
maxvegetfrac:long_name = "Vegetation types" ;
maxvegetfrac:missing_value = 1.e+20f ;
maxvegetfrac:name = "maxvegetfrac" ;
maxvegetfrac:units = "-" ;
double mask_veget(time_counter, veget, lat, lon) ;
mask_veget:missing_value = -1.e+34 ;
mask_veget:_FillValue = -1.e+34 ;
mask_veget:long_name = "IF MYVEG4 EQ 10 AND I GE 610 AND J GT 286 THEN 16 ELSE MYVEG4" ;
mask_veget:history = "From desert_115Ma_3" ;
Je voudrais utiliser la variable « mask_veget » comme un masque pour modifier les valeurs de la variable "maxvegetfrac" sur des régions spécifiques, et sur des valeurs choisies de sa dimension "veget". Pour ce faire, j'utilise ncap2. Par exemple, si je veux définir des valeurs maxvegetfrac sur le 5e rang de dimension veget à 500 où mask_veget est égal à 6, je fais:
> ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,5,:,:) = 500" test.nc
Mon problème est que dans le fichier test.nc résultant, maxvegetfrac a été modifié au premier rang de la dimension "veget", pas le 5ème. Et je reçois le même résultat si je lance le script sur toute la dimension de veget:
ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,:,:,:) = 500" test.nc
Je suis confondais quelque part, mais ... où? Toute aide appréciée!
Merci beaucoup Henry. Cela a fonctionné parfaitement. –