【发布时间】:2021-11-11 23:07:11
【问题描述】:
我正在使用 geopandas,我正在尝试获取我上传的 shapefile 的区域,但我不确定 .area 属性结果的测量单位是什么。这是我的代码:
water = gp.read_file("/Users/user/Downloads/tlgdb_2020_a_us_areawater.gdb")
lakeSup = water.loc[water['FULLNAME'].str.contains('Lk Superior', na=False)]
lakeSup = lakeSup.to_crs(epsg=4269)
lakeSup['area'] = lakeSup.area
print(lakeSup.head(10))
哪些输出
ANSICODE ... area
233938 None ... 0.000821
629973 None ... 0.215539
629974 None ... 0.043184
629975 None ... 0.358674
629976 None ... 0.533665
629977 None ... 0.035854
629978 None ... 0.054233
629979 None ... 0.737469
629980 None ... 0.101494
629981 None ... 0.035499
根据geopandas' docs,.area 属性“返回一个系列,其中包含以 CRS 单位表示的 GeoSeries 中每个几何图形的面积。”我很困惑这意味着什么,以及如何使用这些信息来简单地为我的 shapefile 的几何形状(例如米 ^ 2)获取定义的区域。谢谢!
【问题讨论】:
-
运行
water.crs会得到什么? -
您选择的 CRS 是 epsg.io/4269,这意味着坐标将以度数表示,并且为了准确起见,应该在北美。因此,您的区域将以 km^2 为单位。如果你想要 m^2 则除 bu 10**6