octadist.plane

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.
Returns:

  • 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.
Returns:
  • 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.

See also

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()