[ncl-talk] Calendar attribute for time_to_newtime !!! Developer Attention !!!

Alan Brammer abrammer at albany.edu
Thu Oct 9 17:07:57 MDT 2014


Hi Mary,

Yes, I meant time_to_newtime.   Here's the few lines of code I tested it
with.

;;
;;
;;
opt = 0
opt at calendar = "noleap"
time = cd_inv_calendar(2009,01,01,00,00,00, "hours since 1800-01-01
00:00:00",opt)
print( (/ cd_calendar(time, -3) /) )    ;;;;;;;;;;;;;; output = 2009010100

ntime = time_to_newtime(time, "days since 1800-01-01 00:00:00")
print( (/ cd_calendar(ntime, -3) /) )  ;;;;;;;;;;;;; output = *2009022100*

load "~/time_to_newtime.ncl"   ;;;;;;;;;;;;;; My version that I sent to Lam
in this thread.
atime = time_to_newtime(time, "days since 1800-01-01 00:00:00")
print( (/ cd_calendar(atime, -3) /) )  ;;;;;;;;;;;;output = 2009010100

printVarSummary(time)
printVarSummary(ntime)
printVarSummary(atime)
;;
;;
;;

This will happen from my snooping around in from 6.1+ except 6.1.2 , which
forced the calendar to reset to gregorian.

My edited code just passes the calendar attribute to the TIME =
cd_inv_calendar() line.  It might be better though to attach the output
calendar to the units string and then it is optional whether the calendar
is kept or changed.

Alan.



On Thu, Oct 9, 2014 at 6:46 PM, Mary Haley <haley at ucar.edu> wrote:

> Hi Alan,
>
> When you say "this function" are you still referring to the
> "time_to_newtime" function?
>
> I took a look at this code, and it is indeed copying the "calendar"
> attribute. But, it *does* make use of this attribute via the previous calls
> to cd_calendar and cd_inv_calendar, which do recognize this attribute.  I
> believe the "time_to_newtime" code is just making sure that the calendar
> attribute is reattached to the return variable, if it existed on the input
> variable.
>
> --Mary
>
>
> On Mon, Oct 6, 2014 at 12:07 PM, Alan Brammer <abrammer at albany.edu> wrote:
>
>> What version of ncl are you using? I just tested a similar few lines of
>> code in 6.1.1 and 6.2.0 and they both copied the calendar attribute as
>> expected. Also have you tried cd_convert() seems to do the same thing?
>>
>> However in these tests and looking around I have a strong suspicion there
>> is a significant bug in this function.  In that the code copies the
>> calendar attribute but does not actually make use of it and thus returns
>> the wrong answer disguised as the correct one.
>>
>>
>> Attached is my edited code.  load this below a load "....contibuted.ncl"
>> line if you have one and this version of the code will replace the stock
>> version.  A developer will hopefully weigh in with more insight in this.
>>
>>
>> Good luck,
>>
>> Alan
>>
>>
>>
>>
>>
>> On Fri, Oct 3, 2014 at 10:08 PM, Lam Hoang <lamhpvn at gmail.com> wrote:
>>
>>> Dear NCL supporting team,
>>> I want to convert the time units from a CMIP5 model to make them unique.
>>> I try to use time_to_newtime function but unfortunately after convert
>>> the time units, the calendar attribute changes to "gregorian" as well.
>>> What should I do if I want to keep the calendar attribute as the
>>> original time variable?
>>>
>>> Regards,
>>> Lam
>>>
>>>
>>> f =
>>> addfile("./oldtime_psl_day_NorESM1-M_historicalExt_r3i1p1_20060101-20121231.nc","r")
>>> temp = f->psl
>>> t = f->time
>>>
>>> printVarSummary(t)
>>>
>>> *** Variable: t
>>>
>>> *** Type: double
>>>
>>> *** Total Size: 20440 bytes
>>>
>>> ***             2555 values
>>>
>>> *** Number of Dimensions: 1
>>>
>>> *** Dimensions and sizes: [time | 2555]
>>>
>>> *** Coordinates:
>>>
>>> ***             time: [ 0.5..2554.5]
>>>
>>> *** Number Of Attributes: 6
>>>
>>> ***   bounds : time_bnds
>>>
>>> ***   units : days since 2006-01-01 00:00:00
>>>
>>> ***   calendar : noleap
>>>
>>> ***   axis : T
>>>
>>> ***   long_name : time
>>>
>>> ***   standard_name : time
>>>
>>> t = time_to_newtime(t, "days since 1850-01-01 00:00:00")
>>>
>>> printVarSummary(t)
>>>
>>> *** Variable: t
>>>
>>> *** Type: double
>>>
>>> *** Total Size: 20440 bytes
>>>
>>> ***             2555 values
>>>
>>> *** Number of Dimensions: 1
>>>
>>> *** Dimensions and sizes: [time | 2555]
>>>
>>> *** Coordinates:
>>>
>>> ***             time: [56978.5..59534.5]
>>>
>>> *** Number Of Attributes: 6
>>>
>>> ***   calendar : gregorian
>>>
>>> ***   units : days since 1850-01-01 00:00:00
>>>
>>> ***   bounds : time_bnds
>>>
>>> ***   axis : T
>>>
>>> ***   long_name : time
>>>
>>> ***   standard_name : time
>>>
>>>
>>> --
>>> Hoang Phuc Lam
>>> Viet Nam National Center of Hydro-Meteorology Forecasting
>>> National Hydro-Meteorological Services of Vietnam
>>> Mob: +84 12 1616 5258
>>> Tel:   +844 38247002
>>> Fax:  +844 38254278
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> 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/20141009/80e5a417/attachment.html 


More information about the ncl-talk mailing list