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

ST_Rescale

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

الاسم

ST_Rescale — تُعيد تشكيل رستر بضبط مقياسه (أو حجم بكسله) فقط. تُحسب قيم البكسلات الجديدة باستخدام خوارزمية إعادة التشكيل NearestNeighbor (بالتهجئة الإنجليزية أو الأمريكية) أو Bilinear أو Cubic أو CubicSpline أو Lanczos أو Max أو Min. القيمة الافتراضية NearestNeighbor.

المختصر

raster ST_Rescale(raster rast, double precision scalexy, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Rescale(raster rast, double precision scalex, double precision scaley, text algorithm=NearestNeighbor, double precision maxerr=0.125);

الوصف

تُعيد تشكيل رستر بضبط مقياسه (أو حجم بكسله) فقط. تُحسب قيم البكسلات الجديدة باستخدام إحدى خوارزميات إعادة التشكيل التالية:

  • NearestNeighbor (بالتهجئة الإنجليزية أو الأمريكية)

  • Bilinear

  • Cubic

  • CubicSpline

  • Lanczos

  • Max

  • Min

القيمة الافتراضية NearestNeighbor وهي الأسرع لكنها تُنتج أسوأ استيفاء.

يحدد scalex وscaley حجم البكسل الجديد. يجب غالبًا أن يكون scaley سالبًا للحصول على رستر صحيح الاتجاه.

عندما لا يكون scalex أو scaley الجديد قاسمًا لعرض الرستر أو ارتفاعه، يُوسَّع امتداد الرستر الناتج ليشمل امتداد الرستر المُقدَّم. إذا أردت التأكد من الحفاظ على الامتداد المُدخَل بدقة فانظر ST_Resize

maxerr هو العتبة لتقريب التحويل بواسطة خوارزمية إعادة التشكيل (بوحدات البكسل). تُستخدم القيمة الافتراضية 0.125 إذا لم يُحدَّد maxerr، وهي القيمة نفسها المستخدمة في أداة gdalwarp من GDAL. إذا ضُبطت على صفر، فلا يحدث أي تقريب.

[ملاحظة]

راجع: طرائق إعادة التشكيل في GDAL Warp لمزيد من التفاصيل.

[ملاحظة]

تختلف ST_Rescale عن ST_SetScale في أن ST_SetScale لا تُعيد تشكيل الرستر ليطابق امتداده. تغيّر ST_SetScale فقط البيانات الوصفية (أو الإسناد الجغرافي) للرستر لتصحيح مقياس حُدّد خطأً في الأصل. أما ST_Rescale فينتج عنها رستر بعرض وارتفاع مختلفين محسوبين ليلائما الامتداد الجغرافي للرستر المُدخَل. لا تعدّل ST_SetScale عرض الرستر ولا ارتفاعه.

متاحة منذ: 2.0.0 تتطلب GDAL 1.6.1+

حُسّنت في: 3.4.0 أُضيف خيارا إعادة التشكيل max وmin

تغيّرت في: 2.1.0 تعمل على الرسترات التي ليس لها SRID

أمثلة

مثال بسيط لإعادة قياس رستر من حجم بكسل 0.001 درجة إلى حجم بكسل 0.0015 درجة.

-- the original raster pixel size
SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width

   width
----------
0.001

-- the rescaled raster raster pixel size
SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width

   width
----------
0.0015