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()
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