#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <math.h>
#include "marcif_header.h"
#include "mar345_header.h"
#include <cbf.h>
#include <img.h>
Go to the source code of this file.
Defines | |
#define | printe(x) printf("%s: %s: %s\n",prg,f,x) |
#define | cbf_failnez(x) |
Functions | |
int | GetCIFHeader (char *, char *, FILE *) |
int | GetCIFData (char *, char *, FILE *, unsigned int *) |
int | PutCIFData (char *, char *, char, unsigned int *) |
int | PutCIFHeader (char *, char *) |
MAR345_HEADER | CIF2mar345Header (char *) |
void | mar3452CIFHeader (char *, char *, MAR345_HEADER) |
Variables | |
int | verbose |
static char | PRINT_AXIS = 0 |
static char | PRINT_CHEMICAL = 0 |
static int | cif_error = 0 |
static CIF_HEADER | hcif |
cbf_handle | cif = NULL |
static size_t | cif_read = 0 |
static int | cif_id = 0 |
static int | cif_element_signed = 0 |
static int | cif_element_unsigned = 0 |
static int | cif_minelement = 0 |
static int | cif_maxelement = 0 |
static unsigned int | cif_compression = 0 |
static size_t | cif_nelements = 0 |
static size_t | cif_element_size = 0 |
#define cbf_failnez | ( | x | ) |
{ int err; \ cif_error = 0; \ err = (x); \ if (err) { \ if ( verbose > 1 ) \ fprintf(stdout,"CBFlib error %d\n",err); \ cif_error=err; \ } \ }
Definition at line 38 of file marcif.c.
Referenced by GetCIFData(), GetCIFHeader(), PutCIFData(), and PutCIFHeader().
#define printe | ( | x | ) | printf("%s: %s: %s\n",prg,f,x) |
Definition at line 36 of file marcif.c.
Referenced by GetCIFData(), and GetCIFHeader().
MAR345_HEADER CIF2mar345Header | ( | char * | prg | ) |
Definition at line 791 of file marcif.c.
References MARIP_ADC::add_channel_a, MARIP_ADC::add_channel_b, DIFFRN_SCAN_FRAME_AXIS::angle, MARIP_AXIS::angle_end, DIFFRN_SCAN_AXIS::angle_increment, DIFFRN_SCAN_AXIS::angle_start, MARIP_AXIS::angle_start, CIF_HEADER::array_element_size, CIF_HEADER::array_intensities, CIF_HEADER::array_structure_list, CIF_HEADER::audit, MARIP_EXPOSURE_DOSE::avg, AXIS_CHI, AXIS_DISTANCE, AXIS_OMEGA, AXIS_PHI, AXIS_THETA, DIFFRN_DETECTOR_ELEMENT::center_x, DIFFRN_DETECTOR_ELEMENT::center_y, MARIP_ADC::channel_a, MARIP_ADC::channel_b, AUDIT::creation_date, DIFFRN_SOURCE::current, CIF_HEADER::diffrn_detector_element, CIF_HEADER::diffrn_detector_mar_adc, CIF_HEADER::diffrn_detector_mar_axis, CIF_HEADER::diffrn_detector_mar_data, CIF_HEADER::diffrn_detector_mar_exposure, CIF_HEADER::diffrn_detector_mar_exposure_dose, CIF_HEADER::diffrn_detector_mar_gaps, CIF_HEADER::diffrn_detector_mar_scan, CIF_HEADER::diffrn_radiation, CIF_HEADER::diffrn_radiation_wavelength, CIF_HEADER::diffrn_scan_axis, CIF_HEADER::diffrn_scan_frame_axis, CIF_HEADER::diffrn_source, ARRAY_STRUCTURE_LIST::dimension, DIFFRN_SCAN_FRAME_AXIS::displacement, MARIP_AXIS::displacement, CIF_HEADER::element_id, MARIP_EXPOSURE_DOSE::end, MARIP_EXPOSURE_DOSE::esd, ARRAY_INTENSITIES::gain, MARIP_ADC::gain, MARIP_GAPS::gap, h345, MARIP_DATA::histogram_end, MARIP_DATA::histogram_max, MARIP_DATA::histogram_start, i, MARIP_DATA::intensity_avg, MARIP_DATA::intensity_esd, MARIP_DATA::intensity_max, MARIP_DATA::intensity_min, j, CIF_HEADER::mar_id, MARIP_EXPOSURE_DOSE::max, MARIP_EXPOSURE_DOSE::measurements, MARIP_EXPOSURE_DOSE::min, DIFFRN_RADIATION::monochromator, MARIP_ADC::multiplier, MARIP_SCAN::number_of_pixels, MARIP_SCAN::number_of_pixels_larger_16_bit, MARIP_AXIS::oscillations, MARIP_SCAN::pixel_height, MARIP_SCAN::pixel_length, ARRAY_ELEMENT_SIZE::pixelsize, DIFFRN_RADIATION_WAVELENGTH::polarisn_ratio, MARIP_SCAN::radial_offset, ARRAY_INTENSITIES::scaling, MARIP_SCAN::scanmode, DIFFRN_SOURCE::source, MARIP_EXPOSURE_DOSE::start, MARIP_SCAN::tangential_offset, MARIP_EXPOSURE::time, MARIP_EXPOSURE::type, DIFFRN_SOURCE::voltage, and DIFFRN_RADIATION_WAVELENGTH::wavelength.
{ char *c,*d, *sval; int i,j,k; MAR345_HEADER h345; /* Defaults ... */ memset( (char *)&h345, 0, sizeof(MAR345_HEADER) ); h345.wave = hcif.diffrn_radiation_wavelength.wavelength; h345.byteorder = 1234; h345.format = 1; /* Center of detector ... */ h345.xcen = hcif.diffrn_detector_element.center_x; h345.ycen = hcif.diffrn_detector_element.center_y; /* Serial number may be stored in element_id ... */ if ( (sval=strchr( hcif.element_id, '_' )) != NULL ) { i=sscanf( sval+1, "%d", &k); if ( i==1 ) h345.scanner = k; } /* Has this CBF been created by mar software ? ... */ if ( strlen( hcif.mar_id ) ) { /* Axis setting */ h345.phibeg = hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_start; h345.phiend = hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_end; h345.phiosc = hcif.diffrn_detector_mar_axis[AXIS_PHI].oscillations; h345.omebeg = hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_start; h345.omeend = hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_end; h345.omeosc = hcif.diffrn_detector_mar_axis[AXIS_OMEGA].oscillations; h345.dist = hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].displacement; h345.theta = hcif.diffrn_detector_mar_axis[AXIS_THETA].angle_end; h345.chi = hcif.diffrn_detector_mar_axis[AXIS_CHI].angle_end; h345.time = hcif.diffrn_detector_mar_exposure.time; /* Internals ... */ h345.multiplier = hcif.diffrn_detector_mar_adc.multiplier; h345.gain = hcif.diffrn_detector_mar_adc.gain; h345.adc_A = hcif.diffrn_detector_mar_adc.channel_a; h345.adc_B = hcif.diffrn_detector_mar_adc.channel_b; h345.add_A = hcif.diffrn_detector_mar_adc.add_channel_a; h345.add_B = hcif.diffrn_detector_mar_adc.add_channel_b; h345.roff = hcif.diffrn_detector_mar_scan.radial_offset; h345.toff = hcif.diffrn_detector_mar_scan.tangential_offset; /* Image descriptors */ h345.pixel_height = hcif.diffrn_detector_mar_scan.pixel_height; h345.pixel_length = hcif.diffrn_detector_mar_scan.pixel_length; h345.size = hcif.diffrn_detector_mar_scan.scanmode; h345.pixels = hcif.diffrn_detector_mar_scan.number_of_pixels; h345.high = hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit; /* Exposure dose statistics */ h345.dosebeg = hcif.diffrn_detector_mar_exposure_dose.start; h345.doseend = hcif.diffrn_detector_mar_exposure_dose.end; h345.dosemin = hcif.diffrn_detector_mar_exposure_dose.min; h345.dosemax = hcif.diffrn_detector_mar_exposure_dose.max; h345.doseavg = hcif.diffrn_detector_mar_exposure_dose.avg; h345.dosesig = hcif.diffrn_detector_mar_exposure_dose.esd; h345.dosen = hcif.diffrn_detector_mar_exposure_dose.measurements; /* Image statistics */ h345.valmin = hcif.diffrn_detector_mar_data.intensity_min; h345.valmax = hcif.diffrn_detector_mar_data.intensity_max; h345.valavg = hcif.diffrn_detector_mar_data.intensity_avg; h345.valsig = hcif.diffrn_detector_mar_data.intensity_esd; h345.histbeg = hcif.diffrn_detector_mar_data.histogram_start; h345.histend = hcif.diffrn_detector_mar_data.histogram_end; h345.histmax = hcif.diffrn_detector_mar_data.histogram_max; /* Gaps */ for (i=0;i<8;i++) { h345.gap[i] = hcif.diffrn_detector_mar_gaps.gap[i]; } /* Type of exposure: DOSE or TIME */ if ( strstr( hcif.diffrn_detector_mar_exposure.type, "dose" ) ) h345.mode = 0; else h345.mode = 1; /* Serial number is stored in diffrn_detector_mar_id ... */ if ( (sval=strchr( hcif.mar_id, '_' )) != NULL ) { i=sscanf( sval+1, "%d", &k); if ( i==1 ) h345.scanner = k; } } /* So this CBF has not been created by mar software ... */ /* Some parameters may have been guessed ...*/ else { /* Axis setting */ h345.phibeg = hcif.diffrn_scan_axis[AXIS_PHI].angle_start; h345.phiend = h345.phibeg + hcif.diffrn_scan_axis[AXIS_PHI].angle_increment; h345.phiosc = 1; h345.omebeg = hcif.diffrn_scan_axis[AXIS_OMEGA].angle_start; h345.omeend = h345.omebeg + hcif.diffrn_scan_axis[AXIS_OMEGA].angle_increment; h345.omeosc = 0; /* Distance is in m, so divide by 1000 to get mm */ h345.dist = hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].displacement; h345.theta = hcif.diffrn_scan_frame_axis[AXIS_THETA].angle; h345.chi = hcif.diffrn_scan_frame_axis[AXIS_CHI].angle; /* Image descriptors */ h345.pixel_height = hcif.array_element_size.pixelsize[0]; h345.pixel_length = hcif.array_element_size.pixelsize[1]; h345.size = hcif.array_structure_list[0].dimension; h345.pixels = h345.size*h345.size; h345.multiplier = hcif.array_intensities.scaling; h345.gain = hcif.array_intensities.gain; h345.mode = 1; /* Time mode = default */ /* Serial number is stored in element_id ... */ if ( (sval=strchr( hcif.element_id, '_' )) != NULL ) { i=sscanf( sval+1, "%d", &k); if ( i==1 ) h345.scanner = k; } } /* Make sure pixesize is in microm */ i=0; while (h345.pixel_height < 1.f) { /* Pixelsize in micron */ h345.pixel_height *= 1000.; h345.pixel_length *= 1000.; i++; if (i==6) break; } /* Convert distance from m to mm */ if ( h345.dist < 0.1 ) h345.dist *= 1000.; /* Convert IP-center from mm to pixels */ if ( h345.pixel_height > 0.01 ) { h345.xcen /= ( h345.pixel_height/1000. ); h345.ycen /= ( h345.pixel_height/1000. ); } /* Generator setup */ strcpy( h345.source, hcif.diffrn_source.source); h345.kV = hcif.diffrn_source.voltage; h345.mA = hcif.diffrn_source.current; /* Beam setup */ strcpy( h345.filter, hcif.diffrn_radiation.monochromator); h345.polar = hcif.diffrn_radiation_wavelength.polarisn_ratio; strcpy( h345.date, hcif.audit.creation_date); return h345; }
int GetCIFData | ( | char * | prg, |
char * | f, | ||
FILE * | fp, | ||
unsigned int * | i4_img | ||
) |
Definition at line 1880 of file marcif.c.
References CIF_HEADER::array_id, cbf_failnez, cbf_find_category(), cbf_find_column(), cbf_find_row(), cbf_free_handle(), cbf_get_integerarray(), cbf_get_integerarrayparameters(), cbf_rewind_datablock(), cif_compression, cif_element_signed, cif_element_size, cif_element_unsigned, cif_error, cif_id, cif_maxelement, cif_minelement, cif_nelements, cif_read, printe, and verbose.
{ cif_read = 0; cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "array_data")) if ( cif_error ) { printe("Cannot find category: array_data"); goto CIF_END; } cbf_failnez (cbf_find_column (cif, "array_id")) cbf_failnez (cbf_find_row (cif, hcif.array_id)) cbf_failnez (cbf_find_column (cif, "data")) cbf_failnez (cbf_get_integerarrayparameters( cif, &cif_compression, &cif_id, &cif_element_size, &cif_element_signed, &cif_element_unsigned, &cif_nelements, &cif_minelement, &cif_maxelement)) if ( cif_error ) { printe("Cannot get data array parameters"); goto CIF_END; } cbf_failnez (cbf_get_integerarray ( cif, &cif_id, (void *)i4_img, cif_element_size, cif_element_signed, cif_nelements, &cif_read)) if ( cif_error ) { printe("Cannot read data array"); goto CIF_END; } CIF_END: if ( verbose > 1 ) { printf("\n"); printf(" Identifier :\t %11d\n",cif_id); printf(" Compression :\t %11d\n",cif_compression); printf(" Elements: :\t %11d\n",cif_nelements); printf(" Min. element :\t %11d\n",cif_minelement); printf(" Max. element :\t %11d\n",cif_maxelement); printf(" Element size :\t %11d\n",cif_element_size); printf(" Signed :\t %11d\n",cif_element_signed); printf(" Unsigned :\t %11d\n",cif_element_unsigned); printf(" Elements read:\t %11d\n",cif_read); } /* Free the cbf */ cbf_failnez (cbf_free_handle (cif)) /* Input file has been closed my cbf_free_handle! */ fp = NULL; return cif_read; }
int GetCIFHeader | ( | char * | prg, |
char * | f, | ||
FILE * | fp | ||
) |
Definition at line 93 of file marcif.c.
References AXIS_DISTANCE, AXIS_PHI, cbf_failnez, cbf_find_category(), cbf_find_column(), cbf_find_nextrow(), cbf_get_doublevalue(), cbf_get_integervalue(), cbf_get_value(), cbf_make_handle(), cbf_read_file(), cbf_rewind_datablock(), cbf_rewind_row(), cif_error, i, MSG_DIGEST, N_SCAN_AXES, N_SCAN_FRAME_AXES, printe, str, and verbose.
{ const char *sval; float fval; double dval; int ival; int i; char str[64]; char *axis_name[] = {"phi", "omega", "chi", "2-theta", "distance", "z-axis", "slit_1_hor", "slit_1_ver", "slit_2_hor", "slit_2_ver", "trans_hor", "trans_ver", "rot_hor", "rot_ver", "beamstop" }; char axis[16] = {""}; rewind( fp ); /* Initialize CIF Header */ memset( (char *)&hcif, 0, sizeof(CIF_HEADER) ); cbf_failnez (cbf_make_handle (&cif)) if ( cif_error ) { printe("Cannot create handle for CIF input"); return 0; } cbf_failnez (cbf_read_file (cif, fp, MSG_DIGEST)) cbf_failnez (cbf_rewind_datablock (cif)) /************************************************************ * Category MARIP ************************************************************/ cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar")) if ( cif_error ) { printe("Cannot find category: diffrn_detector_mar"); goto CIF_MARIP_GAPS; } cbf_failnez (cbf_find_column (cif, "id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.mar_id, sval); } /************************************************************ * Category MARIP_GAPS ************************************************************/ CIF_MARIP_GAPS: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_gaps")) if ( !cif_error ) { for (i=0;i<8;i++) { sprintf(str, "gap[%d]",i+1); cbf_failnez (cbf_find_column (cif, str)) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_gaps.gap[i] = ival; } cbf_failnez (cbf_rewind_row (cif)) } } /************************************************************ * Category MARIP_EXPOSURE ************************************************************/ CIF_MARIP_EXPOSURE: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_exposure")) if ( cif_error ) goto CIF_MARIP_AXIS; cbf_failnez (cbf_find_column (cif, "type")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.diffrn_detector_mar_exposure.type, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "time")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_exposure.time = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "dose")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_exposure.dose = (float)dval; } /************************************************************ * Category MARIP_AXIS ************************************************************/ CIF_MARIP_AXIS: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_axis")) if ( cif_error ) goto CIF_MARIP_EXPOSURE_DOSE; cbf_failnez (cbf_find_column (cif, "mar_id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.mar_id, sval); } for ( i=0; i<=AXIS_DISTANCE; i++ ) { while (cbf_find_nextrow (cif, hcif.mar_id) == 0) { cbf_failnez (cbf_find_column (cif, "axis_id")) if ( cif_error ) break; cbf_failnez (cbf_get_value (cif, &sval)) strcpy( axis, axis_name[i] ); if ( !strcmp( sval, axis ) ) { cbf_failnez (cbf_find_column (cif, "angle_start")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_axis[i].angle_start=(float)dval; } cbf_failnez (cbf_find_column (cif, "angle_end")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_axis[i].angle_end=(float)dval; } cbf_failnez (cbf_find_column (cif, "angle_increment")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_axis[i].angle_increment=(float)dval; } cbf_failnez (cbf_find_column (cif, "oscillations")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_axis[i].oscillations = ival; } cbf_failnez (cbf_find_column (cif, "displacement")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_axis[i].displacement=(float)dval; } } cbf_failnez (cbf_find_column (cif, "mar_id")) } cbf_failnez (cbf_rewind_row (cif)) } /************************************************************ * Category MARIP_EXPOSURE_DOSE ************************************************************/ CIF_MARIP_EXPOSURE_DOSE: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_exposure_dose")) if ( cif_error ) goto CIF_MARIP_SCAN; cbf_failnez (cbf_find_column (cif, "start")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.start = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "end")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue(cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.end = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "min")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue(cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.min = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "max")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue(cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.max= (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "avg")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue(cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.avg = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "esd")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue(cif, &dval)) hcif.diffrn_detector_mar_exposure_dose.esd = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "measurements")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_exposure_dose.measurements = ival; } /************************************************************ * Category MARIP_EXPOSURE_SCAN ************************************************************/ CIF_MARIP_SCAN: cbf_failnez (cbf_rewind_datablock (cif)) if ( cif_error ) goto CIF_MARIP_ADC; cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_scan")) cbf_failnez (cbf_find_column (cif, "scanmode")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_scan.scanmode = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "number_of_pixels")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_scan.number_of_pixels = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "number_of_pixels_larger_16_bit")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "pixel_height")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_scan.pixel_height = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "pixel_length")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_scan.pixel_length = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "radial_offset")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_scan.radial_offset = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "tangential_offset")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_scan.tangential_offset= (float)dval; } /************************************************************ * Category MARIP_ADC ************************************************************/ CIF_MARIP_ADC: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_adc")) if ( cif_error ) goto CIF_MARIP_DATA; cbf_failnez (cbf_find_column (cif, "channel_a")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_adc.channel_a = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "channel_b")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_adc.channel_b = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "add_channel_a")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_adc.add_channel_a = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "add_channel_b")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_adc.add_channel_b = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "oversampling")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_adc.oversampling = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "multiplier")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_adc.multiplier = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "gain")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_adc.gain = (float)dval; } /************************************************************ * Category MARIP_DATA ************************************************************/ CIF_MARIP_DATA: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_mar_data")) if ( cif_error ) goto CIF_DIFFRN_FRAME_DATA; cbf_failnez (cbf_find_column (cif, "intensity_avg")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_data.intensity_avg = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "intensity_esd")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_mar_data.intensity_esd = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "intensity_min")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_data.intensity_min = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "intensity_max")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_data.intensity_max = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "histogram_start")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_data.histogram_start = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "histogram_end")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_data.histogram_end = ival; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "histogram_max")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &ival)) hcif.diffrn_detector_mar_data.histogram_max = ival; } /************************************************************ * Category DIFFRN_FRAME_DATA ************************************************************/ CIF_DIFFRN_FRAME_DATA: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_frame_data")) if ( cif_error ) { printe("Cannot find category: diffrn_frame_data "); goto CIF_DIFFRN_DETECTOR_ELEMENT; } cbf_failnez (cbf_find_column (cif, "array_id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.array_id, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.data_id, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "detector_element_id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.element_id, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "binary_id")) if ( !cif_error ) { cbf_failnez (cbf_get_integervalue (cif, &hcif.binary_id)) } /************************************************************ * Category DIFFRN_DETECTOR_ELEMENT ************************************************************/ CIF_DIFFRN_DETECTOR_ELEMENT: cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "diffrn_detector_element")) if ( cif_error )goto CIF_ARRAY_STRUCTURE_LIST; cbf_failnez (cbf_find_column (cif, "center[1]")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_element.center_x = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "center[2]")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_detector_element.center_y = (float)dval; } /************************************************************ * Category ARRAY_STRUCTURE_LIST ************************************************************/ CIF_ARRAY_STRUCTURE_LIST: /* Get the image dimensions (2nd = fast, 1st = slow) */ cbf_failnez (cbf_rewind_datablock (cif)) cbf_failnez (cbf_find_category (cif, "array_structure_list")) if ( cif_error ) goto CIF_ARRAY_ELEMENT_SIZE; cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "array_id")) i=0; while (cbf_find_nextrow (cif, hcif.array_id) == 0) { cbf_failnez (cbf_find_column (cif, "precedence")) cbf_failnez (cbf_get_integervalue (cif, &hcif.array_structure_list[i].precedence)) if ( hcif.array_structure_list[i].precedence >= 1 && hcif.array_structure_list[i].precedence <= 2) { cbf_failnez (cbf_find_column (cif, "dimension")) cbf_failnez (cbf_get_integervalue (cif, &hcif.array_structure_list[2-hcif.array_structure_list[i].precedence].dimension)) } else { printe("Cannot find CIF dimensions"); return 0; } i++; if ( i == 2 ) break; cbf_failnez (cbf_find_column (cif, "array_id")) } if ( hcif.array_structure_list[0].dimension*hcif.array_structure_list[1].dimension == 0 ) { printe("Something wrong with CIF dimensions"); return 0; } /************************************************************ * Category ARRAY_ELEMENT_SIZE ************************************************************/ CIF_ARRAY_ELEMENT_SIZE: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "array_element_size")) if ( cif_error ) { printe("Cannot find category: array_element_size"); goto CIF_DIFFRN_RADIATION; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "array_id")) i = 0; while (cbf_find_nextrow (cif, hcif.array_id) == 0) { cbf_failnez (cbf_find_column (cif, "size")) cbf_failnez (cbf_get_doublevalue (cif, &dval)) if ( !cif_error ) hcif.array_element_size.pixelsize[i] = (float)dval; cbf_failnez (cbf_find_column (cif, "array_id")) i++; if ( i == 2 ) break; } /************************************************************ * Category DIFFRN_RADIATION ************************************************************/ CIF_DIFFRN_RADIATION: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_radiation")) if ( cif_error ) goto CIF_DIFFRN_RADIATION_WAVELENGTH; cbf_failnez (cbf_find_column (cif, "monochromator")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.diffrn_radiation.monochromator, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "wavelength")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_radiation_wavelength.wavelength = (float)dval; } /************************************************************ * Category DIFFRN_RADIATION_WAVELENGTH ************************************************************/ CIF_DIFFRN_RADIATION_WAVELENGTH: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_radiation_wavelength")) if ( cif_error ) goto CIF_DIFFRN_MEASUREMENT; cbf_failnez (cbf_find_column (cif, "wavelength")) if ( cif_error ) { printe("Cannot find data item: wavelength"); goto CIF_DIFFRN_MEASUREMENT; } else { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_radiation_wavelength.wavelength = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "polarisn_ratio")) if ( !cif_error ) { hcif.diffrn_radiation_wavelength.polarisn_ratio = (float)dval; } /************************************************************ * Category DIFFRN_MEASUREMENT ************************************************************/ CIF_DIFFRN_MEASUREMENT: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_measurement")) if ( cif_error ) { printe("Cannot find category: diffrn_measurement"); goto CIF_DIFFRN_SOURCE; } cbf_failnez (cbf_find_column (cif, "sample_detector_distance")) if ( cif_error == 0 ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_measurement.sample_detector_distance = (float)dval; } /************************************************************ * Category DIFFRN_SOURCE ************************************************************/ CIF_DIFFRN_SOURCE: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_source")) if ( cif_error ) goto CIF_DIFFRN_SCAN_FRAME_AXIS; cbf_failnez (cbf_find_column (cif, "source")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.diffrn_source.source, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "type")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.diffrn_source.type, sval); } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "current")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_source.current = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "voltage")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_source.voltage = (float)dval; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "power")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_source.power = (float)dval; } /************************************************************ * Category DIFFRN_SCAN_FRAME_AXIS ************************************************************/ CIF_DIFFRN_SCAN_FRAME_AXIS: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_scan_frame_axis")) if ( cif_error ) { printe("Cannot find category: diffrn_scan_frame_axis"); goto CIF_DIFFRN_SCAN; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "scan_id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.scan_id, sval); } for ( i=0; i<N_SCAN_FRAME_AXES; i++ ) { while (cbf_find_nextrow (cif, hcif.scan_id) == 0) { cbf_failnez (cbf_find_column (cif, "axis_id")) if ( cif_error ) break; cbf_failnez (cbf_get_value (cif, &sval)) strcpy( axis, axis_name[i] ); if ( !strcmp( sval, axis ) ) { cbf_failnez (cbf_find_column (cif, "angle")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_scan_frame_axis[i].angle=(float)dval; } cbf_failnez (cbf_find_column (cif, "displacement")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_scan_frame_axis[i].displacement=(float)dval; } } cbf_failnez (cbf_find_column (cif, "scan_id")) } cbf_failnez (cbf_rewind_row (cif)) } /************************************************************ * Category DIFFRN_SCAN + DIFFRN+SCAN_AXIS ************************************************************/ CIF_DIFFRN_SCAN: cbf_failnez (cbf_rewind_datablock(cif)) cbf_failnez (cbf_find_category (cif, "diffrn_scan_axis")) if ( cif_error ) { printe("Cannot find category: diffrn_scan_axis"); goto CIF_CAT4; } cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_find_column (cif, "scan_id")) if ( !cif_error ) { cbf_failnez (cbf_get_value (cif, &sval)) strcpy( hcif.scan_id, sval); } for ( i=0; i<N_SCAN_AXES; i++ ) { while (cbf_find_nextrow (cif, hcif.scan_id) == 0) { cbf_failnez (cbf_find_column (cif, "axis_id")) if ( cif_error ) break; cbf_failnez (cbf_get_value (cif, &sval)) strcpy( axis, axis_name[i] ); if ( !strcmp( sval, axis ) ) { cbf_failnez (cbf_find_column (cif, "angle_start")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_scan_axis[i].angle_start=(float)dval; } cbf_failnez (cbf_find_column (cif, "angle_increment")) if ( !cif_error ) { cbf_failnez (cbf_get_doublevalue (cif, &dval)) hcif.diffrn_scan_axis[i].angle_increment=(float)dval; } } cbf_failnez (cbf_find_column (cif, "scan_id")) } cbf_failnez (cbf_rewind_row (cif)) } /************************************************************ * Category ARRAY_DATA ************************************************************/ CIF_CAT4: CIF_END: if ( verbose > 1 ) { printf("%s: CIF-Header values:\n",prg); printf(" Pixels :\t %d x %d\n",hcif.array_structure_list[0].dimension,hcif.array_structure_list[1].dimension); printf(" Pixelsize :\t %11.6f [m]\n",hcif.array_element_size.pixelsize[0]); if ( strlen( hcif.mar_id ) ) { printf(" Distance :\t %11.3f [mm ]\n",hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].displacement); printf(" PHI-start :\t %11.3f [deg]\n",hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_start); printf(" Delta-PHI :\t %11.3f [deg]\n",hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_increment); } else { printf(" Distance :\t %11.6f [m]\n",hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].displacement); printf(" Wavelength :\t %11.6f [Ang]\n",hcif.diffrn_radiation_wavelength.wavelength); printf(" PHI-start :\t %11.3f [deg]\n",hcif.diffrn_scan_axis[AXIS_PHI].angle_start); printf(" Delta-PHI :\t %11.3f [deg]\n",hcif.diffrn_scan_axis[AXIS_PHI].angle_increment); } printf(" Wavelength :\t %11.6f [Ang]\n",hcif.diffrn_radiation_wavelength.wavelength); } return 1; }
void mar3452CIFHeader | ( | char * | prg, |
char * | f, | ||
MAR345_HEADER | h345 | ||
) |
Definition at line 1613 of file marcif.c.
References MAR345_HEADER::adc_A, MAR345_HEADER::adc_B, MAR345_HEADER::add_A, MAR345_HEADER::add_B, AXIS_CHI, AXIS_DISTANCE, AXIS_OMEGA, AXIS_PHI, AXIS_THETA, MAR345_HEADER::chi, MAR345_HEADER::date, MAR345_HEADER::dist, MAR345_HEADER::doseavg, MAR345_HEADER::dosebeg, MAR345_HEADER::doseend, MAR345_HEADER::dosemax, MAR345_HEADER::dosemin, MAR345_HEADER::dosen, MAR345_HEADER::dosesig, MAR345_HEADER::filter, MAR345_HEADER::gain, MAR345_HEADER::gap, MAR345_HEADER::high, MAR345_HEADER::histbeg, MAR345_HEADER::histend, MAR345_HEADER::histmax, i, MAR345_HEADER::kV, MAR345_HEADER::mA, MAR345_HEADER::mode, MAR345_HEADER::multiplier, now, MAR345_HEADER::omebeg, MAR345_HEADER::omeend, MAR345_HEADER::omeosc, MAR345_HEADER::phibeg, MAR345_HEADER::phiend, MAR345_HEADER::phiosc, MAR345_HEADER::pixel_height, MAR345_HEADER::pixel_length, MAR345_HEADER::pixels, MAR345_HEADER::polar, MAR345_HEADER::roff, MAR345_HEADER::scanner, MAR345_HEADER::size, MAR345_HEADER::source, str, MAR345_HEADER::theta, MAR345_HEADER::time, MAR345_HEADER::toff, MAR345_HEADER::valavg, MAR345_HEADER::valmax, MAR345_HEADER::valmin, MAR345_HEADER::valsig, MAR345_HEADER::wave, MAR345_HEADER::xcen, and MAR345_HEADER::ycen.
Referenced by MarXF::output_image().
{ char *c,str[64],num[16]; int i; float pixelsize; time_t now; time( &now ); /* Initialize CIF Header */ memset( (char *)&hcif, 0, sizeof(CIF_HEADER) ); pixelsize = h345.pixel_height; if ( pixelsize > 1.0 ) pixelsize /= 1000.; hcif.binary_id = 1; strcpy(hcif.entry_id, "img1"); strcpy(hcif.scan_id, "scan1"); strcpy(hcif.array_id, "img1"); strcpy(hcif.crystal_id, "xtal1"); sprintf(str, "SN_%03d",h345.scanner); strcpy(hcif.element_id, str); strcpy(hcif.mar_id, str); strcpy(hcif.diffrn_id, "diffrn1"); strcpy(hcif.data_id, "data1"); strcpy(hcif.detector_id, "mar345"); strcpy(hcif.frame_id, "frm1"); sprintf(str, "%s",(char *)ctime( &now ) ); str[ strlen( str ) -1 ] = '\0'; if ( strlen( h345.date ) > 5 ) strcpy(hcif.audit.creation_date, h345.date); else strcpy(hcif.audit.creation_date, str); sprintf(str, "Created by %s", prg); strcpy(hcif.audit.creation_method, str); strcpy(hcif.diffrn_radiation.detector, "Image Plate"); strcpy(hcif.diffrn_radiation.collimation, "double slits"); strcpy(hcif.diffrn_radiation.monochromator, h345.filter); hcif.diffrn_radiation_wavelength.polarisn_ratio = h345.polar; hcif.diffrn_radiation_wavelength.polarisn_norm = 0.0; hcif.diffrn_radiation_wavelength.wavelength = h345.wave; hcif.diffrn_radiation_wavelength.wavelength_wt = 1.0; if ( strlen( h345.source ) ) strcpy(hcif.diffrn_source.source, h345.source); else strcpy(hcif.diffrn_source.source, "unknown"); strcpy(hcif.diffrn_source.type, "unknown"); hcif.diffrn_source.current = h345.mA; hcif.diffrn_source.voltage = h345.kV; hcif.diffrn_source.power = h345.kV*h345.mA; strcpy(hcif.array_structure.compression_type, "x-CBF_PACKED"); strcpy(hcif.array_structure.encoding_type, "unsigned 32-bit integer"); strcpy(hcif.array_structure.byte_order, "little_endian"); hcif.array_structure_list[0].dimension = h345.size; hcif.array_structure_list[1].dimension = h345.size; hcif.array_structure_list[0].index = 1; hcif.array_structure_list[1].index = 2; hcif.array_structure_list[0].precedence = 2; hcif.array_structure_list[1].precedence = 1; strcpy(hcif.array_structure_list[0].direction, "increasing"); strcpy(hcif.array_structure_list[1].direction, "increasing"); hcif.array_element_size.pixelsize[0] = pixelsize/1000.; hcif.array_element_size.pixelsize[1] = pixelsize/1000.; hcif.array_element_size.index[0] = 1; hcif.array_element_size.index[1] = 2; hcif.array_intensities.gain = h345.gain; hcif.array_intensities.overload = 250000; hcif.array_intensities.undefined_value = 999999; strcpy(hcif.array_intensities.linearity, "linear"); hcif.array_intensities.offset = 0; hcif.array_intensities.scaling = h345.multiplier; strcpy(hcif.axis[AXIS_PHI].id, "phi" ); strcpy(hcif.axis[AXIS_PHI].type, "rotation" ); strcpy(hcif.axis[AXIS_PHI].equipment, "detector" ); strcpy(hcif.axis[AXIS_PHI].depends_on, "." ); hcif.axis[AXIS_PHI].vector[0] = 1.0; hcif.axis[AXIS_PHI].vector[1] = 0.0; hcif.axis[AXIS_PHI].vector[2] = 0.0; strcpy(hcif.axis[AXIS_OMEGA].id, "omega" ); strcpy(hcif.axis[AXIS_OMEGA].type, "rotation" ); strcpy(hcif.axis[AXIS_OMEGA].equipment, "detector" ); strcpy(hcif.axis[AXIS_OMEGA].depends_on, "." ); hcif.axis[AXIS_OMEGA].vector[0] = 0.0; hcif.axis[AXIS_OMEGA].vector[1] = 1.0; hcif.axis[AXIS_OMEGA].vector[2] = 0.0; strcpy(hcif.axis[AXIS_CHI].id, "chi" ); strcpy(hcif.axis[AXIS_CHI].type, "rotation" ); strcpy(hcif.axis[AXIS_CHI].equipment, "detector" ); strcpy(hcif.axis[AXIS_CHI].depends_on, "." ); hcif.axis[AXIS_CHI].vector[0] = 0.0; hcif.axis[AXIS_CHI].vector[1] = 0.0; hcif.axis[AXIS_CHI].vector[2] = 1.0; strcpy(hcif.axis[AXIS_THETA].id, "twotheta" ); strcpy(hcif.axis[AXIS_THETA].type, "rotation" ); strcpy(hcif.axis[AXIS_THETA].equipment, "detector" ); strcpy(hcif.axis[AXIS_THETA].depends_on, "." ); hcif.axis[AXIS_THETA].vector[0] = 1.0; hcif.axis[AXIS_THETA].vector[1] = 0.0; hcif.axis[AXIS_THETA].vector[2] = 0.0; strcpy(hcif.axis[AXIS_DISTANCE].id, "distance" ); strcpy(hcif.axis[AXIS_DISTANCE].type, "translation" ); strcpy(hcif.axis[AXIS_DISTANCE].equipment, "detector" ); strcpy(hcif.axis[AXIS_DISTANCE].depends_on, "." ); hcif.axis[AXIS_DISTANCE].vector[0] = 0.0; hcif.axis[AXIS_DISTANCE].vector[1] = 0.0; hcif.axis[AXIS_DISTANCE].vector[2] = -1.0; strcpy(hcif.diffrn_detector.detector, "Image Plate" ); strcpy(hcif.diffrn_detector.type, "mar345 IP system" ); hcif.diffrn_detector_element.center_x = h345.xcen*pixelsize; hcif.diffrn_detector_element.center_y = h345.ycen*pixelsize; /* marresearch extensions */ if ( h345.mode == 0 ) strcpy(hcif.diffrn_detector_mar_exposure.type, "dose"); else strcpy(hcif.diffrn_detector_mar_exposure.type, "time"); hcif.diffrn_detector_mar_exposure.time = h345.time; hcif.diffrn_detector_mar_exposure.dose = h345.doseavg; for (i=0; i<=AXIS_DISTANCE; i++ ) { hcif.diffrn_detector_mar_axis[i].angle_start = hcif.diffrn_detector_mar_axis[i].angle_end = hcif.diffrn_detector_mar_axis[i].angle_increment= hcif.diffrn_detector_mar_axis[i].displacement = 0.0; } hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_start = h345.phibeg; hcif.diffrn_detector_mar_axis[AXIS_PHI].angle_end = h345.phiend; hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_start = h345.omebeg; hcif.diffrn_detector_mar_axis[AXIS_OMEGA].angle_end = h345.omeend; hcif.diffrn_detector_mar_axis[AXIS_CHI].angle_start = h345.chi; hcif.diffrn_detector_mar_axis[AXIS_CHI].angle_end = h345.chi; hcif.diffrn_detector_mar_axis[AXIS_THETA].angle_end = h345.theta; hcif.diffrn_detector_mar_axis[AXIS_THETA].angle_start = h345.theta; hcif.diffrn_detector_mar_axis[AXIS_OMEGA].oscillations = h345.omeosc; hcif.diffrn_detector_mar_axis[AXIS_PHI ].oscillations = h345.phiosc; hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].angle_start = 0.0; hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].angle_end = 0.0; hcif.diffrn_detector_mar_axis[AXIS_DISTANCE].displacement = h345.dist; for (i=0; i<=AXIS_DISTANCE; i++ ) { strcpy( hcif.diffrn_detector_mar_axis[i].axis_id, hcif.axis[i].id); hcif.diffrn_detector_mar_axis[i].angle_increment = hcif.diffrn_detector_mar_axis[i].angle_end - hcif.diffrn_detector_mar_axis[i].angle_start;\ } hcif.diffrn_detector_mar_exposure_dose.start = h345.dosebeg; hcif.diffrn_detector_mar_exposure_dose.end = h345.doseend; hcif.diffrn_detector_mar_exposure_dose.min = h345.dosemin; hcif.diffrn_detector_mar_exposure_dose.max = h345.dosemax; hcif.diffrn_detector_mar_exposure_dose.avg = h345.doseavg; hcif.diffrn_detector_mar_exposure_dose.esd = h345.dosesig; hcif.diffrn_detector_mar_exposure_dose.measurements = h345.dosen; hcif.diffrn_detector_mar_adc.channel_a = h345.adc_A; hcif.diffrn_detector_mar_adc.channel_b = h345.adc_B; hcif.diffrn_detector_mar_adc.add_channel_a = h345.add_A; hcif.diffrn_detector_mar_adc.add_channel_b = h345.add_B; hcif.diffrn_detector_mar_adc.gain = h345.gain; hcif.diffrn_detector_mar_adc.multiplier = h345.multiplier; if ( h345.pixel_height == 100.f || h345.pixel_height == 0.1f ) hcif.diffrn_detector_mar_adc.oversampling = 1; else hcif.diffrn_detector_mar_adc.oversampling = 2; hcif.diffrn_detector_mar_scan.scanmode = h345.size; hcif.diffrn_detector_mar_scan.number_of_pixels = h345.pixels; hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit = h345.high; hcif.diffrn_detector_mar_scan.radial_offset = h345.roff; hcif.diffrn_detector_mar_scan.tangential_offset = h345.toff; hcif.diffrn_detector_mar_scan.pixel_height = h345.pixel_height; hcif.diffrn_detector_mar_scan.pixel_length = h345.pixel_length; hcif.diffrn_detector_mar_data.intensity_min = h345.valmin; hcif.diffrn_detector_mar_data.intensity_max = h345.valmax; hcif.diffrn_detector_mar_data.intensity_avg = h345.valavg; hcif.diffrn_detector_mar_data.intensity_esd = h345.valsig; hcif.diffrn_detector_mar_data.histogram_start = h345.histbeg; hcif.diffrn_detector_mar_data.histogram_end = h345.histend; hcif.diffrn_detector_mar_data.histogram_max = h345.histmax; for ( i=0; i<8; i++ ) hcif.diffrn_detector_mar_gaps.gap[i] = h345.gap[i]; /* From the entire file name path, cut off directory */ c = strrchr( f, '/' ); if ( c == NULL ) c = f; else c++; /* From the remaining filename root + extension, cut off extension */ strcpy( str, c); c = strrchr ( str, '.' ); if ( c!=NULL ) { i=strlen( c ); str[ strlen(str) - i ] = '\0'; } strcpy( hcif.diffrn_scan.frame_id_start, str); strcpy( hcif.diffrn_scan.frame_id_end, str); for (i=strlen(str)-1;i>=0; i--) { if ( str[i] == '_' ) { str[i] = '\0'; break; } } strcpy(hcif.crystal_id, str); hcif.diffrn_scan.frames = 1; strcpy(hcif.diffrn_measurement.device, "oscillation camera"); strcpy(hcif.diffrn_measurement.device_type, "mar detector"); strcpy(hcif.diffrn_measurement.method, "phi scan"); hcif.diffrn_measurement.sample_detector_distance = h345.dist; hcif.diffrn_measurement.number_of_axes = 1; strcpy(hcif.diffrn_scan_axis[AXIS_PHI].axis_id, "phi" ); hcif.diffrn_scan_axis[AXIS_PHI].angle_start = h345.phibeg; hcif.diffrn_scan_axis[AXIS_PHI].angle_range = h345.phiend-h345.phibeg; hcif.diffrn_scan_axis[AXIS_PHI].angle_increment = h345.phiend-h345.phibeg; strcpy(hcif.diffrn_scan_axis[AXIS_OMEGA].axis_id,"omega" ); hcif.diffrn_scan_axis[AXIS_OMEGA].angle_start = h345.omebeg; hcif.diffrn_scan_axis[AXIS_OMEGA].angle_range = h345.omeend-h345.omebeg; hcif.diffrn_scan_axis[AXIS_OMEGA].angle_increment= h345.omeend-h345.omebeg; strcpy(hcif.diffrn_scan_frame_axis[AXIS_PHI].axis_id, "phi" ); hcif.diffrn_scan_frame_axis[AXIS_PHI].angle = h345.phiend; hcif.diffrn_scan_frame_axis[AXIS_PHI].displacement = 0.0; strcpy(hcif.diffrn_scan_frame_axis[AXIS_OMEGA].axis_id, "omega" ); hcif.diffrn_scan_frame_axis[AXIS_OMEGA].angle = h345.omeend; hcif.diffrn_scan_frame_axis[AXIS_OMEGA].displacement = 0.0; strcpy(hcif.diffrn_scan_frame_axis[AXIS_CHI].axis_id, "chi" ); hcif.diffrn_scan_frame_axis[AXIS_CHI].angle = h345.chi; hcif.diffrn_scan_frame_axis[AXIS_CHI].displacement = 0.0; strcpy(hcif.diffrn_scan_frame_axis[AXIS_THETA].axis_id, "twotheta" ); hcif.diffrn_scan_frame_axis[AXIS_THETA].angle = h345.theta; hcif.diffrn_scan_frame_axis[AXIS_THETA].displacement = 0.0; strcpy(hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].axis_id,"distance" ); hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].angle = 0.0; hcif.diffrn_scan_frame_axis[AXIS_DISTANCE].displacement = h345.dist; }
int PutCIFData | ( | char * | prg, |
char * | op, | ||
char | op_cbf, | ||
unsigned int * | i4_img | ||
) |
Definition at line 1946 of file marcif.c.
References CIF_HEADER::array_structure_list, CIF_HEADER::binary_id, CBF, cbf_failnez, cbf_free_handle(), CBF_PACKED, cbf_set_integerarray(), cbf_write_file(), CIF, cif_compression, cif_element_signed, cif_element_size, cif_error, cif_id, cif_nelements, ARRAY_STRUCTURE_LIST::dimension, ENC_BASE64, ENC_CRTERM, ENC_LFTERM, ENC_NONE, MIME_HEADERS, MSG_DIGEST, and verbose.
Referenced by MarXF::output_image().
{ FILE *fp = NULL; int success = 0; int mime = MIME_HEADERS; int digest = MSG_DIGEST; int encoding = ENC_NONE; int bytedir = 0; int cbforcif = CBF; int term = ENC_CRTERM | ENC_LFTERM; if ( op_cbf == 1 ) { cbforcif = CBF; encoding = ENC_NONE; term = ENC_CRTERM | ENC_LFTERM; } else { cbforcif = CIF; encoding = ENC_BASE64; term = ENC_LFTERM; } cif_compression = CBF_PACKED; cif_id = hcif.binary_id; cif_element_size = sizeof(int); cif_element_signed = 0; cif_nelements = hcif.array_structure_list[0].dimension * hcif.array_structure_list[1].dimension; /* Save the binary data */ cbf_failnez (cbf_set_integerarray ( cif, cif_compression, cif_id, (void *)i4_img, cif_element_size, cif_element_signed, cif_nelements)) fp = fopen (op, "w+b"); if ( fp == NULL ) return 0; cbf_failnez (cbf_write_file ( cif, fp, 1, cbforcif, mime | digest, encoding | bytedir | term)) if ( !cif_error ) success = 1; /* Free the cbf */ cbf_failnez (cbf_free_handle (cif)) if ( verbose > 1 ) { printf("\n"); printf("%s: CIF-Header values:\n",prg); printf(" Pixels :\t %d x %d\n",hcif.array_structure_list[0].dimension,hcif.array_structure_list[1].dimension); printf(" Identifier :\t %11d\n",cif_id); printf(" Compression :\t %11d\n",cif_compression); printf(" Elements: :\t %11d\n",cif_nelements); printf(" Element size :\t %11d\n",cif_element_size); printf(" Signed :\t %11d\n",cif_element_signed); } return success; }
int PutCIFHeader | ( | char * | prg, |
char * | f | ||
) |
Definition at line 960 of file marcif.c.
References MARIP_ADC::add_channel_a, MARIP_ADC::add_channel_b, DIFFRN_SCAN_FRAME_AXIS::angle, MARIP_AXIS::angle_end, DIFFRN_SCAN_AXIS::angle_increment, MARIP_AXIS::angle_increment, DIFFRN_SCAN_AXIS::angle_start, MARIP_AXIS::angle_start, CIF_HEADER::array_element_size, CIF_HEADER::array_id, CIF_HEADER::array_intensities, CIF_HEADER::array_structure_list, CIF_HEADER::audit, MARIP_EXPOSURE_DOSE::avg, AXIS_DISTANCE, DIFFRN_SCAN_FRAME_AXIS::axis_id, DIFFRN_SCAN_AXIS::axis_id, MARIP_AXIS::axis_id, AXIS_PHI, CIF_HEADER::binary_id, cbf_failnez, cbf_force_new_category(), cbf_make_handle(), cbf_new_column(), cbf_new_datablock(), cbf_new_row(), cbf_next_row(), cbf_rewind_row(), cbf_set_doublevalue(), cbf_set_integervalue(), cbf_set_value(), DIFFRN_DETECTOR_ELEMENT::center_x, DIFFRN_DETECTOR_ELEMENT::center_y, MARIP_ADC::channel_a, MARIP_ADC::channel_b, DIFFRN_RADIATION::collimation, AUDIT::creation_date, AUDIT::creation_method, CIF_HEADER::crystal_id, DIFFRN_SOURCE::current, DIFFRN_DETECTOR::detector, DIFFRN_RADIATION::detector, CIF_HEADER::detector_id, DIFFRN_MEASUREMENT::device, DIFFRN_MEASUREMENT::device_type, CIF_HEADER::diffrn_detector, CIF_HEADER::diffrn_detector_element, CIF_HEADER::diffrn_detector_mar_adc, CIF_HEADER::diffrn_detector_mar_axis, CIF_HEADER::diffrn_detector_mar_data, CIF_HEADER::diffrn_detector_mar_exposure, CIF_HEADER::diffrn_detector_mar_exposure_dose, CIF_HEADER::diffrn_detector_mar_gaps, CIF_HEADER::diffrn_detector_mar_scan, CIF_HEADER::diffrn_id, CIF_HEADER::diffrn_measurement, CIF_HEADER::diffrn_radiation, CIF_HEADER::diffrn_radiation_wavelength, CIF_HEADER::diffrn_scan, CIF_HEADER::diffrn_scan_axis, CIF_HEADER::diffrn_scan_frame_axis, CIF_HEADER::diffrn_source, ARRAY_STRUCTURE_LIST::dimension, ARRAY_STRUCTURE_LIST::direction, DIFFRN_SCAN_FRAME_AXIS::displacement, MARIP_AXIS::displacement, MARIP_EXPOSURE::dose, CIF_HEADER::element_id, MARIP_EXPOSURE_DOSE::end, MARIP_EXPOSURE_DOSE::esd, CIF_HEADER::frame_id, DIFFRN_SCAN::frame_id_end, DIFFRN_SCAN::frame_id_start, DIFFRN_SCAN::frames, ARRAY_INTENSITIES::gain, MARIP_ADC::gain, MARIP_GAPS::gap, MARIP_DATA::histogram_end, MARIP_DATA::histogram_max, MARIP_DATA::histogram_start, i, ARRAY_ELEMENT_SIZE::index, ARRAY_STRUCTURE_LIST::index, MARIP_DATA::intensity_avg, MARIP_DATA::intensity_esd, MARIP_DATA::intensity_max, MARIP_DATA::intensity_min, ARRAY_INTENSITIES::linearity, CIF_HEADER::mar_id, MARIP_EXPOSURE_DOSE::max, MARIP_EXPOSURE_DOSE::measurements, DIFFRN_MEASUREMENT::method, MARIP_EXPOSURE_DOSE::min, DIFFRN_RADIATION::monochromator, MARIP_ADC::multiplier, MARIP_SCAN::number_of_pixels, MARIP_SCAN::number_of_pixels_larger_16_bit, MARIP_AXIS::oscillations, ARRAY_INTENSITIES::overload, MARIP_ADC::oversampling, MARIP_SCAN::pixel_height, MARIP_SCAN::pixel_length, ARRAY_ELEMENT_SIZE::pixelsize, DIFFRN_RADIATION_WAVELENGTH::polarisn_norm, DIFFRN_RADIATION_WAVELENGTH::polarisn_ratio, ARRAY_STRUCTURE_LIST::precedence, PRINT_AXIS, PRINT_CHEMICAL, MARIP_SCAN::radial_offset, DIFFRN_MEASUREMENT::sample_detector_distance, ARRAY_INTENSITIES::scaling, CIF_HEADER::scan_id, MARIP_SCAN::scanmode, DIFFRN_SOURCE::source, MARIP_EXPOSURE_DOSE::start, MARIP_SCAN::tangential_offset, MARIP_EXPOSURE::time, MARIP_EXPOSURE::type, DIFFRN_DETECTOR::type, DIFFRN_SOURCE::type, ARRAY_INTENSITIES::undefined_value, DIFFRN_SOURCE::voltage, DIFFRN_RADIATION_WAVELENGTH::wavelength, and DIFFRN_RADIATION_WAVELENGTH::wavelength_wt.
Referenced by MarXF::output_image().
{ const char *sval; float fval; double dval; int ival; int i; cbf_failnez (cbf_make_handle (&cif)) /* Make a new data block */ cbf_failnez (cbf_new_datablock (cif, "image_1")) /******************************************************************** * AUDIT ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "audit")) cbf_failnez (cbf_new_column (cif, "creation_date")) cbf_failnez (cbf_set_value (cif, hcif.audit.creation_date)) cbf_failnez (cbf_new_column (cif, "creation_method")) cbf_failnez (cbf_set_value (cif, hcif.audit.creation_method)) /******************************************************************** * ENTRY, EXPTL_CRYSTAL & CHEMICAL ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "entry_id")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, "img1")) cbf_failnez (cbf_force_new_category (cif, "exptl_crystal")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.crystal_id)) if ( PRINT_CHEMICAL ) { cbf_failnez (cbf_force_new_category (cif, "chemical")) cbf_failnez (cbf_new_column (cif, "entry_id")) cbf_failnez (cbf_set_value (cif, "img1")) } /******************************************************************** * DIFFRN ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_id )) cbf_failnez (cbf_new_column (cif, "crystal_id")) cbf_failnez (cbf_set_value (cif, hcif.crystal_id)) /******************************************************************** * DIFFRN_SOURCE ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_source")) cbf_failnez (cbf_new_column (cif, "diffrn_id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_id )) cbf_failnez (cbf_new_column (cif, "source")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_source.source)) cbf_failnez (cbf_new_column (cif, "type")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_source.type)) cbf_failnez (cbf_new_column (cif, "current")) cbf_failnez (cbf_set_doublevalue (cif, "%.1f", hcif.diffrn_source.current)) cbf_failnez (cbf_new_column (cif, "voltage")) cbf_failnez (cbf_set_doublevalue (cif, "%.1f", hcif.diffrn_source.voltage)) /******************************************************************** * DIFFRN_MEASUREMENT ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_measurement")) cbf_failnez (cbf_new_column (cif, "diffrn_id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_id )) cbf_failnez (cbf_new_column (cif, "method")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.method)) cbf_failnez (cbf_new_column (cif, "device")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.device)) cbf_failnez (cbf_new_column (cif, "device_type")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_measurement.device_type)) cbf_failnez (cbf_new_column (cif, "sample_detector_distance")) cbf_failnez (cbf_set_doublevalue (cif, "%.6f", hcif.diffrn_measurement.sample_detector_distance)) /******************************************************************** * DIFFRN_RADIATION ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_radiation")) cbf_failnez (cbf_new_column (cif, "diffrn_id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_id )) cbf_failnez (cbf_new_column (cif, "detector")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.detector)) cbf_failnez (cbf_new_column (cif, "collimation")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.collimation)) cbf_failnez (cbf_new_column (cif, "monochromator")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_radiation.monochromator)) /******************************************************************** * DIFFRN_RADIATION_WAVELENGTH ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_radiation_wavelength")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, "WL1")) cbf_failnez (cbf_new_column (cif, "wavelength")) cbf_failnez (cbf_set_doublevalue (cif, "%.6f", hcif.diffrn_radiation_wavelength.wavelength)) cbf_failnez (cbf_new_column (cif, "wavelength_wt")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.wavelength_wt)) cbf_failnez (cbf_new_column (cif, "polarisn_ratio")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.polarisn_ratio)) cbf_failnez (cbf_new_column (cif, "polarisn_norm")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_radiation_wavelength.polarisn_norm)) /******************************************************************** * DIFFRN_DETECTOR ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.detector_id )) cbf_failnez (cbf_new_column (cif, "diffrn_id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_id )) cbf_failnez (cbf_new_column (cif, "detector")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector.detector)) cbf_failnez (cbf_new_column (cif, "type")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector.type)) /******************************************************************** * DIFFRN_DETECTOR_ELEMENT ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_element")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.element_id )) cbf_failnez (cbf_new_column (cif, "detector_id")) cbf_failnez (cbf_set_value (cif, hcif.detector_id )) cbf_failnez (cbf_new_column (cif, "center[1]")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_element.center_x)) cbf_failnez (cbf_new_column (cif, "center[2]")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_element.center_y)) /******************************************************************** * MARIP ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "detector_id")) cbf_failnez (cbf_set_value (cif, hcif.detector_id )) /******************************************************************** * MARIP_ADC ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_adc")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "channel_a")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.channel_a)) cbf_failnez (cbf_new_column (cif, "channel_b")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.channel_b)) cbf_failnez (cbf_new_column (cif, "add_channel_a")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.add_channel_a)) cbf_failnez (cbf_new_column (cif, "add_channel_b")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.add_channel_b)) cbf_failnez (cbf_new_column (cif, "oversampling")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_adc.oversampling)) cbf_failnez (cbf_new_column (cif, "multiplier")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_adc.multiplier)) cbf_failnez (cbf_new_column (cif, "gain")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_adc.gain)) /******************************************************************** * MARIP_GAPS ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_gaps")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "gap[1]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[0])) cbf_failnez (cbf_new_column (cif, "gap[2]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[1])) cbf_failnez (cbf_new_column (cif, "gap[3]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[2])) cbf_failnez (cbf_new_column (cif, "gap[4]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[3])) cbf_failnez (cbf_new_column (cif, "gap[5]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[4])) cbf_failnez (cbf_new_column (cif, "gap[6]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[5])) cbf_failnez (cbf_new_column (cif, "gap[7]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[6])) cbf_failnez (cbf_new_column (cif, "gap[8]")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_gaps.gap[7])) /******************************************************************** * MARIP_SCAN ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_scan")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "scanmode")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.scanmode)) cbf_failnez (cbf_new_column (cif, "number_of_pixels")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.number_of_pixels)) cbf_failnez (cbf_new_column (cif, "number_of_pixels_larger_16_bit")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_scan.number_of_pixels_larger_16_bit)) cbf_failnez (cbf_new_column (cif, "radial_offset")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.radial_offset)) cbf_failnez (cbf_new_column (cif, "tangential_offset")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.tangential_offset)) cbf_failnez (cbf_new_column (cif, "pixel_height")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.pixel_height)) cbf_failnez (cbf_new_column (cif, "pixel_length")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_scan.pixel_length)) /******************************************************************** * MARIP_EXPOSURE ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_exposure")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "type")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector_mar_exposure.type)) cbf_failnez (cbf_new_column (cif, "time")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.time)) cbf_failnez (cbf_new_column (cif, "dose")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.dose)) /******************************************************************** * MARIP_EXPOSURE_DOSE ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_exposure_dose")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "dose")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure.dose)) cbf_failnez (cbf_new_column (cif, "avg")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.avg)) cbf_failnez (cbf_new_column (cif, "esd")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.esd)) cbf_failnez (cbf_new_column (cif, "min")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.min)) cbf_failnez (cbf_new_column (cif, "max")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.max)) cbf_failnez (cbf_new_column (cif, "start")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.start)) cbf_failnez (cbf_new_column (cif, "end")) cbf_failnez (cbf_set_doublevalue (cif, "%1.2f", hcif.diffrn_detector_mar_exposure_dose.end)) cbf_failnez (cbf_new_column (cif, "measurements")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_exposure_dose.measurements)) /******************************************************************** * MARIP_DATA ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_data")) cbf_failnez (cbf_new_column (cif, "mar_id")) cbf_failnez (cbf_set_value (cif, hcif.mar_id )) cbf_failnez (cbf_new_column (cif, "intensity_avg")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_data.intensity_avg)) cbf_failnez (cbf_new_column (cif, "intensity_esd")) cbf_failnez (cbf_set_doublevalue (cif, "%1.3f", hcif.diffrn_detector_mar_data.intensity_esd)) cbf_failnez (cbf_new_column (cif, "intensity_min")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.intensity_min)) cbf_failnez (cbf_new_column (cif, "intensity_max")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.intensity_max)) cbf_failnez (cbf_new_column (cif, "histogram_start")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_start)) cbf_failnez (cbf_new_column (cif, "histogram_end")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_end)) cbf_failnez (cbf_new_column (cif, "histogram_max")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_data.histogram_max)) /******************************************************************** * MARIP_AXIS ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_detector_mar_axis")) cbf_failnez (cbf_new_column (cif, "mar_id")) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.mar_id )) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_new_row (cif)) } cbf_failnez (cbf_new_column (cif, "axis_id")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.diffrn_detector_mar_axis[i].axis_id)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "angle_start")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_start)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "angle_end")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_end)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "angle_increment")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].angle_increment)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "oscillations")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_detector_mar_axis[i].oscillations)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "displacement")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_detector_mar_axis[i].displacement)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } /******************************************************************** * DIFFRN_FRAME_DATA ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_frame_data")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, hcif.frame_id )) cbf_failnez (cbf_new_column (cif, "detector_element_id")) cbf_failnez (cbf_set_value (cif, hcif.element_id )) cbf_failnez (cbf_new_column (cif, "array_id")) cbf_failnez (cbf_set_value (cif, hcif.array_id )) cbf_failnez (cbf_new_column (cif, "binary_id")) cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id)) /******************************************************************** * DIFFRN_SCAN ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_scan")) cbf_failnez (cbf_new_column (cif, "scan_id")) cbf_failnez (cbf_set_value (cif, hcif.scan_id )) cbf_failnez (cbf_new_column (cif, "frame_id_start")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan.frame_id_start)) cbf_failnez (cbf_new_column (cif, "frame_id_end")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan.frame_id_end)) cbf_failnez (cbf_new_column (cif, "frames")) cbf_failnez (cbf_set_integervalue (cif, hcif.diffrn_scan.frames)) /******************************************************************** * AXIS ********************************************************************/ if ( !PRINT_AXIS ) goto CIF_DIFFRN_SCAN_AXIS; cbf_failnez (cbf_force_new_category (cif, "axis")) cbf_failnez (cbf_new_column (cif, "id")) cbf_failnez (cbf_set_value (cif, "phi" )) cbf_failnez (cbf_new_row (cif)) cbf_failnez (cbf_set_value (cif, "chi" )) cbf_failnez (cbf_new_row (cif)) cbf_failnez (cbf_set_value (cif, "omega" )) cbf_failnez (cbf_new_row (cif)) cbf_failnez (cbf_set_value (cif, "twotheta" )) cbf_failnez (cbf_new_row (cif)) cbf_failnez (cbf_set_value (cif, "distance" )) cbf_failnez (cbf_new_column (cif, "type")) cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_set_value (cif, "rotation" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "rotation" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "rotation" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "rotation" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "translation" )) cbf_failnez (cbf_new_column (cif, "equipment")) cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_set_value (cif, "detector" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "detector" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "detector" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "detector" )) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_value (cif, "detector" )) cbf_failnez (cbf_new_column (cif, "vector[1]")) cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_new_column (cif, "vector[2]")) cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_new_column (cif, "vector[3]")) cbf_failnez (cbf_rewind_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 1.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) cbf_failnez (cbf_next_row (cif)) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", -1.0)) cbf_failnez (cbf_new_column (cif, "offset[1]")) cbf_failnez (cbf_rewind_row (cif)) for (i=0;i<=AXIS_DISTANCE;i++) { cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "offset[2]")) cbf_failnez (cbf_rewind_row (cif)) for (i=0;i<=AXIS_DISTANCE;i++) { cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "offset[3]")) cbf_failnez (cbf_rewind_row (cif)) for (i=0;i<=AXIS_DISTANCE;i++) { cbf_failnez (cbf_set_doublevalue (cif, "%.0f", 0.0)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } /******************************************************************** * DIFFRN_SCAN_AXIS ********************************************************************/ CIF_DIFFRN_SCAN_AXIS: cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_axis")) cbf_failnez (cbf_new_column (cif, "scan_id")) cbf_failnez (cbf_set_value (cif, hcif.scan_id )) cbf_failnez (cbf_new_column (cif, "axis_id")) cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan_axis[AXIS_PHI].axis_id)) cbf_failnez (cbf_new_column (cif, "angle_start")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_axis[AXIS_PHI].angle_start)) cbf_failnez (cbf_new_column (cif, "angle_increment")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_axis[AXIS_PHI].angle_increment)) /******************************************************************** * DIFFRN_SCAN_FRAME ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_frame")) cbf_failnez (cbf_new_column (cif, "scan_id")) cbf_failnez (cbf_set_value (cif, hcif.scan_id )) cbf_failnez (cbf_new_column (cif, "frame_id")) cbf_failnez (cbf_set_value (cif, hcif.frame_id )) /******************************************************************** * DIFFRN_SCAN_FRAME_AXIS ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "diffrn_scan_frame_axis")) cbf_failnez (cbf_new_column (cif, "frame_id")) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.frame_id )) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_new_row (cif)) } cbf_failnez (cbf_new_column (cif, "axis_id")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.diffrn_scan_frame_axis[i].axis_id)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "angle")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_frame_axis[i].angle)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "displacement")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<=AXIS_DISTANCE; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.diffrn_scan_frame_axis[i].displacement)) if ( i==AXIS_DISTANCE ) break; cbf_failnez (cbf_next_row (cif)) } /******************************************************************** * ARRAY_STRUCTURE ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "array_structure")) cbf_failnez (cbf_new_column (cif, "array_id")) cbf_failnez (cbf_set_value (cif, hcif.array_id )) /******************************************************************** * ARRAY_INTENSITIES ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "array_intensities")) cbf_failnez (cbf_new_column (cif, "array_id")) cbf_failnez (cbf_set_value (cif, hcif.array_id )) cbf_failnez (cbf_new_column (cif, "binary_id")) cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id)) cbf_failnez (cbf_new_column (cif, "linearity")) cbf_failnez (cbf_set_value (cif, hcif.array_intensities.linearity)) cbf_failnez (cbf_new_column (cif, "undefined_value")) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", hcif.array_intensities.undefined_value)) cbf_failnez (cbf_new_column (cif, "overload")) cbf_failnez (cbf_set_doublevalue (cif, "%.0f", hcif.array_intensities.overload)) cbf_failnez (cbf_new_column (cif, "scaling")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.array_intensities.scaling)) cbf_failnez (cbf_new_column (cif, "gain")) cbf_failnez (cbf_set_doublevalue (cif, "%.3f", hcif.array_intensities.gain)) /******************************************************************** * ARRAY_STRUCTURE_LIST ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "array_structure_list")) cbf_failnez (cbf_new_column (cif, "array_id")) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.array_id )) if ( i==1) break; cbf_failnez (cbf_new_row (cif)) } cbf_failnez (cbf_new_column (cif, "index")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].index)) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "dimension")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].dimension)) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "precedence")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_integervalue (cif, hcif.array_structure_list[i].precedence)) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "direction")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.array_structure_list[i].direction)) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } /******************************************************************** * ARRAY_ELEMENT_SIZE ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "array_element_size")) cbf_failnez (cbf_new_column (cif, "array_id")) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_value (cif, hcif.array_id )) if ( i==1) break; cbf_failnez (cbf_new_row (cif)) } cbf_failnez (cbf_new_column (cif, "index")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_integervalue (cif, hcif.array_element_size.index[i])) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } cbf_failnez (cbf_new_column (cif, "size")) cbf_failnez (cbf_rewind_row (cif)) for ( i=0; i<2; i++ ) { cbf_failnez (cbf_set_doublevalue (cif, "%1.4e", hcif.array_element_size.pixelsize[i])) if ( i==1) break; cbf_failnez (cbf_next_row (cif)) } /******************************************************************** * ARRAY_DATA ********************************************************************/ cbf_failnez (cbf_force_new_category (cif, "array_data")) cbf_failnez (cbf_new_column (cif, "array_id")) cbf_failnez (cbf_set_value (cif, "image_1")) cbf_failnez (cbf_new_column (cif, "binary_id")) cbf_failnez (cbf_set_integervalue (cif, hcif.binary_id)) cbf_failnez (cbf_new_column (cif, "data")) return 1; }
cbf_handle cif = NULL |
unsigned int cif_compression = 0 [static] |
Definition at line 72 of file marcif.c.
Referenced by GetCIFData(), and PutCIFData().
int cif_element_signed = 0 [static] |
Definition at line 68 of file marcif.c.
Referenced by GetCIFData(), and PutCIFData().
size_t cif_element_size = 0 [static] |
Definition at line 74 of file marcif.c.
Referenced by GetCIFData(), and PutCIFData().
int cif_element_unsigned = 0 [static] |
Definition at line 69 of file marcif.c.
Referenced by GetCIFData().
int cif_error = 0 [static] |
Definition at line 62 of file marcif.c.
Referenced by GetCIFData(), GetCIFHeader(), and PutCIFData().
int cif_id = 0 [static] |
Definition at line 67 of file marcif.c.
Referenced by GetCIFData(), and PutCIFData().
int cif_maxelement = 0 [static] |
Definition at line 71 of file marcif.c.
Referenced by GetCIFData().
int cif_minelement = 0 [static] |
Definition at line 70 of file marcif.c.
Referenced by GetCIFData().
size_t cif_nelements = 0 [static] |
Definition at line 73 of file marcif.c.
Referenced by GetCIFData(), and PutCIFData().
size_t cif_read = 0 [static] |
Definition at line 66 of file marcif.c.
Referenced by GetCIFData().
CIF_HEADER hcif [static] |
char PRINT_AXIS = 0 [static] |
Definition at line 59 of file marcif.c.
Referenced by PutCIFHeader().
char PRINT_CHEMICAL = 0 [static] |
Definition at line 60 of file marcif.c.
Referenced by PutCIFHeader().
int verbose |
Definition at line 289 of file marglobals.h.
Referenced by GetCIFData(), GetCIFHeader(), MarHW::mar_command(), MarHW::mar_progress(), PutCIFData(), PutConfig(), and Scan345::scan345_main().