Problem
Ich versuche, ein sehr großes Blockmodell (5,8 GB CSV -Datei) mit Zentroid -X-, Y- und Z -Koordinaten mit einem zu klemmen Höhenraster. Ich versuche nur die Blöcke zu erhalten, die direkt über der Rasterschicht liegen. Werte zu den Blockmodellpunkten. Für große Datensätze dauert dies eine gottlose Zeit (ja, das ist ein technischer Begriff) in Arcgis. BR /> Ich möchte dies beschleunigen, indem ich den CSV in Python importiere. Mit Dask ist dies schnell und einfach: < /p>
import dask
from dask import dataframe as dd
BM = dd.read_csv(BM_path, skiprows=2,names=["X","Y","Z","Lith"])
< /code>
, aber ein Geodataframe mit Geopandas zu erstellen, ist keinerlei schneller Prozess. Ich dachte, dass das Beschleunigen mit dem folgenden Multiprocessing -Code möglicherweise funktioniert: < /p>
import multiprocessing as mp
from multiprocessing import pool
import geopandas as gpd
pool=mp.Pool(mp.cpu_count())
geometry = pool.apply(gpd.points_from_xy, args=(BM.X,BM.Y,BM.Z))
pool.close()
< /code>
Ich warte jedoch eine Stunde, um dies zu verarbeiten, ohne dass das Ende in Sicht ist. < /p>
Ich habe auch versucht Sofort im folgenden Code, aber stellen Sie fest, dass es einige Syntaxfehler gibt, die ich nicht korrigieren soll, insbesondere wenn "Geometry =" zu args =: < /p>
bestanden wirdpool = mp.Pool(mp.cpu_count())
results = pool.apply(gpd.GeoDataFrame, args=(BM,geometry=(BM.X,BM.Y,BM.Z)))
pool.close()
Ich habe mich gefragt, ob jemand eine bessere Vorstellung davon hatte, wie ich dies beschleunigen und diesen Prozess effizienter machen kann, ob ich parallelisieren kann oder nicht.
[b] Problem [/b] Ich versuche, ein sehr großes Blockmodell (5,8 GB CSV -Datei) mit Zentroid -X-, Y- und Z -Koordinaten mit einem zu klemmen Höhenraster. Ich versuche nur die Blöcke zu erhalten, die direkt über der Rasterschicht liegen. Werte zu den Blockmodellpunkten. Für große Datensätze dauert dies eine gottlose Zeit (ja, das ist ein technischer Begriff) in Arcgis. BR /> Ich möchte dies beschleunigen, indem ich den CSV in Python importiere. Mit Dask ist dies schnell und einfach: < /p> [code]import dask from dask import dataframe as dd
BM = dd.read_csv(BM_path, skiprows=2,names=["X","Y","Z","Lith"]) < /code> , aber ein Geodataframe mit Geopandas zu erstellen, ist keinerlei schneller Prozess. Ich dachte, dass das Beschleunigen mit dem folgenden Multiprocessing -Code möglicherweise funktioniert: < /p> import multiprocessing as mp from multiprocessing import pool import geopandas as gpd
pool=mp.Pool(mp.cpu_count()) geometry = pool.apply(gpd.points_from_xy, args=(BM.X,BM.Y,BM.Z)) pool.close() < /code> Ich warte jedoch eine Stunde, um dies zu verarbeiten, ohne dass das Ende in Sicht ist. < /p> Ich habe auch versucht Sofort im folgenden Code, aber stellen Sie fest, dass es einige Syntaxfehler gibt, die ich nicht korrigieren soll, insbesondere wenn "Geometry =" zu args =: < /p> bestanden wirdpool = mp.Pool(mp.cpu_count()) results = pool.apply(gpd.GeoDataFrame, args=(BM,geometry=(BM.X,BM.Y,BM.Z))) pool.close() [/code] Ich habe mich gefragt, ob jemand eine bessere Vorstellung davon hatte, wie ich dies beschleunigen und diesen Prozess effizienter machen kann, ob ich parallelisieren kann oder nicht.
Ich habe einen GeoDataFrame-Ereignisse, der nur Punktgeometrien enthält, und einen anderen GeoDataFrame-Straßen, der alle LineString-Geometrien enthält. Ich versuche, alle Punkte in Ereignissen am...
Ich möchte einer Spalte einen zufälligen Float (von 0 bis 1) zuweisen, der einen eindeutigen Wert innerhalb eines Pandas -Datenfreame enthält. ; Ich möchte eine neue Spalte mit einem einzigartigen...
Ich lerne Dask, um meine Python-Projekte effizienter und skalierbarer zu machen. Um die Leistung besser zu verstehen, habe ich ein Skript geschrieben, das die Rechenzeit von Pandas und Dask bei der...