如何加快投影转换?
How to speed up projection conversion?
我想投影很多坐标。比如400万个坐标。
首先,我测试了100个坐标。测试结果为13.95秒
经计算,处理400万个坐标需要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
...
我建议看这里: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-examples
两个加速:
1.使用Transformer进行重复变换
2. 直接使用列中的值而不是 apply
我想投影很多坐标。比如400万个坐标。
首先,我测试了100个坐标。测试结果为13.95秒
经计算,处理400万个坐标需要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
...
我建议看这里: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-examples
两个加速:
1.使用Transformer进行重复变换
2. 直接使用列中的值而不是 apply