NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
OK, next question. Exactly what are the semantics of "Unlimited" dimensions? I assume this means that I can add data bit by bit (or perhaps it doesn't). I'm thinking of applications where a simulation does not know, a priori, how long it will run but I'd like to write the data out as I go. I assume this is possible, but how would I do it. For example, could I just list the dimension as Unlimited and then just keep setting the data for ever increasing indices?!? Also, I can I have more than 1 unlimited dimension? I don't need that but I'm just curious if it is possible (neat trick if you can). -- Mike Roland Schweitzer wrote: > Michael, > > Change > Dimension time = file.addDimension("time", 4, false, false, false); > to > Dimension time = file.addDimension("time", 4, true, false, false); > and your example work (at least it did for me with a slightly older jar). > > as will > Dimension time = file.addDimension("time", 4); > > AND !!!!!! > > add a file.close() at the bottom to write the new values to disk! > create() makes the empty shell close() commits the writes to disk. > > Can't fathom why the API allows a dimension to be created that cannot > be shared, but it does. > Nor can I exactly fathom what it means for a dimension to be shared or > not shared, but there it is. > > The Unidata gang will set me straight I'm sure. > > Roland > > > > > Michael Tiller wrote: > >> I'm evaluating a couple of different data storage schemes but I'm having >> some difficulty with netCDF. First, let me say that I am much happier >> with the netCDF Java interface than with the way it is handled in >> HDF5. The fact that the netCDF stuff is not just 100% Java but also >> done the >> way a Java interface would normally done has made getting started >> very easy. >> >> However, I do have some problems. I looked in the User's guide and >> tried putting together some example code based on what is found in >> Appendix A and I've run into several problems. First let me list my >> questions and comments and I'll include my sample code (written as a >> JUnit TestCase) at the end: >> >> 1. FYI, I'm using netCDF 2.2.12. >> 2. The example code in the user's guide seems "out of date". Some of >> the constructs (use of default constructor for >> NetcdfFileWriteable, use of Class object arguments in addVariable) >> are now deprecated in the library. >> 3. Is there a "bug tracker" for netCDF? Just sending stuff to a >> mailing list seems like a recipe for falling through the cracks. >> 4. I get an error when trying to use the NetcdFileWriteable(String >> file) constructor (it says "Not a netCDF file" or something like >> that). I added the fill argument and now things work?!? >> 5. I'm trying to simple record some time series data. So I created a >> dimension for "time" (i.e. a 1D dataset). The idea (in the code >> below) is that "h" should be a function of "time". Am I doing >> that write? It doesn't seem like anything in that code >> distinguishes "time" as the independent variable!?! >> 6. The ArrayDouble.D1 "helper" class seems like it could do much >> more. It has special scalar get and set methods, but what about >> having "public double[] get()" and "public void set(double [] v)" >> methods!?! It would make it much easier to initialize the data. >> 7. I get messages about not being able to load Nexrad and Grib >> service providers. What are those about? Do I need those? If >> not, can I shut those warnings off? >> 8. The example code mentions a class called "ArrayAbstract" which >> would appear to be handy but I couldn't find it in the jar file. >> 9. The *main problem* I'm having right now is that I get an error >> during "file.create()". I get an "IllegalStateException" with the >> message "unknown Dimension == time = 4; // (has coord.var)". Any >> ideas? >> >> Overall, I'm pretty happy with the design of the system, what can be >> expressed and the tie in with NcML (which I assume is still ongoing). I >> just wish I could get my sample code to work. :-) >> >> Any help would be very much appreciated. Here is the sample code.... >> >> import java.io.IOException; >> >> import junit.framework.TestCase; >> import ucar.ma2.ArrayDouble; >> import ucar.ma2.DataType; >> import ucar.ma2.InvalidRangeException; >> import ucar.nc2.Dimension; >> import ucar.nc2.NetcdfFileWriteable; >> >> public class TestNetCDF extends TestCase { >> public void testCreateData() { >> NetcdfFileWriteable file = null; >> file = new NetcdfFileWriteable("./example.nc", true); >> Dimension time = file.addDimension("time", 4, false, >> false, false); >> Dimension dims[] = {time}; >> /* Add time */ >> file.addVariable("time", DataType.DOUBLE, dims); >> file.addVariableAttribute("time", "quantity", "time"); >> file.addVariableAttribute("time", "units", "s"); >> /* Add a dependent variable */ >> file.addVariable("h", DataType.DOUBLE, dims); >> file.addVariableAttribute("h", "quantity", "Height"); >> file.addVariableAttribute("h", "units", "m"); >> try { >> file.create(); >> } catch (IOException e) { >> e.printStackTrace(System.err); >> fail("IOException on creation"); >> } >> double td[] = {1.0, 2.0, 3.0, 4.0}; >> double hd[] = {0.0, 0.1, 0.3, 0.9}; >> ArrayDouble.D1 ta = new ArrayDouble.D1(4); >> ArrayDouble.D1 ha = new ArrayDouble.D1(4); >> for(int i=0;i<4;i++) { >> ta.set(i, td[i]); >> ha.set(i, hd[i]); >> } >> try { >> file.write("time", ta); >> } catch (IOException e) { >> e.printStackTrace(System.err); >> fail("IOException thrown while writing time"); >> } catch (InvalidRangeException e) { >> e.printStackTrace(System.err); >> fail("InvalidRangeException thrown while writing time"); >> } >> try { >> file.write("h", ha); >> } catch (IOException e) { >> e.printStackTrace(System.err); >> fail("IOException thrown while writing h"); >> } catch (InvalidRangeException e) { >> e.printStackTrace(System.err); >> fail("InvalidRangeException thrown while writing h"); >> } >> } >> } >> >> >
begin:vcard fn:Michael Tiller n:Tiller;Michael org:Emmeskay, Inc. adr;dom:;;47119 Five Mile Road;Plymouth;MI;48170 email;internet:mtiller@xxxxxxxxxxxx title:Vice-President Modeling Research and Development tel;work:(734) 635-3450 x-mozilla-html:TRUE url:http://www.emmeskay.com version:2.1 end:vcard
netcdf-java
archives: