Geopandas中GeoSeries的.area属性返回值的单位是什么?
GeoPandas .area属性单位问题解答
报错问题修复
- 你看到的2015年的旧教程写法
print df.crs['units']仅适用于GeoPandas 0.7及更早版本,后续版本的CRS对象基于pyproj实现,不再支持字典式下标访问,可使用如下代码查询当前坐标系的长度单位:
print(df.crs.axis_info[0].unit_name)
- 尝试调用
gp['area'].unit触发属性错误是正常现象:通过.area计算得到的结果是普通的浮点型Series,本身没有内置单位属性。
单位规则说明
- .area属性返回的面积没有全局默认单位,完全由当前GeoSeries绑定的坐标系(CRS)决定:
- 如果当前坐标系为投影坐标系(如UTM、国家2000平面坐标系等),长度单位通常为米,对应的面积单位为平方米
- 如果当前坐标系为地理坐标系(如WGS84/EPSG:4326),长度单位为度,对应的面积单位为平方度,该数值无实际物理参考意义,需先将数据转换到对应区域的投影坐标系后再计算面积才可得到可用结果
- 导入空间文件时,GeoPandas会默认读取文件内置的坐标系信息,因此面积单位确实和导入的空间文件自带的坐标系参数直接相关。
内容的提问来源于stack exchange,提问作者user12379114
相关产品推荐
相关产品推荐

