要將xian80地理坐標(biāo)系轉(zhuǎn)換成投影坐標(biāo)系:
1
2
3
4
5
6
7
|
xian1980 = """ GEOGCS["GCS_Xian_1980", DATUM["Xian_1980", SPHEROID["Xian_1980",6378140.0,298.257]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]]""" prjreference = 'PROJCS["Xian_1980_3_Degree_GK_Zone_37",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]' |
轉(zhuǎn)換后會(huì)報(bào)錯(cuò):
1
2
3
4
5
6
7
8
9
10
11
12
|
latlong = transform.TransformPoint(x,y) File "/usr/lib/python3/dist-packages/osgeo/osr.py" , line 711 , in TransformPoint return _osr.CoordinateTransformation_TransformPoint( self , * args) NotImplementedError: Wrong number or type of arguments for overloaded function 'CoordinateTransformation_TransformPoint' . Possible C / C + + prototypes are: OSRCoordinateTransformationShadow::TransformPoint(double [ 3 ]) OSRCoordinateTransformationShadow::TransformPoint(double [ 3 ],double,double,double) * * 想想之前也沒(méi)發(fā)現(xiàn)過(guò)這個(gè)問(wèn)題呀,最后發(fā)現(xiàn)之前投影坐標(biāo)系: * * 'PROJCS["Xian_1980_3_Degree_GK_Zone_37",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]' * * 不是高斯 - 克呂格投影而是橫軸墨卡托,我想原因可能是gdal庫(kù)里只能支持高斯 - 克呂格投影吧。 * * |
以上這篇解決python gdal投影坐標(biāo)系轉(zhuǎn)換的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/sinat_36811967/article/details/79126529