আর্কম্যাপ ইউআইয়ের সাথে হোয়াইটবক্স জিএটি (ফ্রি এবং ওপেন) একীকরণ করছে? [বন্ধ]


11

হোয়াইটবক্স জিওস্প্যাটিয়াল বিশ্লেষণ সরঞ্জাম

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

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

এই বিষয়টি মাথায় রেখে আমি হোয়াইটবক্স জ্যাটকে স্পেসিয়াল অ্যানালিস্ট হাইড্রোলজি সরঞ্জামগুলির সম্ভাব্য স্ট্যান্ড-ইন হিসাবে বিবেচনা করছি এবং আর্কজিআইএস / হোয়াইটবক্স ইন্টিগ্রেশন সম্পর্কিত কোনও সাফল্যের গল্প বা সময় সাশ্রয়কারী "গেটচাস" থাকলে আমি আগ্রহী।

আমি প্রত্যাশা করছি যে বেশ কিছু লোক সাগা, গ্রাস, আর, এবং সিটিরা প্রয়োগের পাল্টা পরামর্শ দিতে চাইবে। যদি এটি আপনার অবস্থান হয় তবে দয়া করে বর্ণনা করুন কেন হোয়াইটবক্সের সংহতকরণ অনুসরণ করা বুদ্ধিমানের হবে। উদাহরণস্বরূপ, এটি কি কেবল কয়েকটি ইনপুট ফর্ম্যাটগুলিকে সমর্থন করে, এতে বড় (1-2 গিগাবাইট +) ফাইল ইত্যাদি নিয়ন্ত্রণহীন রয়েছে etc.


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

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

  1. কোনও ডেটা মান সেট না করে (হোয়াইটবক্সের এটির প্রয়োজন হয়, তবে আর্ক কখনই করেনি)
  2. ডুবে ভরা
  3. একটি প্রবাহের দিকের রাস্টার তৈরি করুন
  4. একটি প্রবাহের সংগ্রহের রাস্টার তৈরি করুন

আমি নিম্নলিখিত উইন্ডোজ ফর্ম "অ্যাপ্লিকেশন" (ওরফে WhiteboxDaisyChain) একসাথে রেখেছি । এটি আর্কজিআইএস গ্রিড (.FLT) সমন্বিত একটি সিস্টেম ডিরেক্টরি নেয় এবং উপরে উল্লিখিত কার্য সম্পাদন করে। আপনি যদি এটি চেষ্টা করতে চান তবে আপনাকে সংকলিত বাইনারিগুলি ডাউনলোড করতে হবে , আনজিপ করুন, তারপরে আপনার প্রকল্পের সমস্ত .dllফাইল অনুলিপি ..\WhiteboxGAT_1_0_7\Pluginsকরুন - আমি সমস্ত কিছু ভিতরে রেখেছি ..\WhiteboxDaisyChain\Whitebox। তবে এই উদাহরণটির DLLsজন্য কোড নমুনার শীর্ষে বর্ণিত চারটি প্রয়োজন ।


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

// 1) Create a new Windows Form
// 2) Put all these in a Whitebox folder in the C# project root.
// 3) Add project references to the following and create using statements:

using Interfaces;       // requires Add Reference: Interfaces.dll
using ImportExport;     // requires Add Reference: ImportExport.dll
using ConversionTools;  // requires Add Reference: ConversionTools.dll
using flow;             // requires Add Reference: flow.dll


namespace WhiteboxDaisyChain
{
    // 4) Prepare to implement the IHost interface.
    // 5) Right-click IHost, select "Implement interface.."
    public partial class UI : Form, IHost
    {

        // 6) Add a BackgroundWorker object.
        private BackgroundWorker worker;

        public UI()
        {
            InitializeComponent();

            // 7) Instantiate the worker and set "WorkerReportsProgress".
            worker = new BackgroundWorker();
            worker.WorkerReportsProgress = true;
        }


        // 8) Use some event to set things in motion.. i.e. Button click.
        private void button1_Click(object sender, EventArgs e)
        {
            progressLabel.Text = "Running..";

            // This is the path containing my ArcGrid .FLT.
            // All processing will unfold to this directory.
            string path = "C:\\xData\\TutorialData\\DemWhitebox\\";

            string[] fltArgs = new string[1];
            fltArgs[0] = path + "greene30.flt";                 // in: Arc floating point grid

            // creates a raster in Whitebox data model
            ImportArcGrid importAG = new ImportArcGrid();
            importAG.Initialize(this as IHost);
            importAG.Execute(fltArgs, worker);                  // out:  path + "greene30.dep"

            // set the nodata value on the DEM
            string[] noDataArgs = new string[2];
            noDataArgs[0] = path + "greene30.dep";              // in: my raw DEM
            noDataArgs[1] = "-9999";                            // mine used -9999 as nodata value

            SetNoData setNoData = new SetNoData();
            setNoData.Initialize(this as IHost);
            setNoData.Execute(noDataArgs, worker);              // out:  path + "greene30.dep"

            // fill sinks in the DEM
            string[] fillSinksArgs = new string[4];
            fillSinksArgs[0] = path + "greene30.dep";           // in: my DEM with NoData Fixed
            fillSinksArgs[1] = path + "greene30_fill.dep";      // out: my DEM filled
            fillSinksArgs[2] = "50";                            // the dialog default
            fillSinksArgs[3] = "0.01";                          // the dialog default

            FillDepsBySize fillSinks = new FillDepsBySize();
            fillSinks.Initialize(this as IHost);
            fillSinks.Execute(fillSinksArgs, worker);

            // create a flow direction raster
            string[] flowDirArgs = new string[2];
            flowDirArgs[0] = path + "greene30_fill.dep";        // in: my Filled DEM
            flowDirArgs[1] = path + "greene30_dir.dep";         // out: flow direction raster

            FlowPointerD8 flowDirD8 = new FlowPointerD8();
            flowDirD8.Initialize(this as IHost);
            flowDirD8.Execute(flowDirArgs, worker);

            // create a flow accumulation raster
            string[] flowAccArgs = new string[4];
            flowAccArgs[0] = path + "greene30_dir.dep";         // in: my Flow Direction raster
            flowAccArgs[1] = path + "greene30_acc.dep";         // out: flow accumulation raster
            flowAccArgs[2] = "Specific catchment area (SCA)";   // a Whitebox dialog input
            flowAccArgs[3] = "false";                           // a Whitebox dialog input

            FlowAccumD8 flowAccD8 = new FlowAccumD8();
            flowAccD8.Initialize(this as IHost);
            flowAccD8.Execute(flowAccArgs, worker);

            progressLabel.Text = "";
            progressLabel.Text = "OLLEY-OLLEY-OXEN-FREE!";
        }



        /* IHost Implementation Methods Below Here */

        public string ApplicationDirectory
        {
            get { throw new NotImplementedException(); }
        }

        public void ProgressBarLabel(string label)
        {
            this.progressLabel.Text = "";
            this.progressLabel.Text = label;                    // This is the only one I used.
        }

        public string RecentDirectory
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool RunInSynchronousMode
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public void RunPlugin(string PluginClassName)
        {
            throw new NotImplementedException();
        }

        public void SetParameters(string[] ParameterArray)
        {
            throw new NotImplementedException();
        }

        public void ShowFeedback(string strFeedback, string Caption = "GAT Message")
        {
            throw new NotImplementedException();
        }
    }
}

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


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

@ জনলিন্ডসে, ওহে, আমি আপনাকে গুয়্যালফ প্রফেসর হিসাবে স্বীকৃতি দিয়েছি যিনি হোয়াইটবক্স তৈরি করেছিলেন। আমি যখন জানুয়ারী ২০১২ এ এই থ্রেডটি আবার শুরু করেছি, তখন হোয়াইটবক্সে। নেট লেখা ছিল, তবে এখন এটি জাভাতে আমি বুঝতে পেরেছি। আমি এই থ্রেডটিকে অপ্রাসঙ্গিক হিসাবে মুছে ফেলার বিষয়টি বিবেচনা করেছি, যেহেতু। নেট স্টাটগুলি বজায় থাকে না, তবে যদি পুরানো প্রকাশটি এখনও পাওয়া যায়, এমনকি অনিচ্ছাকৃতও হয় তবে এটি এখনও মূল্যবান। আমি নেট নেট সার্ভিসেসে হোয়াইটবক্স গ্রাসকারী ভাসমান উত্সাহীদের জন্য একটি মোবাইল অ্যাপ তৈরি করার কথা ভেবেছিলাম, তবে আমি সেই ধারণাটি রেখেছি। ডাউনলোডগুলির মধ্যে আমি কী কোনও "সংরক্ষণাগারগুলি" উপেক্ষা করেছি?
elrobis

উত্তর:


3

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

আপনি কেন এই টুলসেটটি বিবেচনা করতে পারেন? তারা ইতিমধ্যে " আর্কজিআইএস এক্সটেনশনের জন্য SEXTANTE " (নিখরচায়) তৈরি করেছে, যা ব্যবহারকারীরা আর্কম্যাপে SEXTANTE সরঞ্জাম গ্রহণ করতে দেয়।


এটি একটি দুর্দান্ত টিপ, আমি এটি সন্ধান করব।
elrobis

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