Git Product home page Git Product logo

hakonanes / p-texture-al-mn-alloys Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 54.95 MB

Workflow for correlated grain and particle analysis with a multi-modal EBSD/BSE dataset, to study recrystallization textures in an Al-Mn alloy

License: GNU General Public License v3.0

Jupyter Notebook 99.74% MATLAB 0.23% Python 0.03% Shell 0.01%
aluminium aluminum electron-backscatter-diffraction paper python ebsd

p-texture-al-mn-alloys's Introduction

Code for the paper Orientation dependent pinning of (sub)grains by dispersoids during recovery and recrystallization in an Al-Mn alloy

Repository DOI

This repository contains Jupyter notebooks, MTEX (MATLAB) and ImageJ scripts, and other files, apart from the raw BSE images and EBSD datasets, which are necessary to reproduce the results and figures in the paper Orientation dependent pinning of (sub)grains by dispersoids during recovery and recrystallization in an Al-Mn alloy (2023), published in Acta Materialia (doi):

@article{aanes2023orientation,
  author    = {{\AA}nes, H{\aa}kon W and van Helvoort, Antonius TJ and Marthinsen, Knut},
  title     = {Orientation dependent pinning of (sub) grains by dispersoids during recovery and recrystallization in an Al-Mn alloy},
  doi       = {10.1016/j.actamat.2023.118761},
  pages     = {118761},
  volume    = {248},
  journal   = {Acta Materialia},
  publisher = {Elsevier},
  year      = {2023},
}

The raw EBSD and BSE data is available on Zenodo (doi):

@dataset{aanes2022orientation_data,
  author    = {H{\aa}kon Wiik {\AA}nes and Antonius T. J. van Helvoort and Knut Marthinsen},
  title     = {{Electron backscatter diffraction data and backscatter electron images from four conditions from a cold-rolled and annealed Al-Mn alloy}},
  doi       = {10.5281/zenodo.7383087},
  note      = {{The data was acquired while Håkon Wiik Ånes received financial support from the Norwegian University of Science and Technology (NTNU) through the NTNU Aluminium Product Innovation Centre (NAPIC).}},
  publisher = {Zenodo},
  year      = {2022},
}

The preprint is available on arXiv (doi):

@article{aanes2022orientation_arxiv,
  author  = {{\AA}nes, H{\aa}kon Wiik and van Helvoort, Antonius TJ and Marthinsen, Knut},
  title   = {{Orientation dependent pinning of (sub)grains by dispersoids during recovery and recrystallization in an Al-Mn alloy}},
  doi     = {10.48550/arxiv.2212.03527},
  journal = {arXiv preprint arXiv:2212.03527},
  year    = {2022},
}

The contents in this repository is licensed under the GPLv3+, since many of the softwares used have the same license.

Contents

notebooks

Static views of the notebooks are available via nbviewer.

Python packages used in the notebooks are listed in requirements.txt and can be installed into a virtual or conda environment:

pip install -r requirements.txt

Files:

  • ebsd1_dewrap.ipynb: EBSD datasets acquired with a NORDIF detector are sometimes written with the last column of patterns as the first column. This notebook checks if this is the case, places the patterns correctly in the map, and writes them to an HDF5 file in the kikuchipy h5ebsd format.
  • ebsd2_preprocess.ipynb: Generate indexing-independent views of an EBSD dataset (mean intensity map, virtual backscatter electron images, image quality map, and average neighbour dot product map) and calibrate the detector-sample geometry via projection center (PC) optimization with the PyEBSDIndex Python package. An average PC is used in dictionary indexing.
  • ebsd3_dictionary_indexing.ipynb: Obtain crystal orientations from the EBSD patterns via dictionary indexing (DI) as implemented in kikuchipy. Requires an Al master pattern generated with EMsoft.
  • ebsd4_refinement.ipynb: Refine crystal orientations obtained from DI.
  • bse1_crop_bse_images.ipynb: Crop BSE images prior to and after stitching with BigStitcher in ImageJ.
  • bse2_particle_detection.ipynb: Detect particles in BSE images and EBSD intensity maps.
  • bse3_image_registration.ipynb: Manually identify control points in BSE images and EBSD intensity maps, perform image registration of BSE and EBSD datasets, and insert particles detected in BSE images and their sizes into EBSD datasets, making up the multimodal datasets.
  • bse4_density_disp_by_const_part.ipynb: Calculate the density and average size of dispersoids within deformation zones of large constituent particles relative to elsewhere in the microstructure.
  • bse4_density_disp_by_const_part.py: The above notebook as a Python script accepting input parameters.
  • run_bse4_density_disp_by_const_part.sh: Shell script to run the above Python script per dataset with varying parameter values. Useful when doing a parameter search or just automating the calculations.
  • figures_in_paper.ipynb: Generate most of the figures used in the paper (and some for the supplementary).
  • figures_in_supplementary.ipynb: Generate most of the figures in the supplementary.

Installation of the packages has been tested to work on Linux (Ubuntu 22.04) and Windows 10. All notebooks have been tested to work on Linux, while the two indexing and refinement notebooks have also been tested to work on Windows 10.

matlab_scripts

MATLAB packages used in the scripts are MTEX and export_fig. Note that MATLAB requires a license.

Files:

  • macrotexture.m: Estimation of the orientation distribution function from four pole figures collected with an XRD diffractometer.
  • orientation_analysis.m: Correlated analysis of subgrains and particles based on the multimodal dataset, specifically dispersoids at subgrain boundaries and subgrains at constituent particles.

imagej_scripts

Files:

  • hist_match_subtract_bg.bsh: ImageJ BeanShell script automating histogram matching and creation of images to detect large and small particles in a BSE image.

p-texture-al-mn-alloys's People

Contributors

hakonanes avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.