private void Write(H5GroupId parent, string name, IEnumerable <IMeasurement> measurements) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)measurements.Count() }); // Set compression options for dataset H5PropertyListId dataSetPropertyList = H5P.create(H5P.PropertyListClass.DATASET_CREATE); H5P.setDeflate(dataSetPropertyList, NumericDataCompression); H5P.setChunk(dataSetPropertyList, new long[] { (long)measurements.Count() }); H5DataSetId dataSetId = H5D.create(parent, name, measurement_t, spaceId, new H5PropertyListId(H5P.Template.DEFAULT), dataSetPropertyList, new H5PropertyListId(H5P.Template.DEFAULT)); MeasurementT[] ms = new MeasurementT[measurements.Count()]; int ilmCount = 0; foreach (IMeasurement m in measurements) { MeasurementT mt = Convert(m); ms[ilmCount++] = mt; } H5D.write <MeasurementT>(dataSetId, measurement_t, new H5Array <MeasurementT>(ms)); H5D.close(dataSetId); H5S.close(spaceId); }
private void Write(H5GroupId parent, string name, IMeasurement m) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)1 }); H5DataSetId dataSetId = H5D.create(parent, name, measurement_t, spaceId); MeasurementT mt = Convert(m); H5D.writeScalar <MeasurementT>(dataSetId, measurement_t, ref mt); H5D.close(dataSetId); H5S.close(spaceId); }
private MeasurementT Convert(IMeasurement m) { MeasurementT mt = new MeasurementT { quantity = (double)m.Quantity }; byte[] unitdata = System.Text.Encoding.UTF8.GetBytes(m.DisplayUnit); if (unitdata.Length > FIXED_STRING_LENGTH) { throw new InvalidOperationException("BaseUnits string is longer than 40 characters."); } unsafe { for (int i = 0; i < Math.Min(unitdata.Length, FIXED_STRING_LENGTH); i++) { mt.unit[i] = unitdata[i]; } } return(mt); }
private void Write(H5GroupId parent, string name, IEnumerable<IMeasurement> measurements) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)measurements.Count() }); // Set compression options for dataset H5PropertyListId dataSetPropertyList = H5P.create(H5P.PropertyListClass.DATASET_CREATE); H5P.setDeflate(dataSetPropertyList, NumericDataCompression); H5P.setChunk(dataSetPropertyList, new long[] {(long)measurements.Count()}); H5DataSetId dataSetId = H5D.create(parent, name, measurement_t, spaceId, new H5PropertyListId(H5P.Template.DEFAULT), dataSetPropertyList, new H5PropertyListId(H5P.Template.DEFAULT)); MeasurementT[] ms = new MeasurementT[measurements.Count()]; int ilmCount = 0; foreach (IMeasurement m in measurements) { MeasurementT mt = Convert(m); ms[ilmCount++] = mt; } H5D.write<MeasurementT>(dataSetId, measurement_t, new H5Array<MeasurementT>(ms)); H5D.close(dataSetId); H5S.close(spaceId); }
private MeasurementT Convert(IMeasurement m) { MeasurementT mt = new MeasurementT { quantity = (double)m.Quantity }; byte[] unitdata = System.Text.Encoding.UTF8.GetBytes(m.DisplayUnit); if (unitdata.Length > FIXED_STRING_LENGTH) throw new InvalidOperationException("BaseUnits string is longer than 40 characters."); unsafe { for (int i = 0; i < Math.Min(unitdata.Length, FIXED_STRING_LENGTH); i++) mt.unit[i] = unitdata[i]; } return mt; }