পাইথন কনসোল থেকে কিউজিআইএস জোনাল পরিসংখ্যান প্লাগইন ব্যবহার করছেন?


9

ওভারলেলিং বহুভুজগুলি থেকে রাস্টার পরিসংখ্যান বের করতে আমি কিউজিআইএসের জোনাল স্ট্যাটাস প্লাগইনটি ব্যবহার করছি (আমার কাছে প্রজাতি বিতরণের আকার রয়েছে এবং আমি প্রতিটি প্রজাতির সীমার মধ্যে থেকে পরিবেশগত তথ্য বের করতে চাই)। আমার কাছে 300 বা তাই ফাইল রয়েছে যা থেকে আমার ডেটা পেতে হবে এবং তাই পাইথন কনসোলে চালানোর জন্য একটি স্ক্রিপ্ট লিখতে চাই, তবে আমি পাইথন সহ সম্পূর্ণ নবাগত এবং এটি কীভাবে করব তা সম্পর্কে আমার কোনও ধারণা নেই।



চাদ - হ্যাঁ এটি একটি অনুরূপ প্রশ্ন তবে এটি আরও নির্দিষ্ট। কেউই অন্য প্রশ্নের উত্তর দেয়নি, পরিবর্তে তারা সমস্যা সমাধানের অন্যান্য উপায়ের পরামর্শ দেয়। আমি কীভাবে অন্য পোস্টটি মুছতে জানি না
টমাস

অন্য প্রশ্নে আমি আপনাকে যা চাই তাতে সক্ষম একটি আর-স্ক্রিপ্টের দিকে ইঙ্গিত করলাম এবং সিলভেস্টার স্নিকলি আপনাকে পাইথনের সঠিক পদ্ধতিটির নাম দিয়েছেন। আপনি যদি পাইথন বা আর-তে কোড ব্যবহার করতে না পারেন তবে সমস্ত ইঙ্গিতগুলি আপনাকে সহায়তা করবে না। আপনার একটি স্ব-কোডেড স্ক্রিপ্ট বা প্রচুর মাউস ক্লিক রয়েছে need কিছু কোডিং শিখুন, উদাহরণগুলি ব্যবহার করে দেখুন এবং যদি কিছু কাজ না করে তবে ফিরে রিপোর্ট করুন।
কার্লিউ

@ কর্কলিউ - সিলভেস্টারের পদ্ধতিটি খুব ভাল লাগার পরেও এটি আমার জন্য একটি বিশাল শিক্ষার বক্ররেখার প্রতিনিধিত্ব করবে এবং এই মুহুর্তে আমার এই করার জন্য সময় নেই। আমি সিলভেস্টারের সাহায্যের প্রশংসা করি তবে এটি আমার পরে দেওয়া সহজ উত্তর ছিল না। আমি যদিও আমার অন্যান্য প্রশ্নের ( gis.stackexchange.com/questions/23203/… ) এ উল্লিখিত পোস্টের পরে আমার বেশিরভাগ কোড ছিল । অজগরে যদি সিলভেস্টারের পদ্ধতিটি একমাত্র উপায় হয় তবে আমি বুঝতে পারি না যে এটি কতটা কঠিন।
থমাস

@ কর্কেলিউ - আপনার আর স্ক্রিপ্ট সত্যিই কাজ করে, আপনাকে ধন্যবাদ। আমি কেবলমাত্র কাজটি করতে পারি নি তা হল কীভাবে আর-তে ফিরে আসা ফলাফলগুলিকে আমার শেপফাইলেসের জন্য .dbf ফাইলে সংযুক্ত করতে হয় (এর সাথে যে কোনও সহায়তা করা অনেক প্রশংসা হবে)।
থমাস

উত্তর:


13

নীচের কোডটি কিউজিস ১.৮.০ এর জন্য আমার জন্য কাজ করেছিল

আপনি কিছু লুপের সাথে একাধিক ফাইল সংযোজন করতে এটি পরিবর্তন করতে পারেন ..

from qgis.analysis import QgsZonalStatistics

#specify polygon shapefile vector
polygonLayer = QgsVectorLayer('F:/temp/zonalstat/zonePoly.shp', 'zonepolygons', "ogr") 

# specify raster filename
rasterFilePath = 'F:/temp/zonalstat/raster1.tif'

# usage - QgsZonalStatistics (QgsVectorLayer *polygonLayer, const QString &rasterFile, const QString &attributePrefix="", int rasterBand=1)
zoneStat = QgsZonalStatistics (polygonLayer, rasterFilePath, 'pre-', 1)
zoneStat.calculateStatistics(None)

গ্রেট। আপনাকে অনেক ধন্যবাদ বিনয়ন, আমি ঠিক এটাই পরেছিলাম
টমাস

আর
টমাস

খুশি এটা আপনাকে সাহায্য!
বিনয়ন

@ভিনায়ন কিউপ্রোগ্রেসডায়ালগ ভিজ্যুয়াল পরিবেশের জন্য দরকারী যেখানে আপনি দেখতে চান গণনা কতটা এগিয়েছে। কমান্ড লাইন থেকে এটির কোনও ব্যবহার নেই। আপনি Noneপ্যারামিটার হিসাবে ব্যবহার করতে পারেন এবং এটি দুর্দান্ত কাজ করে। তারপরে আপনার কোনও PyQt4..লাইন বা progressDialog = রেখার দরকার নেই। Gis.stackexchange.com/questions/23203/…
rudivonstaden

@ রুডিভনস্টাডেন - এখনই তা বোধগম্য হয়ে গেছে..আমি উত্তর আপডেট করেছি
বিনয়ন

2

সাগা জিআইএস-এ আপনি যা চান তা পাওয়ার উপায় এখানে। এটি সম্ভবত আপনি চান এমন সমাধান নয় তবে এটি কার্যকর। আমার প্লাগইনগুলি ব্যর্থ হওয়ার কারণগুলি এবং যত তাড়াতাড়ি সম্ভব এটি আপডেট করব।

সাগা জিআইএস ইনস্টল করুন (আপনার লিনাক্স বিতরণে অ্যাপটি-গেট বা অ্যাপিটিটুডের মাধ্যমেও পাওয়া উচিত)।

  • সাগা শুরু করুন, আপনার রাস্টার এবং ভেক্টর আকারে লোড করুন (মেনু মডিউল -> ফাইল -> জিডিএল / ওজিআর আমদানি)। আপনি নীচের প্রক্রিয়া দেখতে পারেন।
  • "বহুভুজের জন্য গ্রিডের পরিসংখ্যান" (মেনু মডিউলগুলি -> আকার -> গ্রিড -> গ্রিড-মান) কার্যকর করুন Exec মানগুলি সরাসরি টেবিলের সাথে যুক্ত হয়। ডায়ালগটি দেখতে এমন হওয়া উচিতএখানে চিত্র বর্ণনা লিখুন
  • কর্মক্ষেত্রের "ডেটা" ট্যাবে যান, আপনার ভেক্টর স্তরে ডান ক্লিক করুন এবং যুক্ত বৈশিষ্ট্য সহ আকৃতিটি রফতানি করতে " হিসাবে সংরক্ষণ করুন " বেছে নিন । আপনি রাইটক্লিকের মাধ্যমে বৈশিষ্ট্য টেবিলটি প্রদর্শন করতে পারেন এবং তারপরে টেবিল শোতে ক্লিক করতে পারেন

এটি আপনি আমাকে যে ডেটাसेट পাঠিয়েছেন তার জন্য এটি কাজ করে। ব্যাচ প্রক্রিয়া হিসাবে SEXTANTE এর মাধ্যমে কিউজিআইএস-এ সাগা মডিউলগুলি কল করাও সম্ভব। এটি করার জন্য SEXTANTE বিকল্পগুলিতে কেবল সাগা মডিউলগুলি সক্রিয় করুন।


পরামর্শের জন্য ধন্যবাদ তবে আমি ইতিমধ্যে সাগা চেষ্টা করেছি - এটির ফলাফলগুলি অসঙ্গত ছিল অর্থাৎ একই জিনিসটি দু'বার করার ফলে বিভিন্ন ফলাফল দেওয়া হয়েছিল। আমি জানি কিউজিআইএস-এর জোনালস্ট্যাটস প্লাগইন কাজ করে, তাই আমি জোনালস্ট্যাটস স্বয়ংক্রিয় করার একটি উপায় পরেছি।
টমাস

@ভিনায়ান আমার কাছে কোড আছে যা আপনি জোনাল স্টাটাস্টিকগুলির জন্য দিয়েছেন তবে এটি বহুভুজ ভেক্টর স্তরে কলাম তৈরি করছে তবে গণনা করা মানগুলি আপডেট করছে না। এটা এমন কেন?
ব্যবহারকারী 99

2
zoneStat = QgsZonalStatistics (polygonLayer, rasterFilePath, 'pre-', 1)
zoneStat.calculateStatistics(None)

ডিফল্ট হিসাবে গণনা করে কেবল গণনা, যোগফল এবং গড় ( Raster -> Zonal Statisticsআপনি কিউজিআইএস ডেস্কটপ থেকে বলতে পারেন , এটি আরও অনেক কিছু করতে পারে)।

উদাহরণস্বরূপ, আপনি যদি ব্যবহার করতে হয় কেবলমাত্র গড়টি গণনা করতে চান:

zoneStat = QgsZonalStatistics (polygonLayer, rasterFilePath, 'pre-', 1, QgsZonalStatistics.Mean)
zoneStat.calculateStatistics(None)

সমস্ত বিকল্পের জন্য API দেখুন ।


একইসাথে মিন অ্যান্ড ম্যাক্স বলুন, কেউ কী দুটি পছন্দের পরিসংখ্যান পাওয়ার জন্য সিনট্যাক্সে সহায়তা করতে পারেন? আমি বিভিন্ন উপায়ে চেষ্টা করছি কিন্তু কোন সাফল্য নেই
ডোরাকিয়ারা

কিউগিস 3 এ আপনাকে রাস্টার ফাইলের সাথে রাস্টার ফাইল পাথটি প্রতিস্থাপন করতে হবে! অতএব, rasterFilePath = 'F: /temp/zonalstat/raster1.tif' হয়ে যায়: rasterFile = QgsRasterLayer ('F: /temp/zonalstat/raster1.tif', 'raster') তারপরে আপনি জাস্টারস্টেটের রাস্টারফাইলে রাস্টারফাইলেপথ পরিবর্তন করেন কমান্ড জোনস্ট্যাট = কিউজস জোনাল স্ট্যাটিস্টিক্স (বহুভুজজীবী, রাস্টারফাইলে, 'প্রাক-', 1) জোনস্ট্যাট.ক্যালকুলেটস্ট্যাটিক্স (কোনও নয়)
ফিলস্চ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.