আরকজিআইএস ডেস্কটপ বা কিউজিআইএসে বিস্তারিত স্তরগুলি থেকে সীমানা নিষ্কাশন করবেন?


10

বহুভুজ স্তরের সীমানা (বাইরের) ঘেরটি ফেরানো কি সম্ভব?

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


সুতরাং মার্কিন উদাহরণস্বরূপ, আপনার মানে আসলে রাজ্যগুলির রূপরেখা পান, বাউন্ডিং বক্স নয়, তাই না? যদি তা হয়, তবে কাউন্টি স্তরটি দ্রবীভূত করা সম্পর্কে কীভাবে?
চাদ কুপার

@ চ্যাড কুপার - যখন আমি স্তরটি দ্রবীভূত করি তখনও আমি কিছু পংক্তি কাউন্টি এবং রাজ্যের জন্য দেখায়।
dassouki

উত্তর:


6

আপনি কেবল কাউন্টি স্তরটিতে দ্রবীভূত করতে পারেন (আপনি নির্বাচিত দ্রবীভূত করতে চান এমন কাউন্টিগুলি অবশ্যই নিশ্চিত করুন)।


আমি কিছু অভ্যন্তরীণ লাইনগুলি এখনও দ্রবীভূত করতে দেখছি।
dassouki

3
অভ্যন্তরীণ লাইনগুলি মুছে ফেলার জন্য আপনি দু'বার বাফার করতে পারেন? আসল আকারটি পুনরুদ্ধার করতে লাইনগুলি "খেতে", তারপরে ফিরে আসুন।
mwalker

কোন কারণে এই কাজ। আমি জানি এটি সমাধানগুলির "হ্যাকিস্ট", তবে এটিই একমাত্র সমাধান যা লাইনগুলি থেকে মুক্তি পেয়েছিল
dassouki

1
+1 এটি আসলে একটি দুর্দান্ত সমাধান। এটি উপাদানগুলি বহুভুজগুলিতে ক্ষুদ্র স্লাইভারগুলি এবং ওভারল্যাপগুলি সমন্বিত করে কাজ করে (এবং সফ্টওয়্যারটিতে অনেকগুলি অন্তর্নিহিত বাগগুলিও পরাস্ত করে)।
শুক্রবার

1
আমি তখন বাফার করার জন্য মওয়ালকারের পরামর্শ ব্যবহার করেছি I আমি আশা করি আপনি এটি আপনার উত্তরটিতে অন্তর্ভুক্ত করতে পারেন।
dassouki

4

আপনি গ্রাস মডিউলটি ব্যবহার করতে পারেন: v.dissolve আপনাকে কেবল গ্রাসে আপনার ডেটা আমদানি করতে হবে। এখানে ভিতরে QGis থেকে ঘাস আপনার ডেটা ট্রান্সফারের একটি স্ক্রিন-নিক্ষেপ করা হয়।


3

আমাকে আমার নিজের প্রকল্পটি প্লাগ করতে দিন ... বাউন্ডারি জেনারেটর আপনাকে প্রতিটি বহুভুজের বাহ্যিক এবং অভ্যন্তরীণ সীমানা উভয়ই দেবে (লাইন বৈশিষ্ট্য হিসাবে)।

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

এটি বনাম দ্রবীভূত করা সম্পর্কে দুর্দান্ত জিনিসটি হ'ল আমি নির্ভুলতার তুলনায় বেশ কয়েকটি গাঁট যোগ করেছি যাতে এটি একেবারে-নিখুঁত নয় এমন ডেটা নিয়ে কাজ করতে পারে। (দুটি বহুভুজের সীমানা কতগুলি পৃথক করে একটি ভাগ করা সীমানা হিসাবে বিবেচনা করা উচিত? কত কোণে বিচ্যুতি প্রয়োজন?)

এটি এখনও আলফাতে রয়েছে এবং আমি একটি আপডেটকে মোকাবেলা করার পরে অনেকক্ষণ হয়ে গেছে; আমি আপনার জন্য এটি কতটা ভাল কাজ করে তা শুনতে ভালোবাসি!


2
 public static IPolygon getPolygonFromLayer(ILayer layer)
{
            IFeatureLayer FLayer = layer as IFeatureLayer;
            IFeatureClass FClass = FLayer.FeatureClass;
            return polygonMerge(FClass);
}

   private static IPolygon polygonMerge(IFeatureClass featureClass)
        {
            if (featureClass == null) return null;
            IGeoDataset geoDataset = featureClass as IGeoDataset;

            //You can use a spatial filter to create a subset of features to union together. 
            //To do that, uncomment the next line, and set the properties of the spatial filter here.
            //Also, change the first parameter in the IFeatureCursor.Seach method.
            //ISpatialFilter queryFilter = new SpatialFilterClass();

            IGeometry geometryBag = new GeometryBagClass();

            //Define the spatial reference of the bag before adding geometries to it.
            geometryBag.SpatialReference = geoDataset.SpatialReference;

            //Use a nonrecycling cursor so each returned geometry is a separate object. 
            IFeatureCursor featureCursor = featureClass.Search(null, false);

            IGeometryCollection geometryCollection = geometryBag as IGeometryCollection;
            IFeature currentFeature = featureCursor.NextFeature();

            while (currentFeature != null)
            {
                //Add a reference to this feature's geometry to the bag.
                //Since you don't specify the before or after geometry (missing),
                //the currentFeature.Shape IGeometry is added to the end of the geometryCollection.
                object missing = Type.Missing;
                geometryCollection.AddGeometry(currentFeature.Shape, ref missing, ref missing);
                currentFeature = featureCursor.NextFeature();
            }

            // Create the polygon that will be the union of the features returned from the search cursor.
            // The spatial reference of this feature does not need to be set ahead of time. The 
            // ConstructUnion method defines the constructed polygon's spatial reference to be the 
            // same as the input geometry bag.
            ITopologicalOperator unionedPolygon = new PolygonClass();
            unionedPolygon.ConstructUnion(geometryBag as IEnumGeometry);

            return unionedPolygon as IPolygon;
        }

    }

2

সীমানা নির্বিঘ্ন না হওয়ায় আপনি যখন দ্রবীভূত করেন তখন আপনার পাওয়ার লাইনগুলি।

সফ্টওয়্যার পণ্য নির্বিশেষে, নিম্নলিখিতগুলি করুন:

একটি সংহত করুনবিকল্প পাঠ

তারপরে একটি দ্রবীভূত করুনবিকল্প পাঠ


আমি এটি বেশ কয়েকবার চেষ্টা করেছি, এবং এটি কার্যকর হয়নি :(, আমি কিছু বহুভুজ হারাতে থাকি, আমি খুব ছোট সহনশীলতা এবং খুব বড় একটিও ব্যবহার করেছি
dassouki

1

দেখে মনে হচ্ছে আরকিগিস.কম এ পোস্ট করা বাউন্ডিং কনটেইনারগুলির নমুনা আপনার যা ইচ্ছা তা কাজ করবে।


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

1

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

কিউজিআইএস (কমপক্ষে ২.১৪ সংস্করণ হিসাবে), কিউজিআইএস জিওলগোরিদমস> ভেক্টরি জ্যামিতি সরঞ্জামগুলির অধীনে প্রসেসিং টুলবক্সে একটি "ফিল হোল" রয়েছে। আমি দেখতে পেলাম যে আকারগুলি দ্রবীভূত করা এবং তারপরে সর্বোচ্চ উচ্চতা পরামিতি সেট সহ ফিল হোলগুলি চালানো এই সমস্যার সমাধান করে।


0

আপনি DROPLINE কার্যকারিতা নামে পরিচিত যা সন্ধান করতে পারেন।

যদিও এটি আর্কিআইএনএসফো ওয়ার্কস্টেশন থেকে আরকজিআইএস ডেস্কটপ রূপান্তরে টিকেনি, এটি পুনরুদ্ধার করার জন্য বর্তমানে একটি আর্কজিআইএস আইডিয়া রয়েছে :

নির্দিষ্ট ক্ষেত্রের জন্য সমান মান রয়েছে এমন বহুভুজগুলির মধ্যে রেখাগুলি ফেলে দেওয়ার বিকল্পটি ভাল লাগবে। এই কার্যকারিতাটি ড্রপলাইন কমান্ড হিসাবে আর্কপ্লটে উপলব্ধ ছিল এবং দ্রবীভূত কমান্ড দিয়ে একটি নতুন ডেটাসেট তৈরি এড়ানোর উপায় হিসাবে ব্যাপকভাবে ব্যবহৃত হয়েছিল।


0

আপনি ST_UNIONলেয়ারের সমস্ত বহুভুজকে (বা বহুভুজের বহু গ্রুপকে বৃহত্তর বহুভুজের মধ্যে) একত্রিত করতে আপনি QGIS DB ম্যানেজারের পোস্টজিআইএস- এ ফাংশনটি ব্যবহার করতে পারেন । ডকুমেন্টেশন থেকে:

ভেরিয়েন্ট 2 একটি সামগ্রিক ফাংশন যা জ্যামিতির একটি সেট নেয় এবং এগুলিকে একটি একক ST_ জ্যামিতিতে পরিণত করে যার ফলস্বরূপ কোনও ছেদকৃত অঞ্চল হয় না

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