QGIS का उपयोग करके बिंदुओं के सेट की सीमा रेखा खींचना?


9

मेरे पास कुछ बिंदु हैं जो मैं एक बहुभुज में बदलना चाहता हूं।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

मैंने अवतल पतवार की कोशिश की, लेकिन इच्छित बहुभुज नहीं मिला जैसा कि आप नीचे देख सकते हैं,

यहाँ छवि विवरण दर्ज करें

और जब मैं Denaulay त्रिकोण का उपयोग करता हूं तो मुझे बाहरी त्रिकोणों को हटाने की आवश्यकता होती है।

यहाँ छवि विवरण दर्ज करें

क्या ऐसा करने का एक कुशल तरीका है?

मैंने भी उत्तल पतवार की कोशिश की।

यहाँ छवि विवरण दर्ज करें


क्या आप वेक्टर की कोशिश करते हैं -> जियोप्रोसेसिंग टूल -> उत्तल पतवार (ओं) ... या जियोप्रोसेसिंग टूलबॉक्स -> वेक्टर ज्यामिति उपकरण -> उत्तल पतवार?
दिमित्री बरिशनिकोव

हां, मैंने ऐसा प्रयास किया। हालाँकि, मुझे लगा कि यह उस आकार पर लागू नहीं होता जिसकी मुझे आवश्यकता है। मैं सवाल अपडेट करूंगा।
स्टीफन जैकब

3
क्या आपके पास अपनी पहली छवि या केवल बिंदुओं पर दिखाई गई लाइनें हैं?
राडौक्सु

1
मेरा एक प्रश्न है: आपका लक्ष्य क्या है? डेटा क्या दर्शाता है? नदी? सड़क ? मुझे डर है कि यदि आपके पास "एस" आकार या मुड़ आकार हैं, तो यह अजगर के साथ भी काम नहीं करेगा ...
कीको

2
@StephenJacob - आपके अंक कैसे ऑर्डर किए गए हैं? यदि उनके पास घड़ी की दिशा में या घड़ी की विपरीत दिशा में जाने वाला एक आदेश है, तो पहले अपने बिंदुओं को लाइनों में बदलना संभव है (जैसे कि एसएजीए के कन्वर्ट पॉइंट टू लाइन (एस) टूल का उपयोग करना) और फिर लाइनों को एक पोयगन में बदलना (जैसे लाइनों को बहुभुज उपकरण)।
जोसफ

जवाबों:


5

मैं मानता हूं कि आप जानते हैं कि कौन से बिंदु "बाएं" या "दाएं" हैं, क्योंकि अन्यथा कई समाधान हैं। यदि ऐसा है, तो आप "केंद्रीय" त्रिकोण के चयन के साथ delaunay त्रिकोण का उपयोग कर सकते हैं। इस पद्धति के साथ, एक विशिष्ट क्रम में अंक होने की आवश्यकता नहीं है। आपको केवल इस तथ्य पर विचार करने की आवश्यकता है कि आपके द्वारा आवश्यक त्रिकोण प्रत्येक पक्ष से कम से कम एक बिंदु को छूना चाहिए।

खुली विशेषता तालिका> अभिव्यक्ति द्वारा चयन करें> "कोड" = 1

वेक्टर> अनुसंधान उपकरण> स्थान के अनुसार चयन करें (नया चयन, प्रतिच्छेदन)

यहाँ छवि विवरण दर्ज करें

खुली विशेषता तालिका> अंकों के चयन को पलटना (ctrl + R)

वेक्टर> अनुसंधान उपकरण> स्थान के अनुसार चयन करें (चयन से हटाएं, असहमति)

यहाँ छवि विवरण दर्ज करें

वेक्टर> जियोप्रोसेसिंग टूल> भंग

यहाँ छवि विवरण दर्ज करें


3

मेरे पास @radouxju के समान परिणाम है।

संचालन:

  1. 1 पॉलीलाइन चुनें [क्लिक पर चुनें]
  2. अपनी पॉलीलाइन तालिका को अपडेट करें और प्रत्येक सुविधा [फ़ील्ड कैलकुलेटर] पर एक नंबर को प्रभावित करें
  3. उन बिंदुओं का चयन करें जो एक पॉलीलाइन [स्थानिक क्वेरी उपकरण] को प्रतिच्छेद करती हैं
  4. पहले से प्रभावित [क्षेत्र कैलकुलेटर] पॉलीलाइन मूल्य द्वारा चयनित बिंदुओं को अपडेट करें
  5. चयन बिंदु रखें और इन चुनिंदा बिंदुओं को अंतरित करने वाले delaunay त्रिकोण का चयन करें [स्थानिक क्वेरी उपकरण]
    यहाँ छवि विवरण दर्ज करें
    यहाँ छवि विवरण दर्ज करें

  6. बिंदु चयन को पलटना या उन बिंदुओं का चयन करना जो अन्य पॉलीलाइन [अभिव्यक्ति द्वारा चयन] या [चयन को उलटना] को प्रतिच्छेद करते हैं।

  7. वर्तमान चयन से हटाएं जो त्रिकोण त्रिकोण हैं जो अन्य बिंदुओं से भिन्न हैं [स्थानिक क्वेरी उपकरण]
    यहाँ छवि विवरण दर्ज करें
    यहाँ छवि विवरण दर्ज करें

  8. चयन द्वारा सुविधाओं को मर्ज करें [geoprocessing tool> dissolve]
    यहाँ छवि विवरण दर्ज करें
    यहाँ छवि विवरण दर्ज करें


महत्वपूर्ण : आपको इस परिणाम को प्राप्त करने के लिए पॉलीलाइन होना आवश्यक है!


धन्यवाद @Keiko आपका जवाब रेडौक्सु के उत्तर की व्याख्या करने के लिए उपयोगी था
स्टीफन जैकब

आपका स्वागत है @StephenJacob! यह सिर्फ टीम वर्क था! ;-)
कीको

1

यदि आपके पास अजगर के साथ अनुभव है, तो आप शेपली लाइब्रेरी का उपयोग कर सकते हैं और दो पंक्तियों में बिंदुओं से एक बहुभुज बना सकते हैं। आपको अजगर को बताने की आवश्यकता होगी कि दोनों रेखाओं के आरंभ और अंत बिंदु क्या हैं।

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


इसे एक आकृति फ़ाइल में कैसे बदलें?
स्टीफन जैकब

1
आप कई टूल का उपयोग कर सकते हैं लेकिन मैं जियोफोन के प्रशंसक हूं। Gdf.to_file ('MyGeometries.shp', ड्राइवर = 'ESRI
शेपफाइल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.