GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.2. إدارة الرستر
PostGIS 3.6 · Official Manual · ترجمة عربية

AddRasterConstraints

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

الاسم

AddRasterConstraints — تُضيف قيود الرستر إلى جدول رستر محمَّل لعمود محدد، تقيّد النظام المرجعي المكاني، والمقياس، وحجم الكتلة، والمحاذاة، والنطاقات، ونوع النطاق، وعلامةً تدل على ما إذا كان عمود الرستر مقسّمًا إلى كتل منتظمة. يجب أن يكون الجدول محمَّلًا بالبيانات لكي يمكن استنتاج القيود. تُعيد true إذا نجح ضبط القيود، وتُصدر إشعارًا خلاف ذلك.

المختصر

boolean AddRasterConstraints(name rasttable, name rastcolumn, boolean srid=true, boolean scale_x=true, boolean scale_y=true, boolean blocksize_x=true, boolean blocksize_y=true, boolean same_alignment=true, boolean regular_blocking=false, boolean num_bands=true , boolean pixel_types=true , boolean nodata_values=true , boolean out_db=true , boolean extent=true );

boolean AddRasterConstraints(name rasttable, name rastcolumn, text[] VARIADIC constraints);

boolean AddRasterConstraints(name rastschema, name rasttable, name rastcolumn, text[] VARIADIC constraints);

boolean AddRasterConstraints(name rastschema, name rasttable, name rastcolumn, boolean srid=true, boolean scale_x=true, boolean scale_y=true, boolean blocksize_x=true, boolean blocksize_y=true, boolean same_alignment=true, boolean regular_blocking=false, boolean num_bands=true, boolean pixel_types=true, boolean nodata_values=true , boolean out_db=true , boolean extent=true );

الوصف

تُنشئ قيودًا على عمود رستر تُستخدم لعرض المعلومات في فهرس الرستر raster_columns. يمثّل rastschema اسم مخطط (schema) الجدول الذي يقع فيه الجدول. ويجب أن يكون srid قيمة عددية صحيحة تشير إلى مُدخَل في الجدول SPATIAL_REF_SYS.

تستخدم أداة التحميل raster2pgsql هذه الدالة لتسجيل جداول الرستر

أسماء القيود الصالحة التي يمكن تمريرها: راجع قسم 10.2.1, “فهرس أعمدة الرستر” لمزيد من التفاصيل.

  • blocksize يضبط حجم الكتلة في الاتجاهين X وY معًا

  • blocksize_x يضبط البلاطة في الاتجاه X (العرض بالبكسل لكل بلاطة)

  • blocksize_y يضبط البلاطة في الاتجاه Y (الارتفاع بالبكسل لكل بلاطة)

  • extent يحسب امتداد الجدول بأكمله ويطبّق قيدًا يُلزم جميع الرسترات بأن تقع ضمن ذلك الامتداد

  • num_bands عدد النطاقات

  • pixel_types يقرأ مصفوفة أنواع البكسل لكل نطاق، ويضمن أن يكون لجميع النطاقات رقم n نوع البكسل نفسه

  • regular_blocking يضبط قيدَي التفرّد المكاني (لا يمكن أن يتطابق رستران مكانيًا) وبلاطة التغطية (الرستر محاذٍ لتغطية)

  • same_alignment يضمن أن تكون لجميعها المحاذاة نفسها، أي أن أي بلاطتين تقارن بينهما ستُعيدان true. راجع ST_SameAlignment.

  • srid يضمن أن يكون لجميعها قيمة srid نفسها

  • المزيد -- أيٌّ مما هو مُدرج كمُدخَلات في الدوال أعلاه

[ملاحظة]

تستنتج هذه الدالة القيود من البيانات الموجودة مسبقًا في الجدول. ولذلك، لكي تعمل، يجب أن تُنشئ عمود الرستر أولًا ثم تحمّله بالبيانات.

[ملاحظة]

إذا احتجت إلى تحميل مزيد من البيانات في جداولك بعد أن طبّقت القيود بالفعل، فقد ترغب في تشغيل DropRasterConstraints إذا تغيّر امتداد بياناتك.

متاحة منذ: 2.0.0

أمثلة: تطبيق جميع القيود الممكنة على العمود استنادًا إلى البيانات

CREATE TABLE myrasters(rid SERIAL primary key, rast raster);
INSERT INTO myrasters(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);

SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);


-- verify if registered correctly in the raster_columns view --
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values
    FROM raster_columns
    WHERE r_table_name = 'myrasters';

 srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | pixel_types| nodata_values
------+---------+---------+-------------+-------------+-----------+-------------+---------------
 4326 |       2 |       2 |        1000 |        1000 |         1 | {8BSI}      | {0}
        

أمثلة: تطبيق قيد واحد

CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);
INSERT INTO myrasters2(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);

SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize');
-- get notice--
NOTICE:  Adding regular blocking constraint
NOTICE:  Adding blocksize-X constraint
NOTICE:  Adding blocksize-Y constraint