সর্বাধিক প্রস্থ / উচ্চতা অনুপাত সহ "তির্যক বাউন্ডিং বক্স" তৈরি করছেন?


13

আমি নীচের ছবিতে প্রদর্শিত ইনপুট বৈশিষ্ট্যগুলির একটি সেট থেকে ম্যাক্সিয়ামিয়াম প্রস্থ / উচ্চতা অনুপাত ("তির্যক বাউন্ডিং বাক্স") সহ একটি পার্শ্ববর্তী আয়তক্ষেত্র তৈরি করতে চাই:

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

যেমন পোস্টজিআইএস ফাংশন ST_Envelopeএবং ST_Box2Dসেইসাথে এফএমই ট্রান্সফর্মার BoundingBoxReplacerএবং BoundingBoxAccumulatorঅক্ষ সমান্তরাল বাউন্ডিং বাক্স তৈরি করে।

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


না একটি সঠিক নকল, কারণ লোক একটি সমাধান FME বা PostGIS মধ্যে প্রযোজ্য চাওয়ার করা হয় না। তবুও, উপরে বর্ণিত প্রশ্নের উত্তরে উল্লেখ করা পাইথন স্ক্রিপ্টটি এফএমই পাইথনক্যালার ট্রান্সফর্মারটিতে রাখা বেশ কার্যকর। আমার যদি ওয়ার্কস্পেস চলমান থাকে, আমি কিছুটা পরিবর্তিত স্ক্রিপ্ট সহ একটি সমাধান পোস্ট করব।
জোচেন শোয়ার্জে

এটি কেবল একটি নকলই নয়, তবে রেফারেন্সযুক্ত প্রশ্নটি গ্রহণ করা হয়নি, এবং এটি কোন অ্যালগরিদম ব্যবহার করে এবং এটি সঠিক বা না তা নিয়ে কোনও উত্তর নেই।
জন পাওয়েল

আমার উত্তর নীচে দেখুন। আপনার এফএমইতে সক্ষম হতে হবে। আপনি কি সংস্করণ ব্যবহার করছেন?
ফেজার

উত্তর:


9

এটি সম্ভবত প্রসেসিংয়ের সম্মুখভাগে ওভারকিল এবং সম্ভবত আরও ভাল গাণিতিক সমাধান হতে পারে, তবে এটি একটি উপায়ের উদাহরণ হিসাবে যা এটি করা যেতে পারে কেবল প্রশ্ন হিসাবে

SELECT 
   id, rotated_by, oblique_bound
  FROM 
     (
     SELECT 
        m.id,
        r rotated_by, 
        ST_Rotate(ST_Envelope(ST_Rotate(m.geom, r)),-r) oblique_bound,
        row_number OVER (PARTITION BY id) 
                   ORDER BY ST_Area(ST_Rotate(ST_Envelope(ST_Rotate(m.geom, r)),-r))) N
       FROM 
          generate_series(0, 90, 0.1) N(r), my_table m
    ) s
WHERE N = 1;

এটি জ্যামিতিটি ঘোরায়, সীমানা তৈরি করে, 0 এবং 90 এর মধ্যে প্রতিটি দশকের দশকের জন্য ঘূর্ণনটিকে বিপরীত করে দেয় The ফলাফলটি তখন সর্বনিম্ন ক্ষেত্রের সাথে সীমাবদ্ধ বাক্স। অবশ্যই এটি করার সম্পূর্ণরূপে সঠিক উপায় নয় এবং আপনার প্রয়োজনীয়তার উপর নির্ভর করে এই সিরিজের ইনক্রিমেন্ট মানটির টুইঙ্কিংয়ের প্রয়োজন হতে পারে।


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

এবং অতিরিক্ত সুবিধা হিসাবে এটি আবর্তন কোণটি সংরক্ষণ করে :-)
জোচেন শোয়ার্জেজ

6

কিউজিআইএস-এর একটি "ন্যূনতম ওরিয়েন্টেড বাউন্ডিং বক্স" অ্যালগরিদম রয়েছে যা ঠিক এটি করে।


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

আমি অনুমান করি এটি কিউজিআইএস ২.১৪ এর বাইরে, কারণ আমি এখনও এটি এখানে ব্যবহার করছি এমন ২.১৪.১৫ এলটিআর তে খুঁজে পাইনি?
জোচেন শোয়ার্জেজ

@ জোচেনস্কোয়ারজে এটি কিউজিআইএস ২.১৪.১৯-তে বিদ্যমান রয়েছে। প্রসেসিং সরঞ্জামবক্সে আপনাকে অনুসন্ধান করতে হবে। সরাসরি, আপনি এটি অধীন খুঁজে পেতে পারেনProcessing toolbox -> QGIS geoalgorithms -> Vector General tools -> Oriented minimum bounding box
আহমাদনব

4

সীমান্ত বক্স replacer ট্রান্সফরমার, যা আপনি উল্লেখ এই কাজ করতে সক্ষম হওয়া উচিত। ডকুমেন্টেশন অনুযায়ী এটি,

বৈশিষ্ট্যের জ্যামিতিকে এর দ্বিমাত্রিক বাউন্ডিং বাক্স বা তার দ্বিমাত্রিক নূন্যতম ওরিয়েন্টেড বাউন্ডিং বাক্সের সাথে প্রতিস্থাপন করে।

প্যারামিটারটি আপনাকে অক্ষ-এলজিনযুক্ত বা পুনঃলিখনী বাউন্ডিং বাক্স চয়ন করতে দেয়।

স্পষ্টতই, ওরিয়েন্টেড বাউন্ডিং বক্সের দীর্ঘতর দিকের কোণটি অন্তর্ভুক্ত করার জন্য একটি প্রস্তাবিত বর্ধন রয়েছে। এটি নিরাপদ নম্বর PR # 53924।

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