পোস্টজিআইএস-এ জ্যামিতির দ্বারা দলবদ্ধ করা ঠিক আছে কি?


17

জ্যামিতির দ্বারা গ্রুপ করা ঠিক আছে কি?

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

SELECT
  n.nbhd_id
  , count(*) AS count_burglaries
FROM denver.crime AS c
  JOIN denver.neighborhoods AS n
    ON ST_Intersects(c.geom, n.geom)

WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id

বহু পদক্ষেপটি গণনা কোয়েরিতে ফিরে জ্যামিতিতে যোগদানের জন্য দ্বিতীয় পদক্ষেপটি একটি সাব-কোয়েরিতে মোড়ানো:

SELECT

count.*
, n.nbhd_name
, n.geom
FROM (
SELECT
n.nbhd_id
, count(*) AS count_burglaries
FROM denver.crime AS c
JOIN denver.neighborhoods AS n
ON ST_Intersects(c.geom, n.geom)

WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id

) AS count

JOIN denver.neighborhoods AS n
ON count.nbhd_id = n.nbhd_id

তবে মনে হয় আপনি গ্রামীণে জ্যামিতিও ব্যবহার করতে পারেন:

SELECT
n.nbhd_id
, n.nbhd_name
, n.geom

, count(*) AS count_burglaries
FROM denver.crime AS c
JOIN denver.neighborhoods AS n
ON ST_Intersects(c.geom, n.geom)

WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id, nbhd_name, n.geom

GROUP এ জ্যামিতি সহ কী কোনও সঠিক পদ্ধতির মাধ্যমে রয়েছে?


কী GROUP BYলাভ তোমার? এটি কি একটি অনন্য কী দ্বারা যোগদানযোগ্য নয় nbhd_id? আপনি বাছাইকে আরও বিস্তৃত করছেন যা রানটাইম বাড়িয়ে তোলে, সম্ভবত পরবর্তী যোগদানের চেয়ে আরও বেশি দ্বারা।
ভিনস

1
এটি আমাকে এনবিএইচডি_আইডিতে যোগদানের জন্য উপ-কোয়েরি হিসাবে গণনা কোয়েরিটি আবদ্ধ করতে দেয় না - যদি এটি জ্যামিতির দ্বারা গ্রুপে রানটাইম বৃদ্ধি করে, তবে এটি না করার সম্ভাব্য কারণ, আপনি কি বলবেন না?
DPSSpatial

উত্তর:


18

এক্ষেত্রে জ্যামিতির দ্বারা গ্রুপিংয়ের ক্ষেত্রে অবশ্যই কোনও ভুল নেই, কারণ আপনি ইতিমধ্যে একটি অনন্য আইডি ( nbhd_id) দিয়ে গ্রুপ করছেন । এবং, যেমন আপনি উল্লেখ করেছেন, এটি আপনাকে একটি যোগদান রক্ষা করে এবং কোয়েরিটিকে আরও পরিষ্কার করে তোলে।

এটি জেনে রাখা জরুরী যে GROUP BY geomপোস্টজিআইএস ২.৩ এর একটি ধারা এবং এর আগে আসলে জ্যামিতিক সাম্য নয়, বাউন্ডিং বক্সের সমতার উপর ভিত্তি করে সারিগুলি গোষ্ঠীভুক্ত করা হয়েছে। আসল, অ-স্বাক্ষরিত ডেটা সহ, এটি প্রায়শই জ্যামিতিক সমতাতে গ্রুপিংয়ের মতো একই প্রভাব ফেলে (এবং আরও দ্রুত) তবে একাধিক স্বতন্ত্র বহুভুজের একই সীমানা বাক্স থাকাকালীন প্রত্যাশিত ফলাফল পাওয়া যায় না। পোস্টজিআইএস ২.৪ থেকে শুরু GROUP BYকরে, জ্যামিতির সমারোহণের দৃ definition ় সংজ্ঞা নিয়ে কাজ করে, জ্যামিতির সূচনা পয়েন্ট এবং দিকনির্দেশকে বিবেচনা করে।

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


পলের এই নিবন্ধটিতে কি এই উত্তরের কোনও পরিবর্তন আছে? blog.cleverelephant.ca/2017/09/postgis-operators.html
DPSSpatial
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.