aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2014-03-03 15:10:54 +0100
committerThomas White <taw@physics.org>2014-03-03 15:15:19 +0100
commit8a15866307f7dde7ba70ed9de756cf0392904e30 (patch)
tree1bd774d302a7d50a2fb962aa0ae7f07faf0939ee /libcrystfel
parent425c6c1c4ee91785f546f8cefc020e5dc577cad7 (diff)
Add things to stream if they were mentioned in beam or geom, and remove clen_ entries
Diffstat (limited to 'libcrystfel')
-rw-r--r--libcrystfel/src/hdf5-file.c7
-rw-r--r--libcrystfel/src/stream.c15
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);
}