Skip to content

Docker Image

Marc De Graef edited this page Jan 8, 2024 · 3 revisions

EMsoft 5.0 Docker Container

As of January 2024, we provide a Docker Container for EMsoft 5.0. This means that you no longer have to build EMsoft yourself, or download the nightly builds from the BlueQuartz server. Currently, the Docker image supports the AMD64 and ARM64 platforms and we are working on the Windows container.


Instructions for obtaining the EMsoft Docker image

  • If you are new to EMsoft and you have never executed any of its programs, then you will need to create a few folders inside which your data files will be kept. At an appropriate location in your home folder, create a folder called EMsoft5. Everything will be contained within this folder. For what follows below, we will use the symbol fullpath to indicate the absolute path to this EMsoft5 folder. Inside this folder create three folders with the names: EMPlay, XtalFolder, and Docker.

  • On the other hand, if you already have EMsoft 5.0 installed and you have existing data and crystal structure folders, you can continue to use those with the Docker image as explained below. In that case you only need to create the EMsoft5 and Docker folders.

  • If you haven't already done so, download and install the Docker app; start the app.

  • From a terminal window, move to the EMsoft5/Docker folder, and pull the Docker image as follows (note the all lowercase emsoft!):

docker pull marcdegraef/emsoft:buildx-latest
  • Then, to execute the image on a Mac ARM platform, use the following command:
docker run --rm -it -v /fullpath/EMPlay:/home/EMuser/EMPlay -v /fullpath/XtalFolder:/home/EMuser/XtalFolder --platform=linux/arm64 marcdegraef/emsoftbuildx-latest

On a Linux playform, simply replace arm64 in the --platform option by amd64.

  • This should start up the container and you will be logged in as the EMuser user in the /home/EMuser folder. The shell PATH variable is already set up to include the EMsoft executable folder, so you can simply type the name of an EMsoft program to execute it. The EMPlay and XtalFolder folders will be symbolic links to the corresponding folders in your file system; this way, you will not lose any data when you quit the container.

  • If you want to see all the EMsoft global variables, execute the EMsoftConfigTest program. While working in the container, you can change some of these parameters by editing the EMsoftConfig.json file in the /home/.config/EMsoft folder; note that your changes will disappear when you quit the container.

Information for Users

Home

SEM Modalities     - Monte Carlo Simulations
    - EBSD Master Pattern Simulations
    - EBSD Overlap Master Patterns
    - EBSD Pattern Simulations
    - EBSD Dictionary Indexing
    - EBSD Spherical Indexing
    - EBSD Reflector Ranking
    - EBSD HREBSD
    - ECP Master Pattern Simulations
    - ECP Pattern Simulations
    - TKD Master Pattern Simulations
    - TKD Pattern Simulations
    - ECCI Defect Image Simulations
TEM Modalities     - HH4
    - PED
    - CBED Pattern Simulations
    - STEM-DCI Image Simulations
    - EMIntegrateSTEM utility
XRD Modalities     - Laue Master Pattern Simulation
    - EMLaue
    - EMLaueSlit
General Parameter Definitions * Foil Defect Configuration Definitions
EMsoftWorkbench
Utility Programs     - EMConvertOrientations
    - EMDisorientations
    - EMHOLZ
    - EMKikuchiMap
    - EMOpenCLinfo
    - EMZAgeom
    - EMcuboMK
    - EMdpextract
    - EMdpmerge
    - EMdrawcell
    - EMeqvPS
    - EMeqvrot
    - EMfamily
    - EMGBO
    - EMGBOdm
    - EMgetEulers
    - EMgetOSM
    - EMlatgeom
    - EMlistSG
    - EMlistTC
    - EMmkxtal
    - EMorbit
    - EMorient
    - EMqg
    - EMsampleRFZ
    - EMshowxtal
    - EMsoftSlackTest
    - EMsoftinit
    - EMstar
    - EMstereo
    - EMxtalExtract
    - EMxtalinfo
    - EMzap
IDL Scripts     - Virtual Machine Apps
    - SEMDisplay
    - Efit
    - CBEDDisplay
python wrappers     - python examples
Docker     - Docker Image

Complete Examples

  1. Crystal Data Entry Example
  2. EBSD Example
  3. ECP Example
  4. TKD Example
  5. ECCI Example
  6. CBED Example
  7. Dictionary Indexing Example
  8. DItutorial

Information for Developers

Clone this wiki locally