আর্কজিআইএস মডেলবিল্ডার ম্যানুয়াল সম্পাদনার জন্য এক্সেল ফাইলটি খুলতে পারে, তবে সেই সম্পাদনাগুলিকে আবার মডেল হিসাবে ফিড করতে পারে?


10

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

আমি নীচে একটি উচ্চ স্তরের পরিকল্পনাকারী রূপরেখা অন্তর্ভুক্ত করছি পয়েন্টটি চিত্রিত করতে সহায়তা করার জন্য (আমি বুঝতে পারি এটি দিয়ে শুরু করার ফলে খুব বেশি অর্থ বোধ হয় না)।

এক্সেল ফাইলটি সম্পাদনা করা হলে মডেলটি বিরতি দেয়, তারপরে একবার সেভ করা এবং বন্ধ হয়ে গেলে পুনরায় শুরু করুন

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

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


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

ধন্যবাদ @ হর্নবিড্ড - আমারও একই চিন্তাভাবনা ছিল। প্রথমে ফাইলটি সম্পাদনা করা এবং তারপরে মডেলটি চালানো হ'ল আমি যা পরামর্শ দিয়েছি, তবে আমাকে বলা হয়েছে যে এটি এক হওয়া দরকার, সংহত মডেল ...
the_bonze

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

হ্যাঁ, মডেল বিল্ডার প্রসেসিং গতি বাড়ানোর জন্য একটি ওয়ার্কফ্লো স্বয়ংক্রিয় করার জন্য ডিজাইন করা হয়েছে যার মাঝখানে কিছু অনির্দিষ্ট বিরতি নেই, যদি সেই ব্যবহারকারী উদাহরণস্বরূপ মধ্যাহ্নভোজনে যায় তবে কি হবে? :) ঠিক এখন আমার মতো!
হর্নবিড্ড

উত্তর:


1

এটির মতো মনে হচ্ছে আপনার মডেলবিল্ডারের মডেলের চেয়ে কাস্টম পাইথন সরঞ্জামটি আরও বিকাশ করা দরকার। xlwtবা http://www.python-excel.org/xlutils এ আপনাকে আপনার এক্সেল ফাইলে লিখতে দেবে ( xlsx ফাইলগুলি পরিচালনা করবে)। সম্পাদনাগুলি যদি নাবালিক হয় তবে আপনি সম্ভবত এটি একটি স্ট্যান্ডার্ড আরকটুলবক্স সরঞ্জামে অন্তর্ভুক্ত করতে পারেন (কিছু সৃজনশীলতার সাথে)। আপনি যদি 10.1+ ব্যবহার করে থাকেন তবে জিআইআই কাজ করার জন্য আপনি পাইথন অ্যাড-ইন বা পাইথন টুলবক্স তৈরি করতে পারেন।XlsxWriter


পাইথন অ্যাডআইন্সগুলি কি ইতিমধ্যে 10.1+ এ পরিশীলিত জিইউআই বিকল্পগুলি সরবরাহ করে? আমি ভেবেছিলাম কেবল নেট এবং জাভা অ্যাডআইন্সগুলি এই সরবরাহ করে ... পাইথন কেবল কোনও জিইআইআই (কমান্ড, সরঞ্জাম) ছাড়াই অ্যাড আইনের প্রস্তাব দেয়।
জর্জেন জোর্নিগ

1
@ জারজেনজর্নিগ এটি থাআআট সহজ নয়: anothergisblog.blogspot.com/2013/07/…
চাদ কুপার

ধন্যবাদ @ চ্যাডকুপার আমার মডেলটি মডেল বিল্ডারে রাখতে হবে, তাই পাইথন অ্যাড-ইনগুলি ভাল, তবে একটি সত্তা হিসাবে মডেলটির একটি পূর্ণ-বিকশিত পাইথন সরঞ্জামের পরিবর্তে মডেল বিল্ডারে থাকা দরকার।
the_bonze

@ চ্যাড যাইহোক ধন্যবাদ এই দুর্দান্ত আরকিপাই / টিন্টার কুইকস্টার্ট টিউটোরিয়ালটির জন্য ... এটি চেষ্টা করে দেখতে হবে!
জর্জেন জোর্নিগ

1

আমি এটি সম্পর্কে ভাবছিলাম এবং এটি সম্ভবত আমি একটি অভিনব সমাধান খুঁজে পেয়েছি। আপনি দুটি ব্যবহারকারীর পরামিতি সহ একটি টুলবক্সে পাইথন স্ক্রিপ্ট সেট আপ করেছেন, প্রথমত এক্সেল এক্সের অবস্থান। এমনকি হার্ডকোড সম্ভাব্য ফাইলপথের অবস্থানের তালিকা (Office12, Office13 ইত্যাদি) চেক করার জন্য এটি স্মার্টভাবে কোড করা যেতে পারে।

এরপরে সাবপ্রসেসক্লা.ল ফাংশনটি ব্যবহার করুন। এই পদ্ধতিটি ব্যবহার সম্পর্কে কিছু সত্যই ঝরঝরে জিনিস:

  1. এটির জন্য কোনও বাহ্যিক গ্রন্থাগার প্রয়োজন নেই
  2. এক্সেল বন্ধ না হওয়া পর্যন্ত কল ফাংশন স্ক্রিপ্টটির ধারাবাহিকতা মঞ্জুরি দেয় না
  3. আপনি দ্বিতীয় যুক্তি হিসাবে এক্সেল ডকুমেন্টটি নির্দিষ্ট করতে পারেন
  4. এটি কোডের এক লাইন!

    import subprocess subprocess.call(["C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE", "Test.xlsx"]) #Replace args with user inputs (sys.argv[1], sys.argv[2] respectively)

কেবলমাত্র আমি 100% নিশ্চিত নই যে এটি মডেল নির্মাতায় কাজ করবে কিনা, এটি পরীক্ষা করা দরকার, তবে কেন এটি হবে তা আমি দেখতে পাচ্ছি না তবে আমি নিশ্চিত যে আপনি সচেতন আর্ক একটি স্বভাবজাত জন্তু

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