[ncl-talk] set_date_time [SEC=UNCLASSIFIED]

Kunal Bali kunal.bali9 at gmail.com
Thu Oct 5 23:32:12 MDT 2017


Thank you so much, Griffith and  Guido Cioni for this valuable suggestion.
It worked.

regards
Kunal Bali




On Fri, Oct 6, 2017 at 3:16 AM, Griffith Young <griffith.young at bom.gov.au>
wrote:

> Hello Kunal,
>
>                 “creating wrong date as the files are of December month,
> but it is generating January month date also. I don't know why.”
>
>
>
>                 Your script was fine.  You just needed to subtract 1 from
> your Julian date.  So you math was wrong…
>
>
>
>                 For example …2000001… would become “001 days 2000-01-01”,
> which is 2000-01-02.
>
>
>
>                 Guido’s (excellent) script could also be simplified to
> return the whole date at once.
>
>
>
>                 yyyymmdd=`date -d "${year}-01-01 +${day_of_year} days -1
> day" "+%Y%m%d"`
>
>
>
>                 If you are using bash, I would recommend using $(command)
> instead of `command` as it is clearer where the boundaries are.  (If that
> makes sense.  Backticks can lead to strange behaviours that are hard to
> spot when sharing code.)
>
>
>
>                 I find this easier to read:
>
>                 *             yyyymmdd=$(date -d "${year}-01-01
> +${day_of_year} days -1 day" "+%Y%m%d")
>
>
>
>                 I hope I have answered your “I don't know why” question.
>
>
>
> Regards,
>
>                 Griff.
>
>
>
>
>
>
>
> *From:* ncl-talk [mailto:ncl-talk-bounces at ucar.edu] *On Behalf Of *Guido
> Cioni
> *Sent:* Friday, 6 October 2017 7:46 AM
> *To:* Marston Johnston
> *Cc:* ncl-talk
> *Subject:* Re: [ncl-talk] set_date_time
>
>
>
> I had to do something similar last week. Converting from hdf to netcdf and
> then merge into a single file with time information. It was modis data. I
> don't have time to explain the script so I'm copying here hoping that it
> could help.
>
>
>
> for f in *.nc; do
>
>     year=${f:9:4}
>
>     day_of_year=${f:13:3}
>
>     month=`date -d "${year}-01-01 +${day_of_year} days -1 day" "+%m"`
>
>     day=`date -d "${year}-01-01 +${day_of_year} days -1 day" "+%d"`
>
>     echo ${year}-${month}-${day}
>
>     cdo -b F64 setdate,${year}-${month}-${day} ${f} ${f%.nc}_2.nc
>
> done
>
>
>
>
>
> Cheers
>
>
>
> Il 5 ott 2017 9:56 PM, "Marston Johnston" <shejo284 at gmail.com> ha scritto:
>
> It seems like you choose a fairly complicated way to solve the problem.
>
> May I suggest reading in the MAIACTAOT.h00v02.***.nc files in
> chronological order and then writing new netcdf files in ncl where you can
> create a time array with the correct dtg.
>
> It’s fairly quick and easy in ncl.
>
> I’ve had such problems before and found it easiest to with the above
> method.
>
>
>
> Hope this helps,
>
> /M
>
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Marston S. Ward, PhD
>
> Department of Earth Sciences
>
> University of Gothenburg, Sweden
>
> Email: marston.johnston at gu.se
>
> SkypeID: marston.johnston
>
> Phone: +46-31-7864901 <+46%2031%20786%2049%2001>
>
> Only the fruitful thing is true!
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
>
> *From: *ncl-talk <ncl-talk-bounces at ucar.edu> on behalf of Kunal Bali <
> kunal.bali9 at gmail.com>
> *Date: *Thursday, 5 October 2017 at 20:40
> *To: *"ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
> *Subject: *[ncl-talk] set_date_time
>
>
>
> Dear NCL users,
>
>
>
> I have one question regarding date-time setting from filename. This
> question is not actually related to NCL, sorry in advance.
>
>
>
> I have 4 .nc files named given below. The time is not created in these
> files during conversion from hdf to netcdf in NCL.
>
>
>
> MAIACTAOT.h00v02.*20003640715*.nc   --> 2000=year, 364=day, 07=hr, 15=min
>
> MAIACTAOT.h00v02.20003650620.nc
>
> MAIACTAOT.h00v02.20003660525.nc
>
> MAIACTAOT.h00v02.20003660700.nc
>
>
>
> So, I did try to create the date-time with shell scripting (given below)
>
> but it is creating wrong date as the files are of December month, but it
> is generating January month date also. I don't know why.
>
>
>
> *2000-01-01 05:25:00*
>
> *2000-01-01 07:00:00*
>
> 2000-12-30 07:15:00
>
> 2000-12-31 06:20:00
>
>
>
>
>
> the shell script, which I am using
>
>
>
> #######################################
>
>
>
> for n in  MAIACTAOT.h00v02.20*.nc;do
>
>  ls $n > text
>
> export xx=`cut -c18-28 text`
>
> export YYYY=`cut -c18-21 text`
>
> export JJJ=`cut -c22-24 text`
>
> export HH=`cut -c25-26 text`
>
> export MM=`cut -c27-28 text`
>
> mm=`date -d "$JJJ days $YYYY-01-01" +"%m"`
>
> dd=`date -d "$JJJ days $YYYY-01-01" +"%d"`
>
> mydate=${YYYY}-${mm}-${dd},${HH}:${MM}:00
>
> echo $mydate
>
>
>
> echo "cdo settaxis,$mydate $n re$n"
>
> cdo settaxis,$mydate $n re$n
>
>
>
> done
>
>
>
> cdo mergetime reMAI*.nc final.nc
>
> exit
>
> #################################
>
>
>
>
>
> Any suggestion regarding this issue would be very helpful.
>
>
>
> Thank You
>
>
> Kunal Bali
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________ ncl-talk mailing list
> ncl-talk at ucar.edu List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
> _______________________________________________
> ncl-talk mailing list
> 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/20171006/5c22138f/attachment.html>


More information about the ncl-talk mailing list