[postgis-users] ST_intersects : error message

Rémi Cura remi.cura at gmail.com
Mon Dec 2 10:35:22 PST 2013


Oups j'ai oublié "augmenter la puissance de calcul"
Il s'agit tout simplement de mieux ocnfigurer ton serveur postgres pour lui
allouer plus de mémoire, car les réglages par défaut sont très très
économes :
Il s'agit du fichier postgres.conf
http://www.postgresql.org/docs/9.3/static/runtime-config-resource.html

Rémi-C


Le 2 décembre 2013 19:33, Rémi Cura <remi.cura at gmail.com> a écrit :

>
> Salut Laurent,
> on peut imaginer plusieurs approches pour ton problème, en fonction de la
> taille de tes données, de la précision voulue, etc.
>
> En résumé tu as un fichier de polygons (combien?) qui représentent un
> maillage de la France (département, IRIS, région?).
> Et un fichier de point Lidar (2 millions) répartis sur toute la France et
> en dehors.
>
> Tu as 4 options :
> _améliorer ta requete
> _réduire le nombre de polygon
> _ réduire le nombre de points.
> _augmenter la puissance de calcul
>
> 1.)améliorer la requete :
> C'est assez simple : en fait tu veux les points qui sont dans les
> polygones, tu n'as donc pas besoin de calculer une intersection mais juste
> un intersect.
>
> CREATE TABLE example_intersections_a AS
> SELECT  part_2.geom
>
> FROM fra_adm0 AS part_1,france_merge_pts1 AS part_2
> WHERE ST_Intersects(part_1.geom, part_2.geom)=TRUE;
>
> 2.) réduire le nombre de polygones
> fusionne les polygones régulièrement en te basant sur leur centroides:
> Par exemple, tu regroupes les polygones dont les centroids sont à 10 km
> les uns des autres :
>
> CREATE TABLE m_pol AS
> WITH centroid AS (
> SELECT ST_Centroid(geom), geom
> FROM fra_adm0
> )
> SELECT row_number() over() AS r_id, ST_Multi(geom) AS geom
> FROM centroid
> GROUP BY round(ST_X(centroid)/10000.0)  , round(ST_Y(centroid)/10000.0)
>
> variante de la meme requete :
> WITH centroid AS (
> SELECT ST_Centroid(geom), geom
> FROM fra_adm0
> )
> SELECT row_number() over() AS r_id,  ST_Multi(geom) AS geom
> FROM centroid
> GROUP BY ST_SnapToGrid(centroid, 10000.0)
>
> Tu crées un index sur la colonne unioned_polygon et tu utilises cette
> table plutôt que l'autre dans ta requête d'intersection entre les points et
> les polygones
> CREATE INDEX ...
>
> CREATE TABLE example_intersections_a AS
> SELECT  part_2.geom
> FROM m_pol AS part_1,france_merge_pts1 AS part_2
> WHERE ST_Intersects(part_1.geom, part_2.geom)=TRUE;
>
>
> 3.) Réduire le nombre de points,
> C'est le même principe, on va réunir les points qui sont assez proches
> pour en diminuer le nombre.
> A la place des points on aura donc des multipoints.
> Note qu'après certains multipoints contiendront des points en trop, il
> faudra donc faire un passage avec st_intersection sur le resultat,mais on
> ne fera se passe que sur les multipoints qui sont sur les frontières.
>
> CREATE TABLE g_point AS
> SELECT row_number() over() AS r_id,  ST_Multi(geom) AS geom
> FROM france_merge_pts1
> GROUP BY ST_SnapToGrid(geom, 10000.0)
>
> créer l'index sur la colonne geom
> utiliser ces multipoints dans ta requête
>
> fair est_intersection sur les multipoints qui sont sur les frontières de
> la France.
>
> Bon courage,
>
> Rémi-C
>
>
>
>
> 2013/12/2 laurent <lcelati at latitude-geosystems.com>
>
>> I imported my 2 layers into db thanks to postgis tools. An spatial index
>> has
>> been created after the loading automatically.
>> Indeed, via my qgis DB manager, i can confirm the spatial index creation
>> for
>> my two tables...
>>
>>
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://postgis.17.x6.nabble.com/ST-intersects-error-message-tp5005029p5005033.html
>> Sent from the PostGIS - User mailing list archive at Nabble.com.
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20131202/4a34303b/attachment.html>


More information about the postgis-users mailing list