أكثر

لا يستخدم PostGIS الفهرس المكاني مع ST_Intersects


لقد قمت باستيراد البيانات من خريطة الشارع المفتوح باستخدام osm2pgsql وقمت بنسخها بنية جدول أخرى. إذا قمت بإجراء استعلام لاحتواء صفوف باستخدام st_intersects أو st_contain أو أي شخص آخر ، فإن postgis لا تستخدم gist-INDEX. سيتم إجراء فحص تسلسلي دائمًا. إذا قمت بتصفية الصفوف أولاً باستخدام عامل التشغيل && - (bbox of geometries) ، فإن postgis يستخدم مؤشر gist لوظائف postgis. لا أفهم لماذا وأين المشكلة وكيف يمكنني تغيير ذلك.

لقد قمت هنا بإنشاء جدول مبسط للأصل (يمكنك أيضًا استخدام planet_osm_polygon للاستعلامات):

إنشاء جدول osm_addr2 (osm_id bigint ، هندسة الهندسة) ؛ إنشاء فهرس osm_addr2_geom ON osm_addr2 باستخدام جوهر (الهندسة) ؛

هنا قمت بإنشاء نموذج استعلام بسيط للغاية:

اشرح ANALYZE SELECT * من osm_addr2 AS addr حيث - addr.geometry && (SELECT geometry FROM osm_addr2 WHERE osm_id = -332537) و st_intersects (addr.geometry، (SELECT geometry FROM osm_addr2 WHERE osm_id) = -33

باستخدام st_intersects فقط ، لدي النتيجة التالية (السطر الأول فقط):

مسح تسلسلي على عنوان osm_addr2 (التكلفة = 24.50 ... 336.10 صفًا = 387 عرض = 40) (الوقت الفعلي = 0.001 ... 0.001 صف = 0 حلقات = 1)

إذا ألغيت التعليق على عامل التشغيل && - فسيتم استخدام الفهرس (السطر الأول فقط):

مسح الفهرس باستخدام osm_addr2_geom على osm_addr2 addr (التكلفة = 49.15 ... 57.41 صفًا = 1 عرض = 40) (الوقت الفعلي = 0.031 ... 0.031 صفًا = 0 حلقات = 1)

أنا أستخدم postgresql 9.3 مع postgis 2.1 ، راجع postgis_full_version ():

POSTGIS = "2.1.4 r12966" GEOS = "3.3.3-CAPI-1.7.4" PROJ = "الإصدار 4.7.1 ، 23 سبتمبر 2009" GDAL = "GDAL 1.9.0 ، الذي تم إصداره 2011/12/29" LIBXML = "2.8.0" LIBJSON = "غير معروف" راستر

يمكنني إعادة إنتاج هذا على Ubuntu 14.04 و Debian 7. آمل أن يتمكن أي شخص من المساعدة لأن استخدام مشغل التقاطع سيؤدي إلى تضخيم استفساراتي.


لقد اكتشفت أن إعادة ترتيب الاستعلام بحيث يكون الاستعلام الفرعي في نفس مستوى التحديد الأولي ، وهو منتج ديكارتي بشكل أساسي ، ولكن بعد ذلك باستخدام جملة where لتقييد السجلات التي تمت قراءتها ، سيؤدي إلى استخدام الفهارس وتجنب حدوث مسح كامل للطاولة.

حدد * من osm_addr2 AS addr ، (حدد الهندسة من osm_addr2 حيث osm_id = -332537) مثل addr2 WHERE st_intersects (addr.geometry، addr2.geometry) ؛

تحرير: بفضل MikeT للارتباط بالمستندات ذات الصلة و Jakub لتضمين مصطلح الوظيفة.

تحرير 2: أجد الآن أنه من الأفضل استخدام استعلامات CTE لهذا النوع من المشكلات ، حيث إنها أسهل في القراءة من الاستعلامات الفرعية ، ولها نفس التأثير فيما يتعلق باستخدام الفهرس المكاني للتقاطع المكاني.

مع addr2 (الهندسة) AS (حدد الهندسة من osm_addr2 حيث osm_id = -332537) حدد العنوان.

لا تستخدم PostgreSQL الفهارس للوظائف ، بل تستخدم الفهارس للمشغلين فقط. ما يحدث هو وظيفة مضمنة.ST_INTERSECTSيعرف ب:

إنشاء أو استبدال وظيفة ST_Intersects (هندسة 1 ، هندسة geom2) إرجاع منطقية كـ 'SELECT $ 1 && $ 2 AND _ST_Intersects ($ 1، $ 2)' LANGUAGE 'sql' IMMUTABLE؛

وبالتالي تتم إعادة كتابة الاستعلام لاستخدام الفهرس للتحقق من المربعات المحيطة وتضييق نطاق النتيجة ثم التحقق مرة أخرى. أفضل تخميني هو أنه مع استعلام فرعي لا يحدث ذلك (ربما لأن نتيجة الاستعلام الفرعي غير معروفة في هذه المرحلة).


لاحظ أن المخططين يواجهون صعوبة في الاستعلامات الفرعية ، ويمكن إعادة كتابة المثال الخاص بك بدون استعلامات فرعية. يجب أن يبدو الاستعلام المسطح كما يلي:

حدد A. * من osm_addr2 AS addr ، osm_addr2 AS POI WHERE POI.osm_id = -332537 AND ST_Intersects (addr.geometry، POI.geometry) ؛

يوجد مثال ذي صلة في الدليل (آخر مثالين من SQL) ، حيث يتم طي استعلام فرعي إلى استعلام رئيسي بواسطة المخطط ، وهو نفس المثال إذا نظرت إلى إجابة @ John.


نعم،ST_Intersectsيستخدم الفهرس المكاني

انظر إلى هذه الإجابة للحصول على شرح جيد.

للاستعلام الخاص بك

الطريقة الصحيحة هي إعادة كتابة استعلامك بهذا الشكل

حدد * من osm_addr2 AS a1 حيث يوجد (حدد 1 من osm_addr2 AS a2 حيث ST_Intersects (a1.geometry ، a2.geometry) و a2.osm_id = -332537) ؛

هذا باستخدام بناء جملة SQL-92. إذا كنت تريد فهرسًا رائعًا جدًا عليه. استخدم فهرس مركب علىosm_idوالهندسة.

CREATE INDEX osm_addr2_geom ON osm_addr2 USING gist (osm_id، geometry) ؛

انطلاقًا من تكلفة وكمية الصفوف المقدر إرجاعها ، لم يكن الفهرس المكاني ضروريًا. على الأقل لم يعتقد المحسن أنه كان كذلك واختار مسحًا متسلسلًا بدلاً من ذلك. هل تعمل ببطء؟ كيف يمكن أن الصفوف تتوقع العودة؟ كم عدد الصفوف في الجدول إجمالاً؟ آسف إذا أغفلت ذلك في سؤالك ولكن في بعض الأحيان يكون الفحص الكامل أسرع.

تحقق من هذا. قد يساعد في شرح ما يجري. https://sdeintercept.wordpress.com/2014/12/18/postgresql-geodatabase-query-performance/


نهاية العام ليست سهلة بالنسبة لسانتا كلوز وجانبه. إنهم مشغولون للغاية بمحاولة تحضير الهدايا وتسليمها ...

في البرنامج التعليمي الأول انتهى بنا الأمر إلى كتابة استعلامات بسيطة مع البيانات الجغرافية المكانية باستخدام PostgreSQL و PostGIS. سمح لنا هذا الامتداد القوي بإضافة سياق جغرافي مكاني إلى بياناتنا وتحليلها من منظور مختلف تمامًا ، مثل حساب المسافة بين العناصر ، وربط الجداول بناءً على موضع الكائنات وغير ذلك الكثير. كانت المشكلة التي واجهناها هي وقت تنفيذ الاستعلامات حتى على مجموعة البيانات الصغيرة ، على سبيل المثال ال المشكلة 2 مع ربط جغرافي مكاني لجدولين (3500 و 250 صفًا) من آخر مشاركة استغرق حوالي 3.5 ثوانٍ حتى نهايتها. نظرة سريعة على نتيجة وظيفة التحليل التوضيحي توضح المشكلة.

بالنسبة لكل بلد ، تقوم قاعدة البيانات بإجراء مسح تسلسلي لجميع كائنات الأطفال التي تقوم بعملية معقدة للتحقق مما إذا كان موقع childrens.geom داخل countries.geom أم لا ، مما يعطي 864 & # x27690 عمليات تحقق. هل يمكننا أن نجعلها أسرع؟ نعم نستطيع ، دعونا نضيف فهارس!


أفضل قاعدة بيانات جغرافية مكانية مفتوحة المصدر ومجانية هي في رأيي PostGIS. إنه سهل الاستخدام ولديه مجموعة دعم ضخمة (أيضًا على سبيل المثال على https://gis.stackexchange.com/)

كما أنه يتصل بجميع أنواع البرامج المختلفة مفتوحة المصدر وواجهات الويب التي يجب أن تجعل تحرير البيانات وعرضها ومشاركتها أمرًا سهلاً.

يمكنه التعامل مع خط التاريخ والأعمدة:

أتفق مع Speissburger في أن PostGIS (امتداد لـ Postgre) تتمتع بدعم جيوفضائي ممتاز. في عالم المصادر المفتوحة ، ستكون هذه أيضًا توصيتي. (تدعي MySQL أن لديها بعض الدعم الجغرافي المكاني لكنها محدودة للغاية في القدرات)

للتأكد من اكتمالها ، يتمتع خادم Microsoft SQL Server أيضًا بدعم جيغرافي مكاني جيد - أعتقد أنه تم تقديمه كامتداد لـ SQL Server 2008 ، ثم كمعيار بعد ذلك. لقد سمعت أن Oracle لديها أيضًا دعمًا جغرافيًا مكانيًا جيدًا ، على الرغم من أنني لم أستخدمه مطلقًا.


المكتبات العامة والحرمان

أصدرت حكومة المملكة المتحدة يوم الأربعاء ، 30 سبتمبر 2015 ، مؤشرات الحرمان الإنجليزية المحدثة لعام 2015.

بالنسبة لـ 32844 منطقة محددة في إنجلترا ، تم إعطاء مرتبة الحرمان (1 هي الأكثر حرمانًا ، و 32844 هي الأقل) ، في 7 مناطق فئات مختلفة. هؤلاء هم:

  • دخل
  • توظيف
  • التعليم والمهارات والتدريب
  • الحرمان الصحي والعجز
  • جريمة
  • معوقات السكن والخدمات
  • البيئة المعيشية

يتم حساب العشر لكل منطقة عن طريق ترتيب كل 32،844 في عشر مجموعات وتعيين قيمة من 1 إلى 10 لكل منها (مع كون 1 ضمن الأكثر حرمانًا و 10 ضمن الأقل). تُستخدم الفئات السبع أيضًا لإنشاء "فهرس متعدد للحرمان" ، مما يعطي مؤشرًا واحدًا من 1 إلى 10 لكل منطقة.

في البيانات المتعلقة بالمكتبات العامة باللغة الإنجليزية ، تم أيضًا تضمين مؤشر الحرمان بشكل ملحوظ في بيانات استطلاع DCMS أخذ جزء ، مع توزيع المستجيبين بالتساوي إلى حد ما عبر مؤشرات الحرمان العشرة.

المناطق الجغرافية هي "مناطق المخرجات الفائقة للطبقة الدنيا" (LSOAs) ، التي حددها مكتب الإحصاءات الوطنية لإنشاء مجموعة من المناطق القابلة للمقارنة بناءً على عدد الأشخاص (بين 1000 و 3000) والأسر (400 - 1200). يمكن تنزيل البيانات كبيانات مكانية ، مع توفير المناطق كمضلعات (توفير خطوط الحدود).

توفر المؤشرات وما يرتبط بها من LSOAs طريقة لمقارنة المناطق عبر الدولة. يمكن دمجها مع مجموعات البيانات الأخرى التي تستخدم نفس المناطق ، مثل تقديرات السكان ، وعمر السكان ، والدين ، وما إلى ذلك. عند تقييم خدمات المجلس ، تتوقع القليل جدًا من التقييم الذي يتم إجراؤه في منطقة معينة دون الرجوع إلى تلك القيم التقديرية و مؤشرات الحرمان الخاصة بهم.

مكتبات في المناطق المحرومة

بالنسبة للمكتبات ، قد يكون أحد الاعتبارات المهمة هو إمكانية الوصول إلى المكتبة للمناطق الأكثر حرمانًا (أولئك الذين هم في أمس الحاجة إليها). ولكن خارج قوائم السلطة الفردية ، لا توجد قائمة شاملة للمكتبات ، أو على وجه الخصوص التي توجد بها LSOAs.

باستخدام مجموعة بيانات أقدم ، على الرغم من أنها لا تزال حديثة نسبيًا ، تضمنت قائمة المكتبات الموجودة على data.gov.uk (نُشرت آخر مرة في عام 2012) مواقع المكتبات.

باستخدام هذه البيانات ، جنبًا إلى جنب مع مناطق LSOA المحددة ، ومؤشرات الحرمان لتلك LSOAs ، من الممكن إجراء بعض التحليلات حول المناطق التي تميل المكتبات العامة إلى التواجد فيها ، من حيث الحرمان.

كارتو

Carto هي خدمة خرائط وبيانات مدفوعة الأجر توفر خيارًا مجانيًا لاستخدام صغير نسبيًا (بحد أقصى 250 ميجا بايت). يغطي هذا بشكل عام الاستخدام الشخصي. الخدمة مبنية على PostGIS ، وهي قاعدة بيانات مفتوحة المصدر متخصصة في استعلام نظم المعلومات الجغرافية (GIS). يمكن إجراء التحليل مباشرة على قاعدة بيانات PostGIS ، لكن كارتو لديه واجهة ويب ملائمة ، ويتضمن أيضًا العديد من التصورات المبهرجة للخرائط مثل الخرائط التصحيحية (المناطق الملونة / المظللة).

يمكن تحميل ثلاث مجموعات من البيانات إلى كارتو: مؤشرات الحرمان لعام 2015 ، وبيانات مضلع LSOA ، وبيانات نقطة المكتبات.

  1. عندما يتم تحميل مناطق LSOA ، سيتعرف Carto على بيانات GIS ويتضمن أكواد LSOA كبحث مقابل المضلعات الجغرافية.
  2. ثم يتم تحميل المؤشرات التي تتضمن أيضًا رموز LSOA.
  3. ثم يتم تحميل بيانات نقاط المكتبة.

تصبح مجموعات البيانات الموجودة في Carto ثلاثة جداول قاعدة بيانات يمكن الاستعلام عنها وضمها. نظرًا لأنه يتم بناؤه باستخدام PostGIS ، فإن هذه الاستعلامات تتضمن القوة الكاملة لـ SQL المكاني.

على سبيل المثال ، يمكن كتابة استعلام SQL يحسب عدد المكتبات لكل فئة عشرية من فهرس الحرمان:

الجزء المكاني من الاستعلام أعلاه هو ST_Intersects fuction ، وهو حساب ما إذا كانت المكتبة تقع ضمن حدود LSOA. على الرغم من عدم وجود رابط مباشر في بيانات المكتبة إلى LSOAs ، إذا كان الموقع معروفًا ، فيمكن للاستعلام المكاني إنشاء هذا الارتباط. تم تسمية الجداول الثلاثة في المثال أعلاه المكتبات (مواقع المكتبة) ، حرمان المؤشرات (مؤشرات 2015) ، و lsoas2011 (حدود LSOA). بالتجميع حسب فهرس عشري الحرمان المتعدد (IMDDecile) ، يمكن إرجاع مجموع المكتبات الإجمالية لكل عشري.

فهرس عشري الحرمان المتعدد مكتبة العد
1 424
2 367
3 354
4 324
5 300
6 319
7 296
8 255
9 311
10 248

يبدو منتشر بالتساوي إلى حد ما. لذلك لا يوجد الكثير للإبلاغ عنه هناك. بالنظر إلى البيانات بطريقة أخرى ، ما هي LSOAs التي تحتوي على معظم المكتبات (وما هو مؤشر الحرمان المتعدد المرتبط)؟

اسم LSOA فهرس عشري الحرمان المتعدد مكتبة العد
ريتشموند أبون تيمز 008B 8 3
وستمنستر 023E 4 3
مدينة لندن 001F 7 3

أو ابحث عن المكتبات في أكثر المناطق حرمانًا.

مؤشر مرتبة الحرمان المتعدد اسم المكتبة
3 مكتبة بلاكبول المركزية
33 مكتبة القمح
34 مكتبة مركز الحرية
34 مكتبة مارفلت

في الحالة المذكورة أعلاه ، نستخدم الترتيب وليس العشري ، لذلك يمكننا أن نرى مكتبة بلاكبول المركزية في ثالث أكثر المناطق حرمانًا. وباستبدال ASC مع تنازلي (لاستخدام ترتيب تنازلي بدلاً من تصاعدي) ، فهذا يعطي المناطق الأقل حرمانًا:

مؤشر مرتبة الحرمان المتعدد اسم المكتبة
32843 مكتبة Wargrave
32837 مكتبة بينفيلد
32819 مكتبة مجتمع لونغ كريندون
32803 مكتبة بيرخامستد

على الرغم من كونه لا يتجاوز عمره بضع سنوات ، إلا أن بيانات المكتبة سرعان ما تبدأ في إظهار عدم الدقة والقيود - سيتم الآن إغلاق بضع مئات من هذه المكتبات. يعد وجود مجموعة وطنية شاملة من مواقع المكتبات أمرًا ضروريًا ليس فقط للاستخدامات الواضحة ، مثل تتبع الإغلاق ، ولكن لتحليل البيانات الحقيقية ، وفهم كيفية تأثير المكتبات على الحرمان في منطقتهم المباشرة ، من خلال الدمج مع مصادر البيانات الأخرى.


عمليات FME في PostGIS

& # x27m غير متمرس إلى حد كبير مع البيانات الجغرافية المستندة إلى SQL. الآن أنا & # x27m أعاني من التمرين الذي أواجهه وأتساءل عما إذا كانت عمليات postgresql / postgis مساوية لـ FME Operations ChangeDetector و Matcher و SpatialFilter

هل توجد عمليات postgis للوصول إلى نفس الحل؟

لقد قمت بقشط ملف pdf ويبدو أنه ممكن مع postgresql / postgis ، لكن الأمر & # x27ll يتطلب مزيدًا من العمل ، حيث يتعين عليك & # x27d إنشاء وظيفتك الخاصة أو العثور على وظيفة قام بها شخص آخر.

هذا شيء جمعته معًا بسرعة (لقد اختبرته لم & # x27t ، لكنني أعتقد أنه يجب أن يعمل ، لا تلومني إذا لم يكن & # x27t ، هاها)

إنشاء أو استبدال أداة مطابقة الوظيفة (_input_one regclass ، _input_two regclass)

& # x27 - حيث يكون foo / bar.geom هو اسم عمود الهندسة الخاص بك

- يفترض هذا أيضًا أن أشكال الإدخال تحتفظ بنفس الحدود

ما عليك سوى نسخ ذلك ولصقه في نافذة الاستعلام واستخدامه عن طريق فتح نافذة استعلام sql جديدة وكتابة:

حدد المطابق (شكل 1 ، شكل 2).

تبدو الوظائف الأخرى فقط كمجموعة من ما إذا كان الشكل الأولي يتقاطع مع الشكل الثاني أم لا ، بحيث يمكنك إنشاء باقي الوظائف عن طريق تغيير عبارة WHERE.

أيضًا ، أضفت & # x27m عمود تغيير الحالة للاحتفاظ بحالة التغيير ، قد تضطر إلى إزالة / تغيير هذا الجزء للعمل مع بياناتك.

لا أعرف كيفية تنسيق جزء الكود بشكل جيد بما فيه الكفاية على reddit. لكن يجب أن تفهم جوهر ما أحاول قوله.

هناك & # x27s ثلاث عمليات مختلفة.

بالمناسبة ، يجب أن تطرح هذه الأنواع من الأسئلة على gis.stackexchange ، ولكن على أي حال.

يقارن Change Detector بين مجموعتي بيانات وفقًا للسمات التي تختارها ، و / أو الشكل الهندسي ، ويمرر ميزات & # x27same & # x27 ، & # x27different & # x27 ، & # x27new & # x27 و & # x27removed & # x27.

أعتقد أن المطابق هو نفسه كاشف التغيير.

يشبه الفلتر المكاني قول & # x27select أين table1.geom.STIntersects (table2.geom) & # x27 أو STTouches أو أي من العلاقات المكانية القليلة ، لذلك من السهل جدًا تحقيقه في PostGIS. انظر هنا للحصول على تفاصيل حول الوصلات المكانية ، والتي يمكنك استخدامها كاختبارات أيضًا.

الفرق هو أن PostGIS تفعل كل شيء على البيانات بالمعنى المباشر. تقوم FME بالأشياء في مقتطف ، وترجمة ، وإحساس بالحمل ، بحيث تقوم بسحب جميع البيانات ، وتجادلها ، ثم دفعها مرة أخرى. نموذج مختلف ، وهناك & # x27s وقت ومكان لكلتا العمليتين. إذا كنت تريد ETL مكاني مفتوح المصدر ، فجرّب GeoKettle.


دعوة للتعليقات والدعوة للمشاركة

تم إجراء "HSR Texas Spatial Database Benchmark" والتحقق منه لأول مرة في ديسمبر 2009 خلال ندوة ماجستير نظمها معهد البرمجيات في HSR. تم اختيار اثنين من برامج أنظمة إدارة قواعد البيانات (DBMS) ، أحدهما متاح تجاريًا (Microsoft SQL Server 2008 Spatial) والآخر بموجب ترخيص مفتوح المصدر (PostgreSQL 8.4.1 / PostGIS 1.4.0). يتم تقييم النتائج حاليًا ومن المحتمل أن يتم نشرها في عام 2010.

قد يكمل هذا البحث إجراءان من الباحثين والمتطوعين:

  • أرسل تعليقاتك على "HSR Texas Spatial Database Benchmark" نفسها.
  • قم بإجراء مزيد من التجارب على نظم إدارة قواعد البيانات الموجودة.

نحن نتطلع إلى مناقشة مثمرة!


التحليل المكاني

يستكشف هذا المقرر الدراسي موضوعات نظام المعلومات الجغرافية (GIS) وكيفية الاستعلام عن بيانات GIS وتحليلها في بيئة قاعدة البيانات في BigQuery GIS. سنبدأ بتحديد ماهية نظم المعلومات الجغرافية ، ومناقشة بعض مفاهيم نظم المعلومات الجغرافية الرئيسية ، وتقديم بعض أنواع بيانات نظم المعلومات الجغرافية الشائعة.

سننتقل بعد ذلك إلى الأنواع الشائعة من الخرائط ونقدم مفهوم إسقاطات الخرائط. ستحصل على مقدمة حول أداة BigQuery من Google ، وأخيرًا ، سنجمع كل هذه الموضوعات معًا وننظر في كيفية إجراء التحليل والتصور باستخدام SQL و Python جنبًا إلى جنب مع BigQuery GIS.

إذا كانت لديك حالة استخدام لتحليل البيانات الجغرافية المكانية ورسم خرائط لها أو تتوقع حدوثها في المستقبل ، خاصةً إذا كانت بياناتك بتنسيق علائقي (أو موجودة بالفعل في BigQuery) ، فهذه الدورة التدريبية مثالية لك!

لا تتردد في الاتصال بنا على [email protected] مع أي ملاحظات قد تكون لديك فيما يتعلق بهذه الدورة.

أهداف التعلم

  • تعرف على معلومات حول Google BigQuery GIS ومفاهيمه ، بالإضافة إلى تنسيقات بيانات GIS الشائعة
  • فهم الأنواع الشائعة للخرائط ومفهوم إسقاطات الخريطة
  • تعرف على وظائف الاستعلام المكاني والتصور المكاني
  • افهم كيف يمكن دمج BigQuery GIS مع Python

الجمهور المستهدف

هذه الدورة مخصصة لمن يريد:

  • استفد من BigQuery GIS لتلبية احتياجات التحليلات الجغرافية المكانية
  • تعلم كيفية تصور البيانات على الخرائط

المتطلبات الأساسية

لتحقيق أقصى استفادة من هذه الدورة التدريبية ، يجب أن تكون لديك معرفة أساسية بـ SQL و Python والحوسبة السحابية ، من الناحية المثالية Google Cloud Platform.

الآن دعنا ننتقل إلى وظائف القياس المكاني حيث نبدأ في الدخول في بعض التحليلات التي يمكنك إجراؤها باستخدام هذه الأنواع الجغرافية في BigQuery GIS. تتيح لك هذه الوظائف حساب قياسات كائن جغرافي واحد أو أكثر. على سبيل المثال ، يمكنك حساب المسافة بين قيمتين جغرافيتين من نقطتين أو يمكنك حساب مساحة أو محيط المضلع. يمكنك أيضًا حساب طول الكائن الجغرافي.

لذلك إذا عدنا لمدة دقيقة إلى مثال طريق قطار أمتراك ، يمكننا حساب طول الطريق بالكامل من بوسطن إلى واشنطن. إحدى الملاحظات المهمة حول وظائف القياس المكاني هذه هي أن الوحدات التي تم إرجاعها متري لذا يتم إعطاء القيم بالأمتار أو الأمتار المربعة ، اعتمادًا على نوع القياس الذي يتم حسابه.

دعنا نعود مرة أخرى إلى مثال معالم نيويورك. لدينا الآن مبنى إمباير ستيت وتمثال الحرية في طاولتنا ويمكننا حساب المسافة بين هاتين النقطتين. تأخذ الدالة ST_DISTANCE نقطتي بيانات هندسية كوسائطها مفصولة بفاصلة.

في استعلام SQL ، الذي يظهر في جزء محرر الاستعلام من واجهة مستخدم الويب ، يمكنك أن ترى أن ما نقوم به في الواقع هو استخدام الاستعلامات الفرعية للحصول على نقطتي بيانات الهندسة. الاستعلام الفرعي الأول هو الحصول على الحقل landmark_geo لمبنى Empire State ، والاستعلام الفرعي الثاني هو الحصول على حقل landmark_geo لتمثال الحرية.

هذه الاستعلامات الفرعية متطابقة تقريبًا ، والفرق الوحيد هو المعلم الذي نسحبه. كما ترى من النتائج فإن المسافة بين هذين المعلمين هي 8939 مترًا أي ما يعادل 8.24 كيلومترًا. بالطبع ، هذا كما يطير الغراب أم يجب أن نقول كما يطير الحمام بما أنها نيويورك؟ إذا كنت تسافر فعليًا في قطارات الأنفاق أو سيارات الأجرة أو العبّارات للانتقال من مكان إلى آخر ، فمن المحتمل أن تكون المسافة المقطوعة مختلفة.

في المثال التالي ، سنلقي نظرة على كيفية استخدامك للدالة ST_AREA لحساب الحجم النسبي للرموز البريدية داخل مقاطعة لوس أنجلوس. مرة أخرى ، نحن نستخدم جدول معلومات الرمز البريدي من بيانات Google العامة. الحقل الجغرافي للرمز البريدي هو حقل مضلع هندسي وهو المدخل إلى وظيفة المنطقة. لقد قمت بتصفية جدول الرمز البريدي لمقاطعة لوس أنجلوس فقط باستخدام شرط أين وقمت بفرز النتائج بترتيب تنازلي لمنطقة الرمز البريدي.

كما ترى في جزء النتائج ، فإن الرمز البريدي 90704 هو أكبر رمز بريدي حسب المنطقة في مقاطعة لوس أنجلوس بمساحة 7.6 متر مربع. الآن يبدو هذا صغيرًا نوعًا ما بالنسبة لي ، لكنني أعلم أن الرموز البريدية تميل إلى أن تكون أصغر بكثير في المناطق ذات الكثافة السكانية العالية أو الكثافة السكانية العالية عنها في المناطق التي تنتشر فيها الكثافة السكانية بشكل أكبر. وبما أن لوس أنجلوس يمكن أن تكون كثيفة السكان ، فقد يكون هذا صحيحًا. لكن من الجيد استخدام حدسك والنظر إلى هذه النتائج والقول ، هل هذا منطقي؟ هل هذا اجتياز اختبار الشم؟

النوع التالي من الوظائف المكانية هو المفاصل المكانية والتي تُعرف أيضًا باسم المسند. تحدد هذه الوظائف العلاقة بين شكلين هندسيين أو أكثر وتعيد الإخراج المنطقي ، مما يعني أنه إذا كانت العلاقة موجودة ، فإن الدالة ترجع صوابًا وإذا لم تكن العلاقة موجودة ، فإن الدالة ترجع خطأ. ونظرًا لأن ناتج هذه الوظائف عبارة عن متجه لقيم صحيحة أو خاطئة ، فغالبًا ما تُستخدم هذه الوظائف في جملة where من جملة SQL. لا تقلق إذا كان هذا يبدو محيرًا بعض الشيء الآن ، فسيكون أكثر منطقية عندما نبدأ في الغوص في الأمثلة.

تسرد هذه الشريحة التالية الوظائف الأصلية ، ونأمل بمجرد النظر إلى الأسماء ، أن يكون ما تفعله هذه الوظائف أكثر وضوحًا. على سبيل المثال ، ترجع ST_EQUALS القيمة "صحيح" إذا كانت المناطق الجغرافية التي تتم مقارنتها متشابهة وغير صحيحة في الحالات الأخرى. وبالمثل ، ترجع ST_INTERSECTS صحيحًا إذا لم يكن تقاطع مجموعة النقاط بين المنطقتين الجغرافيتين قيد المقارنة فارغًا. هذا يعني أنه يتم إرجاع true إذا كانت هناك نقطة واحدة على الأقل تظهر في كلا منطقتي الإدخال. ST_DISJOINT هو عكس ST_INTERSECTS. لذلك فإنها ترجع صحيحًا إذا لم تكن هناك نقاط تظهر في كلتا المنطقتين الجغرافيتين التي تتم مقارنتها وتكون خاطئة بخلاف ذلك. هذا يعني أنه بحكم التعريف ، إذا كانت ST_INTERSECTS صحيحة ، يجب أن يكون ST_DISJOINT خطأ.

بالغوص في مثال ، دعنا نستخدم وظيفة ST_CONTAINS لتحديد عدد الجرائم التي تحدث في كل رمز بريدي في كل عام في شيكاغو. يمكننا القيام بذلك عن طريق استخدام مجموعة البيانات العامة لجرائم شيكاغو ودمجها مع مجموعة البيانات العامة المألوفة لدينا من الرموز البريدية. أول شيء يجب ملاحظته حول هذا الاستعلام هو أن الدالة ST_CONTAINS موجودة في جملة where. مدخلات هذه الوظيفة منطقتان جغرافيتان. سيتم إرجاع قيمة صواب إذا كانت جميع نقاط المنطقة الجغرافية الثانية المدرجة داخل المنطقة الجغرافية الأولى وخطأ في الحالات الأخرى.

إذن ، في حالتنا ، المنطقة الجغرافية الأولى هي المضلع الذي يمثل كل رمز بريدي. والجغرافيا الثانية هي نقطة موقع كل جريمة. في حالة وقوع جريمة داخل حدود رمز بريدي معين ، يتم إرجاع "صواب". يتم إرجاع خطأ لهذه الجريمة لجميع الرموز البريدية الأخرى.

هناك شيء جدير بالملاحظة هنا وهو أننا نستخدم دالة مُنشئ لإنشاء قيم النقطة الجغرافية لكل جريمة لأن قاعدة بيانات الجرائم الخاصة بنا لا تحتوي على حقل جغرافي ، لذا يتعين علينا إنشاءها من قيم خطوط الطول والعرض باستخدام وظيفة نقطة ST_GEOG . هذا مثال جيد على كيفية استخدام أنواع مختلفة من وظائف التحليل المكاني معًا لإنشاء استعلام معقد. يحسب هذا الاستعلام كل القيم الحقيقية لكل رمز بريدي عند التجميع أيضًا على أساس سنوي مما يعطينا نتائجنا النهائية لعدد الجرائم في كل رمز بريدي لكل عام قمنا بفرزها تنازليًا أولاً حسب السنة ثم حسب عدد الجرائم.

لذلك لدينا آخر عام مع الرمز البريدي مع معظم الجرائم في ذلك العام على رأس جدول النتائج. وكما ترون في جزء النتائج ، لعام 2020 ، كان الرمز البريدي في شيكاغو مع معظم الجرائم وفقًا لقاعدة البيانات هذه هو الرمز البريدي 60620 الذي كان به ما يقرب من 7000 جريمة اعتبارًا من أكتوبر 2020.

بعد ذلك ، سنتحدث عن وظائف التحويل المكاني وهي وظائف ستنشئ نوعًا جديدًا من البيانات الجغرافية بناءً على المدخلات. ST_BOUNDARY و ST_CENTROID هما دالتان تأخذان كائنًا هندسيًا واحدًا كمدخل بينما تأخذ بعض الوظائف الأخرى في هذه القائمة مثل ST_UNION كائنات هندسية متعددة كمدخلات.

سنقوم بعمل مثال بسيط جدًا لهذه الفئة من الوظائف وهو إدخال متجه من المضلعات وإرجاع النقطه الوسطى لهذه المضلعات. سنستخدم مجموعة بيانات عامة جديدة وهي بيانات التعداد السكاني لولاية هاواي. إنه أمر طموح بعض الشيء لأن هاواي مكان ممتع للزيارة ومكان ممتع للتفكير في الزيارة والتواجد ، خاصة عندما تكون جالسًا على جهاز الكمبيوتر الخاص بك وتشاهد دورة تدريبية على BigQuery GIS.

لذلك في حالة عدم معرفتك ، فإن مساحات التعداد هي تقسيمات فرعية للمقاطعات وهي مصممة لاحتواء نفس عدد السكان تقريبًا لكل مسار تعداد. لكن بالطبع ، يمكن أن يختلف الحجم النسبي اختلافًا كبيرًا بناءً على الكثافة السكانية.

لذلك ضمن مجموعة البيانات هذه ، لدينا حقول المساحة الجغرافية التي تمثل المضلع الهندسي لكل مسار تعداد. يمكننا استخدام وظيفة ST_CENTROID للحصول على نقطة جغرافية للنقطة الوسطى لكل مسالك. هذا نوع من الغش لأن هذا الحقل موجود بالفعل في البيانات العامة كحقول جغرافية للنقطة الداخلية. لكنها طريقة جيدة للتحقق من أن وظيفة ST_CENTROID تقوم بما توقعنا القيام به.

سيكون مثال التحليل المكاني النهائي لدينا هو إجراء تحليل التجميع باستخدام البيانات الجغرافية. التجميع هو منهجية تعلم آلي تجمع البيانات بناءً على السمات المشتركة. تعتبر هذه خوارزمية غير خاضعة للإشراف لأنه لا توجد إجابة صحيحة للاقتباس تحاول التنبؤ بها. يتم اكتشاف المجموعات أثناء إجراء التحليل بدون توجيهات حول كيفية تشكيلها خارج الخوارزمية نفسها.

تسمى الخوارزمية المضمنة للتجميع في BigQuery GIS بـ DBScan وهي خوارزمية تجميع تعتمد على الكثافة. وهذا هو في الواقع حيث حصل على اسمه. يرمز DB إلى Density Based ، وليس قاعدة البيانات كما قد تعتقد منذ أن كنا نتحدث عن استعلام قاعدة البيانات. هذا يعني أنه بينما يتم تجميع نقاط البيانات في المناطق عالية الكثافة معًا ، يتم تصنيف نقاط البيانات في المناطق منخفضة الكثافة على أنها ضوضاء.

أحد الأشياء الرائعة في خوارزمية مسح قاعدة البيانات هو أنك لست بحاجة إلى تحديد عدد المجموعات مسبقًا. هذا على عكس K-mean clustering وهي طريقة ربما تكون قد سمعت عنها حيث K هو عدد المجموعات وهو إدخال مطلوب للتحليل.

إذن ، بالنسبة لمثالنا ، تحتوي البيانات العامة على جدول من أشجار الشوارع في سان فرانسيسكو والتي سنستخدمها لإنشاء مجموعاتنا. أولاً ، نحتاج إلى تحديد بعض المعلمات لمجموعاتنا حتى نتمكن من تخصيصها. هذا استعلام معقد إلى حد ما ، لذا دعنا نأخذ دقيقة أو نحو ذلك لتحطيمه. الاستعلام الذي يقوم بإنشاء المجموعات في الواقع موجود في استعلام فرعي أطلقنا عليه اسم مجموعات الشجرة باستخدام مجموعات الشجرة ذات المجموعات كتكوين. هذا شيء ربما لم تره ولكنه يسمح لك بإنشاء استعلام فرعي ثم تسميته لاحقًا بهذا الاسم.

لذلك نحن هنا نختار معرفات الأشجار والأنواع وبعض المعلومات الأخرى بما في ذلك الوضع القانوني والقائم بالرعاية ، ثم نقوم بإنشاء قيمة النقطة الجغرافية باستخدام وظيفة ST_geog point constructor ، مع الأخذ في الاعتبار خط الطول وخط العرض للشجرة لأنه في هذا على سبيل المثال ، ليس لدينا حقل جغرافيا في جدول الشجرة لدينا ، لذا يتعين علينا إنشاءه. إذن هذه الجغرافيا هي المدخل الأول في وظيفة ST_CLUSTER DBScan الخاصة بنا.

الإدخال الثاني هو 100 وهو نصف قطر 100 متر الذي نستخدمه لكل من العناقيد لدينا. والمدخل الثالث هو 10 وهو أننا نريد ما لا يقل عن 10 شجرات في كل مجموعة. أي مجموعة أخرى أصغر من 10 أشجار أو مجموعة ، سيتم اعتبار هذه الأشجار ضوضاء.

ثم نأخذ ذلك ويكون ناتج هذا الاستعلام الفرعي لكل شجرة يتم تخصيصها لمجموعة أو يتم تعيينها للضوضاء. ثم نأخذ طلب البحث الفرعي هذا ونجمع الأشجار معًا عن طريق حساب عدد الأشجار الموجودة في كل مجموعة. ونريد أن ننظر إلى المجموعات الأكبر من الصفر لأن الكتلة الصفرية التي أعتقد أنها مجموعة الضوضاء بالرغم من أنها ليست متأكدة بنسبة 100٪ من ذلك. ثم نقوم بالتجميع على معرف الكتلة ثم نقوم بالترتيب حسب عدد الشجرة ونقوم بترتيبها تنازليًا بحيث ترى المجموعة التي تحتوي على أكبر عدد من الأشجار وهي 524 شجرة في أعلى جدول النتائج.


التحميل الان!

لقد سهلنا عليك العثور على كتب إلكترونية بتنسيق PDF دون أي حفر. ومن خلال الوصول إلى كتبنا الإلكترونية عبر الإنترنت أو عن طريق تخزينها على جهاز الكمبيوتر الخاص بك ، لديك إجابات مناسبة مع Postgis 2 An Lisis Espacial Avanzado. للبدء في العثور على Postgis 2 An Lisis Espacial Avanzado ، أنت محق في العثور على موقعنا الإلكتروني الذي يحتوي على مجموعة شاملة من الأدلة المدرجة.
مكتبتنا هي الأكبر من بين هذه المكتبات التي تحتوي على مئات الآلاف من المنتجات المختلفة الممثلة.

أخيرًا حصلت على هذا الكتاب الإلكتروني ، شكرًا على كل هذه Postgis 2 An Lisis Espacial Avanzado التي يمكنني الحصول عليها الآن!

لم أكن أعتقد أن هذا سيعمل ، أظهر لي أفضل أصدقائي هذا الموقع ، وهو يعمل! أحصل على الكتاب الإلكتروني المطلوب

wtf هذا الكتاب الاليكترونى الرائع مجانا ؟!

أصدقائي غاضبون جدًا لدرجة أنهم لا يعرفون كيف أمتلك كل الكتب الإلكترونية عالية الجودة التي لا يعرفون عنها!

من السهل جدًا الحصول على كتب إلكترونية عالية الجودة)

الكثير من المواقع المزيفة. هذا هو أول واحد نجح! شكرا جزيلا

wtffff أنا لا أفهم هذا!

ما عليك سوى اختيار النقر ثم زر التنزيل ، وإكمال العرض لبدء تنزيل الكتاب الإلكتروني. إذا كان هناك استبيان يستغرق 5 دقائق فقط ، فجرب أي استطلاع يناسبك.


التحسينات المحتملة

من الشائع مواجهة انحرافات البيانات مع البيانات الجغرافية المكانية. على سبيل المثال ، قد تتلقى المزيد من نقاط بيانات GPS للهاتف المحمول من المناطق الحضرية مقارنة بالمناطق ذات الكثافة السكانية المنخفضة. هذا يعني أنه قد يكون هناك بعض مؤشرات H3 التي تحتوي على بيانات أكثر من غيرها ، وهذا يقدم انحرافًا في انضمام Spark SQL. وينطبق هذا أيضًا على مجموعة البيانات الموجودة في مثال دفتر الملاحظات الخاص بنا حيث نرى عددًا كبيرًا من نقاط التقاط سيارات الأجرة في مانهاتن مقارنة بأجزاء أخرى من نيويورك. يمكننا الاستفادة من تلميحات الانحراف هنا للمساعدة في أداء الانضمام.

أولاً ، حدد ما هي أهم مؤشرات H3 لديك.

بعد ذلك ، أعد تشغيل استعلام الصلة مع تلميح انحراف محدد لأعلى فهرس أو مؤشرات. يمكنك أيضًا محاولة بث جدول المضلع إذا كان صغيرًا بما يكفي ليتناسب مع ذاكرة العقدة العاملة لديك.

أيضًا ، لا تنس أن يكون لديك جدول يحتوي على المزيد من الصفوف على الجانب الأيسر من الصلة. هذا يقلل من التبديل أثناء الوصل ويمكن أن يحسن الأداء بشكل كبير.

لاحظ أنه مع تنفيذ الاستعلام التكيفي الجديد (AQE) في Spark 3.0 ، من المحتمل أن تختفي الحاجة إلى البث أو التحسين يدويًا للانحراف. إذا كانت الحزمة الجغرافية المكانية المفضلة لديك تدعم Spark 3.0 اليوم ، فراجع كيف يمكنك الاستفادة من AQE لتسريع أعباء عملك!


الملخص

تم الترويج لإدارة الموارد الطبيعية والثقافية على نطاق واسع في السنوات الأخيرة كنهج لمتابعة الحفظ البيولوجي والتنمية الثقافية والأهداف الاجتماعية والاقتصادية. تعتبر المتنزهات من المصادر الطبيعية لهذه الموارد ، وذلك بسبب أنشطة المراقبة الدورية للأنواع الموجودة في أراضيها وقوائم جرد التراث الثقافي داخل حدودها. ومع ذلك ، غالبًا ما تكون إدارة واستغلال الموارد الطبيعية والثقافية أمرًا بالغ الأهمية ، نظرًا لصعوبة جمع البيانات في شكل قياسي وقابل للتشغيل المتبادل ودمجها مع المعلومات الأخرى المتاحة. تقدم هذه الورقة نهجًا لمعالجة قضية إدارة البيانات الطبيعية والثقافية لحل مشاكل عدم تجانس البيانات والاتساق القياسي وعدم وجود مستودع بيانات مشترك. في هذه الورقة ، نحدد أولاً نموذجًا لتمثيل البيانات الطبيعية والثقافية وفقًا لمعايير دولية محددة ، ثم نوضح كيف يمكن تعيين موارد حديقة Alpi Marittime الطبيعية عليها من خلال النموذج. أخيرًا ، نقوم بالإبلاغ عن كيفية تنفيذنا واستخدامنا للنموذج في تطبيق حقيقي من أجل إظهار إمكانات نهجنا.


شاهد الفيديو: Basic Spatial Query with PostGIS (شهر اكتوبر 2021).