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- কোথাও "আইডি = '1'" আউটপুট.শপ ইনপুট.শ্প
— ইউজার 2757128

আমি এই কোডটি কীভাবে ব্যবহার করতে পারি: ogr2ogr -sql "পাইথন থেকে ফায়ারফিল WHERE ID = '1" "outfile.shp infile.shp" পাইথ?
— শিউলি পারভিন

1
@ শিউলিপ্রভিন আপনি অজুহাতে স্টেটমেন্টটি ব্যবহার করে ব্যবহার করতে পারবেন os.system('''ogr2ogr ... ''') । import osআপনার অজগর স্ক্রিপ্টের শীর্ষে নিশ্চিত হন
— geoeye

@ ফ্যালকিয়ানো, 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?
— এইচএলএম

@ ফ্যালসিয়ানো অন্য একটি জিনিস ... অন্য একটি shp ফাইল লেখার পরিবর্তে, কেবলমাত্র নির্বাচিত আইডি বহুভুজগুলির স্থানাঙ্ক পাওয়ার কোনও উপায় আছে?
— এইচএলএম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.