Schnellere Methoden zum Erstellen von Geodataframe aus einem Dask- oder Pandas -DatenframePython

Python-Programme
Guest
 Schnellere Methoden zum Erstellen von Geodataframe aus einem Dask- oder Pandas -Datenframe

Post by Guest »

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>

Code: Select all

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post