aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/hdf5-file.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcrystfel/src/hdf5-file.c')
-rw-r--r--libcrystfel/src/hdf5-file.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/libcrystfel/src/hdf5-file.c b/libcrystfel/src/hdf5-file.c
index 5575a4b4..f0dc6a3c 100644
--- a/libcrystfel/src/hdf5-file.c
+++ b/libcrystfel/src/hdf5-file.c
@@ -730,7 +730,8 @@ static void write_location(hid_t fh, struct detector *det, float *data,
for ( pi=0; pi<loc->n_panels; pi++ ) {
- hsize_t f_offset[2], f_count[2];
+ hsize_t f_offset[2], f_count[2], dims[2];
+ hid_t memspace;
struct panel p;
int r;
@@ -755,19 +756,25 @@ static void write_location(hid_t fh, struct detector *det, float *data,
return;
}
- r = H5Dwrite(dh, H5T_NATIVE_FLOAT, H5S_ALL,
- dh_dataspace, H5P_DEFAULT, data);
+ dims[0] = p.h;
+ dims[1] = p.w;
+ memspace = H5Screate_simple(2, dims, NULL);
+
+ r = H5Dwrite(dh, H5T_NATIVE_FLOAT, memspace, dh_dataspace,
+ H5P_DEFAULT, data);
if ( r < 0 ) {
ERROR("Couldn't write data\n");
H5Pclose(ph);
H5Dclose(dh);
H5Sclose(dh_dataspace);
+ H5Sclose(memspace);
H5Sclose(sh);
H5Fclose(fh);
return;
}
H5Sclose(dh_dataspace);
+ H5Sclose(memspace);
}
H5Pclose(ph);
H5Sclose(sh);