GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.15. معالجة الرستر: من رستر إلى شكل هندسي
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_ConvexHull

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_ConvexHull — تُعيد الشكل الهندسي للغلاف المحدب للرستر بما في ذلك البكسلات ذات القيم المساوية لـ BandNoDataValue. بالنسبة للرسترات منتظمة الشكل وغير المائلة، يعطي هذا النتيجة نفسها التي تعطيها ST_Envelope، لذا فهو مفيد فقط للرسترات غير منتظمة الشكل أو المائلة.

المختصر

geometry ST_ConvexHull(raster rast);

الوصف

تُعيد الشكل الهندسي للغلاف المحدب للرستر بما في ذلك بكسلات النطاق ذات القيمة NoDataBandValue. بالنسبة للرسترات منتظمة الشكل وغير المائلة، يعطي هذا تقريبًا النتيجة نفسها التي تعطيها ST_Envelope، لذا فهو مفيد فقط للرسترات غير منتظمة الشكل أو المائلة.

[ملاحظة]

تقرّب ST_Envelope الإحداثيات إلى الأدنى (floor) ومن ثم تضيف هامشًا صغيرًا حول الرستر، فتختلف النتيجة اختلافًا طفيفًا عن ST_ConvexHull التي لا تقرّب.

أمثلة

راجع مواصفة PostGIS Raster للاطلاع على رسم توضيحي لذلك.

-- Note envelope and convexhull are more or less the same
SELECT ST_AsText(ST_ConvexHull(rast)) As convhull,
    ST_AsText(ST_Envelope(rast)) As env
FROM dummy_rast WHERE rid=1;

                        convhull                        |                env
--------------------------------------------------------+------------------------------------
 POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 0,20 60,0 60,0 0))
                
-- now we skew the raster
-- note how the convex hull and envelope are now different
SELECT ST_AsText(ST_ConvexHull(rast)) As convhull,
    ST_AsText(ST_Envelope(rast)) As env
FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast
    FROM dummy_rast WHERE rid=1) As foo;

                        convhull                        |                env
--------------------------------------------------------+------------------------------------
 POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 0,22 61,0 61,0 0))