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.