首先需要正确安装geopandas,步骤请参考:https://geoffboeing.com/2014/09/using-geopandas-windows/
话不多说,直接上代码。例子写的是4326转2383,想要别的坐标系的就去代码里提到的网站里找对应编码对应的proj4字符串,替换进去。(长得类似于+proj=tmerc +lat_0=0.....一长串字符 )
我想了一下,之所以需要这样写,而不是直接用epsg=2383的原因是,pyproj里识别不出来2383是什么坐标系,所以只能直接输入这个坐标系的proj4字符串。
import pandas as pd
import numpy as np
import geopandas as gpd
def projTranslate(inputdir):
''' 功能:坐标系4326转2383
输入:原始shp路径
输出:转换后的 shp,可以直接用于绘图
注意:geopandas依赖的pyproj新版本有些问题,网上有人用1.9.6版本的可以转换成功,
但是1.9.6版本的不支持python3.8以上。
解决办法:在to_crs的时候需要去 https://spatialreference.org/ 上找到坐标系对应的 proj4格式的字符串
这样才不会报错。
'''
df=gpd.read_file(inputdir)
df.set_crs(epsg=4326)
df=df.to_crs("+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs ")
return df