The following script demonstrates how the progress can be monitored during a mesh scan. Figure 4.3 is consecutively filled-up with plus signs.
#!/usr/bin/env python
”'
the meshScan class displays the current position in a mesh scan
”'
import Spectra
import time
class scanMesh():
def __init__( self, startX, stopX, deltaX, startY, stopY, deltaY):
self.startX = startX
self.stopX = stopX
self.deltaX = deltaX
self.startY = startY
self.stopY = stopY
self.deltaY = deltaY
self.npX = (self.stopX - self.startX)/deltaX + 1
self.npY = (self.stopY - self.startY)/deltaY + 1
self.mesh = Spectra.SCAN( name = "mesh",
start = self.startX, stop = self.stopX,
np = self.npX*self.npY, at = "(1,1,1)",
title = 'Mesh',
colour = 2, xlabel = 'x', ylabel = 'y', date = True)
Spectra.gra_command( "set mesh/x_min=%g/x_max=%g/y_min=%g/y_max=%g" % \
( self.startX - self.deltaX, self.stopX + self.deltaX,
self.startY - self.deltaY, self.stopY + self.deltaY))
Spectra.gra_command( "set mesh/prim=1/type=2")
Spectra.gra_command( "autoscale/window")
def setX( self, index, x):
self.mesh.setX( index, x)
def setY( self, index, y):
self.mesh.setY( index, y)
def display( self):
self.mesh.display()
def main():
startX = 0.
stopX = 1
deltaX = 0.1
startY = 0.
stopY = 2.
deltaY = 0.1
o = scanMesh( startX, stopX, deltaX, startY, stopY, deltaY)
x = startX
y = startY
count = 0
while( y <= stopY):
while( x <= stopX):
o.setX( count, x)
o.setY( count, y)
o.display()
count += 1
x += deltaX
time.sleep(0.1)
y += deltaY
x = startX
(sts, result) = Spectra.gra_yesno( "Enter Spectra")
if result == 1:
Spectra.gra_input()
if __name__ == "__main__":
main()