Digital Micrograph Scripting

Transcription

Digital Micrograph Scripting
Digital Micrograph Scripting
Vincent Richard
GATAN France, Division de Roper Scientific. [email protected]
1
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
DM Scripting – WHY ? – AND WHY NOT ?
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Where to go from here?
The help-documentation of DM is a the starting point and the only “official” documentation. It is
listing most of the available commands. (You launch the documentation by pressing F1 within DM.)
•The DM script database hosted at HTTP://www.felmi-zfe.at has lots of scripts both as simple
examples and as useful tools shared by other DM users. An exhaustive list of DM script functions
and procedures can be found in this website
• At HTTP://lists.asu.edu/archives/dmsug.html you can sign up a mailing list about DM scripting.
Please also check the archives of the list prior to sending your questions. The answer might already
be there!
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Script examples
Image Filters
Diffraction / FFT
Other examples
Tilt series
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Install scripts in DM
Use the menu File…/ Install Script…
Menu
Librarie
Plug in
The scripts are now stored in the preference files of
DM (DigitalMicrographCF.8.prf) , could be launched
from custom menu
menu.
The scripts are now stored in the preference files of
DM (DigitalMicrographCF.8.prf) and are
automatically loaded on launching DM
DM.
To deinstall scripts or functions, use the menu
File…/Remove Script… , then select the library you
want to deinstall and press “Remove”.
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Compile scripts in Plug-In with Package Creator
1)
Launch Package Creator script
2)
Regroup the scripts in one directory
3)
4)
Select them in Package creator windows
Create the Plug-In : .gtk
5)
It will automatically create and save in :
C:\ProgramFiles\Gatan\DigitalMicrograph\
PlugIns
6) The Command will be display in the
Tomography menu
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Scripting Window
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
First scripting window – GMS 1.8.0
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
First script
• While a script is running, no other tasks can be performed in DM. The mouse cursor becomes an hourglass. After the script finishes, the mouse cursor becomes an arrow again.
•A running script can be interrupted by pressing the keys Ctrl and Break simultaneously.
• The following script command prints output to the results window: result(string) where string can be a
variable or any text within quotes, e.g.: result(“Hello word!\n”) prints to the results window: Hello world!
The two characters \n add a line break.
Write in the results window :
// This is the first line of my script! Just a comment.
// The purpose of the script is to demonstrate the RESULT command.
result("My name is Vincent Richard")
result("\n\n\n\n")
result("And
(
who are yyou?")) // I will always
y comment myy scripts!
p
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Images as number arrays
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Directly addressing images
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Directly addressing images areas
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Useful commands for image evaluation
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Script example: pixel by pixel operation
Calculate the relative thickness map t/λ by script from
unfiltered and Zero loss images :
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
tert () – a powerful command
This script creates a binary mask from image B
Each point, where < 10000 counts, becomes 1,
each other point 0.
Sh I
ShowImage
(t t( B < 10000 , 0 , 1 ))
(tert(
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
warp () – another powerful command
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Variables (numbers and strings)
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
A third type of variables : images type
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Image related commands
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Condition in script
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
WHILE loops
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
FOR Loops
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Writing a function
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Functions: arguments and optional arguments
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Functions: image arguments
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
How to create a customized dialog
Example
p : View / Focus / acquire
q
dialog
g box
Window size and position
Name of the Button
Name of the function
Buttons positions
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
How to perform a task on all open images
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
How to open/save a file
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
“ChooseMenuItem command”
This command allows you to launch a functions or a script present in Digital Micrograph menu.
Syntaxe :
ChooseMenuitem(“menu“ ,“submenu“ ,“function")
E
Example
l : this
thi ffollowing
ll i ffunction
ti will
ill acquire
i a live
li image
i
in
i view
i mode
d
=
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Hardware control by scripts
Microscope control ->setup -> test : Common microscope functions:
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Hardware control by scripts
List of universal commands (works for any TEM):
> EMGetMagnification( number mag )
> EMImageShift( dac, dac )
> EMBeamShift( dac, dac )
> EMChangeFocus( dac )
> EMChangeTilt( dac,dac )
> EMGetBrightness()
> EMSetBrightness( dac )
> EMGetSpotSize()
> EMSetSpotSize( dac )
> EMGetStageX()
> EMSetStageX( um )
> EMGetStageY()
> EMSetStageY( um )
> EMGetStageZ()
> EMSetStageZ( um )
> EMGetStageAlpha()
> EMSetStageAlpha( deg )
Example : function to set alpha stage to 30°
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
JEOL COM microscope control by scripts
MICROSCOPES DE TYPE 2100/1400/2200 use the universal commands :
EMGet(or)SetCommand (dac,dac)
Or
S
Specific
ifi JEOL commands
d can b
be used
d lik
like screen commands
d
JEOLCOM_SetScreen( 0 )
JEOLCOM_SetScreen(1)
JEOLCOM_SetScreen(
_
(2)
set fluorescent to 0°
set fluorescent to 7°
set fluorescent to 90°
Or for JEOL 2200FS filter : Jeolcom_getslitwith().
Script example (deflector change button) :
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
Serial JEOL microscope control by scripts
JEM 2010 /2011/3010/3011/2010F/1010/1011/1200EXII/2000EX/FXI
Jeolcommand is the Digital Micrograph command to sent an order to the
microscope :
Reply=jeolcommand(« command », »ok »)
Serial commands examples :
Objf x
OL value change
gmove (x,y)
move x/y stage
Bright x
CL3 value (brightness) change
gtilt (alpha,beta)
move alpha/beta stage
Dfc n,x,y
deflector n change of x,y values
gmovez (z)
move z
Gun 1 n=0
Htset
Change HT
Gun 2 n=1
SCRSET 2
Screen up
Cla 1 n=5
SCRSET 0
Screen down
Cla 2 nn=66
SPOTDN
Spot size down
Pla n=11
.
All microscope commands available are listed in the JEOL microscope manual.
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009
JEOL Serial microscope script examples
By Michel Ribardière
Journées du Cercle des Microscopistes JEOL Physique, 1 et 2 décembre 2009