Я пытаюсь обрезать очень большую блочную модель (файл 5,8 ГБ CSV), содержащий координаты Centroid X, Y и Z с Высота Растро. Я пытаюсь получить только блоки, лежащие чуть выше растрового слоя. Значения в точки модели блока. Для больших наборов данных это занимает необычное количество времени (да, это технический термин) в ArcGIS.
Как я хочу его решить < Br /> Я хочу ускорить это, импортируя CSV в Python. Используя Dask, это быстро и просто: < /p>
Код: Выделить всё
import dask
from dask import dataframe as dd
BM = dd.read_csv(BM_path, skiprows=2,names=["X","Y","Z","Lith"])
< /code>
Но создание GeoDataFrame с использованием геопанд не является быстрым процессом. Я думал, что ускорение его с помощью следующего многопроцессорного кода может работать: < /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>
Тем не менее, я на час ожидания, пока это не будет обработать без конца. сразу в следующем коде, но поймите, что есть некоторые синтаксические ошибки, которые я не знаю, как исправить, особенно с прохождением "Geometry =" to args =: < /p>
pool = mp.Pool(mp.cpu_count())
results = pool.apply(gpd.GeoDataFrame, args=(BM,geometry=(BM.X,BM.Y,BM.Z)))
pool.close()
Подробнее здесь: https://stackoverflow.com/questions/716 ... -dataframe