/* * sim-main.c * * Simulate test data * * (c) 2006-2009 Thomas White * * template_index - Indexing diffraction patterns by template matching * */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include "image.h" #include "relrod.h" #include "cell.h" #include "utils.h" #include "hdf5-file.h" static void main_show_help(const char *s) { printf("Syntax: %s [...]\n\n", s); printf("Index diffraction patterns\n\n"); printf(" -h Display this help message\n"); } int main(int argc, char *argv[]) { int c, i; ImageList *list; UnitCell *cell; struct image image; int nrefl; while ((c = getopt(argc, argv, "h")) != -1) { switch ( c ) { case 'h' : { main_show_help(argv[0]); return 0; } } } printf("Generating test data...\n"); list = image_list_new(); image.width = 512; image.height = 512; image.tilt = 0.0; image.omega = 0.0; image.fmode = FORMULATION_CLEN; image.x_centre = 255.5; image.y_centre = 255.5; image.camera_len = 0.2; /* 20 cm */ image.resolution = 5120; /* 512 pixels in 10 cm */ image.lambda = 0.2e-9; /* LCLS wavelength */ image.data = malloc(512*512*2); image_add(list, &image); /* Calculate reflections */ get_reflections(&image, cell); /* Construct the image */ nrefl = image_feature_count(image.rflist); for ( i=0; ix; y = f->y; /* Discards digits after the decimal point */ image.data[y*image.width+x] = 1; } /* Write the output file */ hdf5_write("simulated.h5", image.data, image.width, image.height); return 0; }