for (int j=0; j<nparams; j++) {
int tp=type[j];
var_name=data_name[tp];
for (int jj=0; jj<number_sweeps; jj++) {
if (number_sweeps > 1) { var_name=data_name[tp]+"_sweep_"+(jj+1); }
v[j][jj]=new Variable(ncfile, null, null, var_name);
v[j][jj].setDataType(DataType.FLOAT);
dims2.add(radial);
dims2.add(gateR[jj]);
v[j][jj].setDimensions(dims2);
v[j][jj].addAttribute(new Attribute( "long_name", var_name));
v[j][jj].addAttribute(new Attribute( "units", unit[tp]));
String coordinates="time elevationR azimuthR distanceR";
v[j][jj].addAttribute(new Attribute(_Coordinate.Axes, coordinates));
v[j][jj].addAttribute(new Attribute("missing_value", -999.99f));
ncfile.addVariable(null, v[j][jj]);
varList.add(v[j][jj]);
dims2.clear();
}
}
tsu_sec=new int[number_sweeps];
String[] tsu=new String[number_sweeps];
String[] time_units=new String[number_sweeps];
tsu_sec=volScan.getStartSweep();
for (int i=0; i< number_sweeps; i++) {
String st1=Short.toString(month);
if (st1.length() < 2) st1="0"+st1;
String st2=Short.toString(day);
if (st2.length() < 2) st2="0"+st2;
date0=String.valueOf(year)+"-"+st1+"-"+st2;
tsu[i]=date0+"T"+calcTime(tsu_sec[i],0)+"Z";
}
for (int j=0; j<number_sweeps; j++) { time_units[j]="secs since "+tsu[j]; }
dims0.add(radial);
// add "time" variable
Variable[] time=new Variable[number_sweeps];
String tm="time"; String tm_name="";
for (int j=0; j<number_sweeps; j++) { tm_name=tm;
if (number_sweeps > 1) { tm_name=tm+"_sweep_"+(j+1); }
time[j]=new Variable(ncfile, null, null, tm_name);
time[j].setDataType(DataType.INT);
time[j].setDimensions(dims0);
time[j].addAttribute(new Attribute("long_name", "time from start of sweep"));
time[j].addAttribute(new Attribute("units", time_units[j]));
time[j].addAttribute( new Attribute(_Coordinate.AxisType, AxisType.Time.toString()));
time[j].addAttribute(new Attribute("missing_value", -99));
ncfile.addVariable(null, time[j]);
varList.add(time[j]);
}
// add "elevationR" variable
Variable[] elevationR=new Variable[number_sweeps];
String ele="elevationR"; String ele_name="";
for (int j=0; j<number_sweeps; j++) { ele_name=ele;
if (number_sweeps > 1) { ele_name=ele+"_sweep_"+(j+1); }
elevationR[j]=new Variable(ncfile, null, null, ele_name);
elevationR[j].setDataType(DataType.FLOAT);
elevationR[j].setDimensions(dims0);
elevationR[j].addAttribute(new Attribute("long_name", "elevation angle"));
elevationR[j].addAttribute(new Attribute("units", "degrees"));
elevationR[j].addAttribute(new Attribute(_Coordinate.AxisType, AxisType.RadialElevation.toString()));
elevationR[j].addAttribute(new Attribute("missing_value", -999.99f));
ncfile.addVariable(null, elevationR[j]);
varList.add(elevationR[j]);
}
// add "azimuthR" variable
Variable[] azimuthR=new Variable[number_sweeps];
String azim="azimuthR"; String azim_name="";
for (int j=0; j<number_sweeps; j++) { azim_name=azim;
if (number_sweeps > 1) { azim_name=azim+"_sweep_"+(j+1); }
azimuthR[j]=new Variable(ncfile, null, null, azim_name);
azimuthR[j].setDataType(DataType.FLOAT);
azimuthR[j].setDimensions(dims0);
azimuthR[j].addAttribute(new Attribute("long_name", "azimuth angle"));
azimuthR[j].addAttribute(new Attribute("units", "degrees"));
azimuthR[j].addAttribute(new Attribute(_Coordinate.AxisType, AxisType.RadialAzimuth.toString()));
azimuthR[j].addAttribute(new Attribute("missing_value", -999.99f));
ncfile.addVariable(null, azimuthR[j]);
varList.add(azimuthR[j]);
}
// add "distanceR" variable
Variable[] distanceR=new Variable[number_sweeps];
String dName="distanceR";
String dist_name="";
for (int j=0; j<number_sweeps; j++) { dist_name=dName;
if (number_sweeps > 1) { dist_name=dName+"_sweep_"+(j+1); }
distanceR[j]=new Variable(ncfile, null, null, dist_name);
distanceR[j].setDataType(DataType.FLOAT);
dims1.add(gateR[j]);
distanceR[j].setDimensions(dims1);
distanceR[j].addAttribute(new Attribute("long_name", "radial distance"));
distanceR[j].addAttribute(new Attribute("units", "m"));
distanceR[j].addAttribute(new Attribute(_Coordinate.AxisType, AxisType.RadialDistance.toString()));
ncfile.addVariable(null, distanceR[j]);
varList.add(distanceR[j]);
dims1.clear();
}
// add "numGates" variable
dims3.add(scanR);
Variable numGates=new Variable(ncfile, null, null, "numGates");
numGates.setDataType(DataType.INT);
numGates.setDimensions(dims3);
numGates.addAttribute(new Attribute("long_name", "number of gates in the sweep"));
ncfile.addVariable(null, numGates);
varList.add(numGates);
// add global attributes
ncfile.addAttribute(null, new Attribute("definition", "SIGMET-IRIS RAW"));