bugfix of nc files join function

This commit is contained in:
wyq 2024-10-16 22:57:50 +08:00
parent 76612e03da
commit d0c23e3211
2 changed files with 28 additions and 15 deletions

View File

@ -51,6 +51,7 @@ import org.meteoinfo.ndarray.IndexIterator;
import org.meteoinfo.ndarray.MAMath; import org.meteoinfo.ndarray.MAMath;
import org.meteoinfo.data.meteodata.Attribute; import org.meteoinfo.data.meteodata.Attribute;
import org.meteoinfo.projection.Reproject; import org.meteoinfo.projection.Reproject;
import ucar.ma2.DataType;
import ucar.nc2.NetcdfFile; import ucar.nc2.NetcdfFile;
import ucar.nc2.NetcdfFileWriter; import ucar.nc2.NetcdfFileWriter;
import ucar.nc2.NetcdfFiles; import ucar.nc2.NetcdfFiles;
@ -3561,7 +3562,7 @@ public class NetCDFDataInfo extends DataInfo implements IGridDataInfo, IStationD
break; break;
} }
//Change time dimension as unlimit //Change time dimension as unlimited
for (i = 0; i < aDataInfo.getDimensions().size(); i++) { for (i = 0; i < aDataInfo.getDimensions().size(); i++) {
Dimension aDimS = aDataInfo.getDimensions().get(i); Dimension aDimS = aDataInfo.getDimensions().get(i);
if (aDimS.getShortName().equals(timeDimStr)) { if (aDimS.getShortName().equals(timeDimStr)) {
@ -3593,7 +3594,17 @@ public class NetCDFDataInfo extends DataInfo implements IGridDataInfo, IStationD
//Define global attributes //Define global attributes
for (ucar.nc2.Attribute attr : aDataInfo.ncAttributes) { for (ucar.nc2.Attribute attr : aDataInfo.ncAttributes) {
ncfilew.addGroupAttribute(null, attr); switch (attr.getDataType()) {
case BYTE:
case CHAR:
case STRING:
case SHORT:
case INT:
case FLOAT:
case DOUBLE:
ncfilew.addGroupAttribute(null, attr);
break;
}
} }
//Define variables //Define variables
@ -3607,7 +3618,13 @@ public class NetCDFDataInfo extends DataInfo implements IGridDataInfo, IStationD
} }
} }
} }
ucar.nc2.Variable nvar = ncfilew.addVariable(null, var.getShortName(), var.getDataType(), vdims); DataType dataType = var.getDataType();
if (dataType == DataType.STRING) {
continue;
} else if (dataType == DataType.LONG) {
dataType = DataType.INT;
}
ucar.nc2.Variable nvar = ncfilew.addVariable(null, var.getShortName(), dataType, vdims);
if (var.getDimensions().size() == 1 && var.getDimensions().get(0).getShortName().equals(timeDimStr)) { if (var.getDimensions().size() == 1 && var.getDimensions().get(0).getShortName().equals(timeDimStr)) {
nvar.addAttribute(new ucar.nc2.Attribute("units", "hours since 1800-1-1 00:00:00")); nvar.addAttribute(new ucar.nc2.Attribute("units", "hours since 1800-1-1 00:00:00"));
nvar.addAttribute(new ucar.nc2.Attribute("long_name", "Time")); nvar.addAttribute(new ucar.nc2.Attribute("long_name", "Time"));

View File

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile"> <MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\common_math\fft"> <Path OpenPath="D:\Working\MIScript\Jython\mis\io\netcdf">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\text"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\volume"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\isosurface"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\isosurface"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
@ -13,24 +10,23 @@
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\geoshow"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\geoshow"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\fft"/> <RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\fft"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\dataset"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\netcdf"/>
</Path> </Path>
<File> <File>
<OpenedFiles> <OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/> <OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\geoshow\layer_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_3-1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_5.py"/> <OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_5.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft2_1.py"/> <OpenedFile File="D:\Working\MIScript\Jython\mis\io\netcdf\joinncfile_3.py"/>
</OpenedFiles> </OpenedFiles>
<RecentFiles> <RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/> <RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\geoshow\layer_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_3-1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_5.py"/> <RecentFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft_5.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\fft\fft2_1.py"/> <RecentFile File="D:\Working\MIScript\Jython\mis\io\netcdf\joinncfile_3.py"/>
</RecentFiles> </RecentFiles>
</File> </File>
<Font> <Font>
@ -38,5 +34,5 @@
</Font> </Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/> <LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/> <Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,0" MainFormSize="1327,827"/> <Startup MainFormLocation="-7,-7" MainFormSize="1293,765"/>
</MeteoInfo> </MeteoInfo>