কীভাবে একটি রেখাকে সামঞ্জস্যপূর্ণ পয়েন্টের সেটে বিভক্ত করতে হয়


11

এটির জন্য এক্সটুলগুলিতে নির্ভর করতাম, তবে আমার বর্তমান পরিবেশে আমার এতে অ্যাক্সেস নেই।

আমি এটি আর্কম্যাপ 10 এ করার চেষ্টা করছি।

লক্ষ্যটি হ'ল শেষ অবধি points পয়েন্টগুলিতে z মানগুলি নির্ধারণ করার জন্য সমান-দুরত্বের পয়েন্টগুলির একটি সেটে একটি স্রোতের একটি লাইন উপস্থাপনা ভঙ্গ করা যাতে আমি গ্রেডিয়েন্ট নির্ধারণ করতে পারি।


আমার উদ্দেশ্য ওয়ার্কফ্লো যেমন।

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

আমি আমার পদ্ধতির যে কোনও সমালোচনার প্রশংসা করি, তবে এই মুহুর্তে আমার অগ্রাধিকার সেই স্ট্রিমগুলিকে পয়েন্টে রূপান্তরিত করছে।

ধন্যবাদ!


1
আপনি কি চান যে দূরত্বটি পরিমাপের ক্ষেত্রে (মিটার) বা প্ল্যানিমেট্রিক x / y দূরত্বের উপর ভিত্তি করে সহজ হতে হবে?
কर्क কুইকেনডাল

একটি পরিমাপ কির্ক সম্মানের সাথে।
জ্যাক তার্ডি

উত্তর:


6

আমি এখনও আরকিজিআইএস 10 ব্যবহার করছি না, তবে 9.3.1 এ আপনি আপনার লাইন স্তরটিতে সম্পাদনা সেশন শুরু করতে পারবেন, যে বৈশিষ্ট্যটি আপনি বিভাজন করতে চান তা হাইলাইট করে সম্পাদক টুলবার ড্রপ-এ বিভাজন বিকল্পটি নির্বাচন করুন। এখানে আপনি দ্বারা নির্বাচিত বৈশিষ্ট্যটি ভাগ করতে দূরত্ব নির্দিষ্ট করতে পারেন। তারপরে প্রতিটি বিভক্ত লাইন বিভাগের জন্য একটি পয়েন্ট স্তর পেতে আপনি ইটি জিও উইজার্ডের (নিখরচায় সরঞ্জাম) এর মধ্যে এক্সপোর্ট নোডস সরঞ্জামটি ব্যবহার করতে পারেন ।

পয়েন্ট ডেটা তথ্যটি লাইন স্তরটিতে ফিরিয়ে দিতে আপনি একটি স্থানিক যোগ ব্যবহার করতে পারেন। আর্কম্যাপ TOC- এ আপনার লাইন স্তরটিতে ডান ক্লিক করুন এবং যোগদান এবং সংযুক্তি> যোগ দিন নির্বাচন করুন। প্রথম ড্রপ ডাউন এ "স্থানিক অবস্থানের উপর ভিত্তি করে অন্য স্তর থেকে ডেটা যোগ করুন" বিকল্পটি নির্বাচন করুন।


ধন্যবাদ শিল্পকর্ম, আমি আজ এটির পরে চেষ্টা করব। আমার কাছে খুব যুক্তিসঙ্গত মনে হচ্ছে! আপনাকে ধন্যবাদ :)
জ্যাক তার্দি

4

আমি ইউআই এর কোনও সরঞ্জাম সম্পর্কে সচেতন নই যা এটি করে তবে এটি আইএমএসেগমেন্টেশন 3 ইন্টারফেসের মাধ্যমে প্রোগ্রামগতভাবে করা যেতে পারে ।

protected override void OnClick()
{
    try
    {
        var fSel = ArcMap.Document.FocusMap.get_Layer(1) as IFeatureSelection;
        if (fSel.SelectionSet.Count == 0)
        {
            MessageBox.Show("choose a line feature first");
            return;
        }
        var gc = ArcMap.Document.FocusMap as IGraphicsContainer;
        IFeature feat = ((IFeatureLayer)fSel).FeatureClass.GetFeature(fSel.SelectionSet.IDs.Next());
        var pnts = GetPoints((IPolyline)feat.ShapeCopy, 2.0);
        foreach (IPoint pnt in pnts)
        {
            var elem = new MarkerElementClass() as IElement;
            elem.Geometry = pnt;
            ((IMarkerElement)elem).Symbol = new SimpleMarkerSymbolClass();
            gc.AddElement(elem, 0);
        }
        ((IActiveView)ArcMap.Document.FocusMap).PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

/// <summary>
/// Get points at evenly spaced measures along a polyline
/// </summary>
/// <param name="polyline"></param>
/// <param name="count"></param>
/// <returns></returns>
private List<IPoint> GetPoints(IPolyline polyline, double mspacing)
{
    var outList = new List<IPoint>();

    var mseg = polyline as IMSegmentation3;
    if (mseg.MMonotonic == esriMMonotonicEnum.esriMNotMonotonic)
        throw new Exception("polyline not monotonic");
    for (double m = mseg.MMin; m <= mseg.MMax; m += mspacing)
    {
        var geomcoll = mseg.GetPointsAtM(m, 0.0);
        if (geomcoll != null && geomcoll.GeometryCount > 0)
        {
            var pnt = geomcoll.get_Geometry(0) as IPoint;
            outList.Add(pnt);
        }
    }
    return outList;
}

0

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

এটি যদি একটি উপযুক্ত পদ্ধতির হয় তবে অজগরটিতে এটি লিপিবদ্ধ হতে পারে!

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