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