octadist.src.plane.find_eq_of_plane(x, y, z)[source]

Find the equation of plane of given three points using cross product:

The general form of plane equation:

Ax + By + Cz = D

where A, B, C, and D are coefficient.

XZ  X  XY = (a, b, c)

d = (a, b, c).Z

Parameters: x (array_like) – 3D Coordinate of point. y (array_like) – 3D Coordinate of point. z (array_like) – 3D Coordinate of point. a (float64) – Coefficient of the equation of the plane. b (float64) – Coefficient of the equation of the plane. c (float64) – Coefficient of the equation of the plane. d (float64) – Coefficient of the equation of the plane.

Examples

>>> N1 = [2.298354000, 5.161785000, 7.971898000]
>>> N2 = [1.885657000, 4.804777000, 6.183726000]
>>> N3 = [1.747515000, 6.960963000, 7.932784000]
>>> a, b, c, d = find_eq_of_plane(N1, N2, N3)
>>> a
-3.231203733528
>>> b
-0.9688526458499996
>>> c
0.9391692927779998
>>> d
-4.940497273569501

octadist.src.plane.find_fit_plane(coord)[source]

Find best fit plane to the given data points (atoms).

Parameters: coord (array_like) – Coordinates of selected atom chunk. xx (float) – Coefficient of the surface. yy (float) – Coefficient of the surface. z (float) – Coefficient of the surface. abcd (tuple) – Coefficient of the equation of the plane.

scipy.optimize.minimize()
Used to find the least-square plane.

Examples

>>> points = [(1.1, 2.1, 8.1),
(3.2, 4.2, 8.0),
(5.3, 1.3, 8.2),
(3.4, 2.4, 8.3),
(1.5, 4.5, 8.0),
(5.5, 6.7, 4.5)
]
>>> # To plot the plane, run following commands:
>>> import matplotlib.pyplot as plt
>>> # map coordinates for scattering plot
>>> xs, ys, zs = zip(*points)
>>> plt.scatter(xs, ys, zs)
>>> plt.show()