On Tuesday 11 September 2007, Matthew Ginder-Vogel wrote:
Hi Bruce and list,
Has anyone written an Ifeffit wrapper and/or script that can take a series of data files and create an Athena project without actually having to use Athena? If you have, would you be willing to share it? I'm sure it's possible, but I don't want to recreate the wheel if I don't have to.
Thanks,
Matt
Hi Matt, That's a really good idea that, to my knowledge, is not a solved problem. It's not an especially hard problem either, fortunately. The project file is gzipped. If you un-gzip it, it's just a plain text file with lines interpretable as perl code interspersed with other lines of flat text. Athena does not require that project files be gzipped -- that is, she will unzip a file if need be before reading it. The lines of perl are written using Data::Dumper http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm with $Data::Dumper::Indent set to 1. That's important -- Athena's project file parser is line-based. It reads a line and interprets that line before moving on to the next one. So each line of data has to be a complete representation of a perl list. If you are going to use something other than perl to create the file, that shouldn't be too hard. * order matters somewhat. The line with "[record]" has to follow all the data associated with the record, but it doesn't matter if the @x line comes before or after the @y line. You can safely leave out the @i0 and @stddev lines and Athena will behave correctly (I think). The $old_group line can probably be set to an empty string -- if not, any four-letter string will do. * the names of things in the @args line do matter. Unrecognized parameters will be ignored. Missing parameters will be set to their default values. If parameter values matter to you -- you need to use the same names Athena uses. The parameter names are not docujmented anywhere, but the names are fairly suggestive. * you can leave lines like @journal, %plot_features, and @indicator out of the project file and Athena will use default values for all those things. * The first several lines are ignored by Athena, but I strongly recommend that you write something in the header identifying where the project file comes from. * The last few lines are also ignored by Athena. They are there only to make it a little easier for me to examine a project file using Emacs. FWIW, what you want to do is going to be much easier someday: http://cars9.uchicago.edu/~ravel/software/demeter.html Among the many problem areas that Demeter is intended to solve is moving between GUI and non-GUI applications more gracefully. Good luck and I'd be interested to see what you come up with. B -- Bruce Ravel ---------------------------------------------- bravel@anl.gov Molecular Environmental Science Group, Building 203, Room E-165 MRCAT, Sector 10, Advanced Photon Source, Building 433, Room B007 Argonne National Laboratory phone and voice mail: (1) 630 252 5033 Argonne IL 60439, USA fax: (1) 630 252 9793 My homepage: http://cars9.uchicago.edu/~ravel EXAFS software: http://cars9.uchicago.edu/~ravel/software/exafs/