Voronoizellen geopandas + scipy

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Hinnerk8
User
Beiträge: 5
Registriert: Mittwoch 27. Januar 2021, 18:05

Hallo,
ich möchte gerne auf einer Karte Punkte darstellen und im Anschluss deren Voronoizellen berechnen.
Ich nutze dafür bisher die Bibliothek geopandas und scipy.
Folgender Code liefert mir das im Bild dargestellte Ergebnis:

Code: Alles auswählen

import matplotlib
  import matplotlib.pyplot as plt
  import geopandas as gpd
  import contextily as ctx
  import pandas as pd
  import numpy as np
  from scipy.spatial import Voronoi, voronoi_plot_2d

data_2 = r'F:\Python\Practice_Python\xy.csv'
node_2 = pd.read_csv(data_2, sep=';', usecols= ['x', 'y'])

lon = node_2['x']
lat = node_2['y']

geo_df = gpd.GeoDataFrame(node_2, geometry = gpd.points_from_xy(lon,lat))
array = geo_df[['x', 'y']].to_numpy()

map = gpd.read_file(r'F:\Python\Practice_Python\VG250_GEM.shp')
gap = map.to_crs("EPSG:25832")[(map.GEN == 'Bayreuth')]
vor = Voronoi(array)

fig, ax = plt.subplots(figsize=(15, 15))
gap.plot(ax=ax, color='pink')

cat = voronoi_plot_2d(vor, ax=ax, show_vertices=True, line_colors='black', line_width=2, line_alpha=0.6,    point_size=10)
plt.show()
Bild
https://postimg.cc/Thf8s3dD

Wie man sieht gibt es dabei zwei Probleme:
1. Oben rechts gibt es einen Bereich, wo Zellengrenzen über Punkte laufen (es gibt keinen Zellmittelpunkt).
2. Meine Kartenränder sind aus irgendeinem Grund nach dem Hinzufügen der Voronoizellen abgeschnitten.

Hat jemand eine Idee, woran das liegen könnte und was ich ändern müsste um dieses Problem zu beheben?
Im Internet habe ich ansonsten noch nichts dazu gefunden....
Bin für jede Hilfe/Hinweis sehr dankbar!
Beste Grüße,
Hinnerk8
Antworten