Few, but very informative and useful responses about 2D to I vs. 2theta plot conversion and image processing.
My original message was: 1) Some data collection and image processing files have the options to show the intensity distribution over a user-defined "line" in the image. Does any program allow one to trace a line from the beam center to the detector edge and save this intensity distribution to a file, so one could have I vs. 2theta data (or even a I vs. pixel data file, which could be easily converted to a I vs. 2theta file given the experimental setup)? 2) Is there a program which could convert image files from common 2D detectors (Mar345, MarCCD, RaxisII...) to a text file with the intensity on each pixel so one could easily write programs to do things such as in (1)? 3) If the answer to 2 is "No, you should learn how to handle binary files and image data formats", is there a tutorial on how to do this (I would prefer C/C++, but Fortran is OK), or some well-documented open source code I could study? ============================================================== James Holton wrote: I recommend Andrew Hammersley's program "FIT2D" for doing this. http://www.esrf.eu/computing/scientific/FIT2D/ You can integrate a 2-D image into a 1-D profile using the "POWDER" command. You want to set up the image geometry with the "GEOM" command first. Then you have the option to get I vs 2theta in the output. You can also go from a 1-D profile to a 2-D image with the "SYMFUNC" command. FIT2D can also interconvert a number of image file formats. When it can't output the file format you want, you can usually just export the image data as "binary" and slap a new header on it. For example, if you read in a Bruker image to FIT2D and want to make it an ADSC-type image, then you can export the data ("OUTPUT") as binary integers ("BIN"), using the filename binary.bin, then you can do this: head -512c frame_001.img >! header vi header head -512c header >! newimage.img cat binary.bin >> newimage.img Here you are "stealing" a header from a pre-existing image "frame_001.img". You can edit the header with a text editor if you like, but make sure it stays as 512 bytes (you can run the saved text through "head -512c" to truncate it). This will let you display the Bruker data frame in ADXV. You might need to play around with byte swapping in FIT2D to make it work. To get binary data into text, I find it most convenient to use the unix program "od" (octal dump). The dump does not have to be octal and you can arbitrarily set where in the file to start dumping and what format to dump it. For example, dumping a MarCCD image goes something like this: od -v -t u2 -w2 -j 4096 frame_0001.mccd Will dump all the 2-byte words in the image, starting with the first pixel in the image. The only problem is if the pixels are byte-swapped. A quick-and-dirty way to un-swap bytes is: od -v -t u1 -w2 -j 4096 frame_0001.mccd | awk '{print $2*256+$3}' Will dump as single bytes, and then you convert them into the equivalent 2-byte value with awk. The x-y coordinate of the pixel can be worked out from the sequence. For example, if you have a 4096x4096 image, od -v -t u2 -w2 -j 4096 frame_0001.mccd | awk '{print x+0,y+0,$2;++x} x>4096{++y;x=0}' Will dump x,y,and I for every pixel in the image. This output file will be quite large and this is DEFINITELY not the fastest way in the world to do this. -James Holton MAD Scientist ============================================================== Graeme Winter wrote: Hi Lucas, There is a C++ library called DiffractionImage which may help with #3 if you get that far: http://www.ccp4.ac.uk/newsletters/newsletter45/articles/DiffractionImage.html If you get in touch with Francois Remacle I'm sure he'll send you everything you need. Cheers, Graeme ============================================================== Jon Wright wrote: Fit2d is perhaps the 'gold standard' for making powder diagrams: http://www.esrf.eu/computing/scientific/FIT2D/ See also: http://www.datasqueezesoftware.com/ For source code try: http://cctbx.sourceforge.net/current_cvs/python/iotbx.detectors.html Good luck, Jon ============================================================== Thanks a lot, Lucas Bleicher ____________________________________________________________________________________ Novo Yahoo! CadĂȘ? - Experimente uma nova busca. http://yahoo.com.br/oqueeuganhocomisso