Ogr2ogr का उपयोग करके विशेषताओं द्वारा सुविधाओं का चयन?


17

मैं कुछ प्रसंस्करण के बाद एक आकार-पत्र लिख रहा हूं; हालाँकि, अंतिम चरण में मुझे आकार-प्रकार के गुणों के अनुसार कुछ चयन करने की आवश्यकता है।

जब यह काम करता है तो मैं इसे पायथन लिपि में उपयोग करने के उद्देश्य से एक शेल में कमांड का उपयोग कर रहा हूं।

ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp

मुझे त्रुटि संदेश मिल रहा है:

FAILURE: 
Unable to open datasource `Downloads' with the following drivers.

मुझ से ऐसी कौनसी गलती हो जाएगी?


क्या यह वास्तव में उस आदेश के लिए सटीक संदेश है?
ब्रैडहार्ड्स

जवाबों:


30

आप पहले एक ऋण चिह्न को याद करते हैं whereऔर selectयह आवश्यक नहीं है, इसलिए यह होना चाहिए:

ogr2ogr -where ID="1" outfile.shp infile.shp

या यदि आपको अपने इनपुट डेटा पर अधिक जटिल क्वेरी करनी है:

ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp

यदि IDइंटेगर प्रकार का क्षेत्र है, तो स्थानापन्न ID='1'करें ID=1

टिप्पणियाँ:

  1. -f "ESRI Shapefile"क्योंकि जरूरी नहीं है "ESRI Shapefile"है ogr2ogrडिफ़ॉल्ट उत्पादन प्रारूप;
  2. जब आप सभी फ़ील्ड्स का चयन करना चाहते हैं तो -selectसीधे -whereक्लॉज़ को छोड़ना और उपयोग करना सुविधाजनक है ।

1
बहुत धन्यवाद यह काम करता है। मैं उपयोग कर रहा हूँ: ogr2ogr-place "ID = '1'" output.shp input.shp
user2757128

मैं इस कोड का उपयोग कैसे कर सकता हूं: ogr2ogr -sql "SELECT * File infile WHERE ID = '1'" outfile.shp infile.shp "में अजगर?
Shiuli Pervin

1
@ShiuliPervin आप बयान का उपयोग करके अजगर में उपयोग कर सकते हैं os.system('''ogr2ogr ... ''') import osअपने पायथन लिपि के शीर्ष पर सुनिश्चित
रहें

@afalciano, बयान ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shpके लिए सिर्फ आईडी = 1 के बजाय एक सदिश या संख्याओं का एक सेट प्रदान करने का एक तरीका है, उदा ogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp?
hlm

@afalciano एक और बात ... एक और shp फ़ाइल लिखने के बजाय, क्या केवल चयनित आईडी बहुभुज के निर्देशांक प्राप्त करने का एक तरीका है?
hlm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.