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)의 정수 배열을 반환합니다.
각 행은 시작점 색인과 끝점 색인으로 에지를 정의합니다. 각 에지는 한 번만 나타납니다. 즉, 포인트 i 와 j 사이의 에지 에는 (i, j) 또는 (j, i) 만 있습니다.
- static get_from_args_and_kwargs ( * args , ** kwargs ) [소스] #
args 및 kwargs와 소비된 값이 제거된 나머지 args 및 kwargs에서 Triangulation 객체를 반환합니다.
두 가지 대안이 있습니다. 첫 번째 인수가 Triangulation 객체인 경우 반환되거나 args 및 kwargs가 반환할 새 삼각 분할을 생성하기에 충분합니다. 후자의 경우 가능한 args 및 kwargs에 대해서는 Triangulation.__init__을 참조하십시오.
- get_trifinder ( ) [출처] #
matplotlib.tri.TriFinder
필요한 경우 생성하여 이 삼각분할 의 기본값을 반환합니다 . 이를 통해 동일한 TriFinder 개체를 쉽게 공유할 수 있습니다.
- 부동산 이웃 #
이웃 삼각형을 포함하는 모양(ntri, 3)의 정수 배열을 반환합니다.
각 삼각형에 대해 동일한 가장자리를 공유하는 세 삼각형의 인덱스 또는 이러한 이웃 삼각형이 없는 경우 -1입니다. 는 점 인덱스에서 점 인덱스 까지 가장자리에 이웃하는 삼각형입니다 .
neighbors[i, j]
triangles[i, j]
triangles[i, (j+1)%3]
- 클래스 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
TriFinder
M. 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
x 및 y 와 동일한 모양의 마스킹된 배열 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
x 및 y 와 동일한 모양의 마스킹된 배열 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_tri
Triangulation
반환된 정제된 삼각 분할입니다.
- refi_z 길이의 1D 배열: refi_tri 노드 수.
반환된 보간된 필드( refi_tri 노드에서).
- refi_tri
- fine_triangulation ( return_tri_index = False , subdiv = 3 ) [출처] #
캡슐화 된 의 균일하게 정제된 삼각분할 refi_triangulation
triangulation
을 계산합니다 .이 함수는 각 아버지 삼각형을 모서리 중간 노드에 구축된 4개의 하위 하위 삼각형으로 분할하고 subdiv 시간을 반복하여 캡슐화된 삼각형 분할을 개선합니다.
4**subdiv
결국 각 삼각형은 하위 삼각형 으로 나뉩니다 .- 매개변수 :
- return_tri_index 부울, 기본값: 거짓
각 포인트의 아버지 삼각형 인덱스를 나타내는 인덱스 테이블 반환 여부.
- subdiv int, 기본값: 3
하위 구분의 재귀 수준입니다.
4**subdiv
각 삼각형은 하위 삼각형 으로 나뉩니다 . 따라서 기본값은 초기 삼각 분할의 각 삼각형에 대해 64개의 정제된 부분 삼각형을 생성합니다.
- 반환 :
- refi_triangulation
Triangulation
세련된 삼각 측량.
- found_index 정수 배열
refi_triangulation 의 각 점에 대해 삼각형을 포함하는 초기 삼각분할의 인덱스입니다 . return_tri_index 가 True로 설정된 경우에만 반환됩니다 .
- refi_triangulation
- 클래스 matplotlib.tri. TriAnalyzer ( 삼각 측량 ) [출처] #
삼각형 메시 분석 및 개선을 위한 기본 도구를 정의합니다.
TriAnalyzer는
Triangulation
개체를 캡슐화하고 메시 분석 및 메시 개선을 위한 기본 도구를 제공합니다.- 매개변수 :
- 삼각측량
Triangulation
분석할 캡슐화된 삼각분할입니다.
- 삼각측량
- 속성 :
scale_factors
삼각분할을 단위 제곱으로 재조정하는 요인입니다.
- circle_ratios ( rescale = True ) [출처] #
삼각분할 삼각형의 평탄도 측정값을 반환합니다.
외접원 반지름에 대한 내접원 반지름의 비율은 삼각형 평탄도의 널리 사용되는 지표입니다. 항상 정삼각형에만 해당됩니다 . 0.01 미만의 원 비율은 매우 평평한 삼각형을 나타냅니다.
<= 0.5
== 0.5
2축 사이의 크기 차이로 인해 지나치게 낮은 값을 피하기 위해 삼각형 메쉬는 먼저 단위 사각형 내부에 맞도록 크기를 조정할 수 있습니다 ( 기본값인 크기 조정
scale_factors
이 True인 경우에만 ).- 매개변수 :
- 재조정 부울, 기본값: True
scale_factors
True인 경우 (마스크 해제된) 삼각형이 단위 사각형 메시 내부에 정확히 맞도록 내부적으로 크기를 조정합니다( 를 기반으로 함 ).
- 반환 :
- 마스크 배열
캡슐화된 삼각분할의 각 '재조정' 삼각형에 대한 외접원 반경에 대한 내접원 반경의 비율입니다. 마스킹된 삼각형에 해당하는 값은 마스킹 처리됩니다.
- get_flat_tri_mask ( min_circle_ratio = 0.01 , rescale = True ) [출처] #
삼각분할에서 과도하게 편평한 경계 삼각형을 제거합니다.
경계에 위치한 평면 삼각형에서 캡슐화된 삼각형을 정리할 수 있는 마스크 new_mask
circle_ratios()
를 반환합니다(그들의 에 따라 ). 이 마스크는 이후에 를 사용하여 삼각분할에 적용하기 위한 것Triangulation.set_mask
입니다. new_mask 는 초기에 마스킹된 삼각형이 마스킹된 상태로 유지된다는 점에서 초기 삼각 분할 마스크의 확장입니다.new_mask 배열은 재귀적으로 계산됩니다 . 각 단계에서 편평한 삼각형은 현재 메시 경계와 한 면을 공유하는 경우에만 제거됩니다. 따라서 삼각형 영역에 새로운 구멍이 생성되지 않습니다.
- 매개변수 :
- min_circle_ratio 부동 소수점, 기본값: 0.01
incircle/circumcircle 반지름 비율이 r/R인 경계 삼각형은 r/R < min_circle_ratio 인 경우 제거됩니다 .
- 재조정 부울, 기본값: True
scale_factors
True인 경우 먼저 (마스크되지 않은) 삼각형이 단위 정사각형 메시 내부에 정확히 맞도록 내부적으로 크기를 조정합니다( 를 기반으로 함 ). 이 크기 조정은 두 축 사이에 존재할 수 있는 크기 차이를 설명합니다.
- 반환 :
- 부울의 배열
캡슐화된 삼각분할에 적용할 마스크입니다. 처음에 마스킹된 모든 삼각형은 new_mask 에서 마스킹된 상태로 유지 됩니다.
메모
이 함수의 근거는 구조화되지 않은 점 집합의 Delaunay 삼각분할이 때때로 경계에 거의 편평한 삼각형을 포함하여 플롯에 아티팩트가 발생한다는 것입니다(특히 고해상도 등고선의 경우). 계산 된 new_mask 로 마스킹된 캡슐화된 삼각분할은 min_circle_ratio 미만의 원 비율을 가진 마스킹되지 않은 경계 삼각형을 더 이상 포함하지 않으므로 후속 플롯 또는 보간에 대한 메시 품질이 향상됩니다.
- 속성 scale_factors #
삼각분할을 단위 제곱으로 재조정하는 요인입니다.
- 반환 :
- (플로트, 플로트)
삼각분할 이 단위 사각형 안에 정확히 맞 도록 조정 계수(kx, ky) .
[triangulation.x * kx, triangulation.y * ky]