private void _writeDimensionData(DfsUtilities df_in, ucar.nc2.NetcdfFileWriteable newNetcdfFile) { //time ucar.ma2.ArrayDouble timeDataArr = new ucar.ma2.ArrayDouble.D1(df_in.tAxis_nTSteps); int dtStep = (int)df_in.tAxis_dTStep; for (int i = 0; i < df_in.tAxis_nTSteps; i++) { double timeStepValue; if (df_in.tAxis_nTSteps == 1) { timeStepValue = dtStep / dtStep; } else { timeStepValue = (df_in.tAxis_dTStep / dtStep) * i; //convert to hours or days or whatever } timeDataArr.setDouble(i, timeStepValue); } newNetcdfFile.write(_settings.TimeAxisName, timeDataArr); //lon ucar.ma2.ArrayDouble xDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsX); for (int i = 0; i < df_in.Items[0].nPointsX; i++) { double xValue = df_in.Items[0].XMinLimit + df_in.Items[0].DX * i; xDataArr.setDouble(i, xValue); } newNetcdfFile.write(_settings.XAxisName, xDataArr); }
private void _writeDimensionData(DfsUtilities df_in, ucar.nc2.NetcdfFileWriteable newNetcdfFile) { //time ucar.ma2.ArrayDouble timeDataArr = new ucar.ma2.ArrayDouble.D1(df_in.tAxis_nTSteps); int dtStep = (int)df_in.tAxis_dTStep; for (int i = 0; i < df_in.tAxis_nTSteps; i++) { double timeStepValue; if (df_in.tAxis_nTSteps == 1) { timeStepValue = dtStep / dtStep; } else { timeStepValue = (df_in.tAxis_dTStep / dtStep) * i; //convert to hours or days or whatever } timeDataArr.setDouble(i, timeStepValue); } newNetcdfFile.write("time", timeDataArr); //lon ucar.ma2.ArrayDouble xDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsX); for (int i = 0; i < df_in.Items[0].nPointsX; i++) { double xValue = df_in.Items[0].XMinLimit + df_in.Items[0].DX * i; xDataArr.setDouble(i, xValue); } newNetcdfFile.write("lon", xDataArr); //lat ucar.ma2.ArrayDouble yDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsY); for (int i = 0; i < df_in.Items[0].nPointsY; i++) { double yValue = df_in.Items[0].YMinLimit + df_in.Items[0].DY * i; yDataArr.setDouble(i, yValue); } newNetcdfFile.write("lat", yDataArr); //depth ucar.ma2.ArrayDouble zDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsZ); for (int i = 0; i < df_in.Items[0].nPointsZ; i++) { double zValue = df_in.Items[0].ZMinLimit + df_in.Items[0].DZ * i; zDataArr.setDouble(i, zValue); } newNetcdfFile.write("depth", zDataArr); }
private void _writeItemData(DfsUtilities df_in, ucar.nc2.NetcdfFileWriteable newNetcdfFile) { for (int itemCount = 0; itemCount < _settings.Variables.Count; itemCount++) { if (_settings.IsVariablesSelected[itemCount]) { ucar.ma2.ArrayDouble dataArr = new ucar.ma2.ArrayDouble.D1(df_in.tAxis_nTSteps); ucar.ma2.Index dataIndex = dataArr.getIndex(); for (int i = 0; i < df_in.tAxis_nTSteps; i++) { float[] dfsData = null; df_in.ReadDynData(i, itemCount + 1, out dfsData); dataArr.setDouble(dataIndex.set(i), dfsData[0]); } newNetcdfFile.write(df_in.Items[itemCount].Name.Replace(' ', '_'), dataArr); } } }
private void _writeDimensionData(DfsUtilities df_in, ucar.nc2.NetcdfFileWriteable newNetcdfFile) { //time ucar.ma2.ArrayDouble timeDataArr = new ucar.ma2.ArrayDouble.D1(df_in.tAxis_nTSteps); int dtStep = (int)df_in.tAxis_dTStep; int multiples = 1; switch (dtStep) //todo: to add multiples of other time units. now only seconds is supported { case 31556926: break; case 2629743: break; case 604800: break; case 86400: break; case 3600: break; case 60: break; case 1: break; default: multiples = dtStep / 1; break; } for (int i = 0; i < df_in.tAxis_nTSteps; i++) { double timeStepValue; if (df_in.tAxis_nTSteps == 1) { timeStepValue = dtStep / dtStep * multiples; } else { timeStepValue = (df_in.tAxis_dTStep / dtStep) * i * multiples; //convert to hours or days or whatever } timeDataArr.setDouble(i, timeStepValue); } newNetcdfFile.write(_settings.TimeAxisName, timeDataArr); //lon ucar.ma2.ArrayDouble xDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsX); for (int i = 0; i < df_in.Items[0].nPointsX; i++) { double xValue = df_in.Longitude + df_in.Items[0].DX * i; xDataArr.setDouble(i, xValue); } newNetcdfFile.write(_settings.XAxisName, xDataArr); //lat ucar.ma2.ArrayDouble yDataArr = new ucar.ma2.ArrayDouble.D1(df_in.Items[0].nPointsY); for (int i = 0; i < df_in.Items[0].nPointsY; i++) { double yValue = df_in.Latitude + df_in.Items[0].DY * i; yDataArr.setDouble(i, yValue); } newNetcdfFile.write(_settings.YAxisName, yDataArr); }