python - 如何加快投影转换?
问题描述
我想投影许多坐标。例如,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))
数据.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
推荐阅读
- php - 使用 iframe 在 Codeigniter 中下载多个图像
- ansible - 仅使用 Ansible 设置和过滤器过滤 Centos 6 | 不使用 ansible-playbook
- azure - AD B2C 中 SPA 应用程序中的刷新令牌过期
- makefile - 根据 zip 文件制作重建目标
- android - Adnroid ViewPager2 包装异步片段子项的内容
- stata - 在Stata中将格式化值添加到绘图标题
- css - 孤儿/寡妇如何工作?
- spring - 如何在spring boot中旋转日志文件
- go - 使用内部私有函数的谷歌云函数
- android - Android Compose:如何在文本视图中使用 HTML 标签