diff options
Diffstat (limited to 'libcrystfel')
-rw-r--r-- | libcrystfel/src/hdf5-file.c | 7 | ||||
-rw-r--r-- | libcrystfel/src/stream.c | 15 |
2 files changed, 12 insertions, 10 deletions
diff --git a/libcrystfel/src/hdf5-file.c b/libcrystfel/src/hdf5-file.c index ed3b1e29..08e1c5e3 100644 --- a/libcrystfel/src/hdf5-file.c +++ b/libcrystfel/src/hdf5-file.c @@ -883,6 +883,13 @@ void free_copy_hdf5_field_list(struct copy_hdf5_field *n) void add_copy_hdf5_field(struct copy_hdf5_field *copyme, const char *name) { + int i; + + /* Already on the list? Don't re-add if so. */ + for ( i=0; i<copyme->n_fields; i++ ) { + if ( strcmp(copyme->fields[i], name) == 0 ) return; + } + /* Need more space? */ if ( copyme->n_fields == copyme->max_fields ) { diff --git a/libcrystfel/src/stream.c b/libcrystfel/src/stream.c index 04d2277f..4cf02414 100644 --- a/libcrystfel/src/stream.c +++ b/libcrystfel/src/stream.c @@ -213,15 +213,15 @@ void write_chunk(Stream *st, struct image *i, struct hdfile *hdfile, fprintf(st->fh, "indexed_by = %s\n", indexer); free(indexer); + fprintf(st->fh, "photon_energy_eV = %f\n", + J_to_eV(ph_lambda_to_en(i->lambda))); + + copy_hdf5_fields(hdfile, i->copyme, st->fh); + if ( i->det != NULL ) { int j; - for ( j=0; j<i->det->n_panels; j++ ) { - fprintf(st->fh, "camera_length_%s = %f\n", - i->det->panels[j].name, i->det->panels[j].clen); - } - for ( j=0; j<i->det->n_rigid_groups; j++ ) { struct rigid_group *rg = i->det->rigid_groups[j]; @@ -246,17 +246,12 @@ void write_chunk(Stream *st, struct image *i, struct hdfile *hdfile, } - copy_hdf5_fields(hdfile, i->copyme, st->fh); - fprintf(st->fh, "num_peaks = %lli\n", i->num_peaks); fprintf(st->fh, "num_saturated_peaks = %lli\n", i->num_saturated_peaks); if ( include_peaks ) { write_peaks(i, st->fh); } - fprintf(st->fh, "photon_energy_eV = %f\n", - J_to_eV(ph_lambda_to_en(i->lambda))); - for ( j=0; j<i->n_crystals; j++ ) { write_crystal(st, i->crystals[j], include_reflections); } |