private GribCollectionProto.Group writeGroupProto(Group g) throws IOException { GribCollectionProto.Group.Builder b = GribCollectionProto.Group.newBuilder(); b.setGds(ByteString.copyFrom(g.gdss.getRawBytes())); b.setGdsHash(g.gdsHash); for (Grib2Rectilyser.VariableBag vb : g.rect.getGribvars()) b.addVariables(writeVariableProto(g.rect, vb)); List<TimeCoord> timeCoords = g.rect.getTimeCoords(); for (int i = 0; i < timeCoords.size(); i++) b.addTimeCoords(writeCoordProto(timeCoords.get(i), i)); List<VertCoord> vertCoords = g.rect.getVertCoords(); for (int i = 0; i < vertCoords.size(); i++) b.addVertCoords(writeCoordProto(vertCoords.get(i), i)); List<EnsCoord> ensCoords = g.rect.getEnsCoords(); for (int i = 0; i < ensCoords.size(); i++) b.addEnsCoords(writeCoordProto(ensCoords.get(i), i)); for (Integer aFileSet : g.fileSet) b.addFileno(aFileSet); if (g.nameOverride != null) b.setName(g.nameOverride); return b.build(); }
private GribCollectionProto.Group writeGroupProto(GribCollection.GroupHcs g) throws IOException { GribCollectionProto.Group.Builder b = GribCollectionProto.Group.newBuilder(); b.setGds(ByteString.copyFrom(g.rawGds)); b.setGdsHash(g.gdsHash); for (GribCollection.VariableIndex vb : g.varIndex) b.addVariables(writeVariableProto((TimePartition.VariableIndexPartitioned) vb)); for (int i = 0; i < g.timeCoordPartitions.size(); i++) b.addTimeCoordUnions(writeTimeCoordUnionProto(g.timeCoordPartitions.get(i), i)); List<VertCoord> vertCoords = g.vertCoords; for (int i = 0; i < vertCoords.size(); i++) b.addVertCoords(writeCoordProto(vertCoords.get(i), i)); List<EnsCoord> ensCoords = g.ensCoords; for (int i = 0; i < ensCoords.size(); i++) b.addEnsCoords(writeCoordProto(ensCoords.get(i), i)); return b.build(); }