У меня есть файл netcdf, содержащий 4-D переменные:
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" ;
Я хотел бы использовать переменную «mask_veget» в качестве маски для изменения значений переменной «maxvegetfrac» в определенных регионах и по выбранным значениям ее «растительного» измерения. Для этого я использую ncap2. Например, если я хочу установить значения maxvegetfrac для 5-го ранга измерения растительности на 500, где mask_veget равно 6, я делаю:
> ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,5,:,:) = 500" test.nc
Моя проблема в том, что в полученном файле test.nc maxvegetfrac был изменен на первом ранге "вегетативного" измерения, а не на пятом. И я получаю тот же результат, если запускаю скрипт по всему измерению растительности:
ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,:,:,:) = 500" test.nc
Я где-то ошибаюсь, но ... где? Любая помощь приветствуется!