Früher habe ich Shapely verwendet, um einen Kreis zu erstellen und ihn auf einem zuvor besiedelten Grundstück zu zeichnen. Das hat früher einwandfrei funktioniert. Vor kurzem erhalte ich einen Indexfehler. Ich habe meinen Code selbst auf die einfachsten Operationen reduziert und er kann nicht einmal die einfachsten Kreise ausführen.
import descartes
import shapely.geometry as sg
import matplotlib.pyplot as plt
circle = sg.Point((0,0)).buffer(1)
# Plot the cricle
fig = plt.figure()
ax = fig.add_subplot(111)
patch = descartes.PolygonPatch(circle)
ax.add_patch(patch)
plt.show()
Unten ist der Fehler aufgeführt, den ich jetzt erhalte. Ich habe das Gefühl, dass es sich möglicherweise um eine Nichtübereinstimmung einer neuen Version handelt, die hätte passieren können. Ich habe versucht, die letzte bekannte stabile Version zu deinstallieren und neu zu installieren, aber auch das hat nicht geholfen
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[20], line 6
4 fig = plt.figure()
5 ax = fig.add_subplot(111)
----> 6 patch = descartes.PolygonPatch(circle)
7 ax.add_patch(patch)
8 plt.show()
File ~/env/lib/python3.8/site-packages/descartes/patch.py:87, in PolygonPatch(polygon, **kwargs)
73 def PolygonPatch(polygon, **kwargs):
74 """Constructs a matplotlib patch from a geometric object
75
76 The `polygon` may be a Shapely or GeoJSON-like object with or without holes.
(...)
85
86 """
---> 87 return PathPatch(PolygonPath(polygon), **kwargs)
File ~/env/lib/python3.8/site-packages/descartes/patch.py:62, in PolygonPath(polygon)
58 else:
59 raise ValueError(
60 "A polygon or multi-polygon representation is required")
---> 62 vertices = concatenate([
63 concatenate([asarray(t.exterior)[:, :2]] +
64 [asarray(r)[:, :2] for r in t.interiors])
65 for t in polygon])
66 codes = concatenate([
67 concatenate([coding(t.exterior)] +
68 [coding(r) for r in t.interiors]) for t in polygon])
70 return Path(vertices, codes)
File ~/env/lib/python3.8/site-packages/descartes/patch.py:63, in (.0)
58 else:
59 raise ValueError(
60 "A polygon or multi-polygon representation is required")
62 vertices = concatenate([
---> 63 concatenate([asarray(t.exterior)[:, :2]] +
64 [asarray(r)[:, :2] for r in t.interiors])
65 for t in polygon])
66 codes = concatenate([
67 concatenate([coding(t.exterior)] +
68 [coding(r) for r in t.interiors]) for t in polygon])
70 return Path(vertices, codes)
IndexError: too many indices for array: array is 0-dimensional, but 2 were indexed
IndexError – Descartes PolygonPatch mit formschönem ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post