Skip to content

Instantly share code, notes, and snippets.

@DanHickstein
Created December 16, 2017 20:40
Show Gist options
  • Save DanHickstein/68aa7d3891691dda4c6655392aa37819 to your computer and use it in GitHub Desktop.
Save DanHickstein/68aa7d3891691dda4c6655392aa37819 to your computer and use it in GitHub Desktop.
import numpy as np
import matplotlib.pyplot as plt
import sys
import abel
transforms = {
"basex": abel.basex.basex_transform,
# "linbasex": abel.linbasex.linbasex_transform,
"direct": abel.direct.direct_transform,
"hansenlaw": abel.hansenlaw.hansenlaw_transform,
"onion_bordas": abel.onion_bordas.onion_bordas_transform,
"onion_dasch": abel.dasch.onion_peeling_transform,
"three_point": abel.dasch.three_point_transform,
"two_point" : abel.dasch.two_point_transform,
}
ntrans = np.size(transforms.keys()) # number of transforms
n = 201
r_max = 50
sigma = 10
ref = abel.tools.analytical.GaussianAnalytical(n, r_max, sigma, symmetric=False)
fig, axs = plt.subplots(ntrans, 1, figsize=(4,8), tight_layout=True, sharex=True, sharey=True)
for row, (label, transFunc) in enumerate(transforms.iteritems()):
print label
axs[row].plot(ref.r, ref.func, label='Analytical', lw=1)
forward = np.copy(ref.abel)
inverse = transFunc(forward,dr=ref.dr, direction='inverse')
# if label == 'onion_bordas':
# inverse = inverse*ref.dr
axs[row].plot(ref.r, inverse, label=label, ls='dashed', lw=1)
axs[row].plot(ref.r, (inverse-ref.func)*10, color='r', lw=1, label='Error (x10)')
axs[row].axhline(0, color='r', alpha=0.3, lw=1)
axs[row].legend(loc='upper right', frameon=False)
axs[row].set_ylim(-0.3,1.2)
plt.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment