%load_ext autoreload
%autoreload 2
import molsysmt as msm
import numpy as np
import matplotlib.pyplot as plt

Get geometric axis#

import molsysmt as msm
import numpy as np
coordinates = np.zeros([1,8,3]) * msm.pyunitwizard.unit('nm')
coordinates[0,0,:] = msm.pyunitwizard.quantity('[0,0,0] nm')
coordinates[0,1,:] = msm.pyunitwizard.quantity('[0,1,0] nm')
coordinates[0,2,:] = msm.pyunitwizard.quantity('[2,1,0] nm')
coordinates[0,3,:] = msm.pyunitwizard.quantity('[2,0,0] nm')

coordinates[0,4,:] = msm.pyunitwizard.quantity('[0,0,5] nm')
coordinates[0,5,:] = msm.pyunitwizard.quantity('[0,1,5] nm')
coordinates[0,6,:] = msm.pyunitwizard.quantity('[2,1,5] nm')
coordinates[0,7,:] = msm.pyunitwizard.quantity('[2,0,5] nm')
axis, variances = msm.structure.get_principal_axes(coordinates)
for ii in range(3):
    print(axis[0,ii,:], variances[0,ii])
[0. 0. 1.] 10.0
[1. 0. 0.] 52.0
[0. 1. 0.] 58.0