From: Arlindo da S. <da...@al...> - 2008-01-30 17:31:04
|
On Jan 30, 2008 9:37 AM, Jennifer Adams <jm...@co...> wrote: > We know that the loss of the LATS interface severely impacts many users. > But our intention is to *replace* it with something better, not to eliminate > the functionality completely. Consider this: > set x; set y; set z; set t; set e > set gxout fwrite > set fwrite -nc file.nc > d var > disable fwrite > > Let's keep this technical discussion out of gradsusr... My main concern about this design is that when I think of "fwrite" I think of stream I/O in the POSIX sense, and self-describing files such as netcdf and hdf (and their API) do not conform to the stream I/O model. Unless you want to restrict the feature above to only write one variable per file on a single shot, I suspect you will have to rewrite all the infrastructure in the LATS library, including metadata setup layer and the LATS table, specially if you are concerned about enforcing standards such as CF or being able to write GRIB files. You are aware that PCMDI has already set in motion the process of legally making LATS opensource, and that folks at PCMDI are aware that LATS is used in GrADS, have given permission for COLA to do so in the past, and have never expressed any opposition to it. (Correct me if I am wrong.) Also, the license does not say that you cannot modify the code; it simply states * Copyright: 1996, Regents of the University of California * This software may not be distributed to others without * permission of the author. And as I understand it, the authors have given this permission to COLA. Honestly, I don't understand why the license issue has now emerged as a major impediment to continue supporting LATS in GrADS. (Yes, I admit, this conflicts with GPL, and we are living in sin while the paperwork takes its course.) Regarding the LATS code proper. I realize this is a matter of opinion, but I consider the LATS code well written: lots of comments, modular and extensible with even a user guide. The NetCDF-2 API it uses is the only true interoperable API among NetCDF-2,3,4 and HDF-4, so I personally have no issues with it. However, if one would elect to convert it to the NetCDF-3 API this could be done relatively easy given the semantic equivalence of the two APIs. In the past few years we have developed at GMAO a small wrapper library (libmfhd3.a) which adds a NetCDF-3 API to HDF-4, so converting LATS to the NetCDF-3 API would not require us to write an HDF-4 module with the SD interface (which in itself is a wrapper around the NetCDF-2 API with additional features thrown in). What exactly are the *technical issues* with LATS that makes it not a viable alternative? Clearly, it would need to be extended to handle a 5th dimension (although one could start by keeping the output files 4D, not a bad idea in my opinion) and add additional formats such as GRIB-2. Sorry if it sounds like I am second guessing your decision, but I am really having a hard time understanding the rationale behind it. Arlindo -- Arlindo da Silva da...@al... |