@Override public StructureDataIterator getStructureDataIterator() { // throws java.io.IOException { return new StructureDataConverter(orgStruct, orgSeq.getStructureDataIterator()); } }
@Override // nested array sequence must be the stn_data public ArraySequence getArraySequence(StructureMembers.Member m) { String svalue = matcher.group(stn_fldno).trim(); Long stnId = Long.parseLong(svalue); // extract the station id StationIndex si = map.get(stnId); // find its index return new ArraySequence(dataVinfo.sm, new StnDataIter(dataVinfo.sm, si), -1); } }
SequenceConverter(StructureDS orgStruct, ArraySequence orgSeq) { super(orgSeq.getStructureMembers(), orgSeq.getShape()); this.orgStruct = orgStruct; this.orgSeq = orgSeq; this.nelems = orgSeq.getStructureDataCount(); // copy and convert the members members = new StructureMembers(orgSeq.getStructureMembers()); orgStruct.convertMemberInfo(members); }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { try (StructureDataIterator sdataIter = outerData.getStructureDataIterator()) { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } }
return extractMemberArrayFromIteration(proxym, rshape); StructureDataIterator sdataIter = getStructureDataIterator(); IndexIterator resultIter = result.getIndexIterator(); try {
private int countSeq(Structure recordStruct, SeqCount counter) throws IOException { StructureDataIterator iter = recordStruct.getStructureIterator(); while (iter.hasNext()) { StructureData sdata = iter.next(); ArraySequence seq1 = sdata.getArraySequence("seq1"); int n = seq1.getStructureDataCount(); counter.nested_total += n; counter.records++; counter.max = Math.max(counter.max, n); StructureDataIterator siter2 = seq1.getStructureDataIterator(); while (siter2.hasNext()) { StructureData sdata2 = siter2.next(); ArraySequence seq2 = sdata.getArraySequence("seq2"); //int n2 = seq1.getStructureDataCount(); } } return 0; // max; }
private int countSeq(Structure recordStruct) throws IOException { int total = 0; int count = 0; int max = 0; try (StructureDataIterator iter = recordStruct.getStructureIterator()) { while (iter.hasNext()) { StructureData sdata = iter.next(); ArraySequence seq1 = sdata.getArraySequence("seq1"); int n = seq1.getStructureDataCount(); total += n; count++; max = Math.max(max, n); } } if (count > 0 && max > 0) { double avg = (double)total / count; int wasted = count * max - total; double wp = (double) wasted / (count * max); System.out.println(" Max = " + max + " avg = " + avg + " wasted = " + wasted + " %= " + wp); } else { System.out.println(" T41_ncFlat - countSeq called on empty recordStruct" + " max = " + max + " count = " + count); } return total; }
StructureDataMunged(StructureData sdata) throws IOException { super(sdata); // munge the StructureMembers StructureMembers sm = new StructureMembers(sdataName); for (StructureMembers.Member m : sdata.getMembers()) { Action act = actions.get(m.getName()); if (act == null) { sm.addMember(m); } else if (act.what == BufrCdmIndexProto.FldAction.remove) { continue; } else if (act.what == BufrCdmIndexProto.FldAction.asMissing) { ArraySequence seq = sdata.getArraySequence(m); StructureDataIterator iter = seq.getStructureDataIterator(); if (!iter.hasNext()) { for (StructureMembers.Member childMember : seq.getMembers()) { sm.addMember(childMember); // LOOK ?? } } else { StructureData childStruct = iter.next(); for (StructureMembers.Member childMember : childStruct.getMembers()) { sm.addMember(childMember); // LOOK ?? } } } else { sm.addMember(m); } } this.members = sm; } } // StructureDataMunged
int obsCount = 0; try (StructureDataIterator iter = obsArray.getStructureDataIterator()) { for (; iter.hasNext(); ++obsCount) { ArraySequence nestedSequence = iter.next().getArraySequence("seq1"); ); Assert.assertEquals(Sets.newHashSet(expectedNestedMemberNames), Sets.newHashSet(nestedSequence.getStructureMemberNames())); try (StructureDataIterator nestedIter = nestedSequence.getStructureDataIterator()) { for (; nestedIter.hasNext(); ++seq1Count) { StructureData nestedData = nestedIter.next();
StructureData makeMissing(StructureMembers.Member seqm, ArraySequence seq) { StructureData result = missingData.get(seqm.getName()); if (result != null) return result; StructureMembers sm = new StructureMembers(seq.getStructureMembers()); StructureDataW resultW = new StructureDataW(sm); for (StructureMembers.Member m : sm.getMembers()) { VariableDS var = vars.get(m.getName()); Array missingData = var.getMissingDataArray(m.getShape()); resultW.setMemberData(m, missingData); } missingData.put(seqm.getName(), resultW); return resultW; }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { StructureDataIterator sdataIter = outerData.getStructureDataIterator(); try { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } finally { sdataIter.finish(); } }
return extractMemberArrayFromIteration(proxym, rshape); StructureDataIterator sdataIter = getStructureDataIterator(); IndexIterator resultIter = result.getIndexIterator(); try {
FieldConverter fld = parent.getChild(count); ArraySequence data = (ArraySequence) sdata.getArray(m); int n = data.getStructureDataCount(); fld.trackSeqCounts(n); processSeq(data.getStructureDataIterator(), fld, false);
private int countSeq(Structure recordStruct) throws IOException { int total = 0; int count = 0; int max = 0; try (StructureDataIterator iter = recordStruct.getStructureIterator()) { while (iter.hasNext()) { StructureData sdata = iter.next(); ArraySequence seq1 = sdata.getArraySequence("seq1"); int n = seq1.getStructureDataCount(); total += n; count++; max = Math.max(max, n); } } if (count > 0 && max > 0) { double avg = (double) total / count; int wasted = count * max - total; double wp = (double) wasted / (count * max); System.out.println(" Max = " + max + " avg = " + avg + " wasted = " + wasted + " %= " + wp); } else { System.out.println(" T41_ncFlat - countSeq called on empty recordStruct" + " max = " + max + " count = " + count); } return max; }
@Override // nested array sequence must be the stn_data public ArraySequence getArraySequence(StructureMembers.Member m) { String svalue = matcher.group(stn_fldno).trim(); Long stnId = Long.parseLong(svalue); // extract the station id StationIndex si = map.get(stnId); // find its index return new ArraySequence(dataVinfo.sm, new StnDataIter(dataVinfo.sm, si), -1); } }
@Override public StructureDataIterator getStructureDataIterator() { // throws java.io.IOException { return new StructureDataConverter(orgStruct, orgSeq.getStructureDataIterator()); } }
SequenceConverter(StructureDS orgStruct, ArraySequence orgSeq) { super(orgSeq.getStructureMembers(), orgSeq.getShape()); this.orgStruct = orgStruct; this.orgSeq = orgSeq; this.nelems = orgSeq.getStructureDataCount(); // copay and convert the members members = new StructureMembers(orgSeq.getStructureMembers()); orgStruct.convertMemberInfo(members); }
static private void extractSectionFromSequence(ParsedSectionSpec child, ArraySequence outerData, IndexIterator to) throws IOException, InvalidRangeException { StructureDataIterator sdataIter = outerData.getStructureDataIterator(); try { while (sdataIter.hasNext()) { StructureData sdata = sdataIter.next(); StructureMembers.Member m = outerData.findMember(child.v.getShortName()); Array innerData = sdata.getArray(child.v.getShortName()); MAMath.copy(m.getDataType(), innerData.getIndexIterator(), to); } } finally { sdataIter.finish(); } }
return extractMemberArrayFromIteration(proxym, rshape); try (StructureDataIterator sdataIter = getStructureDataIterator()) { IndexIterator resultIter = result.getIndexIterator(); while (sdataIter.hasNext()) {
private int countSeq(Structure recordStruct) throws IOException { int total = 0; int count = 0; int max = 0; StructureDataIterator iter = recordStruct.getStructureIterator(); while (iter.hasNext()) { StructureData sdata = iter.next(); ArraySequence seq1 = sdata.getArraySequence("seq1"); int n = seq1.getStructureDataCount(); total += n; count++; max = Math.max(max, n); } double avg = total / count; int wasted = count * max - total; double wp = (double) wasted / (count * max); System.out.println(" Max = " + max + " avg = " + avg + " wasted = " + wasted + " %= " + wp); return max; }