09: Fix resizing of dataset
This commit is contained in:
BIN
Exercise sheet 9/data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5
Normal file
BIN
Exercise sheet 9/data_l1.5_k0.08_w3_d1.5_20221124103953.hdf5
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -100,8 +100,8 @@ def main():
|
|||||||
|
|
||||||
# Prepare file
|
# Prepare file
|
||||||
with h5py.File(output_filename,'a') as f:
|
with h5py.File(output_filename,'a') as f:
|
||||||
if not "mean-magn" in f:
|
if not "magnetizations" in f:
|
||||||
dataset = f.create_dataset("magnetizations", (0,), maxshape=(None,), chunks=True)
|
dataset = f.create_dataset("magnetizations", (0,), maxshape=(None,), dtype='f', chunks=True, compression="gzip")
|
||||||
# store some information as metadata for the data set
|
# store some information as metadata for the data set
|
||||||
dataset.attrs["lamb"] = lamb
|
dataset.attrs["lamb"] = lamb
|
||||||
dataset.attrs["kappa"] = kappa
|
dataset.attrs["kappa"] = kappa
|
||||||
@ -112,7 +112,9 @@ def main():
|
|||||||
dataset.attrs["measure_sweeps"] = measure_sweeps
|
dataset.attrs["measure_sweeps"] = measure_sweeps
|
||||||
dataset.attrs["measurements"] = measurements
|
dataset.attrs["measurements"] = measurements
|
||||||
dataset.attrs["start time"] = starttime
|
dataset.attrs["start time"] = starttime
|
||||||
|
else:
|
||||||
|
# continue taking measurements (e.g. when previous run was interrupted)
|
||||||
|
measurements_done = len(f["magnetizations"])
|
||||||
|
|
||||||
# Measure
|
# Measure
|
||||||
# TODO: Does mean_magn need to be a list?
|
# TODO: Does mean_magn need to be a list?
|
||||||
@ -126,10 +128,10 @@ def main():
|
|||||||
with h5py.File(output_filename,'a') as f:
|
with h5py.File(output_filename,'a') as f:
|
||||||
# enlarge the data set
|
# enlarge the data set
|
||||||
dataset = f["magnetizations"]
|
dataset = f["magnetizations"]
|
||||||
dataset.resize(measurements, axis=0)
|
dataset.resize(len(dataset) + len(magnetizations), axis=0)
|
||||||
# copy the data to the new space at the end of the dataset
|
# copy the data to the new space at the end of the dataset
|
||||||
dataset[-len(magnetizations):] = magnetizations
|
dataset[-len(magnetizations):] = magnetizations
|
||||||
dataset.attrs["current_time"] = time.asctime()
|
dataset.attrs["current_time"] = time.time()
|
||||||
magnetizations.clear()
|
magnetizations.clear()
|
||||||
if measurements_done == measurements:
|
if measurements_done == measurements:
|
||||||
break
|
break
|
||||||
|
|||||||
BIN
Exercise sheet 9/testding.hdf5
Normal file
BIN
Exercise sheet 9/testding.hdf5
Normal file
Binary file not shown.
Reference in New Issue
Block a user