WGS-84与SK-42(EPSG:4284)坐标转换结果偏差问题求助
WGS-84与SK-42(度单位)坐标转换结果差异问题
我目前拥有一套经测试可正常运行的Python代码,能实现WGS-84与SK-42(米单位)坐标参考系统(CRS)间的双向转换。
为验证转换准确性,我使用公开参考资源进行对比,以下EPSG代码对应的WGS-84 ↔ SK-42(米单位)转换结果符合预期:
- WGS-84:EPSG: 4326
- SK-42(米单位):EPSG: 28405、28406、28407(适用于乌克兰区域)
但当使用GDAL或PYPROJ库实现WGS-84与SK-42(度单位)的双向转换时,对应以下EPSG代码的转换结果与参考源存在显著差异:
- WGS-84:EPSG:4326
- SK-42(度单位):EPSG:4284
我怀疑问题出在EPSG:4284的使用上,但缺乏相关专业知识,特此附上测试代码及对比结果,寻求解决思路。
测试代码
import pandas as pd dataset_file = './dataset.xlsx' dataset_sheet = 'WGS84' dataset = pd.read_excel(dataset_file, sheet_name=dataset_sheet) sk42_code = 4284 # Pulkovo 42 wgs84_code = 4326 # WGS-84 #### CONVERSION WITH HELP OF PYPROJ from pyproj import Transformer transformer = Transformer.from_crs(wgs84_code, sk42_code) res_pyproj = [transformer.transform(row.lon_WGS84, row.lat_WGS84) \ for _, row in dataset.iterrows()] res_pyproj = pd.DataFrame(res_pyproj, columns=['lon_SK42', 'lat_SK42'])
转换结果对比
各列含义:
- lon_WGS84、lat_WGS84:原始WGS-84数据
- lon_SK42、lat_SK42:上述代码的转换结果
- lon_SK42_ref、lat_SK42_ref:参考服务的转换结果
| lon_WGS84 | lat_WGS84 | lon_SK42 | lat_SK42 | lon_SK42_ref | lat_SK42_ref |
|---|---|---|---|---|---|
| 25.8232848 | 51.03326526 | 25.823596 | 51.034175 | 25.825070 | 51.033507 |
| 27.4579144 | 49.33958293 | 27.458209 | 49.340538 | 27.459615 | 49.339819 |
| 29.3043218 | 48.36326457 | 29.304591 | 48.364257 | 29.305968 | 48.363484 |
| 30.8545936 | 47.00415198 | 30.854848 | 47.005186 | 30.856175 | 47.004366 |
| 33.8384791 | 45.31391731 | 33.838698 | 45.315022 | 33.839972 | 45.314109 |
| 36.091232 | 46.81432679 | 36.091392 | 46.815448 | 36.092745 | 46.814460 |
| 38.4155919 | 47.77286782 | 38.415697 | 47.774017 | 38.417105 | 47.772949 |
| 39.9401312 | 49.40683228 | 39.940163 | 49.407962 | 39.941680 | 49.406862 |
内容的提问来源于stack exchange,提问作者Olegh Bondarenko
相关产品推荐
相关产品推荐

