matplotlib.tri#

구조화되지 않은 삼각형 그리드 기능.

클래스 matplotlib.tri. 삼각분할 ( x , y , 삼각형 = 없음 , 마스크 = 없음 ) [출처] #

npoints 포인트와 ntri 삼각형으로 구성된 구조화되지 않은 삼각형 그리드입니다. 삼각형은 사용자가 지정하거나 Delaunay 삼각 측량을 사용하여 자동으로 생성할 수 있습니다.

매개변수 :
x, y (npoints,) 배열형

그리드 포인트의 좌표.

삼각형 (ntri, 3) int와 같은 배열, 선택 사항

각 삼각형에 대해 시계 반대 방향으로 정렬된 삼각형을 구성하는 세 점의 인덱스입니다. 지정하지 않으면 Delaunay 삼각분할이 계산됩니다.

mask (ntri,) bool과 유사한 배열, 선택 사항

가려진 삼각형.

메모

삼각형이 유효하려면 중복 점, 동일선상의 점에서 형성된 삼각형 또는 겹치는 삼각형이 없어야 합니다.

속성 :
삼각형 (ntri, 3) int의 배열

각 삼각형에 대해 시계 반대 방향으로 정렬된 삼각형을 구성하는 세 점의 인덱스입니다. 마스크 를 고려하려면 대신 get_masked_triangles사용하십시오.

마스크 (ntri, 3) bool의 배열

가려진 삼각형.

is_delaunay 부울

삼각분할이 계산된 들로네 삼각분할( 삼각형 이 지정되지 않은 경우)인지 여부입니다.

compute_plane_coefficients ( z ) [출처] #

점(x, y) 좌표와 모양(npoints)의 지정된 z-배열에서 마스킹되지 않은 모든 삼각형에 대한 평면 방정식 계수를 계산합니다. 반환된 배열은 모양이 (npoints, 3)이고 삼각형 tri의 (x, y) 위치에서 z-값을 사용하여 계산할 수 있습니다 .z = array[tri, 0] * x  + array[tri, 1] * y + array[tri, 2]

속성 가장자리 #

마스킹되지 않은 삼각형의 모든 가장자리를 포함하는 모양(nedges, 2)의 정수 배열을 반환합니다.

각 행은 시작점 색인과 끝점 색인으로 에지를 정의합니다. 각 에지는 한 번만 나타납니다. 즉, 포인트 ij 사이의 에지 에는 (i, j) 또는 (j, i) 만 있습니다.

get_cpp_triangulation ( ) [출처] #

기본 C++ Triangulation 객체를 반환하고 필요한 경우 생성합니다.

static get_from_args_and_kwargs ( * args , ** kwargs ) [소스] #

args 및 kwargs와 소비된 값이 제거된 나머지 args 및 kwargs에서 Triangulation 객체를 반환합니다.

두 가지 대안이 있습니다. 첫 번째 인수가 Triangulation 객체인 경우 반환되거나 args 및 kwargs가 반환할 새 삼각 분할을 생성하기에 충분합니다. 후자의 경우 가능한 args 및 kwargs에 대해서는 Triangulation.__init__을 참조하십시오.

get_masked_triangles ( ) [출처] #

마스크를 고려한 삼각형 배열을 반환합니다.

get_trifinder ( ) [출처] #

matplotlib.tri.TriFinder필요한 경우 생성하여 이 삼각분할 의 기본값을 반환합니다 . 이를 통해 동일한 TriFinder 개체를 쉽게 공유할 수 있습니다.

부동산 이웃 #

이웃 삼각형을 포함하는 모양(ntri, 3)의 정수 배열을 반환합니다.

각 삼각형에 대해 동일한 가장자리를 공유하는 세 삼각형의 인덱스 또는 이러한 이웃 삼각형이 없는 경우 -1입니다. 는 점 인덱스에서 점 인덱스 까지 가장자리에 이웃하는 삼각형입니다 .neighbors[i, j]triangles[i, j]triangles[i, (j+1)%3]

set_mask ( 마스크 ) [소스] #

마스크 배열을 설정하거나 지웁니다.

매개변수 :
마스크 없음 또는 길이 ntri의 bool 배열
클래스 matplotlib.tri. TriContourSet ( ax , * args , ** kwargs ) [소스] #

베이스:ContourSet

삼각형 그리드에 대해 등고선 세트 또는 채워진 영역을 생성하고 저장합니다.

이 클래스는 일반적으로 사용자가 직접 인스턴스화하지 않고 tricontour및 에 의해 인스턴스화됩니다 tricontourf.

속성 :
도끼Axes

윤곽선이 그려지는 Axes 객체입니다.

컬렉션 silent_list_ PathCollection_

Artist윤곽선을 나타내는 s입니다 . 이것은 PathCollection선 및 채워진 윤곽선 모두에 대한 s 목록입니다.

레벨 배열

등고선 수준의 값입니다.

레이어 배열

라인 윤곽선의 레벨과 동일합니다. 채워진 윤곽선에 대한 수준 사이의 중간. 참조하십시오 ContourSet._process_colors.

채워진 키워드 인수 가 False(기본값)인지 True 인지에 따라 삼각형 그리드 등고선 또는 채워진 영역을 그립니다.

이니셜라이저의 첫 번째 인수는 Axes 개체여야 합니다. 나머지 인수와 키워드 인수는 의 docstring에 설명되어 tricontour있습니다.

클래스 matplotlib.tri. TriFinder ( 삼각 측량 ) [출처] #

(x, y) 점이 있는 삼각형의 삼각형을 찾는 데 사용되는 클래스의 추상 기본 클래스입니다.

TriFinder에서 파생된 클래스의 개체를 인스턴스화하는 대신 일반적으로 함수를 사용하는 것이 좋습니다 Triangulation.get_trifinder.

파생 클래스는 __call__(x, y)를 구현합니다. 여기서 x와 y는 동일한 모양의 배열과 같은 점 좌표입니다.

클래스 matplotlib.tri. TrapezoidMapTriFinder ( 삼각 측량 ) [출처] #

베이스:TriFinder

TriFinderM. de Berg, M. van Kreveld, M. Overmars 및 O. Schwarzkopf가 저술한 "Computational Geometry, Algorithms and Applications" 제2판의 사다리꼴 맵 알고리즘을 사용하여 구현된 클래스입니다.

삼각 측량은 유효해야 합니다. 즉, 중복 점, 동일 선상 점에서 형성된 삼각형 또는 겹치는 삼각형이 없어야 합니다. 이 알고리즘은 동일선상의 점에서 형성된 삼각형에 대해 어느 정도 허용 오차가 있지만 이에 의존해서는 안 됩니다.

클래스 matplotlib.tri. TriInterpolator ( triangulation , z , trifinder = None ) [출처] #

삼각형 그리드에서 보간하는 데 사용되는 클래스의 추상 기본 클래스입니다.

파생 클래스는 다음 메서드를 구현합니다.

  • __call__(x, y), 여기서 x, y는 동일한 모양의 배열과 유사한 점 좌표이며 보간된 z 값을 포함하는 동일한 모양의 마스킹된 배열을 반환합니다.

  • gradient(x, y), 여기서 x, y는 같은 모양의 배열과 같은 점 좌표이며 보간기의 파생물 2개(x 및 y에 대해 보간된 z 값의 파생물)를 포함하는 동일한 모양의 마스킹된 배열 2개 목록을 반환합니다.

클래스 matplotlib.tri. LinearTriInterpolator ( triangulation , z , trifinder = None ) [출처] #

베이스:TriInterpolator

삼각형 그리드의 선형 보간기.

각 삼각형은 점 (x, y)에서 보간된 값이 (x, y)를 포함하는 삼각형의 평면에 놓이도록 평면으로 표시됩니다. 따라서 보간된 값은 삼각분할에서 연속적이지만 첫 번째 도함수는 삼각형 사이의 가장자리에서 불연속적입니다.

매개변수 :
삼각측량Triangulation

보간할 삼각분할입니다.

z (npoints,) 배열형

보간할 그리드 점에서 정의된 값의 배열입니다.

트라이파인더 TriFinder, 옵션

지정하지 않으면 Triangulation의 기본 TriFinder가 호출하여 사용됩니다 Triangulation.get_trifinder.

행동 양식

`__call__` (x, y)

((x, y) 지점에서 보간된 값을 반환합니다.)

'기울기'(x, y)

((x, y) 지점에서 보간된 도함수를 반환합니다.)

그래디언트 ( x , y ) [소스] #

지정된 (x, y) 지점에서 보간된 도함수를 포함하는 2개의 마스킹된 배열 목록을 반환합니다.

매개변수 :
x, y 배열과 유사

동일한 모양과 여러 차원의 x 및 y 좌표.

반환 :
dzdx, dzdy np.ma.array

xy 와 동일한 모양의 마스킹된 배열 2개 ; 삼각 분할 외부의 (x, y) 점에 해당하는 값은 가려집니다. 반환된 첫 번째 배열에는 다음 값이 포함됩니다. \(\frac{\partial z}{\partial x}\)그리고 두 번째는 \(\frac{\partial z}{\partial y}\).

클래스 matplotlib.tri. CubicTriInterpolator ( triangulation , z , kind = 'min_E' , trifinder = None , dz = None ) [출처] #

베이스:TriInterpolator

삼각형 그리드의 큐빅 보간기.

1차원에서 - 세그먼트에서 - 3차 보간 함수는 함수의 값과 양 끝의 파생값으로 정의됩니다. 이것은 삼각형 내부의 2D에서 거의 동일합니다. 단, 함수의 값과 2개의 도함수가 각 삼각형 노드에서 정의되어야 합니다.

CubicTriInterpolator는 사용자가 제공한 각 노드에서 함수 값을 가져오고 내부적으로 도함수 값을 계산하여 부드러운 보간을 생성합니다. (특별한 기능으로 사용자는 각 노드에서 파생 상품의 값을 부과할 수도 있지만 일반적인 용도는 아닙니다.)

매개변수 :
삼각측량Triangulation

보간할 삼각분할입니다.

z (npoints,) 배열형

보간할 그리드 점에서 정의된 값의 배열입니다.

종류 {'min_E', 'geom', 'user'}, 선택 사항

보간 도함수를 계산하기 위한 스무딩 알고리즘 선택(기본값은 'min_E'):

  • if 'min_E': (기본값) 굽힘 에너지를 최소화하기 위해 각 절점의 도함수를 계산합니다.

  • if 'geom': 각 노드의 도함수는 관련 삼각형 법선의 가중 평균으로 계산됩니다. 속도 최적화(대형 그리드)에 사용됩니다.

  • if 'user': 사용자가 dz 인수 를 제공하므로 계산이 필요하지 않습니다.

트라이파인더 TriFinder, 옵션

지정하지 않으면 Triangulation의 기본 TriFinder가 호출하여 사용됩니다 Triangulation.get_trifinder.

유사 배열의 dz 튜플(dzdx, dzdy), 선택 사항

종류 = '사용자'인 경우에만 사용됩니다 . 이 경우 dz 는 (dzdx, dzdy)로 제공되어야 합니다. 여기서 dzdx, dzdy는 z 와 동일한 모양의 배열이고 삼각분할 점 에서 보간 1차 도함수 입니다.

메모

이 노트는 3차 보간이 계산되는 방법에 대해 약간 기술적이고 자세히 설명합니다.

보간은 삼각분할 메시의 Clough-Tocher 세분화 체계를 기반으로 합니다(명확하게 하기 위해 그리드의 각 삼각형은 3개의 하위 삼각형으로 나뉘며 각 하위 삼각형에서 보간된 함수는 2의 3차 다항식입니다. 좌표). 이 기술은 FEM(Finite Element Method) 해석에서 비롯됩니다. 사용된 요소는 감소된 HCT(Hsieh-Clough-Tocher) 요소입니다. 형상 함수는 [1] 에 설명되어 있습니다. 조립된 함수는 C1-부드러움이 보장됩니다. 즉, 연속적이고 첫 번째 도함수도 연속적입니다(이는 삼각형 내부에 표시하기 쉽지만 가장자리를 교차할 때도 마찬가지입니다).

기본 경우( 종류 ='min_E')에서 보간자는 부과된 값을 사용하지만 각 노드에서 임의의 도함수를 사용하여 HCT 요소 형상 함수에 의해 생성된 기능 공간의 곡률 에너지를 최소화합니다. 최소화된 기능은 소위 총 곡률의 적분입니다( [2] - PCG 스파스 솔버의 알고리즘을 기반으로 구현).

\[E(z) = \frac{1}{2} \int_{\Omega} \left( \left( \frac{\partial^2{z}}{\partial{x}^2} \right)^2 + \left( \frac{\partial^2{z}}{\partial{y}^2} \right)^2 + 2\left( \frac{\partial^2{z}}{\partial{y}\partial{x}} \right)^2 \right) dx\,dy\]

case kind ='geom'이 사용자에 의해 선택되면 간단한 기하학적 근사법(삼각형 법선 벡터의 가중 평균)이 사용되어 매우 큰 그리드에서 속도를 향상시킬 수 있습니다.

참조

[ 1 ]

Michel Bernadou, Kamal Hassan, "일반 Hsieh-Clough-Tocher 삼각형의 기본 함수, 완전 또는 축소.", 국제 공학 수치 방법 저널, 17(5):784 - 789. 2.01.

[ 2 ]

CT Kelley, "최적화를 위한 반복 방법".

행동 양식

`__call__` (x, y)

((x, y) 지점에서 보간된 값을 반환합니다.)

'기울기'(x, y)

((x, y) 지점에서 보간된 도함수를 반환합니다.)

그래디언트 ( x , y ) [소스] #

지정된 (x, y) 지점에서 보간된 도함수를 포함하는 2개의 마스킹된 배열 목록을 반환합니다.

매개변수 :
x, y 배열과 유사

동일한 모양과 여러 차원의 x 및 y 좌표.

반환 :
dzdx, dzdy np.ma.array

xy 와 동일한 모양의 마스킹된 배열 2개 ; 삼각 분할 외부의 (x, y) 점에 해당하는 값은 가려집니다. 반환된 첫 번째 배열에는 다음 값이 포함됩니다. \(\frac{\partial z}{\partial x}\)그리고 두 번째는 \(\frac{\partial z}{\partial y}\).

클래스 matplotlib.tri. TriRefiner ( 삼각 측량 ) [출처] #

메시 세분화를 구현하는 클래스의 추상 기본 클래스입니다.

TriRefiner는 Triangulation 개체를 캡슐화하고 메쉬 세분화 및 보간을 위한 도구를 제공합니다.

파생 클래스는 다음을 구현해야 합니다.

  • refine_triangulation(return_tri_index=False, **kwargs), 선택적 키워드 인수 kwargs 는 각 TriRefiner 구체적인 구현에서 정의되며 다음을 반환합니다.

    • 정교한 삼각 측량,

    • 선택적으로 ( return_tri_index 에 따라 ) 세련된 삼각분할의 각 점에 대해: 그것이 속한 초기 삼각분할 삼각형의 인덱스.

  • refine_field(z, triinterpolator=None, **kwargs), 어디:

    • 기본 삼각 분할 노드에서 정의된 필드 값의 z 배열(세분화),

    • triinterpolator 는 선택적입니다 TriInterpolator.

    • 다른 선택적 키워드 인수 kwargs 는 각 TriRefiner 구체적인 구현에서 정의됩니다.

    그리고 정제된 삼각형 메시와 정제된 삼각 분할 노드에서 필드의 보간된 값을 (튜플로) 반환합니다.

클래스 matplotlib.tri. UniformTriRefiner ( 삼각측량 ) [출처] #

베이스:TriRefiner

재귀 세분화에 의한 균일한 메쉬 개선.

매개변수 :
삼각측량Triangulation

캡슐화된 삼각분할(세분화 예정)

fine_field ( z , triinterpolator = None , subdiv = 3 ) [소스] #

캡슐화된 삼각분할에 정의된 필드를 구체화합니다.

매개변수 :
z (npoints,) 배열형

캡슐화된 삼각분할의 노드에서 정의된 세분화할 필드의 값입니다. ( n_points는 초기 삼각분할의 포인트 수)

삼중 보간기 TriInterpolator, 선택 사항

필드 보간에 사용되는 보간기. 지정하지 않으면 a CubicTriInterpolator가 사용됩니다.

subdiv int, 기본값: 3

하위 구분의 재귀 수준입니다. 4**subdiv각 삼각형은 하위 삼각형 으로 나뉩니다 .

반환 :
refi_triTriangulation

반환된 정제된 삼각 분할입니다.

refi_z 길이의 1D 배열: refi_tri 노드 수.

반환된 보간된 필드( refi_tri 노드에서).

fine_triangulation ( return_tri_index = False , subdiv = 3 ) [출처] #

캡슐화 된 의 균일하게 정제된 삼각분할 refi_triangulationtriangulation 을 계산합니다 .

이 함수는 각 아버지 삼각형을 모서리 중간 노드에 구축된 4개의 하위 하위 삼각형으로 분할하고 subdiv 시간을 반복하여 캡슐화된 삼각형 분할을 개선합니다. 4**subdiv결국 각 삼각형은 하위 삼각형 으로 나뉩니다 .

매개변수 :
return_tri_index 부울, 기본값: 거짓

각 포인트의 아버지 삼각형 인덱스를 나타내는 인덱스 테이블 반환 여부.

subdiv int, 기본값: 3

하위 구분의 재귀 수준입니다. 4**subdiv각 삼각형은 하위 삼각형 으로 나뉩니다 . 따라서 기본값은 초기 삼각 분할의 각 삼각형에 대해 64개의 정제된 부분 삼각형을 생성합니다.

반환 :
refi_triangulationTriangulation

세련된 삼각 측량.

found_index 정수 배열

refi_triangulation 의 각 점에 대해 삼각형을 포함하는 초기 삼각분할의 인덱스입니다 . return_tri_index 가 True로 설정된 경우에만 반환됩니다 .

클래스 matplotlib.tri. TriAnalyzer ( 삼각 측량 ) [출처] #

삼각형 메시 분석 및 개선을 위한 기본 도구를 정의합니다.

TriAnalyzer는 Triangulation개체를 캡슐화하고 메시 분석 및 메시 개선을 위한 기본 도구를 제공합니다.

매개변수 :
삼각측량Triangulation

분석할 캡슐화된 삼각분할입니다.

속성 :
scale_factors

삼각분할을 단위 제곱으로 재조정하는 요인입니다.

circle_ratios ( rescale = True ) [출처] #

삼각분할 삼각형의 평탄도 측정값을 반환합니다.

외접원 반지름에 대한 내접원 반지름의 비율은 삼각형 평탄도의 널리 사용되는 지표입니다. 항상 정삼각형에만 해당됩니다 . 0.01 미만의 원 비율은 매우 평평한 삼각형을 나타냅니다.<= 0.5== 0.5

2축 사이의 크기 차이로 인해 지나치게 낮은 값을 피하기 위해 삼각형 메쉬는 먼저 단위 사각형 내부에 맞도록 크기를 조정할 수 있습니다 ( 기본값인 크기 조정scale_factors 이 True인 경우에만 ).

매개변수 :
재조정 부울, 기본값: True

scale_factorsTrue인 경우 (마스크 해제된) 삼각형이 단위 사각형 메시 내부에 정확히 맞도록 내부적으로 크기를 조정합니다( 를 기반으로 함 ).

반환 :
마스크 배열

캡슐화된 삼각분할의 각 '재조정' 삼각형에 대한 외접원 반경에 대한 내접원 반경의 비율입니다. 마스킹된 삼각형에 해당하는 값은 마스킹 처리됩니다.

get_flat_tri_mask ( min_circle_ratio = 0.01 , rescale = True ) [출처] #

삼각분할에서 과도하게 편평한 경계 삼각형을 제거합니다.

경계에 위치한 평면 삼각형에서 캡슐화된 삼각형을 정리할 수 있는 마스크 new_maskcircle_ratios() 를 반환합니다(그들의 에 따라 ). 이 마스크는 이후에 를 사용하여 삼각분할에 적용하기 위한 것 Triangulation.set_mask입니다. new_mask 는 초기에 마스킹된 삼각형이 마스킹된 상태로 유지된다는 점에서 초기 삼각 분할 마스크의 확장입니다.

new_mask 배열은 재귀적으로 계산됩니다 . 각 단계에서 편평한 삼각형은 현재 메시 경계와 한 면을 공유하는 경우에만 제거됩니다. 따라서 삼각형 영역에 새로운 구멍이 생성되지 않습니다.

매개변수 :
min_circle_ratio 부동 소수점, 기본값: 0.01

incircle/circumcircle 반지름 비율이 r/R인 경계 삼각형은 r/R < min_circle_ratio 인 경우 제거됩니다 .

재조정 부울, 기본값: True

scale_factorsTrue인 경우 먼저 (마스크되지 않은) 삼각형이 단위 정사각형 메시 내부에 정확히 맞도록 내부적으로 크기를 조정합니다( 를 기반으로 함 ). 이 크기 조정은 두 축 사이에 존재할 수 있는 크기 차이를 설명합니다.

반환 :
부울의 배열

캡슐화된 삼각분할에 적용할 마스크입니다. 처음에 마스킹된 모든 삼각형은 new_mask 에서 마스킹된 상태로 유지 됩니다.

메모

이 함수의 근거는 구조화되지 않은 점 집합의 Delaunay 삼각분할이 때때로 경계에 거의 편평한 삼각형을 포함하여 플롯에 아티팩트가 발생한다는 것입니다(특히 고해상도 등고선의 경우). 계산 된 new_mask 로 마스킹된 캡슐화된 삼각분할은 min_circle_ratio 미만의 원 비율을 가진 마스킹되지 않은 경계 삼각형을 더 이상 포함하지 않으므로 후속 플롯 또는 보간에 대한 메시 품질이 향상됩니다.

속성 scale_factors #

삼각분할을 단위 제곱으로 재조정하는 요인입니다.

반환 :
(플로트, 플로트)

삼각분할 이 단위 사각형 안에 정확히 맞 도록 조정 계수(kx, ky) .[triangulation.x * kx, triangulation.y * ky]