仿照一类nc文件,将csv文件制作成nc文件,但时间维度不知道如何设置?示例文件用panoply软件打开是这样的:,现在我已经将时间设置好了,但时间格式不正确,正确的格式是这样的:
但我设置的时间格式是这样的:
请问是哪里出了问题?而且我看示例文件Time好像是虚拟的,根据Times显示的,我制作 的nc文件的Time不是虚拟的,示我的代码是这样的
Dimension azimuth=fileWriter.addDimension(null, dimension[0], ((List<Double>)listX.get(0)).size());
Dimension num=fileWriter.addDimension(null, dimension[1], ((int [])listX.get(1)).length);
Dimension time=fileWriter.addUnlimitedDimension("Time");
Dimension dateStrLen=fileWriter.addDimension(null,"dateStrLen",19);
//定义坐标变量
Variable azimuthVar= fileWriter.addVariable(null, dimension[0],DataType.DOUBLE, dimension[0]);
Variable numVar= fileWriter.addVariable(null, dimension[1],DataType.DOUBLE, dimension[1]);
Variable timeVar= fileWriter.addVariable(null, "Time",DataType.DOUBLE, "Time");
// 定义变量的属性(Attribute)
fileWriter.addVariableAttribute(azimuthVar, new Attribute("units", "azimuth"));
fileWriter.addVariableAttribute(numVar, new Attribute("units", "num"));
fileWriter.addVariableAttribute(timeVar, new Attribute("units", "secs since 1970-01-01 00:00:00"));
fileWriter.addVariableAttribute(timeVar, new Attribute("long_name", "synthesized time coordinate from Times(time)"));
fileWriter.addVariableAttribute(timeVar, new Attribute("_CoordinateAxisType", "Time"));
//定义数据变量
String dims="Time azimuth num";
Variable fVar = fileWriter.addVariable(null, "F", DataType.DOUBLE, dims);
Variable bIVar = fileWriter.addVariable(null, "BI", DataType.DOUBLE, dims);
Variable timesVar = fileWriter.addVariable(null, "Times", DataType.CHAR, "Time dateStrLen");
// 定义数据属性(Attribute)
fileWriter.addVariableAttribute(fVar, new Attribute("units", "F"));
fileWriter.addVariableAttribute(bIVar, new Attribute("units", "BI"));
//定义一维数组(为坐标设定数值)
ArrayDouble.D1 azimuthX = new ArrayDouble.D1(((List<Double>)listX.get(0)).size());
ArrayDouble.D1 numY = new ArrayDouble.D1(((int [])listX.get(1)).length);
//填充值
int i, j;
for (i = 0; i < azimuth.getLength(); i++) {
azimuthX.set(i, ((List<Double>)listX.get(0)).get(i));
}
for (j = 0; j < num.getLength(); j++) {
numY.set(j, ((int [])listX.get(1))[j]);
}
// 定义2维数组(为数据设定值)
ArrayDouble.D3 dataF = new ArrayDouble.D3(1,azimuth.getLength(), num.getLength());
ArrayDouble.D3 dataBI = new ArrayDouble.D3(1,azimuth.getLength(), num.getLength());
String [][] f =(String [][])list.get(0);
String [][] bi =(String [][])list.get(1);
for(int tim=0;tim<1;tim++){
for (int azi = 0; azi < azimuth.getLength(); azi++) {
for (int n = 0; n < num.getLength(); n++){
dataF.set(tim, azi , n , Double.parseDouble(f[azi][n]) );
dataBI.set( tim,azi, n, Double.parseDouble(bi[azi][n]) );
}
}
}
望指导一下,时间维度怎么设置?我哪里设置有问题?