ArrayStructureMA to = new ArrayStructureMA(new StructureMembers(from.getStructureMembers()), from.getShape()); for (StructureMembers.Member m : from.getMembers()) { to.setMemberArray(m.getName(), from.extractMemberArray(m)); to.setMemberArray(entry.getKey(), entry.getValue());
/** * Turn any ArrayStructure into a ArrayStructureMA * @param from copy from here. If from is a ArrayStructureMA, return it. * @return equivilent ArrayStructureMA * @throws java.io.IOException on error reading a sequence */ static public ArrayStructureMA factoryMA(ArrayStructure from) throws IOException { if (from instanceof ArrayStructureMA) return (ArrayStructureMA) from; StructureMembers tosm = new StructureMembers( new StructureMembers(from.getStructureMembers())); ArrayStructureMA to = new ArrayStructureMA(tosm, from.getShape()); for (StructureMembers.Member m : from.getMembers()) { to.setMemberArray(m.getName(), from.extractMemberArray(m)); } return to; }
/** * Turn any ArrayStructure into a ArrayStructureMA * @param from copy from here. If from is a ArrayStructureMA, return it. * @return equivilent ArrayStructureMA * @throws java.io.IOException on error reading a sequence */ static public ArrayStructureMA factoryMA(ArrayStructure from) throws IOException { if (from instanceof ArrayStructureMA) return (ArrayStructureMA) from; StructureMembers tosm = new StructureMembers( new StructureMembers(from.getStructureMembers())); ArrayStructureMA to = new ArrayStructureMA(tosm, from.getShape()); for (StructureMembers.Member m : from.getMembers()) { to.setMemberArray(m.getName(), from.extractMemberArray(m)); } return to; }
manAS.setMemberArray(mname, sdata.getArray(mname));
manAS.setMemberArray(mname, sdata.getArray(mname));
manAS.setMemberArray(mname, sdata.getArray(mname));
@Ignore("Resolve issue before we enable this.") @Test public void writeStringMember() throws IOException, InvalidRangeException { File outFile = File.createTempFile("writeStringMember", ".nc4"); try { try (NetcdfFileWriter ncFileWriter = NetcdfFileWriter.createNew( NetcdfFileWriter.Version.netcdf4, outFile.getAbsolutePath())) { Structure struct = (Structure) ncFileWriter.addVariable(null, "struct", DataType.STRUCTURE, ""); ncFileWriter.addStructureMember(struct, "foo", DataType.STRING, null); ncFileWriter.create(); // Write data ArrayString.D2 fooArray = new ArrayString.D2(1, 1); fooArray.set(0, 0, "bar"); ArrayStructureMA arrayStruct = new ArrayStructureMA(struct.makeStructureMembers(), struct.getShape()); arrayStruct.setMemberArray("foo", fooArray); ncFileWriter.write(struct, arrayStruct); } // Read the file back in and make sure that what we wrote is what we're getting back. try (NetcdfFile ncFileIn = NetcdfFile.open(outFile.getAbsolutePath())) { Structure struct = (Structure) ncFileIn.findVariable(null, "struct"); Assert.assertEquals("bar", struct.readScalarString()); } } finally { outFile.delete(); } }
arrayStruct.setMemberArray("foo", fooArray);