Re: Help with ncML for aggregation

mrehbein@xxxxxxxxxxx wrote:

Hi John,

I have had a bit of a break from the netcdf project I had been working on, but now I am back on the trail :)

My geoTiff writer needs a bit of work, but it uses JAI to create a tiff:

JAI.create("filestore", bufferedImage, filepath, "TIFF", null);

and then a write a text "world file" to match the tiff image.

The only problem I came across was that the numbers in the world file needed to be in the following format:

DecimalFormat format=new DecimalFormat(".00000000000000");

The numbers in the world file (in order) needed to be:


In any case, when I tidy up the code into a neat little API, I will forward it on to you.

great, id like to see it.


I have a question or two about NcML.

I am using NcML to aggregate netcdf files that hold data for a particular month. Below is a copy of my test NcML file.

<netcdf xmlns=""; xmlns:xsi=""; xsi:schemaLocation="";>

<dimension name="lat" length="2100" /> <dimension name="lon" length="1600" /> <dimension name="time" length="61"/>
 <variable name="SST_AVE" type="float" shape="time lat lon"/>

 <netcdf uri="file://\\moon\risdev\ferret\data\">
   <dimension name="time" length="31" />

 <netcdf uri="file://\\moon\risdev\ferret\data\">
   <dimension name="time" length="30" />


I could get the java NetCDF API to read it and aggregate, using the following code segment:


NetcdfFile ncfile = NetcdfDataset.factory("C:\\sst_ncml.xml",null);
NetcdfDataset nDataset = ucar.nc2.dataset.conv.Convention.factory(ncfile); // find the coordinate system used in this netcdf file
List systems=nDataset.getCoordinateSystems();
Iterator iSys=systems.iterator();
while (iSys.hasNext()) {
 CoordinateSystem sys=(CoordinateSystem);
 GridCoordSys grid=new GridCoordSys(sys);
Date fromDate=aims.util.StringUtilities.convert2Date("11/03/2003");
 Date thruDate=aims.util.StringUtilities.convert2Date("26/04/2003");
int minT=grid.findTimeCoordElement(fromDate);
 int maxT=grid.findTimeCoordElement(thruDate);
System.out.println("date indexs:" + minT + " " + maxT);


However, there are zero coordinates systems, so the code within the while loop never executes. I assume I must define a coordinate system within the NcML file, which I have done and the XML is shown in the attachment. The code within the while loop still does not execute. Can you tell me what am I doing wrong?

Thanks for your time,


the dataset aggregation is very "alpha" quality, so it may be a bug.

would it be easy to send me the 2 underlying netcdf files so i can reproduce the problem?

PS: i am gone for 10 days on vacation, so i wont get back to you again for a bit.



  • 2003 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: