Как ускорить преобразование проекции? - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу проецировать много координат. Например, 4 миллиона координат.

Сначала я проверил со 100 координатами. Результат теста составил 13,95 se c.

. В расчете на обработку 4 миллионов координат уходит 155 часов.

Есть ли хороший способ получить результаты как можно быстрее?

import pandas as pd
import pyproj
import time

def projection(points):
    from_proj = pyproj.Proj('EPSG:4326')
    to_proj = pyproj.Proj('EPSG:2448')
    points[0], points[1] = pyproj.transform(from_proj, to_proj, points[1], points[0], always_xy=True)
    return points

data = pd.read_csv('data.txt', header=None, delim_whitespace=True)

start = time.perf_counter()
output = data.apply(projection, axis=1)
end = time.perf_counter()
print('{0} sec.'.format(end - start))

data.txt

34.705185 135.498468
...

1 Ответ

0 голосов
/ 27 апреля 2020

Я бы рекомендовал посмотреть здесь: https://gis.stackexchange.com/questions/334271/converting-large-data-with-lat-and-long-into-x-and-y

https://pyproj4.github.io/pyproj/stable/advanced_examples.html#advanced -примеры

Два ускорения: 1. Используйте Transformer для повторного преобразования 2. Используйте значения из столбцов напрямую вместо apply

...