[ncl-talk] Help in saving values in looping
Andreas Chrysanthou
eeac at leeds.ac.uk
Mon Jun 5 11:10:38 MDT 2017
There was one not insignificant thing I didn’t mention.
the regline_stats function for the b calculates both the b(0) +b(1*)x of the linear regression, while the b95 calculates both the 2.5% and 97.5% regression coefficient confidence intervals.
So when it tries to save to that cell, there are two values for the @b and @b95.
That’s why I got the error of : "fatal:Dimension sizes on right hand side of assignment do not match dimension sizes of left hand side"
I only want the slope of the liner trend (b(1)) and my criterion if I need to save these values is that the confidence intervals should not be negative (that would probably need to be included in the if loop).
But I don’t know how to keep only one value of those pair of calculated stats.
Cheers,
Andreas
On 5 Jun 2017, at 17:17, Adam Phillips <asphilli at ucar.edu<mailto:asphilli at ucar.edu>> wrote:
Hi Andreas,
As there are singular values for reg_coef and trend_slope for each start and end time, I think it would be best to simply create a 3D array dimensioned (start_date, end_date,2), with the last dimension (0) = trend_slope and (1) representing reg_coeff. If you must have a 4-dimensional array then you should create an array that is dimensioned 22 x 22 x 2 x 2, but (:,:,1,0) and (:,:,0,1) will be missing. In the example below I show how to create both types of arrays:
finarr = new((/22,22,2/),typeof(value_test))
finarr!0 = "startyear"
finarr&startyear = ispan(1980,2001,1)
finarr!1 = "endyear"
finarr&endyear = ispan(1989,2010,1)
finarrZ = new((/22,22,2,2/),typeof(value_test))
finarrZ!0 = "startyear"
finarrZ&startyear = ispan(1980,2001,1)
finarrZ!1 = "endyear"
finarrZ&endyear = ispan(1989,2010,1)
do i=1980,2001,1
do j=1989,2010,1
ntimes=ispan(i,j,1)
if (j-i .ge. 9 ) then
test_rc=regline_stats(ntimes,value_test({i:j}))
print(test_rc)
start_date=i
end_date=j
finarr({i},{j},0) = test_rc at b*10 ; prints slope of the linear trend for the selected range of years
finarr({i},{j},1) = test_rc at b95 ; prints 2.5% and 97.5% regression coefficient confidence intervals
finarrZ({i},{j},0,0) = test_rc at b*10
finarrZ({i},{j},1,1) = test_rc at b95
else
print(“this age range has not been selected, since its less than 9 years")
end if
delete(ntimes)
end do
end do
Hope that helps. If you have any further questions please respond to the ncl-talk email list.
Adam
On Mon, Jun 5, 2017 at 9:48 AM, Andreas Chrysanthou <eeac at leeds.ac.uk<mailto:eeac at leeds.ac.uk>> wrote:
Hi NCL users,
I created a loop for calculating a linear trend sensitivity for different start and end dates.
My timeseries span over 1980-2010 and I want to calculate the linear trend of the timeseries for when the start - end date are more than >= 9years.
(1980-1989, 1980-1990, 1980-1991,..., 1980-2010
1981-1990, 1981-1991, ..., 1981-2010
...
...
...
2000-2009, 2001-2010
2001-2010)
I’ve created the loops that calculate those values but I need to save them in an array as 4 different columns (start_date, end_date,trend_slope,reg_coeff)
My aim is to plot those as a a contour box plot with x axis the start date and y axis the end date, and the calculated (i’m gonna filter out those values with some criteria) trend values based on a colormap.
Can you help me in order to save the values to that new array so I can plot it?
A snippet of the code follows:
do i=1980,2001,1
do j=1989,2010,1
ntimes=ispan(i,j,1)
if (j-i .ge. 9 ) then
test_rc=regline_stats(ntimes,value_test({i:j}))
print(test_rc)
start_date=i
end_date=j
trend_slope=test_rc at b*10 ; prints slope of the linear trend for the selected range of years
reg_coeff=test_rc at b95 ; prints 2.5% and 97.5% regression coefficient confidence intervals
else print(“this age range has not been selected, since its less than 9 years")
end if
delete(ntimes)
end do
end do
Cheers,
Andreas
Andreas
_______________________________________________
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
--
Adam Phillips
Associate Scientist, Climate and Global Dynamics Laboratory, NCAR
www.cgd.ucar.edu/staff/asphilli/<http://www.cgd.ucar.edu/staff/asphilli/> 303-497-1726
<http://www.cgd.ucar.edu/staff/asphilli>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170605/b64cfde4/attachment.html
More information about the ncl-talk
mailing list