如何将带有多边形坐标列的.csv文件导入地理数据框?

时间:2018-12-13 11:37:31

标签: python python-3.x pandas geopandas

我有一个csv文件,其中包含一列,列中包含一系列多边形的坐标。

例如:

  patch_ID  geometry                                                 flow   hab_area    Total   Portion of Flow     flow_area   Dispersal   mean_flow
1   156     POLYGON ((369000.0000019073 548000.0000019073,...   1.620000e-12    3874.00     3.740000e-11    4.328570    4.180000e-16    d4  3.081707
3   65      POLYGON ((362000.0000019073 560000.0000019073,...   1.010000e-12    404.25      3.740000e-11    2.709681    2.510000e-15    d4  1.447226
4   170     POLYGON ((383000.0000019073 520000.0000019073,...   8.770000e-13    5397.25     3.740000e-11    2.342323    1.620000e-16    d4  3.270493
6   179     POLYGON ((390000.0000019073 484000.0000019073,...   7.350000e-13    12341.50    3.740000e-11    1.963216    5.960000e-17    d4  3.796241
10  162     POLYGON ((385000.0000019073 541000.0000019073,...   3.530000e-13    1546.75     3.740000e-11    0.943354    2.280000e-16    d4  1.139087

我已使用pd.read_csv()将其导入为熊猫数据框,现在如何将其转换为具有Geopandas的地理数据框,以使“几何”列为多边形的几何?当我尝试时:

df1 = gdp.GeoDataFrame(df, geometry = 'geometry')

我收到一个错误:输入几何列必须包含有效的几何对象。

然后,当我尝试使用一些发现here的代码来检查几何的有效性时

for index, row in blbog_unpro.iterrows():
geom = row['geometry']
if len(geom.coords) <= 2:
      print("This row has an invalid polygon geometry")

我遇到另一个错误:“ str”对象没有属性“ coords”

我很困惑。

1 个答案:

答案 0 :(得分:1)

正如DatHydroGuy所提到的,诀窍是使用熟知文本(WKT)格式。以下代码对问题进行了排序:

@proxy
class A {
  noSuchMethod(_) => 'Hello';
}

main() {
  // Static analysis error, will refuse to build.
  print(new A().sayHello());
}

谢谢DatHydroGuy