@Override public VariableDS findVariable(String axisName) { String structPrefix = struct.getShortName() + "."; if (axisName.startsWith(structPrefix)) axisName = axisName.substring(structPrefix.length()); return (VariableDS) struct.findVariable(axisName); }
@Override public String setName(String newName) { this.orgName = getShortName(); setShortName(newName); return newName; }
@Override public String getName() { return stype.toString()+"("+struct.getShortName()+")"; } }
@Override public VariableDS findVariable(String axisName) { String structPrefix = struct.getShortName() +"."; if (axisName.startsWith(structPrefix)) axisName = axisName.substring(structPrefix.length()); return (VariableDS) struct.findVariable(axisName); }
@Override public String setName(String newName) { this.orgName = getShortName(); setShortName(newName); return newName; }
@Override public String getName() { return stype.toString()+"("+struct.getShortName()+")"; } }
@Override public String setName(String newName) { this.orgName = getShortName(); setShortName(newName); return newName; }
@Override public String getName() { return stype.toString() + "(" + struct.getShortName() + ")"; } }
public List getData(CancelTask cancel) throws IOException { String CE = sequenceOuter.getShortName(); ArrayStructure as = (ArrayStructure) dodsFile.readWithCE(sequenceOuter, CE); extractMembers(as); int n = (int) as.getSize(); ArrayList dataList = new ArrayList(n); for (int i=0; i<n; i++) dataList.add( new SeqPointObs( i, as.getStructureData(i))); return dataList; }
public List readStationData(ucar.unidata.geoloc.Station s, CancelTask cancel) throws IOException { String CE = outerSequence.getShortName()+"."+innerSequence.getShortName()+"&"+ outerSequence.getShortName()+"."+ID+"="+s.getName(); ArrayStructure as = (ArrayStructure) dodsFile.readWithCE(outerSequence, CE); /* unwrap the outer structure StructureMembers outerMembers = as.getStructureMembers(); StructureMembers.Member outerMember = outerMembers.findMember(outerSequence.getShortName()); */ StructureData outerStructure = as.getStructureData(0); // get at the inner sequence ArrayStructure asInner = (ArrayStructure) outerStructure.getArray(innerSequence.getShortName()); StructureMembers innerMembers = asInner.getStructureMembers(); StructureMembers.Member timeMember = innerMembers.findMember(timeVar.getShortName()); int n = (int) asInner.getSize(); ArrayList stationData = new ArrayList(n); for (int i=0; i<n; i++) { StructureData sdata = asInner.getStructureData(i); double obsTime = sdata.convertScalarDouble(timeMember); stationData.add( new SeqStationObs(s, obsTime, sdata)); } return stationData; }
public List getData(LatLonRect boundingBox, CancelTask cancel) throws IOException { String CE = sequenceOuter.getShortName() + "&" + makeBB( boundingBox); ArrayStructure as = (ArrayStructure) dodsFile.readWithCE(sequenceOuter, CE); extractMembers(as); int n = (int) as.getSize(); ArrayList dataList = new ArrayList(n); for (int i=0; i<n; i++) dataList.add( new SeqPointObs( i, as.getStructureData(i))); return dataList; }
public List getData(LatLonRect boundingBox, Date start, Date end, CancelTask cancel) throws IOException { String CE = sequenceOuter.getShortName() + "&" + makeBB( boundingBox) + "&"+ makeTimeRange( start, end); ArrayStructure as = (ArrayStructure) dodsFile.readWithCE(sequenceOuter, CE); extractMembers(as); int n = (int) as.getSize(); ArrayList dataList = new ArrayList(n); for (int i=0; i<n; i++) dataList.add( new SeqPointObs( i, as.getStructureData(i))); return dataList; }
staxWriter.writeCharacters(indent.toString()); staxWriter.writeStartElement("struct"); staxWriter.writeAttribute("name", escaper.escape(s.getShortName())); staxWriter.writeAttribute("count", Integer.toString(count++));
staxWriter.writeCharacters(indent.toString()); staxWriter.writeStartElement("struct"); staxWriter.writeAttribute("name", StringUtil.quoteXmlAttribute(s.getShortName())); staxWriter.writeAttribute("count", Integer.toString(count++));
private void extractMembers( ArrayStructure as) { StructureMembers members = as.getStructureMembers(); latMember = members.findMember(latVar.getShortName()); lonMember = members.findMember(lonVar.getShortName()); innerMember = members.findMember(innerSequence.getShortName()); StructureData first = as.getStructureData(0); StructureData innerFirst = first.getScalarStructure(innerMember); StructureMembers innerMembers = innerFirst.getStructureMembers(); if (isProfile) { timeMember = members.findMember(timeVar.getShortName()); altMember = innerMembers.findMember(altVar.getShortName()); } else { timeMember = innerMembers.findMember(timeVar.getShortName()); altMember = members.findMember(altVar.getShortName()); } }
private void extractMembers( ArrayStructure as) { StructureMembers members = as.getStructureMembers(); latMember = members.findMember(latVar.getShortName()); lonMember = members.findMember(lonVar.getShortName()); innerMember = members.findMember(sequenceInner.getShortName()); StructureData first = as.getStructureData(0); StructureData innerFirst = first.getScalarStructure(innerMember); StructureMembers innerMembers = innerFirst.getStructureMembers(); if (isProfile) { timeMember = members.findMember(timeVar.getShortName()); altMember = innerMembers.findMember(altVar.getShortName()); } else { timeMember = innerMembers.findMember(timeVar.getShortName()); altMember = members.findMember(altVar.getShortName()); } }
private void writeSequence(StructureDS s, StructureDataIterator sdataIter) throws IOException { indent.incr(); int count = 0; while (sdataIter.hasNext()) { out.format("%sSequence %s count=%d%n", indent, s.getShortName(), count++); StructureData sdata = sdataIter.next(); indent.incr(); for (StructureMembers.Member m : sdata.getMembers()) { Variable v = s.findVariable(m.getName()); if (m.getDataType().isString() || m.getDataType().isNumeric()) { writeVariable((VariableDS) v, sdata.getArray(m)); } else if (m.getDataType() == DataType.STRUCTURE) { StructureDS sds = (StructureDS) v; ArrayStructure data = (ArrayStructure) sdata.getArray(m); writeSequence(sds, data.getStructureDataIterator()); } else if (m.getDataType() == DataType.SEQUENCE) { SequenceDS sds = (SequenceDS) v; ArraySequence data = (ArraySequence) sdata.getArray(m); writeSequence(sds, data.getStructureDataIterator()); } } indent.decr(); } indent.decr(); }