pyxem / orix

Analysing crystal orientations and symmetry in Python
https://orix.readthedocs.io
GNU General Public License v3.0
80 stars 48 forks source link

Easier creation of a CrystalMap #412

Open hakonanes opened 1 year ago

hakonanes commented 1 year ago

@argerlt raised a valid point in #411:

I think the problem here is new users want something they can learn with immediately, as opposed to learning ORIX's IO and having to fiddle with different import methods until they find the right way to import files into CrystalMap objects.

We should address this. To ease creation of a CrystalMap, I think we should focus on these things, in order of importance:

  1. Add more format readers to orix.io.plugins (like .ctf, .osc and so on)
  2. Make it easier to create a CrystalMap. (Allow passing nav_shape and step_sizes to CrystalMap.__init__() instead of recquiring coordinate arrays; Allow a Python list of Phase instances as an alternative to a PhaseList.)
  3. Make it easier to create a Phase. (Allow passing lattice parameters directly via lattice=[1, 2, 3, 60, 70, 80]; Allow passing atoms directly via an atoms argument.)
  4. Wrap orix.io.load()/save() in CrystalMap.load()/save().

This issue can serve as a collection of thoughts on ease of use of CrystalMap. It shouldn't be closed until the above four points are addressed.

The above points are based on my experience using CrystalMap. Other suggestions for improvements to ease creation of a CrystalMap based on people's experience are very much appreciated.