首页软件基础教程GeoPandas【GeoPandas空间数...

【GeoPandas空间数据分析】11.坐标系管理


本系列文章是根据GeoPandas官方文档翻译整理,学习任何一个Python第三方库,其官方文档都是最好的学习资料。相比网络搜索得到的一些资料,官方文档是权威的一手资料,其内容全面、准确可靠。通过官方文档入手,能够保证学习认知不会有大偏差。在学习完官方文档后,可以在寻找其他资料进一步学习。

点击“阅读原文”或者直接访问下方链接,查看翻译整理的“GeoPandas 0.12.2 中文文档”。

https://www.mizhushare.com/docs
本系列文章配套代码获取有以下两种途径:
  • 可以通过百度网盘获取,需要在本地配置代码运行环境:
链接:https://pan.baidu.com/s/185Qs6RpVhyP2nm9VV39Ehw?pwd=mnsj 提取码:mnsj
  • 前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/geopandas





01

坐标参考系


GeoPandas 0.7 开始,坐标信息不再是 proj4 字符串,而是将坐标信息存储为 pyproj.CRS,采用EPSG (European Petroleum Survey Group)编码,

EPSG编码,使用4或5位数字编码来唯一确定已存在的一种CRS,ArcGIS中也可以看到此种坐标描述方式。

可以从 https://spatialreference.org/ref/epsg/ 查找已知的EPSGCRS的对应关系。

同一个 CRS 通常可以有多种引用方式。例如,最常用的 CRS 之一是 WGS84 经纬度投影。这可以使用权限代码“EPSG:4326”来表示。

以下是一些常见的坐标参考系及其 EPSG 代码:

  • WGS84 Latitude/Longitude(地理坐标系): "EPSG:4326"

  • WGS84 Pseudo-Mercator(投影坐标系):"EPSG:3857"

  • UTM Zones (North):"EPSG:32633"

  • UTM Zones (South): "EPSG:32733"

可以通过crs属性,查看坐标参考系的信息:
 1>>> china = gpd.read_file('./datasets/china/china_counties.shp')
2
3>>> china.crs
4<Geographic 2D CRS: EPSG:4326>
5Name: WGS 84
6Axis Info [ellipsoidal]:
7- Lat[north]: Geodetic latitude (degree)
8- Lon[east]: Geodetic longitude (degree)
9Area of Use:
10- name: World.
11- bounds: (-180.0, -90.0, 180.0, 90.0)
12Datum: World Geodetic System 1984 ensemble
13- Ellipsoid: WGS 84
14- Prime Meridian: Greenwich
通过绘制的地图也可以看出该数据坐标系为地理坐标系(坐标轴为经纬度):

02

设置投影


当出于某种原因 geopandas 具有坐标数据(x-y 值)但没有关于这些坐标如何指向现实世界中的位置的信息时,可能需要设置投影。设置投影是告诉 geopandas 如何解释坐标的方式。如果未设置 CRSgeopandas 几何操作仍然有效,但坐标转换将无法进行,导出的文件可能无法被其他软件正确解释。

通过set_crs()方法为不包含投影的数据设置投影信息。

 1>>> china_no_rojection = gpd.read_file('./datasets/china/china_counties_no_rojection.shp')
2
3>>> print(china_no_rojection.crs)
4None
5
6# 设置投影,以下两种方式均可
7# china_re = china_no_rojection.set_crs(epsg=4326)
8>>> china_re = china_no_rojection.set_crs("EPSG:4326")
9
10>>> china_re.crs
11<Geographic 2CRS: EPSG:4326>
12Name: WGS 84
13Axis Info [ellipsoidal]:
14- Lat[north]: Geodetic latitude (degree)
15- Lon[east]: Geodetic longitude (degree)
16Area of Use:
17name: World.
18bounds: (-180.0, -90.0180.090.0)
19Datum: World Geodetic System 1984 ensemble
20Ellipsoid: WGS 84
21- Prime Meridian: Greenwich


03

重投影


重投影是将位置表示从一个坐标系更改为另一个坐标系的过程,可以使用 to_crs() 命令重新投影数据:

 1# 查看数据的坐标信息
2>>> china.crs
3
4# 转换坐标参考系
5>>> china_re = china.to_crs(epsg=3857)
6
7>>> china_re.crs
8
9# 绘图
10>>> ax = china_re.plot()
11>>> ax.set_title("EPSG:3857")

结果如下所示,可以看到已经转换到投影坐标系:


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments