If they are aligned, then shouldn't you be doing a coherent average (or average in real-space) before computing the power-spectrum ?
This is the code from the --fftavg option, which works correctly (it's just the file-saving you were having issues with):
if not fftavg:
fftavg = EMData()
fftavg.set_size(nx+2, ny)
fftavg.set_complex(1)
fftavg.to_zero()
d.process_inplace("mask.ringmean")
d.process_inplace("normalize")
df = d.do_fft()
df.mult(df.get_ysize())
fftavg.add_incoherent(df)
Most of what the above code does should be pretty obvious. You can display the results easily in e2.py with:
display(image)
If you're writing your own script and want to bring up a GUI, it takes a notch or two more effort. You can use display() there too for a quick solution, but you'll have to close the display window before the script will continue.
Also note that the script above assumes unaligned images, ie - the averaging is incoherent.