একই কাঠামোর সাথে দুটি পৃথক ভিটিকে ফাইলগুলিতে সঞ্চিত দুটি ক্ষেত্রের মধ্যে সংখ্যার পার্থক্যটি কীভাবে গণনা করব?


15

ধরুন আমার কাছে দুটি ভিটিকে ফাইল রয়েছে, উভয়ই কাঠামোগত গ্রিড ফর্ম্যাটে রয়েছে। কাঠামোগত গ্রিডগুলি একই (তাদের একই পয়েন্টের একই তালিকা, একই ক্রমে), এবং একটি ক্ষেত্র রয়েছে, প্রতিটি ভিটিকে ফাইলে একে "ফি" বলুন। আমি আবার একই স্ট্রাকচার্ড গ্রিডের সাহায্যে তৃতীয় ভিটিকে ফাইল তৈরি করতে চাই এবং একটি ফিল্ডের প্লট করব যা প্রথম ভিটিকে ফাইলের মধ্যে ফি এবং দ্বিতীয় ভিটিকে ফাইলের মধ্যে পিফির মধ্যে পার্থক্য।

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

এই পার্থক্যটি গণনা করার উদ্দেশ্যটি হ'ল পিডিইর সমাধান গণনা করার জন্য বিভিন্ন সংখ্যাগত পদ্ধতির তুলনা করা; যেহেতু আমি সমাধানগুলি উত্পন্ন করতে একই সফ্টওয়্যারটি ব্যবহার করছি, আমি গ্যারান্টি দিতে পারি যে আমার উত্পন্ন প্রতিটি ফাইলের মধ্যে ফিল্ড ফাই ফিল্ড একই হবে।


আমি এই প্রশ্নটি পোস্ট করেছি কারণ উত্তরটি খুঁজে পেতে আমাকে প্রায় দেড় দিন সময় লেগেছে; গতকাল যদি আমি এটি না পেয়ে থাকি, তবে আমি এখানে যাই হোক না কেন এই প্রশ্নটি জিজ্ঞাসা করতাম। একই কাজ সম্পাদনের অন্যান্য দ্রুত উপায় আছে কিনা তা দেখার আগ্রহী।
জেফ অক্সবেরি

আপনি যখন "কাঁচা পাঠ্যকে পার্স করুন" বলছেন তখন আপনার অর্থ আক্ষরিকভাবে ফাইলটিতে প্রবেশ করতে হবে বা পাইথন পার্সার ব্যবহার করবেন?
SAAD

এই সময়, আমি হাত দ্বারা একটি পাইথন পার্সার লিখতে চাইছিলাম।
জেফ অক্সবেরি

উত্তর:


16

একই কাঠামোগত গ্রিডের সাথে বিভিন্ন ভিটিকে ফাইল থেকে দুটি ক্ষেত্র বিয়োগ করার সবচেয়ে সহজ উপায় হ'ল প্যারাভিউতে একটি প্রোগ্রামযোগ্য ফিল্টার ব্যবহার করা, যা আপনাকে পাইথন স্ক্রিপ্টগুলি ব্যবহার করে ডেটা ম্যানিপুলেট করতে দেয়।

প্রোগ্রামেবল ফিল্টার ডায়লগ বাক্সে, আপনি দুটি অ্যারে বিয়োগ করতে পারেন এবং কোড দিয়ে আউটপুট লিখতে পারেন:

   phi_0 = inputs[0].CellData['Phi']
   phi_1 = inputs[1].CellData['Phi']
   output.CellData.append(phi_1 - phi_0, 'difference')

এই উদাহরণস্বরূপ, ফিল্ডটি সেল ডেটা হতে পারে। যদি আপনার ক্ষেত্রটি পয়েন্ট ডেটা CellDataহয় তবে স্ক্রিপ্টের সাথে সর্বত্র প্রতিস্থাপন করুন PointData। আরও তথ্যের জন্য http://public.kitware.com/pipermail/paraview/2010- এপ্রিল/016667 . html দেখুন ।


4
দু'টি ইনপুট (ইনপুট [0] এবং ইনপুট [1]) রাখার জন্য এটি কখনই খুব বেশি নয়, প্রোগ্রামেবল ফিল্টারটি নির্বাচনের আগে উভয় ডেটা সেট হাইলাইট করতে হবে (এটি উল্লেখ করা লিঙ্কের মধ্যে একটি উল্লেখ করা হয়েছে)।
টলিভিরা

3

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


1

আমার বিশেষভাবে ভাল পদ্ধতির দরকার নেই, তবে আমি একটি ভিটি কে ফাইল থেকে 'ফাই' ফিল্ডটি অন্য একটিতে অনুলিপি করে 'ফিলিপাইম' বা কোনও কিছুর নাম রাখব। প্যারাভিউ এবং দর্শন উভয় ক্ষেত্রেই আপনার কাছে অন্য ক্ষেত্রের মানগুলি ব্যবহার করে এমন একটি সূত্র দ্বারা নতুন ক্ষেত্রগুলি সংজ্ঞায়নের বিকল্প রয়েছে। তারপরে আপনি ক্ষেত্র সম্পাদকের ক্ষেত্রে একটি "ত্রুটি" "ত্রুটি = ফাই-ফাইপ্রাইম" হিসাবে সংজ্ঞায়িত করতে পারেন এবং এই ক্ষেত্রটিকে "ত্রুটি" হয় একটি পৃষ্ঠ, একটি কনট্যুর প্লট বা আপনার আগ্রহী যা কিছু হিসাবে প্লট করতে পারেন।

এক ফাইল থেকে অন্য ফাইলটিতে ডেটা ব্লকটি অনুলিপি করার পদক্ষেপটি স্পষ্টতই বিশ্রী, তবে আমি সামনে আসতে পারছি এটি সেরা।


1

আমি বুঝতে পেরেছি এটি কিছুটা পুরনো, তবে আমি যদিও আপনি ভিজিট সমাধানে আগ্রহী হতে পারেন:

আপনি কানেক্টিভালি বেইসড ক্রস জাল ফিল্ড এক্সপ্রেশন নামে পরিচিত এমন কিছু দিয়ে ভিসিতে এটি করতে পারেন। এটি একটি মুখর, তবে মূলত ডেটাবেসগুলির মধ্যে ক্ষেত্রগুলি মানচিত্র করার জন্য যন্ত্রপাতি (আপনার ক্ষেত্রে ভিটিকে ফাইল)।

"কানেক্টিভিটি ভিত্তিক" (কান_সিএমএফ) ব্যবহার করা হয় যখন টপোলজি ফাইলগুলির মধ্যে একই থাকে - যেমন আপনার ক্ষেত্রে।

এখানে একটি "অবস্থান ভিত্তিক" (pos_cmfe) রয়েছে যা বিভিন্ন টপোলজিসহ মেসের মধ্যে নমুনা দেয়।

আপনার ক্ষেত্রে, প্রথম ফাইলটি খুলুন এবং একটি এক্সপ্রেশন (মাইফি_ডিফ) সংজ্ঞায়িত করতে এক্সপ্রেশন এক্স উইন্ডোটি ব্যবহার করুন:

Phi - conn_cmfe(<file2.vtk:Phi>, mesh)

তারপরে আপনি একটি সিউডোকলোর প্লট দিয়ে "মাইফি_ডিফ" প্লট করতে পারেন।

এছাড়াও উইজার্ড রয়েছে যা আপনি এক্সপ্রেশনটি সংজ্ঞায়িত করতে সহায়তা করতে পারেন

(বিকল্প মেনু -> "ডেটা স্তরের তুলনা")

এখানে আরো কিছু তথ্য:

http://visitusers.org/index.php?title=Cmfe

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.