[ncl-talk] problems with loop
Vanúcia Schumacher
vanucia-schumacher at hotmail.com
Mon Jun 26 10:28:52 MDT 2017
The line 19 corresponds:
rad = wrf_user_getvar(a[k],"SWDDNI",-1)
with the warming:
VarVarWrite: rhs has no coordinate variable for dimension number (0), destroying coordinate var, use "(/../)" if this is not desired outcome
________________________________
De: Rick Brownrigg <brownrig at ucar.edu>
Enviado: segunda-feira, 26 de junho de 2017 13:21:06
Para: Vanúcia Schumacher
Cc: ncl-talk at ucar.edu
Assunto: Re: [ncl-talk] problems with loop
Hi,
The notation Rad_in(i,:,:) is causing the projection from 3D down to 2D. If you want to preserve the 3D shape, use
Rad_in(i:i,:,:).
I'm not sure about the warning. Did you post your entire script, i.e., does line #17 correspond to "alb = 0.7*Rad_in(i,:,:)" ?
Rick
On Mon, Jun 26, 2017 at 8:55 AM, Vanúcia Schumacher <vanucia-schumacher at hotmail.com<mailto:vanucia-schumacher at hotmail.com>> wrote:
Hi NCL users,
I need to calculate a variable based on a parameter that varies with time.
For the first year the value of the parameter is 0.7
For the second year the parameter is 0.4
For the third year onwards the parameter is 0.3
So I must multiply the variable with the value of the parameter and I want to get a new variable with all the coordinates (time, lat and lon), but I'm having the variable only with lat and lon and getting the following warning:
warning:VarVarWrite: rhs has no coordinate variable for dimension number (0), destroying coordinate var, use "(/../)" if this is not desired outcome
warning:["Execute.c":8640]:Execute: Error occurred at or near line 17 in file test.ncl
My script:
( here in this test, my time is 3 days (average from 12 files), so the parameter is varying for 1 day = 0.7, 2 day = 0.4, and 3 day =0.3
files = systemfunc("ls -1 wrfout_d01_*") + ".nc"
a = addfiles(files,"r")
nfiles = dimsizes(files)
do k = 0,nfiles-1
rad = wrf_user_getvar(a[k],"SWDDNI",-1)
rad&Time = wrf_times_c(a[k]->Times, 0)
Rad_in = calculate_daily_values(rad, "avg", 0, False)
times = wrf_user_getvar(a[k],"times",-1)
ntimes = dimsizes(times)
do i = 0, ntimes-1
if (i.lt.2) then
alb = 0.7*Rad_in(i,:,:)
end if
if (i.gt.2.and.i.lt.3) then
alb = 0.4*Rad_in(i,:,:)
end if
if (i.gt.3) then
alb = 0.3*Rad_in(i,:,:)
end if
end do
end do
Variable: nfiles
Type: integer
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
(0) 12
Variable: rad
Type: float
Total Size: 5600 bytes
1400 values
Number of Dimensions: 3
Dimensions and sizes: [Time | 1] x [south_north | 50] x [west_east | 28]
Coordinates:
Number Of Attributes: 6
coordinates : XLONG XLAT
stagger :
units : W/m^2
description : Shortwave surface downward direct normal irradiance
MemoryOrder : XY
FieldType : 104
Variable: Rad_in
Type: float
Total Size: 5600 bytes
1400 values
Number of Dimensions: 3
Dimensions and sizes: [Time | 1] x [south_north | 50] x [west_east | 28]
Coordinates:
Time: [ 0.. 0]
Number Of Attributes: 9
NCL_tag : calculate_daily_values: arith=avg
Time : 0
FieldType : 104
MemoryOrder : XY
description : Shortwave surface downward direct normal irradiance
units : W/m^2
stagger :
coordinates : XLONG XLAT
_FillValue : 9.96921e+36
Variable: ntimes
Type: integer
Total Size: 4 bytes
1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
(0) 1
Variable: alb
Type: float
Total Size: 5600 bytes
1400 values
Number of Dimensions: 2
Dimensions and sizes: [50] x [28]
Coordinates:
Number Of Attributes: 1
_FillValue : 9.96921e+36
Is there any other way I can do this? Thanks any help
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170626/fe0be21f/attachment.html
More information about the ncl-talk
mailing list