আর্কজিআইএস ডেস্কটপে বহুভুজ হিসাবে রাস্টার চিত্রের সীমাটি পাচ্ছেন?


28

আমার অর্কজিআইএস ডেস্কটপে একটি আয়তক্ষেত্রাকার রাস্টার চিত্র রয়েছে।

আমি কীভাবে একটি বহুভুজ উত্পাদন করতে পারি যা রাস্টার ইমেজের মাত্রার সীমা?

এটি হ'ল আমি চাই একটি একক চতুর্ভুজযুক্ত বহুভুজ স্তর যা ইমেজের প্রান্ত is

আমি কেবল একটি রাস্টার-> বহুভুজ রূপান্তর করার চেষ্টা করেছি, তবে এটি রূপরেখা তৈরি করতে চিত্রের ডেটা ব্যবহার করার চেষ্টা করে - আমি যা চাই তা ইমেজের প্রান্তের বাহ্যরেখা।

আমি আরকিজিআইএস ডেস্কটপ 10 ব্যবহার করছি।

উত্তর:


33

আপনার যদি স্থানীয় বিশ্লেষক থাকে তবে আপনি এটি করতে পারেন:

  1. রাস্টার ক্যালকুলেটর ব্যবহার করে একটি ধ্রুবক মানের রাস্টার তৈরি করতে রাস্টারকে 0 দিয়ে গুণ করুন। (এটি পূর্ণসংখ্যার ধরণে রূপান্তর করতে নিশ্চিত হন বা পদক্ষেপ 2 কাজ করবে না)
  2. রাস্টার থেকে বহুভুজ সরঞ্জাম ব্যবহার করে প্রথম ধাপের ফলাফলটি বহুভুতে রূপান্তর করুন।

আরেকটি সমাধান:

আপনার যদি 3 ডি অ্যানালিস্ট লাইসেন্স থাকে তবে আপনি রাস্টার থেকে 3D বিশ্লেষক> রূপান্তর> এর অধীনে রাস্টার ডোমেন সরঞ্জামটি ব্যবহার করতে পারেন (তবে এটির মসৃণ কার্যকারিতা নেই)


12

আপনার রাস্টার ডেটার সমান পরিমাণে বহুভুজ তৈরি করতে আপনি 3D বিশ্লেষক থেকে রাস্টার ডোমেন সরঞ্জামটি ব্যবহার করতে পারেন


জিআইএস এসই তে আপনাকে স্বাগতম! আপনি দয়া করে আপনার উত্তরে রেফারেন্স যুক্ত করতে পারেন? এইভাবে এটি আরও শক্ত হবে।
আর কে

রাস্টার ডোমেন সরঞ্জামটি কাজটি করেছে, পুরোপুরি! রাস্টার ডেটার একটি রূপরেখা বা সীমানা তৈরি করে।

1
এই সরঞ্জামটি সম্পর্কে সতর্কতার একটি শব্দ - সীমাবদ্ধ বহুভুজ যা তৈরি হয়েছে তা হল আপনার রাস্টার ডেটা পিক্সেল সেন্টারে শুরু এবং শেষ হবে, পিক্সেলের বাইরের প্রান্ত নয়। আমি এটি চেষ্টা করেছি এবং ভেবেছি এটি রাস্টারটির বাইরের বাউন্ডিং বাক্সটি ফিরে পেয়েছে তবে আপনি যখন জুম করবেন তখন আপনি দেখতে পাবেন যে সীমাবদ্ধ বাক্সটি পিক্সেল কেন্দ্রে শুরু হয়।
fbiles

আসলে IRasterDomainExtractor.ExtractDomain পদ্ধতির জন্য একটি প্যারামিটার রয়েছে যা এটি পিক্সেল / কোষের কেন্দ্র বা বাহ্যিক প্রান্তটি ব্যবহার করে কিনা তা নিয়ন্ত্রণ করে।
প্রেস্টন

এটি নিখুঁত! একটি সরঞ্জাম এবং আমার কাছে আমার রাস্টারটির বহুভুজ রূপরেখা রয়েছে। ধন্যবাদ!
ব্যবহারকারী 3281667

11

কীভাবে এটি ডিজিটালাইজিং সম্পর্কে? ক্লিক ক্লিক ক্লিক ক্লিক সম্পন্ন।


8
এই বিকল্পটি কেন ভোট দেওয়া হয়েছে তা সত্যই নিশ্চিত নয়। আপনি ব্যাপ্তি কোণগুলির স্থানাঙ্কগুলি সন্ধান করতে পারেন এবং সেই স্থানাঙ্কগুলিতে শীর্ষগুলি তৈরি করতে পারেন। এটি বিশ্লেষণের জন্যও ব্যবহার করা যেতে পারে। এটি যদি কেবল প্রদর্শনের জন্য হয় তবে ক্লিক ক্লিক ক্লিক দুর্দান্ত কাজ করে।
বালটোক

3
আমি বলব কারণ রাস্টারটি একটি অনিয়মিত আকার হতে পারে এবং জটিলতার উপর নির্ভর করে এক ক্লান্তিকর ডিজিটাইজিংয়ের কাজ করতে পারে
ফিল হেনলি

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

10

আপনি ডেটা ম্যানেজমেন্ট টুলবক্সে বিল্ড ফুটপ্রিন্ট সরঞ্জামটি ব্যবহার করতে পারেন। আপনাকে আপনার রাস্টার থেকে একটি মোজাইক ডেটাসেট তৈরি করতে হবে।

কোনও ফাইল জিওডাটাবেসে একটি নতুন মোজাইক তৈরি করুন, আপনার রাস্টার যুক্ত করুন।

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

এটাই আমি করতাম।


8

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

import arcpy,os

InFolder = arcpy.GetParameterAsText(0)
Dest=arcpy.GetParameterAsText(1)

arcpy.env.workspace=InFolder
#The raster datasets in the input workspace
in_raster_datasets = arcpy.ListRasters()

arcpy.CreateFeatureclass_management(os.path.dirname(Dest),
                                   os.path.basename(Dest),
                                   "POLYGON")
arcpy.AddField_management(Dest,"RasterName", "String","","",250)
arcpy.AddField_management(Dest,"RasterPath", "String","","",250)

cursor = arcpy.InsertCursor(Dest)
point = arcpy.Point()
array = arcpy.Array()
corners = ["lowerLeft", "lowerRight", "upperRight", "upperLeft"]
for Ras in in_raster_datasets:
    feat = cursor.newRow()  
    r = arcpy.Raster(Ras)
    for corner in corners:    
        point.X = getattr(r.extent, "%s" % corner).X
        point.Y = getattr(r.extent, "%s" % corner).Y
        array.add(point)
    array.add(array.getObject(0))
    polygon = arcpy.Polygon(array)
    feat.shape = polygon
    feat.setValue("RasterName", Ras)
    feat.setValue("RasterPath", InFolder + "\\" + Ras)
    cursor.insertRow(feat)
    array.removeAll()
del feat
del cursor  

এই কোডটি কীভাবে ব্যবহার করবেন তা আমাদের বিশদে জানাতে পারেন। আমি এটি .ac রাস্টার ফাইলটিতে ব্যবহার করতে চাই। আমার চিত্রগুলি আলাদা আলাদা সাব ফোল্ডার?
জিআইএস ডেটা কসাই

1
জেবের কাছ থেকে উত্তর আমার পক্ষে কাজ করেছে, তাকে ভোট দেওয়ার মতো পর্যাপ্ত প্রতিনিধি নেই। @ জিআইএস ডেটা বাচার সম্পূর্ণ উত্সটি একটি স্ক্রিপ্ট.পি ফাইলে সংরক্ষণ করুন এবং আর্কম্যাপের মধ্যে পাইথন উইন্ডো থেকে এটি চালান ute আপনি পাইথন উইন্ডোতে নিম্নলিখিত কমান্ডটি ফাইল থেকে স্ক্রিপ্ট চালানোর জন্য ব্যবহার করতে পারেন। > এক্সকিফিল (r'd: \ temp \ স্ক্রিপ্ট.পি ')
আসাদ

নিখুঁত !! আমি ভাবছি, উপ-ফোল্ডারগুলি পড়ার সরঞ্জামটির কি কোনও উপায় আছে?
রাফেল

@ ফ্যাফেল, অবশ্যই, আপনাকে কেবল স্ক্রিপ্টে স্ট্যান্ডার্ড পাইথন ওএস.লিস্টডির বা ওএসওয়াক প্রয়োগ করতে হবে।
jeb

@ জেব হ্যাঁ, আমি ধারণাটি পেয়েছি ... বট আমি এতে খুব নতুন, এবং এটি কাজ করতে পারিনি ... আপনি কি কিছু সহায়তা দিতে পারেন?
রাফেল

4

এছাড়াও, একটি সহজ উপায় হ'ল পুনরায় শ্রেণিবদ্ধকরণ সরঞ্জামটি ব্যবহার করা যেখানে আপনার বোতামটি শ্রেণিবদ্ধ করা উচিত এবং ক্লাসের সংখ্যা পরিবর্তন করতে হবে Ok ঠিক আছে ক্লিক করুন। এখন, আউটপুট রাস্টারকে রাস্টার ব্যবহার করে পলগন রূপান্তর সরঞ্জামটি সহজেই রূপান্তর করা যায়। ;)


4

আমি মনে করি যে পুনরায় শ্রেণিবদ্ধ এবং রাস্টারকে বহুভুতে রূপান্তর করা খুব বেশি সময় ব্যয়কারী হতে পারে। আমার মতে এটি করার সবচেয়ে সহজ উপায় হ'ল:

  • ম্যাক্সএক্স, ম্যাক্সওয়াই, মিনিট, মিনি
  • উপরের মতো সীমা এবং সারি / কলামের সংখ্যা হিসাবে সংখ্যাটি তৈরি করুন চালান

আপনার যদি প্রচুর রাস্টার থাকে তবে এটি পাইথনে করা উচিত এবং কয়েক সেকেন্ডের মধ্যে কয়েকশ পায়ের ছাপ তৈরি করতে পারে।


0

আরআরকিগ্ল্যাজে আপনি একটি জিডিবিতে ডেটার ক্যাটালগ তৈরি করতে পারেন (ডেটা ম্যানেজমেন্ট সরঞ্জাম-> রাস্টার)। অব্যবস্থাপনা ঠিক আছে। তারপরে রাইট ক্লিক এবং লোড করুন (যদি রাস্টাররা কেবল কোনও ফোল্ডারে বসে থাকেন তবে "ওয়ার্কস্পেস থেকে লোড করুন" Arc শেপ ফাইলটিতে রাস্টারের নাম সহ একটি 'নাম' ক্ষেত্র থাকবে।

রাস্টার ক্যাটালগটি স্বয়ংক্রিয়ভাবে এক্সটেন্টগুলি প্রদর্শন করবে তবে আমার কাছে এমন কাউকে এক্সটেন্টগুলি প্রেরণ করা দরকার যারা আরকজিআইএস ব্যবহার করছিল না।


0

রূপান্তর সরঞ্জাম সরঞ্জাম বাক্সে "রাস্টার টু পলিগন" সরঞ্জামটি ব্যবহার করুন। সরলিমূলক বহুভুজ বাক্সটি আনচেক করার বিষয়টি নিশ্চিত করুন। এটি আপনি যা চান ঠিক তা তৈরি করবে।


8
আপনি কি নিশ্চিত যে এটি কেবল বহুভুজের একটি বিশাল জগাখিচুড়ি তৈরি করে না, মূল চিত্রটিতে প্রতিটি মান সমান-মান পিক্সেলের জন্য?
হোবার

সীমাটি পলি পেতে আপনি এর পরে সর্বদা দ্রবীভূত করতে পারেন। যাইহোক, আমি @jb দ্বারা তালিকাভুক্ত অজগর সমাধানটি দ্রুততর করে তুলছি।
জিওজন

0

"রাস্টার ডোমেন" সরঞ্জাম অনিয়মিত আকারের রাস্টারকে ঘিরে একটি বহুভুজ তৈরি করবে will আমি বিশ্বাস করি এর জন্য 3 ডি বিশ্লেষক এক্সটেনশনের লাইসেন্স দরকার।


0

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


0

আপনি যদি কোনও ডিইএম রাস্টারটির বাহ্যরেখা পাওয়ার চেষ্টা করছেন তবে আপনাকে নিম্নলিখিতগুলি করতে হবে

আপনার যদি স্পেসিয়াল অ্যানালিস্ট এবং 3 ডি বিশ্লেষক থাকে তবে আপনি এটি করতে পারেন:

  1. রাস্টার ক্যালকুলেটর ব্যবহার করে একটি ধ্রুবক মানের রাস্টার তৈরি করতে রাস্টারকে 0 দিয়ে গুণ করুন।
  2. "INT (সরঞ্জাম)" ব্যবহার করে প্রথম ধাপের ফলাফলকে একজন রাস্টার পূর্ণসংখ্যায় রূপান্তর করুন। এটি পরবর্তী পদক্ষেপের জন্য প্রয়োজনীয়।
  3. রাস্টারকে পলিগন সরঞ্জাম ব্যবহার করে পদক্ষেপ 2 এর ফলাফলটি বহুভুতে রূপান্তর করুন (কেবল রাস্টার পূর্ণসংখ্যার সাথে কাজ করে)।

হাই Seamster02, জিআইএস স্ট্যাক এক্সচেঞ্জ আপনাকে স্বাগতম :) লিখিত হিসাবে এটি গ্রহণযোগ্য উত্তর, gis.stackexchange.com/a/22016/108 থেকে প্রশংসনীয়ভাবে পৃথক নয় ।
ম্যাট উইলকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.