public List<VariableBean> getStructureVariables(Structure s) { List<VariableBean> vlist = new ArrayList<VariableBean>(); for (Variable v : s.getVariables()) { vlist.add(new VariableBean(v)); } return vlist; }
void makeChildren() { children = new ArrayList<>(); if (var instanceof Structure) { Structure s = (Structure) var; List vars = s.getVariables(); for (int i = 0; i < vars.size(); i++) children.add(new VariableNode(this, (VariableIF) vars.get(i))); } if (debugTree) System.out.println("children=" + var.getShortName() + " "); }
// create from a dataset public ObsBean(Structure obs, StructureData sdata) { // first choice for (Variable v : obs.getVariables()) { Attribute att = v.findAttribute("BUFR:TableB_descriptor"); if (att == null) continue; String val = att.getStringValue(); if (val.equals("0-5-1") && Double.isNaN(lat)) { lat = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-6-1") && Double.isNaN(lon)) { lon = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-7-30") && Double.isNaN(alt)) { alt = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-4-1") && (year < 0)) { year = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-4-2") && (month < 0)) { month = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-4-3") && (day < 0)) { day = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-4-4") && (hour < 0)) { hour = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-4-5") && (minute < 0)) { minute = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-4-6") && (sec < 0)) { sec = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-1-1") && (wmo_block < 0)) { wmo_block = sdata.convertScalarInt(v.getShortName()); } else if (val.equals("0-1-2") && (wmo_id < 0)) { wmo_id = sdata.convertScalarInt(v.getShortName()); } else if ((stn == null) && (val.equals("0-1-7") || val.equals("0-1-194") || val.equals("0-1-11") || val.equals("0-1-18"))) { if (v.getDataType().isString()) stn = sdata.getScalarString(v.getShortName()); else stn = Integer.toString(sdata.convertScalarInt(v.getShortName())); } } // second choice for (Variable v : obs.getVariables()) { Attribute att = v.findAttribute("BUFR:TableB_descriptor"); if (att == null) continue; String val = att.getStringValue(); if (val.equals("0-5-2") && Double.isNaN(lat)) { lat = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-6-2") && Double.isNaN(lon)) { lon = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-7-1") && Double.isNaN(alt)) { alt = sdata.convertScalarDouble(v.getShortName()); } else if ((val.equals("0-4-7")) && (sec < 0)) { sec = sdata.convertScalarInt(v.getShortName()); } } // third choice for (Variable v : obs.getVariables()) { Attribute att = v.findAttribute("BUFR:TableB_descriptor"); if (att == null) continue; String val = att.getStringValue(); if (val.equals("0-7-10") && Double.isNaN(alt)) { alt = sdata.convertScalarDouble(v.getShortName()); } else if (val.equals("0-7-2") && Double.isNaN(alt)) { alt = sdata.convertScalarDouble(v.getShortName()); } } }