pypsbuilder 2.6.2__tar.gz → 2.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/CHANGELOG.md +4 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/PKG-INFO +6 -1
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/README.md +5 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/__init__.py +1 -1
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/psexplorer.py +102 -85
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.github/dependabot.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.github/workflows/release.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.github/workflows/testing.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.github/workflows/testrelease.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.gitignore +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.pre-commit-config.yaml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/.readthedocs.yaml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/AUTHORS.md +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/CONTRIBUTING.md +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/LICENSE +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/codecov.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/_static/theme_overrides.css +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.Dogmin.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.InvPoint.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.PTsection.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.PXsection.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.TCResult.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.TCResultSet.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.TXsection.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psclasses.UniLine.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psexplorer.PTPS.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psexplorer.PXPS.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.psexplorer.TXPS.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.tcapi.TC34API.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api/pypsbuilder.tcapi.TC35API.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/api.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/authors.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/command-line.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/conf.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/create_environment.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/crossing.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/delta.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/install_locally.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/invsearch.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/isopleths_1.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/isopleths_2.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/modes.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_areas.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_dogmin.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_finished.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_highlight.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_init.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_inv.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_modes.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psbuilder_uni.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psiso_alm.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psiso_labelkey.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psiso_mode.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psiso_other.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/psshow_out.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/ptpath.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/show_data.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/show_grid.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/show_label.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/show_out.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/show_plain.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/images/status.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/index.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/psbuilders-tutorial.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/psexplorer-tutorial.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/docs/readme.rst +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/environment.yml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite/tc-avgpelite.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite/tc-ds62.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite/tc-mp50MnNCKFMASHTO.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite/tc-prefs.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite_34/tc-6axmn.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite_34/tc-avgpelite.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite_34/tc-ds62.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/avgpelite_34/tc-prefs.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv1-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv1-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv2-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv2-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv3-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/inv3-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni1-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni1-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni2-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni2-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni3-ic.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/examples/outputs/uni3-log.txt +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/notebooks/pypsbuilder.ipynb +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pyproject.toml +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/images/ptbuilder.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/images/pxbuilder.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/images/pypsbuilder.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/images/txbuilder.png +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/psbuilders.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/psclasses.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/tcapi.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/tcinit.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/tests/__init__.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/tests/test_pclasses.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/addinv.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/adduni.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/compile_ui.sh +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/ptbuilder.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/pxbuilder.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/txbuilder.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui/uniguess.ui +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_addinv.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_adduni.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_ptbuilder.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_pxbuilder.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_txbuilder.py +0 -0
- {pypsbuilder-2.6.2 → pypsbuilder-2.6.3}/pypsbuilder/ui_uniguess.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pypsbuilder
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.3
|
|
4
4
|
Summary: THERMOCALC front-end for constructing and analyzing PT pseudosections
|
|
5
5
|
Project-URL: Homepage, https://github.com/ondrolexa/pypsbuilder
|
|
6
6
|
Project-URL: Documentation, https://pypsbuilder.readthedocs.io
|
|
@@ -95,6 +95,11 @@ for Windows use Command Prompt or PowerShell:
|
|
|
95
95
|
python -m venv .venv
|
|
96
96
|
.venv\Scripts\activate
|
|
97
97
|
|
|
98
|
+
or, if you will got error *'python' is not recognized as an internal or external command*, try:
|
|
99
|
+
|
|
100
|
+
py -m venv .venv
|
|
101
|
+
.venv\Scripts\activate
|
|
102
|
+
|
|
98
103
|
> [!NOTE]
|
|
99
104
|
> On Microsoft Windows, it may be required to set the execution policy in PowerShell for the user.
|
|
100
105
|
> You can do this by issuing the following PowerShell command:
|
|
@@ -19,6 +19,11 @@ for Windows use Command Prompt or PowerShell:
|
|
|
19
19
|
python -m venv .venv
|
|
20
20
|
.venv\Scripts\activate
|
|
21
21
|
|
|
22
|
+
or, if you will got error *'python' is not recognized as an internal or external command*, try:
|
|
23
|
+
|
|
24
|
+
py -m venv .venv
|
|
25
|
+
.venv\Scripts\activate
|
|
26
|
+
|
|
22
27
|
> [!NOTE]
|
|
23
28
|
> On Microsoft Windows, it may be required to set the execution policy in PowerShell for the user.
|
|
24
29
|
> You can do this by issuing the following PowerShell command:
|
|
@@ -700,13 +700,18 @@ class PS:
|
|
|
700
700
|
show = False
|
|
701
701
|
ax = fig.add_subplot()
|
|
702
702
|
for k, shape in self.shapes.items():
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
703
|
+
if shape.geom_type == "MultiPolygon":
|
|
704
|
+
shapelist = list(shape.geoms)
|
|
705
|
+
else:
|
|
706
|
+
shapelist = [shape]
|
|
707
|
+
for shape in shapelist:
|
|
708
|
+
patch = PolygonPatch(
|
|
709
|
+
shape, fc=pscmap(norm(self.variance[k])), ec="none"
|
|
710
|
+
)
|
|
711
|
+
ax.add_patch(patch)
|
|
712
|
+
if show_vertices:
|
|
713
|
+
x, y = zip(*patch.get_path().vertices)
|
|
714
|
+
ax.plot(x, y, "k.", ms=3)
|
|
710
715
|
ax.autoscale_view()
|
|
711
716
|
self.add_overlay(ax, label=label, skiplabels=skiplabels, fontsize=labelfs)
|
|
712
717
|
if out:
|
|
@@ -831,27 +836,42 @@ class PS:
|
|
|
831
836
|
def add_overlay(self, ax, fc="none", ec="k", label=False, skiplabels=0, fontsize=6):
|
|
832
837
|
area = (self.xrange[1] - self.xrange[0]) * (self.yrange[1] - self.yrange[0])
|
|
833
838
|
for k, shape in self.shapes.items():
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
if
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
for
|
|
847
|
-
|
|
848
|
-
|
|
839
|
+
if shape.geom_type == "MultiPolygon":
|
|
840
|
+
shapelist = list(shape.geoms)
|
|
841
|
+
else:
|
|
842
|
+
shapelist = [shape]
|
|
843
|
+
for shape in shapelist:
|
|
844
|
+
ax.add_patch(PolygonPatch(shape, ec=ec, fc=fc, lw=0.5))
|
|
845
|
+
if label and (100 * shape.area / area > skiplabels):
|
|
846
|
+
# multiline for long labels
|
|
847
|
+
tl = sorted(list(k.difference(self.tc.excess)))
|
|
848
|
+
extra = self.tc.excess.difference(self.tc.excess.intersection(k))
|
|
849
|
+
# if excess in scriptfile is not accurate
|
|
850
|
+
if extra:
|
|
851
|
+
tl += ["-{}".format(pp) for pp in extra]
|
|
852
|
+
wp = len(tl) // 4 + int(len(tl) % 4 > 1)
|
|
853
|
+
txt = "\n".join(
|
|
854
|
+
[
|
|
855
|
+
" ".join([self.abbr.get(sa, sa) for sa in s])
|
|
856
|
+
for s in [
|
|
857
|
+
tl[i * len(tl) // wp : (i + 1) * len(tl) // wp]
|
|
858
|
+
for i in range(wp)
|
|
859
|
+
]
|
|
849
860
|
]
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
861
|
+
)
|
|
862
|
+
if shape.geom_type == "MultiPolygon":
|
|
863
|
+
for part in shape:
|
|
864
|
+
xy = part.representative_point().coords[0]
|
|
865
|
+
ax.annotate(
|
|
866
|
+
text=txt,
|
|
867
|
+
xy=xy,
|
|
868
|
+
weight="bold",
|
|
869
|
+
fontsize=fontsize,
|
|
870
|
+
ha="center",
|
|
871
|
+
va="center",
|
|
872
|
+
)
|
|
873
|
+
else:
|
|
874
|
+
xy = shape.representative_point().coords[0]
|
|
855
875
|
ax.annotate(
|
|
856
876
|
text=txt,
|
|
857
877
|
xy=xy,
|
|
@@ -860,16 +880,6 @@ class PS:
|
|
|
860
880
|
ha="center",
|
|
861
881
|
va="center",
|
|
862
882
|
)
|
|
863
|
-
else:
|
|
864
|
-
xy = shape.representative_point().coords[0]
|
|
865
|
-
ax.annotate(
|
|
866
|
-
text=txt,
|
|
867
|
-
xy=xy,
|
|
868
|
-
weight="bold",
|
|
869
|
-
fontsize=fontsize,
|
|
870
|
-
ha="center",
|
|
871
|
-
va="center",
|
|
872
|
-
)
|
|
873
883
|
|
|
874
884
|
def show_data(self, key, phase, expr=None, which=7):
|
|
875
885
|
"""Convinient function to show values of expression
|
|
@@ -1556,57 +1566,62 @@ class PS:
|
|
|
1556
1566
|
else:
|
|
1557
1567
|
cntv = 10
|
|
1558
1568
|
# ------------
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
+
if self.shapes[key].geom_type == "MultiPolygon":
|
|
1570
|
+
shapelist = list(self.shapes[key].geoms)
|
|
1571
|
+
else:
|
|
1572
|
+
shapelist = [self.shapes[key]]
|
|
1573
|
+
for shape in shapelist:
|
|
1574
|
+
with warnings.catch_warnings():
|
|
1575
|
+
warnings.filterwarnings("ignore", category=UserWarning)
|
|
1576
|
+
if filled:
|
|
1577
|
+
if colors is not None:
|
|
1578
|
+
cont = ax.contourf(
|
|
1579
|
+
tg, pg, zg, cntv, colors=colors, alpha=alpha
|
|
1569
1580
|
)
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
tg, pg, zg, cntv,
|
|
1581
|
+
if filled_over:
|
|
1582
|
+
contover = ax.contour(
|
|
1583
|
+
tg, pg, zg, cntv, colors=colors
|
|
1584
|
+
)
|
|
1585
|
+
else:
|
|
1586
|
+
cont = ax.contourf(
|
|
1587
|
+
tg, pg, zg, cntv, cmap=cmap, alpha=alpha
|
|
1577
1588
|
)
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1589
|
+
if filled_over:
|
|
1590
|
+
contover = ax.contour(
|
|
1591
|
+
tg, pg, zg, cntv, colors="whitesmoke"
|
|
1592
|
+
)
|
|
1581
1593
|
else:
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1594
|
+
if colors is not None:
|
|
1595
|
+
cont = ax.contour(tg, pg, zg, cntv, colors=colors)
|
|
1596
|
+
else:
|
|
1597
|
+
cont = ax.contour(tg, pg, zg, cntv, cmap=cmap)
|
|
1598
|
+
patch = PolygonPatch(shape, fc="none", ec="none")
|
|
1599
|
+
ax.add_patch(patch)
|
|
1600
|
+
# label if needed
|
|
1601
|
+
if (not filled or filled_over) and key in labelkyes_ok:
|
|
1602
|
+
positions = []
|
|
1603
|
+
contlbl = contover if filled_over else cont
|
|
1604
|
+
for seg in contlbl.get_paths():
|
|
1605
|
+
inside = np.fromiter(
|
|
1606
|
+
map(
|
|
1607
|
+
shape.contains,
|
|
1608
|
+
MultiPoint(seg.vertices).geoms,
|
|
1609
|
+
),
|
|
1610
|
+
dtype=bool,
|
|
1611
|
+
)
|
|
1612
|
+
if np.any(inside):
|
|
1613
|
+
positions.append(seg.vertices[inside].mean(axis=0))
|
|
1614
|
+
ax.clabel(
|
|
1615
|
+
contlbl,
|
|
1616
|
+
fontsize=9,
|
|
1617
|
+
manual=positions,
|
|
1618
|
+
fmt="%g",
|
|
1619
|
+
inline_spacing=3,
|
|
1620
|
+
inline=not nosplit,
|
|
1596
1621
|
)
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
contlbl,
|
|
1601
|
-
fontsize=9,
|
|
1602
|
-
manual=positions,
|
|
1603
|
-
fmt="%g",
|
|
1604
|
-
inline_spacing=3,
|
|
1605
|
-
inline=not nosplit,
|
|
1606
|
-
)
|
|
1607
|
-
cont.set_clip_path(patch)
|
|
1608
|
-
if filled and filled_over:
|
|
1609
|
-
contover.set_clip_path(patch)
|
|
1622
|
+
cont.set_clip_path(patch)
|
|
1623
|
+
if filled and filled_over:
|
|
1624
|
+
contover.set_clip_path(patch)
|
|
1610
1625
|
|
|
1611
1626
|
if only is None:
|
|
1612
1627
|
self.add_overlay(ax)
|
|
@@ -2720,7 +2735,9 @@ class PTPS(PS):
|
|
|
2720
2735
|
)
|
|
2721
2736
|
plt.show()
|
|
2722
2737
|
|
|
2723
|
-
def pointcalc(
|
|
2738
|
+
def pointcalc(
|
|
2739
|
+
self, t=None, p=None, label=False, skiplabels=0, labelfs=6, show_output=False
|
|
2740
|
+
):
|
|
2724
2741
|
if t is None or p is None:
|
|
2725
2742
|
fig, ax = plt.subplots()
|
|
2726
2743
|
ax.autoscale_view()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|