1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

""" 

============================================================= 

Spatial algorithms and data structures (:mod:`scipy.spatial`) 

============================================================= 

 

.. currentmodule:: scipy.spatial 

 

Nearest-neighbor Queries 

======================== 

.. autosummary:: 

:toctree: generated/ 

 

KDTree -- class for efficient nearest-neighbor queries 

cKDTree -- class for efficient nearest-neighbor queries (faster impl.) 

Rectangle 

 

Distance metrics are contained in the :mod:`scipy.spatial.distance` submodule. 

 

Delaunay Triangulation, Convex Hulls and Voronoi Diagrams 

========================================================= 

 

.. autosummary:: 

:toctree: generated/ 

 

Delaunay -- compute Delaunay triangulation of input points 

ConvexHull -- compute a convex hull for input points 

Voronoi -- compute a Voronoi diagram hull from input points 

SphericalVoronoi -- compute a Voronoi diagram from input points on the surface of a sphere 

HalfspaceIntersection -- compute the intersection points of input halfspaces 

 

Plotting Helpers 

================ 

 

.. autosummary:: 

:toctree: generated/ 

 

delaunay_plot_2d -- plot 2-D triangulation 

convex_hull_plot_2d -- plot 2-D convex hull 

voronoi_plot_2d -- plot 2-D voronoi diagram 

 

.. seealso:: :ref:`Tutorial <qhulltutorial>` 

 

 

Simplex representation 

====================== 

The simplices (triangles, tetrahedra, ...) appearing in the Delaunay 

tessellation (N-dim simplices), convex hull facets, and Voronoi ridges 

(N-1 dim simplices) are represented in the following scheme:: 

 

tess = Delaunay(points) 

hull = ConvexHull(points) 

voro = Voronoi(points) 

 

# coordinates of the j-th vertex of the i-th simplex 

tess.points[tess.simplices[i, j], :] # tessellation element 

hull.points[hull.simplices[i, j], :] # convex hull facet 

voro.vertices[voro.ridge_vertices[i, j], :] # ridge between Voronoi cells 

 

For Delaunay triangulations and convex hulls, the neighborhood 

structure of the simplices satisfies the condition: 

 

``tess.neighbors[i,j]`` is the neighboring simplex of the i-th 

simplex, opposite to the j-vertex. It is -1 in case of no 

neighbor. 

 

Convex hull facets also define a hyperplane equation:: 

 

(hull.equations[i,:-1] * coord).sum() + hull.equations[i,-1] == 0 

 

Similar hyperplane equations for the Delaunay triangulation correspond 

to the convex hull facets on the corresponding N+1 dimensional 

paraboloid. 

 

The Delaunay triangulation objects offer a method for locating the 

simplex containing a given point, and barycentric coordinate 

computations. 

 

Functions 

--------- 

 

.. autosummary:: 

:toctree: generated/ 

 

tsearch 

distance_matrix 

minkowski_distance 

minkowski_distance_p 

procrustes 

 

""" 

 

from __future__ import division, print_function, absolute_import 

 

from .kdtree import * 

from .ckdtree import * 

from .qhull import * 

from ._spherical_voronoi import SphericalVoronoi 

from ._plotutils import * 

from ._procrustes import procrustes 

 

__all__ = [s for s in dir() if not s.startswith('_')] 

__all__ += ['distance'] 

 

from . import distance 

 

from scipy._lib._testutils import PytestTester 

test = PytestTester(__name__) 

del PytestTester