यदि आपके पास अजगर के साथ अनुभव है, तो आप शेपली लाइब्रेरी का उपयोग कर सकते हैं और दो पंक्तियों में बिंदुओं से एक बहुभुज बना सकते हैं। आपको अजगर को बताने की आवश्यकता होगी कि दोनों रेखाओं के आरंभ और अंत बिंदु क्या हैं।
from shapely.geometry import Point, Polygon, LineString
import geopandas as gpd
import pandas as pd
line1 = [(1,1),(2,1.2),(3,1)]
line2 = [(1,2),(2,2.2),(3,2)]
# you need to reverse the order of one line to make it a polygon
line2reverse = list(reversed(line2))
polgonList2 = line1 + line2reverse
Polygon(polgonList2)
इससे भी बेहतर: आप ऐसा करने के लिए जियोफोन का इस्तेमाल भी कर सकते हैं। जियोपैन्डस आपको शेपफाइल्स सहित कई प्रारूपों को आसानी से सहेजने की अनुमति देता है
d = {'identifier' : [1, 2],
'name' : ["Netherlands", "Germany"],
"line1": [[(1,1),(2,1.2),(3,1)], [(1,1),(2,1.2),(3,1)]],
"line2": [[(1.1,2.1),(2.1,2.3),(3.1,2.2)],[(1,2),(2,2.2),(3,2)]]
}
df = pd.DataFrame(d)
def makePolygon(row):
line2reverse = list(reversed(row["line2"]))
return Polygon(line1+line2reverse)
geometries = []
for index, row in df.iterrows():
geometries.append(makePolygon(row))
crs = {'init': 'epsg:4326'}
gdf = gpd.GeoDataFrame(df, crs=crs, geometry=geometries)
gdf.to_file('MyGeometries.shp', driver='ESRI Shapefile')
आप geopandas gpd.read_file () फ़ंक्शन का उपयोग करके लाइन ज्यामिति पढ़ सकते हैं।
सामान्य जीआईएस में बहुभुज कोने का क्रम: दक्षिणावर्त या वामावर्त
https://nbviewer.jupyter.org/gist/rutgerhofste/b01c17aa6851ea577f10c21a4c3717bc