亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Fiona 訪問 shapefile 中多個多邊形的坐標

Fiona 訪問 shapefile 中多個多邊形的坐標

青春有我 2022-12-14 20:50:12
我正在處理一個包含 4 個多邊形的 shapefile,我需要在其中提取它們在元組或 numpy 數組中的坐標以供以后操作。雖然 fiona 識別了 4 個多邊形,但使用 shapely 獲取面積只會給我第一個多邊形的值。我想為所有多邊形選擇xy坐標并將它們分別放入數組和元組中進行處理。任何幫助,將不勝感激。import fionaimport pprintfrom shapely.geometry import shape, Polygonc = fiona.open("myShapeFile.shp", 'r')pprint.pprint(len(c))poly = Polygon(next(iter(c))["geometry"]["coordinates"][:])print('Area  :: ',poly.area)執行給了我以下內容:4地區:: 483.6379565269977
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

嘗試這個:


import fiona

import numpy as np


c = fiona.open('myShapeFile.shp')

coords = [np.array(poly['geometry']['coordinates'])

          for poly in c.values()]

coords是一個 4 項列表,其中包含根據 shapefile 中的多邊形坐標構建的 numpy 數組:


[array([[ 3.67739738e+05,  6.35697708e+06, -1.50000000e+03],

       [ 3.67709140e+05,  6.35875947e+06, -1.50000000e+03],

       [ 3.55633222e+05,  6.35932405e+06, -1.50000000e+03],

       [ 3.55340980e+05,  6.35724482e+06, -1.50000000e+03],

       [ 3.54012992e+05,  6.35713924e+06, -1.50000000e+03],

       [ 3.53169984e+05,  6.33306237e+06, -1.50000000e+03],

       [ 3.72936914e+05,  6.33219322e+06, -1.50000000e+03],

       [ 3.73638262e+05,  6.34799928e+06, -1.50000000e+03],

       [ 3.70536492e+05,  6.34865912e+06, -1.50000000e+03],

       [ 3.71030683e+05,  6.35672004e+06, -1.50000000e+03],

       [ 3.67739738e+05,  6.35697708e+06, -1.50000000e+03]]),

 array([[ 3.60619254e+05,  6.35486104e+06, -1.50000000e+03],

       [ 3.61702258e+05,  6.35460318e+06, -1.50000000e+03],

       [ 3.62578977e+05,  6.35362332e+06, -1.50000000e+03],

       [ 3.61805402e+05,  6.35192145e+06, -1.50000000e+03],

       [ 3.60412965e+05,  6.35114787e+06, -1.50000000e+03],

       [ 3.59072102e+05,  6.35171516e+06, -1.50000000e+03],

       [ 3.59020527e+05,  6.35279817e+06, -1.50000000e+03],

       [ 3.60309824e+05,  6.35295288e+06, -1.50000000e+03],

       [ 3.60000391e+05,  6.35408746e+06, -1.50000000e+03],

       [ 3.60619254e+05,  6.35486104e+06, -1.50000000e+03]]),

 array([[ 3.59072102e+05,  6.34439198e+06, -1.50000000e+03],

       [ 3.60928684e+05,  6.34537184e+06, -1.50000000e+03],

       [ 3.62424262e+05,  6.34480455e+06, -1.50000000e+03],

       [ 3.63868270e+05,  6.34361841e+06, -1.50000000e+03],

       [ 3.63146266e+05,  6.34155554e+06, -1.50000000e+03],

       [ 3.61341258e+05,  6.34036939e+06, -1.50000000e+03],

       [ 3.60258250e+05,  6.34109139e+06, -1.50000000e+03],

       [ 3.61650688e+05,  6.34227754e+06, -1.50000000e+03],

       [ 3.61289688e+05,  6.34356684e+06, -1.50000000e+03],

       [ 3.59897250e+05,  6.34294798e+06, -1.50000000e+03],

       [ 3.57989094e+05,  6.34346370e+06, -1.50000000e+03],

       [ 3.59072102e+05,  6.34439198e+06, -1.50000000e+03]]),

 array([[ 3.69489590e+05,  6.34294798e+06, -1.50000000e+03],

       [ 3.71397742e+05,  6.34103982e+06, -1.50000000e+03],

       [ 3.69438016e+05,  6.33928638e+06, -1.50000000e+03],

       [ 3.67581438e+05,  6.34052411e+06, -1.50000000e+03],

       [ 3.67787723e+05,  6.34222597e+06, -1.50000000e+03],

       [ 3.69489590e+05,  6.34294798e+06, -1.50000000e+03]])]


查看完整回答
反對 回復 2022-12-14
  • 1 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號