Gatan | AMETEKSkip to Main Content
No options found

DigitalMicrograph drift data - Plot

Python Script

Replot drift-measurement data measured from stacks in DigitalMicrograph as a trajectory.

Preview

#Script for re-plotting drift-measurement data measured from stacks in GMS
# as a trajectory.

#Requires Matplotlib 
#To install packages like scipy, see instructions in GMS Help:Python:Installation and Configuration:Additional Packages

#Code written by Ben Miller. Last Updated 2020-06

import numpy as np
import sys
if (DM.IsScriptOnMainThread() == False):
	print(' MatplotLib and scipy scripts require to be run on the main thread.',
		'\n Uncheck the "Execute on Background Thread"',
		'checkbox at the bottom of the Script Window' )
	exit()
sys.argv.extend(['-a', ' '])
import matplotlib.pyplot as plt

def plot_drift_data(data,title):
	def axes_setup():
		fig, ax = plt.subplots()
		ax.axvline(0,color='0.75')
		ax.axhline(0,color='0.75')
		ax.axis('scaled')
		plt.xlabel('Drift (nm)',fontsize=14)
		plt.ylabel('Drift (nm)',fontsize=14)
		return ax
	
	drift_plot = axes_setup()
	plt.title(title,fontsize=12)
	ax_lim = 1.1*max(np.linalg.norm(data,axis=0))
	drift_plot.axis([-ax_lim, ax_lim, -ax_lim, ax_lim])
	drift_plot.plot(data[1,:],data[0,:])
	plt.show()
	
image_0 = DM.GetFrontImage()
im_name = image_0.GetName()
numpy_array = image_0.GetNumArray()*image_0.GetIntensityScale() 
plot_drift_data(numpy_array,im_name)
del image_0