Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class JavaDB {
- public static Variable time;
- public static Variable cloud_1st;
- public static Variable cloud_2nd;
- public static Variable cloud_3th;
- public static Variable cloud_4th;
- public static Variable cloud_5th;
- public static Variable Layer_1st;
- public static Variable Layer_2nd;
- public static Variable Layer_3th;
- public static Variable Layer_4th;
- public static Variable Layer_5th;
- public static Variable CBN;
- public static void getDataNC(String location, ArrayList<Integer> Values) throws Exception{
- String version = System.getProperty("java.version");
- NetcdfFileWriter ncfile = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf4, location, null);
- // add dimensions
- Dimension heightDim = ncfile.addDimension(null,"height",1539);
- Dimension timeDim = ncfile.addUnlimitedDimension("time");
- //define variables
- for(int k=0; k<Values.size(); k++){
- switch(Values.get(k)){
- case 1: Variable time = ncfile.addVariable(null, "time", DataType.DOUBLE,"time");
- time.addAttribute( new Attribute("units", "days since 1970-01-01"));
- break;
- case 2: Variable cloud_1st = ncfile.addVariable(null,"cloud_1st", DataType.INT,"time");
- cloud_1st.addAttribute( new Attribute("long_name", "cloud amount in 1st layer1"));
- cloud_1st.addAttribute( new Attribute("units", "octa"));
- cloud_1st.addAttribute(new Attribute("_FillValue",-9999));
- cloud_1st.addAttribute(new Attribute("Vertical Visibility",9));
- cloud_1st.addAttribute(new Attribute("No enough data",99));
- break;
- case 3: Variable cloud_2nd = ncfile.addVariable(null,"cloud_2nd", DataType.INT,"time");
- cloud_2nd.addAttribute( new Attribute("long_name", "cloud amount in 2nd layer"));
- cloud_2nd.addAttribute( new Attribute("units", "octa"));
- cloud_2nd.addAttribute(new Attribute("_FillValue",-9999));
- cloud_2nd.addAttribute(new Attribute("Vertical Visibility",9));
- cloud_2nd.addAttribute(new Attribute("No enough data",99));
- break;
- case 4: Variable cloud_3th = ncfile.addVariable(null,"cloud_3th", DataType.INT,"time");
- cloud_3th.addAttribute( new Attribute("long_name", "cloud amount in 3th layer"));
- cloud_3th.addAttribute( new Attribute("units", "octa"));
- cloud_3th.addAttribute(new Attribute("_FillValue",-9999));
- cloud_3th.addAttribute(new Attribute("Vertical Visibility",9));
- cloud_3th.addAttribute(new Attribute("No enough data",99));
- break;
- case 5: Variable cloud_4th = ncfile.addVariable(null, "cloud_4th", DataType.INT, "time");
- cloud_4th.addAttribute( new Attribute("long_name", "cloud amount in 4th layer"));
- cloud_4th.addAttribute( new Attribute("units", "octa"));
- cloud_4th.addAttribute(new Attribute("_FillValue",-9999));
- cloud_4th.addAttribute(new Attribute("Vertical Visibility", 9));
- cloud_4th.addAttribute(new Attribute("No enough data",99));
- break;
- case 6: Variable cloud_5th = ncfile.addVariable(null, "cloud_5th", DataType.INT, "time");
- cloud_5th.addAttribute( new Attribute("long_name", "cloud amount in 5th layer"));
- cloud_5th.addAttribute( new Attribute("units", "octa"));
- cloud_5th.addAttribute(new Attribute("_FillValue",-9999));
- cloud_5th.addAttribute(new Attribute("Vertical Visibility",9));
- cloud_5th.addAttribute(new Attribute("no enough data",99));
- break;
- case 7: Variable Layer_1st = ncfile.addVariable(null,"Layer_1st",DataType.INT,"time");
- Layer_1st.addAttribute(new Attribute("long_name", "1st cloud layer height"));
- Layer_1st.addAttribute(new Attribute("units","meter"));
- Layer_1st.addAttribute(new Attribute("_FillValue",-9999));
- break;
- case 8: Variable Layer_2nd = ncfile.addVariable(null,"Layer_2nd",DataType.INT,"time");
- Layer_2nd.addAttribute(new Attribute("long_name", "2nd cloud layer height"));
- Layer_2nd.addAttribute(new Attribute("units","meter"));
- Layer_2nd.addAttribute(new Attribute("_FillValue",-9999));
- break;
- case 9: Variable Layer_3th = ncfile.addVariable(null,"Layer_3th",DataType.INT,"time");
- Layer_3th.addAttribute(new Attribute("long_name", "3th cloud layer height"));
- Layer_3th.addAttribute(new Attribute("units","meter"));
- Layer_3th.addAttribute(new Attribute("_FillValue",-9999));
- break;
- case 10: Variable Layer_4th = ncfile.addVariable(null,"Layer_4th",DataType.INT,"time");
- Layer_4th.addAttribute(new Attribute("long_name", "4th cloud layer height"));
- Layer_4th.addAttribute(new Attribute("units","meter"));
- Layer_4th.addAttribute(new Attribute("_FillValue",-9999));
- break;
- case 11: Variable Layer_5th = ncfile.addVariable(null,"Layer_5th",DataType.INT,"time");
- Layer_5th.addAttribute(new Attribute("long_name", "5th cloud layer height"));
- Layer_5th.addAttribute(new Attribute("units","meter"));
- Layer_5th.addAttribute(new Attribute("_FillValue",-9999));
- break;
- case 12: Variable CBN = ncfile.addVariable(null,"CBN",DataType.INT,"time");
- CBN.addAttribute(new Attribute("long_name","cloud base number"));
- CBN.addAttribute(new Attribute("units", "number"));
- CBN.addAttribute(new Attribute("no significant backscatter",0));
- CBN.addAttribute(new Attribute("obscuration but no cloud",4));
- CBN.addAttribute(new Attribute("transparent obscuration",5));
- CBN.addAttribute(new Attribute("_FillValue",-9));
- break;
- }
- }
- ncfile.create();
- try{
- ArrayDouble.D1 timeData = new ArrayDouble.D1(countLinesResult);
- ArrayInt.D1 cloudL1Data = new ArrayInt.D1(countLinesResult);
- Index ima = cloudL1Data.getIndex();
- ArrayInt.D1 cloudL2Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cloudL3Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cloudL4Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cloudL5Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cLayer1Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cLayer2Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cLayer3Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cLayer4Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 cLayer5Data = new ArrayInt.D1(countLinesResult);
- ArrayInt.D1 CBNData = new ArrayInt.D1(countLinesResult);
- for (int timeIdx = 0; timeIdx < countLinesResult;timeIdx++){
- for(int k=0; k<Values.size(); k++){
- // System.out.println(Values.get(k));
- if(Values.get(k)==1){
- timeData.setDouble(timeIdx,tdate.get(timeIdx));}
- if(Values.get(k)==2){
- cloudL1Data.setInt(ima.set(timeIdx), cloud_layer_1st.get(timeIdx));}
- if(Values.get(k)==3){
- cloudL2Data.setInt(ima.set(timeIdx), cloud_layer_2nd.get(timeIdx));}
- if(Values.get(k)==4){
- cloudL3Data.setInt(ima.set(timeIdx), cloud_layer_3th.get(timeIdx));}
- if(Values.get(k)==5){
- cloudL4Data.setInt(ima.set(timeIdx), cloud_layer_4th.get(timeIdx));}
- if(Values.get(k)==6){
- cloudL5Data.setInt(ima.set(timeIdx), cloud_layer_5th.get(timeIdx));}
- if(Values.get(k)==7){
- cLayer1Data.setInt(ima.set(timeIdx), LayerC_1st.get(timeIdx));}
- if(Values.get(k)==8){
- cLayer2Data.setInt(ima.set(timeIdx), LayerC_2nd.get(timeIdx));}
- if(Values.get(k)==9){
- cLayer3Data.setInt(ima.set(timeIdx), LayerC_3th.get(timeIdx));}
- if(Values.get(k)==10){
- cLayer4Data.setInt(ima.set(timeIdx), LayerC_4th.get(timeIdx));}
- if(Values.get(k)==11){
- cLayer5Data.setInt(ima.set(timeIdx), LayerC_5th.get(timeIdx));}
- if(Values.get(k)==12){
- CBNData.setInt(ima.set(timeIdx),nbcb.get(timeIdx));}
- }
- }
- // write the data into netCDF file
- for(int k=0; k<Values.size(); k++){
- if(Values.get(k)==1){
- ncfile.write(time, timeData);}
- if(Values.get(k)==2){
- ncfile.write(cloud_1st, cloudL1Data);}
- if(Values.get(k)==3){
- ncfile.write(cloud_2nd, cloudL2Data);}
- if(Values.get(k)==4){
- ncfile.write(cloud_3th, cloudL3Data);}
- if(Values.get(k)==5){
- ncfile.write(cloud_4th, cloudL4Data);}
- if(Values.get(k)==6){
- ncfile.write(cloud_5th, cloudL5Data);}
- if(Values.get(k)==7){
- ncfile.write(Layer_1st, cLayer1Data);}
- if(Values.get(k)==8){
- ncfile.write(Layer_2nd, cLayer2Data);}
- if(Values.get(k)==9){
- ncfile.write(Layer_3th, cLayer3Data);}
- if(Values.get(k)==10){
- ncfile.write(Layer_4th, cLayer4Data);}
- if(Values.get(k)==11){
- ncfile.write(Layer_5th, cLayer5Data);}
- if(Values.get(k)==12){
- ncfile.write(CBN,CBNData);}
- }
- }catch(Exception e){
- e.printStackTrace();}
- finally{
- try{
- ncfile.close();
- }catch(IOException ex){
- ex.printStackTrace();
- }
- }
Add Comment
Please, Sign In to add comment