أكثر

كيفية حساب النقط الوسطى الموزونة في PostGIS؟

كيفية حساب النقط الوسطى الموزونة في PostGIS؟


لدي مجموعة من النقاط ولكل نقطة قيمة عد مرتبطة بها. كيف يمكنني حساب النقطه الوسطى للمجموعة مرجحًا بالقيم المرتبطة بكل نقطة؟


توجد إجابة على StackOverflow تعطي إجابة رياضية ، ولكنها ليست إجابة Postgres. عند الترجمة إلى Postgres / Postgis ، يمكنك تجربة شيء مثل هذا:

حدد المجموع (st_x (pt) * weight) / sum (weight) كـ cx من نقاط_الوزن ؛ حدد المجموع (st_y (pt) * weight) / sum (weight) على أنه cy من النقاط_المرجحة ؛

أو إذا كنت تريد نقطة إلى الوراء ،

حدد st_makepoint (x.cx، y.cy) من (حدد المجموع (st_x (pt) * weight) / sum (weight) كـ cx من النقاط_المرجحة) x ، (حدد المجموع (st_y (pt) * weight) / sum (الوزن ) مثل cy من weighted_points) ذ

باستخدام Fréchet Mean كأساس لذلك ، يمكنك تجربة شيء مثل ما يلي

حدد EXP (SUM (LN (X) * W) / SUM (W)) موزون متوسط ​​، EXP (SUM (LN (Y) * W) / SUM (W)) موزون متوسط ​​، EXP (SUM (LN (X)) / COUNT (*)) medianX، EXP (SUM (LN (Y)) / COUNT (*)) الوسيط من PointTable

شاهد الفيديو: Geometry Creation and Manipulation Using PostGIS. PostGIS Baby Steps