একটি বহুভুজের অভ্যন্তরে গ্রিড কীভাবে তৈরি করা যায় যা দীর্ঘতম দিকের সাথে ওরিয়েন্টেড হয়?


13

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

এটি হ'ল ডিফল্ট সরঞ্জাম উপরের চিত্রটি ডিফল্টরূপে সরঞ্জামটি রাখে।

এখানে চিত্র বর্ণনা লিখুন এটি একটি গ্রিডের একটি চিত্র যা প্রয়োজনীয় পরামিতিগুলি ফিট করার জন্য ম্যানুয়ালি সম্পাদনা করা হয়েছিল।

আমার প্রশ্ন হ'ল, গ্রিডগুলি তৈরি করার কোনও উপায় কি স্বয়ংক্রিয় ফ্যাশনে দ্বিতীয় চিত্রের মতো একত্রিত হয়? কয়েক হাজার বহুভুজের জন্য আমার গ্রিড তৈরি করতে হবে।


1
বহুভুজগুলি কি 4 টি প্রান্তযুক্ত আয়তক্ষেত্রগুলি বা সাধারণ বহুভুজ? আমি আপনাকে এটি জিজ্ঞাসা করছি কারণ স্কোয়ারগুলি সংক্ষিপ্ত প্রান্তে প্রান্তিক হয় না বলে মনে হয়।
মিগরি

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


সম্পর্কিত হতে পারে: gis.stackexchange.com/questions/210461/…
AndreJ

উত্তর:


3

আপনি যদি কোনও ভেক্টর গ্রিড তৈরি করেন তবে আপনি Vector -> Research Tools -> Vector Gridঘূর্ণন কোণ নির্দিষ্ট করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


আমি ভেক্টর গ্রিড সরঞ্জামে কোনও ঘূর্ণন কোণ ইনপুট দেখতে পাচ্ছি না। এটি ভার্সন ২.১18.১7, 32 বিট উইন্ডোজ। আমি কিছু মিস করছি
jbgramm

আমি ছবিটি যুক্ত করেছি। আমি 2.14.18 64 বিট উইন্ডো ব্যবহার করছি
neogeomat

কোণের মানটি অন্য স্তর থেকে সরবরাহ করা যেতে পারে, সম্ভবত গ্রাফিক্যাল মডেলারে? এটি অনেকগুলি বহুভুজ রয়েছে বলে ওপির জন্য এটি আশাব্যঞ্জক, তবে ক্লান্তিকর দেখাচ্ছে।
জোশসি

1
@ জোশসি এটি ২.১৪-এ ফুলস প্লাগইনের অংশ ছিল, যা ২.১৮-তে কিছু প্রসেসিং স্ক্রিপ্টের পক্ষে বরখাস্ত হয়েছিল। জন্য দেখুন C:\Program Files\QGIS Essen\apps\qgis-ltr\python\plugins\fTools\tools\doVectorGrid.py। আশ্চর্যের বিষয় হল এটি QGIS 2.8 এ অন্তর্ভুক্ত ছিল না।
AndreJ

1
আমি এটির জন্য একটি রিগ্রেশন বাগ রিপোর্ট যুক্ত করেছি: મુદ્દাগুলি.কিগিস.আর.সি.সুইস
আন্দ্রেজে

1

কিউজিআইএস 2.18

@ Jbgramm @neogeomat দ্বারা প্রদত্ত উত্তরের মন্তব্য হিসাবে, আমরা কিউজিআইএস ২.১18 Rotation angleএর ভেক্টর গ্রিড সরঞ্জামটিতে বিকল্প দেখতে পাই না (@jbgramm দ্বারা পরীক্ষা করা ২.১৮.১৫-১,, এবং এটি ২.১18.১৮ সহ একই)।

এটি গ্রাস ভি.এম.কি.গ্রিড ফাংশন সহ আমাদের ছেড়ে দেয়।

এখানে চিত্র বর্ণনা লিখুন

উত্তরটি উত্তর থেকে ঘড়ির কাঁটার দিক থেকে পরিমাপ করা হয়। সুতরাং -30ছবিতে এন 30 ই এর দিকে ভিত্তি করে একটি গ্রিড তৈরি করা হয়েছে।


0

আমি কিউজিআইএস 3 এও এই সমস্যার মধ্যে পড়েছিলাম এবং স্ট্যাক ওভারফ্লোতে এই সমাধানটি পেয়েছি

মূলত ধারণাটি বহুভুজের উপর কোণ প্রয়োগ করা হবে যার ভিত্তিতে গ্রিডটি তৈরির আগে সীমাটি নির্ধারণ করা হয়েছে । যদি আপনার বহুভুজের আয়তক্ষেত্র না হয় তবে আপনার বহুভুজের সীমানা থেকে আপনাকে একটি স্তর তৈরি করতে হবে এবং তারপরে এটি ঘোরানো হবে। তারপরে আপনি এই নতুন মাত্রা অনুসারে গ্রিডটি তৈরি করতে পারেন এবং তারপরে আপনার বহুভুজ এবং গ্রিডটি মূল বহুভুজ পরিমাণে ফিরিয়ে আনতে পারেন। উভয় স্তরগুলিতে একই x, y স্থানাঙ্কনটি অ্যাঙ্কর পয়েন্ট হিসাবে ব্যবহৃত হয় তা নিশ্চিত করার সময় All

#Define extent of Polygon
ext = QgsVectorLayer('path_to_polygon.shp', '', 'ogr' ).extent()
xmin = ext.xMinimum()
xmax = ext.xMaximum()
ymin = ext.yMinimum()
ymax = ext.yMaximum()
coords = "%f,%f,%f,%f" %(xmin, xmax, ymin, ymax)

#Define The angle of rotation. Change value to yours
azimut = 70.043

#define anchor point for rotation
anchor = "%f, %f" % (xmin, ymax)

#define x and y spacing of grid. Update to your desired spacing.
x = 3
y = 6

#create new polygon from extent
processing.run("native:extenttolayer", {'INPUT':coords,'OUTPUT':'Path_to_Output.shp'})

#Rotate Extent
processing.run("native:rotatefeatures", {'INPUT': 'Path_to_extent_Polygon.shp','ANGLE': azimut,'ANCHOR':anchor + '[EPSG:4326]','OUTPUT': 'Path_to_rotated_extent.shp'})

#Define extent of Rotated Polygon 
ext1 = QgsVectorLayer('Path_to_Rotated_Extent.shp', '', 'ogr' ).extent()
xmin1 = ext1.xMinimum()
xmax1 = ext1.xMaximum()
ymin1 = ext1.yMinimum()
ymax1 = ext1.yMaximum()
coords1 = "%f,%f,%f,%f" %(xmin1, xmax1, ymin1, ymax1)

#Create grid 
processing.run("qgis:creategrid", {'TYPE':0,'EXTENT': coords1 +'[EPSG:4326]','HSPACING':x,'VSPACING':y,'HOVERLAY':0,'VOVERLAY':0,'CRS':'EPSG:4326','OUTPUT': 'Path_to_grid.shp'})

#Rotate Grid to original extent
processing.run("native:rotatefeatures", {'INPUT': 'path_to_grid.shp','ANGLE': - 
azimut,'ANCHOR':rotate + '[EPSG:4326]','OUTPUT': 'path_to_rotated_grid.shp'})

# Clip Grid to Original Polygon
processing.run("native:clip", {'INPUT':'path_to_rotated_grid.shp','OVERLAY': 
'path_to_original_Polygon.shp','OUTPUT':'path_to_final_grid.shp'})
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.