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

[IDV #IQR-639012]: Trajectories in NCDF format



Adam,

We have spent quite a while digging into this problem. We (both you
and Unidata) are treating the track.nc as a good template for creating
trajectory data that can be read into the IDV. After some discussion
here, we realize that is probably not a good idea. That track.nc file
is not CF compliant, but following some less well known
"NCAR-RAF/nimbus" format. Both of us are having a hard or impossible
time using the "NCAR-RAF/nimbus" as a template or an example.

What you really need to do is provide a CF compliant trajectory
file. But there is a problem. The IDV cannot read CF compliant
trajectory files. So we are in a catch 22. We can't use track.nc as a
template, and the IDV cannot read CF compliant netCDF trajectories.

So... I am going to fix the IDV so that it can read CF compliant
trajectory files, but it is going to take some time. I hope I can get
this task done by next week.

In the meantime, I attach a better CF compliant trajectory file that
the IDV should be able to read when I am done with my work. Please see
that file attached as a template or example.

As an alternative solution to all of this you may wish to check out
the CSV data capability in the IDV. If you have the ability to produce
your data as CSV you may wish to consider that option.

Thanks for your patience and let me know if you have any additional
concerns.

Best Wishes,

Unidata IDV Support

> I'm building these files in IDL.  I implemented the new template and IDV 
> still can't read it.  Header:
> 
> netcdf \2007finalinfo_trunc {
> dimensions:
> obs = 31 ;
> trajectory = 12 ;
> variables:
> int trajectory(trajectory) ;
> trajectory:cf_role = "trajectory_id" ;
> int time(trajectory, obs) ;
> time:standard_name = "time" ;
> time:long_name = "time" ;
> time:units = "seconds since 1970-01-01 00:00:00" ;
> time:axis = "T" ;
> time:FillValue = "0.0f" ;
> float lat(trajectory, obs) ;
> lat:standard_name = "latitude" ;
> lat:long_name = "latitude" ;
> lat:units = "degrees_north" ;
> lat:axis = "Y" ;
> lat:FillValue = "0.0f" ;
> float lon(trajectory, obs) ;
> lon:standard_name = "longitude" ;
> lon:long_name = "longitude" ;
> lon:units = "degrees_east" ;
> lon:axis = "X" ;
> lon:FillValue = "0.0f" ;
> float z(trajectory, obs) ;
> z:standard_name = "altitude" ;
> z:long_name = "height above mean sea level" ;
> z:units = "m" ;
> z:axis = "Z" ;
> z:positive = "up" ;
> z:FillValue = "0.0f" ;
> 
> // global attributes:
> :featureType = "trajectory" ;
> :Conventions = "CF-1.6" ;
> }
> 
> I'll upload the new ncdf to the motherlode repository.
> 
> - Adam
> 
> ________________________________________
> From: Unidata IDV Support <address@hidden>
> Sent: Monday, May 05, 2014 9:25 AM
> To: Adam Houston
> Cc: address@hidden
> Subject: [IDV #IQR-639012]: Trajectories in NCDF format
> 
> Adam,
> 
> How is this trajectory file created?
> 
> I have been looking at your trajectory file, and I am not sure why it
> is not working. The underlying library in the IDV is complaining
> about:
> 
> - not finding Latitude coordinate
> - not finding Longitude coordinate
> - lat/lon/time coord not found.
> 
> But I am wondering if track.nc is the best template for a trajectory.
> 
> Theoretically, this one should be better:
> 
> https://geo-ide.noaa.gov/wiki/index.php?title=NODC_NetCDF_Trajectory_Template
> 
> Can you try adhering to their suggestions?
> 
> I am going to investigate on my end to ensure this is a better
> template.
> 
> Best,
> 
> Unidata IDV Support
> 
> 
> > The files have been uploaded: a single trajectory ncdf file and a multiple 
> > trajectory ncdf file.
> >
> > - Adam
> >
> >
> > -----Original Message-----
> > From: Unidata IDV Support [mailto:address@hidden]
> > Sent: Friday, May 02, 2014 10:49 AM
> > To: Adam Houston
> > Cc: address@hidden
> > Subject: [IDV #IQR-639012]: Trajectories in NCDF format
> >
> > Adam,
> >
> > Can you upload your data here and let us know when it is uploaded?
> >
> > http://motherlode.ucar.edu/repository/alias/idvupload
> >
> > Best,
> >
> > Unidata IDV Support
> >
> > > Full Name: Adam Houston
> > > Email Address: address@hidden
> > > Organization: University of Nebraska - Lincoln Package Version: 4.1
> > > Operating System: CentOS
> > > Hardware:
> > > Description of problem: I'm unable to get IDV to recognize NCDF 
> > > trajectory files that I'm creating.  I've verified that IDV recognizes a 
> > > "track.nc" file available in one of the workshop packages but neither my 
> > > own single trajectory file nor my own multiple trajectory file (this is 
> > > what I really need to visualize) can be read.  To the best of my 
> > > knowledge I'm adhering to the CF Version 1.6 conventions (I've tested 
> > > them in an online compliance checker).  I've included both headers below.
> > >
> > > netcdf \2007finalinfo {
> > > dimensions:
> > > time = 6 ;
> > > trajid_strlen = 1 ;
> > > variables:
> > > char trajectory(trajid_strlen) ;
> > > trajectory:cf_role = "trajectory_id" ; int time(time) ;
> > > time:standard_name = "time" ; time:long_name = "time" ; time:units =
> > > "seconds since 1970-01-01 00:00:00" ; float lat(time) ;
> > > lat:standard_name = "latitude" ; lat:long_name = "latitude" ;
> > > lat:units = "degrees_north" ; float lon(time) ; lon:standard_name =
> > > "longitude" ; lon:long_name = "longitude" ; lon:units = "degrees_east"
> > > ; float z(time) ; z:standard_name = "altitude" ; z:long_name = "height
> > > above mean sea level" ; z:units = "m" ;
> > >
> > > // global attributes:
> > > :featureType = "trajectory" ;
> > > :Conventions = "CF-1.6" ;
> > > }
> > >
> > > ==== Multiple trajectories ====
> > >
> > > netcdf \2007finalinfo {
> > > dimensions:
> > > obs = 28067 ;
> > > trajectory = 3252 ;
> > > trajid_strlen = 4 ;
> > > variables:
> > > char trajectory(trajectory, trajid_strlen) ; trajectory:cf_role =
> > > "trajectory_id" ; int rowSize(trajectory) ; rowSize:long_name =
> > > "number of obs for this trajectory" ; rowSize:sample_dimension = "obs"
> > > ; int time(obs) ; time:standard_name = "time" ; time:long_name =
> > > "time" ; time:units = "seconds since 1970-01-01 00:00:00" ; float
> > > lat(obs) ; lat:standard_name = "latitude" ; lat:long_name = "latitude"
> > > ; lat:units = "degrees_north" ; float lon(obs) ; lon:standard_name =
> > > "longitude" ; lon:long_name = "longitude" ; lon:units = "degrees_east"
> > > ; float z(obs) ; z:standard_name = "altitude" ; z:long_name = "height
> > > above mean sea level" ; z:units = "m" ;
> > >
> > > // global attributes:
> > > :featureType = "trajectory" ;
> > > :Conventions = "CF-1.6" ;
> > > }
> > >
> > >
> > >
> >
> >
> > Ticket Details
> > ===================
> > Ticket ID: IQR-639012
> > Department: Support IDV
> > Priority: Normal
> > Status: Open
> >
> >
> 
> 
> Ticket Details
> ===================
> Ticket ID: IQR-639012
> Department: Support IDV
> Priority: Normal
> Status: Open
> 
> 
> 


Ticket Details
===================
Ticket ID: IQR-639012
Department: Support IDV
Priority: Normal
Status: Open