Hi Garret,
On Tue, Aug 4, 2020 at 9:55 AM Garret Bland <gbl...@andrew.cmu.edu> wrote: > Hello! > > I have a Python/Larch related question. I have been developing some python > script via jupyter and incorporating Larch as a module. I was able to read > an athena prj file with the following code > > *import larch as lc* > > *athena_prj = lc.io.read_athena(prjfilename)* > > Python stores this object as a 'Group' object with each spectrum being an > instance. I would like to go through more processing with all spectra. > > Example: > *for spectrum in athena_prj:* > * lc.xafs.find_e0(spectrum.energy, spectrum.mu <http://spectrum.mu>, > group = spectrum)* > > This does not work since the 'Group' object is not iterable. I tried to > look up some other built-in functionality with python, but couldn't find an > efficient way other than manually typing out each spectrum > (athena_prj.spectrum1, athena_prj.spectrum2, .... etc). Is there any > built-in functionality in larch that can iterate this 'Group' object? > > Yeah, a Group is a pretty generic collection and so is not iterable. There is a dir() function, but that is not really what you want because the group returned from read_athena() contains not only the "Athena Groups" (which is what you want to loop over) but also some extra data about the project file itself. I think that what you really want is to use the (magic-ish) `_athena_groups` data in the project file group: for spectrum_name, spectrum in athena.prj._athena_groups.items(): lc.xafs.find_e0(spectrum.energy, spectrum.mu) or if you're just looking to extract E0 for all the groups in the project file, perhaps: e0_vals = {name: lc.xafs.find_e0(spect) for name, spect in athena_prj._athena_groups.items()} --Matt PS: sorry, the word 'group' here probably has four different meanings. print(" ".join(["buffalo"]*8))! Any help would be appreciated. Thank you for your time! > Garret > > -- > Garret Bland > PhD Student > Carnegie Mellon University > Civil and Environmental Engineering > Porter Hall 201 > Pittsburgh, PA, 15213 > _______________________________________________ > Ifeffit mailing list > Ifeffit@millenia.cars.aps.anl.gov > http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit > Unsubscribe: http://millenia.cars.aps.anl.gov/mailman/options/ifeffit > -- --Matt Newville <newville at cars.uchicago.edu> 630-252-0431
_______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit Unsubscribe: http://millenia.cars.aps.anl.gov/mailman/options/ifeffit