[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDFJava #UXM-196070]: Regarding NCML Aggregating ( montly axis at fixed date )



Greeting Aksha,

One thing I see is that the time format is not quite right - what you have
is extracting year, minute, day. I'd change yyyymmdd to yyyyMMdd. However,
there is something else going on here that isn't quite right. Would it be
possible to get a copy of two or three of your files so that I can test
locally? If not, the output of  `ncdump -h` for one of them would be
helpful.

Thanks!

Sean


address@hidden> wrote:

> New Client Reply: Regarding NCML Aggregating  ( montly axis at fixed date )
>
> Hi!
>
> Thanks for reply and for pointing what I am doing wrong, I just modified
> ncml file, and executed, I am getting netcdf file as output but though
> variable named time is created in netcdf but data its wrong, also timing
> information like, months since 1960-01-01 00:00:00 is not added please go
> through attachment.
>
> This is what I did
>
> akshay@las:~/Desktop$ pwd
> /home/akshay/Desktop
>
> akshay@las:~/Desktop$ ls air/* -1
> air/air_19600101.nc
> air/air_19600201.nc
> air/air_19600301.nc
> air/air_19600401.nc
> air/air_19600501.nc
> air/air_19600601.nc
> air/air_19600701.nc
> air/air_19600801.nc
> air/air_19600901.nc
> air/air_19601001.nc
> air/air_19601101.nc
> air/air_19601201.nc
>
> akshay@las:~/Desktop$ cat test.ncml
> <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2";>
> <aggregation dimName="TIME" type="joinExisting">
>                 <variableAgg name="T"/>
>              <scan dateFormatMark="air_#yyyymmdd"
> location="/home/akshay/Desktop/air" suffix=".nc" subdirs="false" />
> </aggregation>
> </netcdf>
>
> akshay@las:~/Desktop$ java -Xmx1g -classpath netcdfAll-4.6.5.jar
> ucar.nc2.dataset.NetcdfDataset -in test.ncml -out test.nc
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
> details.
> NetcdfDatataset read from test.ncml write to test.nc finished=true
>
>
> akshay@las:~/Desktop$ ncdump -h test.nc
> netcdf test {
> dimensions:
>         LON = 120 ;
>         LAT = 115 ;
>         bnds = 2 ;
>         TIME = 12 ;
>         TIME_strlen = 20 ;
> variables:
>         float LON(LON) ;
>                 LON:long_name = "Longitude" ;
>                 LON:units = "degrees_east" ;
>                 LON:axis = "X" ;
>                 LON:modulo = 360.f ;
>                 LON:point_spacing = "even" ;
>                 LON:standard_name = "longitude" ;
>         float LAT(LAT) ;
>                 LAT:long_name = "Latitude" ;
>                 LAT:units = "degrees_north" ;
>                 LAT:axis = "Y" ;
>                 LAT:point_spacing = "even" ;
>                 LAT:standard_name = "latitude" ;
>         double TIME_bnds(TIME, bnds) ;
>         float AIR(TIME, LAT, LON) ;
>                 AIR:missing_value = 32766.f ;
>                 AIR:_FillValue = 32766.f ;
>                 AIR:units = "degC" ;
>                 AIR:long_name = "Air Temperature Monthly Mean at Surface" ;
>                 AIR:add_offset = 239.65f ;
>                 AIR:scale_factor = 0.01f ;
>                 AIR:Ferret_Precision_Note = "This variable written using
> Ferret was converted from SHORT to FLOAT" ;
>                 AIR:history = "From
> http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/coads/1degree/global/enh/air.mean.nc";
> ;
>         char TIME(TIME, TIME_strlen) ;
>                 TIME:_CoordinateAxisType = "Time" ;
>                 TIME:long_name = "time coordinate" ;
>                 TIME:standard_name = "time" ;
>
> // global attributes:
>                 :history = "FERRET V6.93   1-Apr-16" ;
>                 :Conventions = "CF-1.6" ;
> }
>
>
> akshay@las:~/Desktop$ ncdump  test.nc | awk '/^ TIME =/{f=1}f'
>  TIME =
>   "1960-01-01T00:01:00Z",
>   "1960-01-01T00:02:00Z",
>   "1960-01-01T00:03:00Z",
>   "1960-01-01T00:04:00Z",
>   "1960-01-01T00:05:00Z",
>   "1960-01-01T00:06:00Z",
>   "1960-01-01T00:07:00Z",
>   "1960-01-01T00:08:00Z",
>   "1960-01-01T00:09:00Z",
>   "1960-01-01T00:10:00Z",
>   "1960-01-01T00:11:00Z",
>   "1960-01-01T00:12:00Z" ;
> }
>
>
> akshay@las:~/Desktop$ ferret
>         NOAA/PMEL TMAP
>         FERRET v6.96
>         Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 12/02/15
>          9-Apr-16 14:36
>
> yes? use test.nc
>  **TMAP ERR: Time axis info missing or incomplete for dataset
>              unrecognizable time encoding
> yes? sh d
>      currently SET data sets:
>     1> ./test.nc  (default)
>  name     title                             I         J         K
>  L         M         N
>  TIME_BNDS
>                                            1:2       ...       ...
>  1:12      ...       ...
>  AIR      Air Temperature Monthly Mean at  1:120     1:115     ...
>  1:12      ...       ...
>  TIME     time coordinate                  ...       ...       ...
>  1:12      ...       ...
>
> yes? sh g air
>     GRID GMH2
>  name       axis              # pts   start                end
>  LON       LONGITUDE          120mr   20.5E                139.5E
>  LAT       LATITUDE           115 r   74.5S                39.5N
>  normal    Z
>  TIME      T                   12 r   1                    12
>  normal    E
>  normal    F
> yes? list time
>              VARIABLE : time coordinate
>              FILENAME : test.nc
>              SUBSET   : 12 points (T)
>  1    /  1:"1960-01-01T00:01:00Z"
>  2    /  2:"1960-01-01T00:02:00Z"
>  3    /  3:"1960-01-01T00:03:00Z"
>  4    /  4:"1960-01-01T00:04:00Z"
>  5    /  5:"1960-01-01T00:05:00Z"
>  6    /  6:"1960-01-01T00:06:00Z"
>  7    /  7:"1960-01-01T00:07:00Z"
>  8    /  8:"1960-01-01T00:08:00Z"
>  9    /  9:"1960-01-01T00:09:00Z"
>  10   / 10:"1960-01-01T00:10:00Z"
>  11   / 11:"1960-01-01T00:11:00Z"
>  12   / 12:"1960-01-01T00:12:00Z"
> yes?
>
>
> I expect output like this, above as you can see time index are numeric 1
> to 12, and also array time contains datetime stamp but its not correct
>
> yes? sh g air
>     GRID GMH2
>  name       axis              # pts   start                end
>  LON       LONGITUDE          120mr   20.5E                139.5E
>  LAT       LATITUDE           115 r   74.5S                39.5N
>  normal    Z
>  TIME      T                   12 r   1960-01-01           1960-12-01
>  normal    E
>  normal    F
>
>
> Thanks in advance.
>
> Regards,
> Akshay
>
>
>
> ----- Original Message -----
> From: "Unidata netCDF Java Support" <address@hidden>
> To: address@hidden
> Cc: address@hidden
> Sent: Friday, April 8, 2016 10:54:57 PM
> Subject: [netCDFJava #UXM-196070]: Regarding NCML Aggregating  ( montly
> axis at fixed date )
>
> Greetings Akshay,
>
> I think the issue is that you are extracting the date from the filename
> (good), but are rewriting the information using the NCML ouside of the
> aggregation (i.e. <values start="0" increment="1" />). Can you try using
> the same NcML you have, but remove this part of the NcML:
>
> <variable name="TIME" type="double" shape="TIME">
>         <attribute name="units" value="months since 1960-01-01 00:00:00" />
>         <values start="0" increment="1" />
>          <attribute name="axis" value="T" />
> </variable>
>
> Thanks!
>
> Sean
>
>
> address@hidden> wrote:
>
> > New Ticket: Regarding NCML Aggregating  ( montly axis at fixed date )
> >
> > Hi!
> >
> > This query is regarding time variable declaration in NCML, here my aim
> > is to define time axis at 1th of every month that is same as that of
> > date stamp in filename.
> >
> >
> > My Input :
> >
> > I have list of files like below
> >
> > # ls -1 | head -10
> > air_19600101.nc
> > air_19600201.nc
> > air_19600301.nc
> > air_19600401.nc
> > air_19600501.nc
> > air_19600601.nc
> > air_19600701.nc
> > air_19600801.nc
> > air_19600901.nc
> > air_19601001.nc
> >
> >
> > This is what I tried :
> >
> > Following is my ncml
> >
> > <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2";>
> > <variable name="TIME" type="double" shape="TIME">
> >         <attribute name="units" value="months since 1960-01-01 00:00:00"
> />
> >         <values start="0" increment="1" />
> >          <attribute name="axis" value="T" />
> > </variable>
> > <aggregation dimName="TIME" type="joinExisting">
> >              <scan dateFormatMark="air_#yyyymmdd" location="/path/to/AIR"
> > suffix=".nc" subdirs="false" />
> > </aggregation>
> > </netcdf>
> >
> >
> > This is what I received after restarting thredds data server:
> >
> > I use ferret for data analysis, this is how time indexes are created
> >
> > yes? set data "http://127.0.0.1/thredds/dodsC/test/test.nc";
> > yes? sh g air
> >     GRID GFP1
> >  name       axis              # pts   start                end
> >  LON       LONGITUDE          120mr   20.5E                139.5E
> >  LAT       LATITUDE           115 r   74.5S                39.5N
> >  normal    Z
> >  TIME      TIME               674 r   01-JAN-1960 12:00    31-JAN-2016
> > 12:24
> >  normal    E
> >  normal    F
> > yes? list/l=1:10 t[gt=air]
> >              VARIABLE : T
> >                         axis TIME
> >              FILENAME : test.nc
> >              FILEPATH : http://127.0.0.1/thredds/dodsC/test/
> >              SUBSET   : 10 points (TIME)
> >  01-JAN-1960 /  1:  0.000
> >  31-JAN-1960 /  2:  1.000
> >  02-MAR-1960 /  3:  2.000
> >  01-APR-1960 /  4:  3.000
> >  02-MAY-1960 /  5:  4.000
> >  01-JUN-1960 /  6:  5.000
> >  02-JUL-1960 /  7:  6.000
> >  01-AUG-1960 /  8:  7.000
> >  31-AUG-1960 /  9:  8.000
> >  01-OCT-1960 / 10:  9.000
> >
> >
> > This is expected output :
> >
> > Here I expect time index to be created like below, at first of every
> > month, or else 15th of every month
> >
> >  01-JAN-1960 /  1:  0.000
> >  01-FEB-1960 /  2:  1.000
> >  01-MAR-1960 /  3:  2.000
> >  01-APR-1960 /  4:  3.000
> >  01-MAY-1960 /  5:  4.000
> >  01-JUN-1960 /  6:  5.000
> >  01-JUL-1960 /  7:  6.000
> >  01-AUG-1960 /  8:  7.000
> >  01-SEP-1960 /  9:  8.000
> >  01-OCT-1960 / 10:  9.000
> >
> >
> > Hope someone can guide me
> >
> > Thanks in advance.
> >
> > Have a nice day !
> >
> > Regards,
> > Akshay Hegde
> >
> >
> > Ticket Details
> > ===================
> > Ticket ID: UXM-196070
> > Department: Support netCDF Java
> > Priority: Normal
> > Status: Open
> > Link:
> >
> https://andy.unidata.ucar.edu/esupport/staff/index.php?_m=tickets&_a=viewticket&ticketid=26875
> >
> >
>
>
>
> Ticket Details
> ===================
> Ticket ID: UXM-196070
> Department: Support netCDF Java
> Priority: Normal
> Status: Open
>
>
>
>
> Ticket Details
> ===================
> Ticket ID: UXM-196070
> Department: Support netCDF Java
> Priority: Normal
> Status: Open
> Link:
> https://andy.unidata.ucar.edu/esupport/staff/index.php?_m=tickets&_a=viewticket&ticketid=26875



Ticket Details
===================
Ticket ID: UXM-196070
Department: Support netCDF Java
Priority: Normal
Status: Open