[OSM-talk-fr] [Corine] Polygone geant (Attention SQL a faire peur)

2009-10-12 Thread Emilie Laffray
Bonsoir,
j'ai regardé ce soir comment résoudre le problème des polygones de très
grandes tailles. Tout n'est pas résolu mais le plus gros du travail
théorique est fait. J'ai donc essayé la technique sur le polygone de la
Seine Et Marne. La technique est de faire une différence entre les polygones
existants et le polygone Corine. Maintenant je peux étendre la requête  a
tous les polygones qui ont une certaine taille et qui n'ont pas été
importés.
Je me pose la question sur comment on procède maintenant. Je vais continuer
a améliorer la requête mais il faut voir.
Maintenant, pour ceux qui veulent voir la requête qui fait peur, voila! A
noter que pour faire fonctionner la requête sur tous les polygones, il
faudra faire un group by et d'autres jolies requêtes imbriquées
supplémentaires, mais la requête est faite globalement.

SELECT p.geomdump,
p.pathdump[1]
FROM ( SELECT (ST_Dump(ST_Difference(l.the_geom, mp.way))).geom AS geomdump,
(ST_Dump(ST_Difference(l.the_geom, mp.way))).path AS
pathdump
FROM ( SELECT ST_Multi(ST_Union(pop.way)) AS way
FROM planet_osm_polygon AS pop
INNER JOIN
landuse AS l
ON l."CLC:id" = 'FR-6749'
 AND ST_Intersects(pop.way, l.the_geom)
WHERE pop.landuse IS NOT NULL
OR pop.aeroway IS NOT NULL
OR pop.natural IS NOT NULL
OR pop.wood IS NOT NULL
 OR pop.waterway='riverbank'
  ) AS mp,
landuse AS l
WHERE l."CLC:id" = 'FR-6749'
  ) AS p

Dans le cas présent, cette requête génère 60 polygones au lieu d'un seul.
Cela veut dire que de découper un polygone peut conduire a la création de
beaucoup plus de polygones. Celui ci est constitue d'un très gros polygone,
et pleins de tous petits.

Émilie Laffray
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] [Corine] Polygone geant (Attention SQL a faire peur)

2009-10-12 Thread Christophe Merlet (RedFox)
Le lundi 12 octobre 2009 à 21:01 +0100, Emilie Laffray a écrit :
> Bonsoir,

'soir

> j'ai regardé ce soir comment résoudre le problème des polygones de
> très grandes tailles.
> 
> SELECT p.geomdump,
> p.pathdump[1]
> FROM ( SELECT (ST_Dump(ST_Difference(l.the_geom, mp.way))).geom AS
> geomdump,
> (ST_Dump(ST_Difference(l.the_geom, mp.way))).path AS
> pathdump
> FROM ( SELECT ST_Multi(ST_Union(pop.way)) AS way
> FROM planet_osm_polygon AS pop
> INNER JOIN
> landuse AS l
> ON l."CLC:id" = 'FR-6749'
>  AND ST_Intersects(pop.way, l.the_geom)
> WHERE pop.landuse IS NOT NULL
> OR pop.aeroway IS NOT NULL
> OR pop.natural IS NOT NULL
> OR pop.wood IS NOT NULL
>  OR pop.waterway='riverbank'
>   ) AS mp,
> landuse AS l
> WHERE l."CLC:id" = 'FR-6749'
>   ) AS p
> 

Je ne comprends absolument rien a cette requête oO
Mais je te fais confiance ;o)


Librement,
-- 
Christophe Merlet (RedFox)


signature.asc
Description: Ceci est une partie de message numériquement signée
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] [Corine] Polygone geant (Attention SQL a faire peur)

2009-10-13 Thread Emilie Laffray
Etienne Chové wrote:
> Est ce que le gros polygone ne fait pas presque autant de taille que 
> l'original ?
>
> Le but est de générer 60 fichiers et des les envoyer un par un ? C'est 
> donc du multipolygone où un a un outer (le gros) et plein de inner (les 
> petits) ? Je crois que j'ai pas tout compris :-(
>   
Le gros polygone est quasiment aussi gros que le principal. Toutefois,
les autres polygones sont indépendants du principal du fait du coupure
du polygone principal. Dans certains cas, la surface est négligeable,
dans d'autres cas, elle ne l'est pas.
Les inners ne rentrent pas en ligne de compte en fait, car ils font
partie d'un polygone. La technique utilisée en fait ne résoud qu'un
problème: importer un polygone qui est énorme et qui n'a plus les
overlaps puisque je les ai enlevés.
Il est possible de découper un gros polygone en plusieurs bouts mais ça
implique d'écrire un petit programme en Python pour découper ça a
posteriori, ce qui devrait être assez facile a faire. Après, on peut en
théorie tout remettre dans le même fichier OSM, mais on ne change rien a
la taille. Ou alors, on fait le travail en amont a partir de la base
Corine, et on crée des entrées supplémentaires (centroid au final plus
simple a trouver).
Enfin, voila ce ne sont que des idées. Mais techniquement tout est possible.

Emilie Laffray




signature.asc
Description: OpenPGP digital signature
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] [Corine] Polygone geant (Attention SQL a faire peur)

2009-10-13 Thread tenshu
Je suis le débat avec attention.

Quelle est donc la méthodologie à suivre?
Car je peut vous dire que des poly landluse=farm de très grande taille j'en
ai trouvé quelques uns en cherchant un peut.

2009/10/13 Emilie Laffray 

> Etienne Chové wrote:
> > Est ce que le gros polygone ne fait pas presque autant de taille que
> > l'original ?
> >
> > Le but est de générer 60 fichiers et des les envoyer un par un ? C'est
> > donc du multipolygone où un a un outer (le gros) et plein de inner (les
> > petits) ? Je crois que j'ai pas tout compris :-(
> >
> Le gros polygone est quasiment aussi gros que le principal. Toutefois,
> les autres polygones sont indépendants du principal du fait du coupure
> du polygone principal. Dans certains cas, la surface est négligeable,
> dans d'autres cas, elle ne l'est pas.
> Les inners ne rentrent pas en ligne de compte en fait, car ils font
> partie d'un polygone. La technique utilisée en fait ne résoud qu'un
> problème: importer un polygone qui est énorme et qui n'a plus les
> overlaps puisque je les ai enlevés.
> Il est possible de découper un gros polygone en plusieurs bouts mais ça
> implique d'écrire un petit programme en Python pour découper ça a
> posteriori, ce qui devrait être assez facile a faire. Après, on peut en
> théorie tout remettre dans le même fichier OSM, mais on ne change rien a
> la taille. Ou alors, on fait le travail en amont a partir de la base
> Corine, et on crée des entrées supplémentaires (centroid au final plus
> simple a trouver).
> Enfin, voila ce ne sont que des idées. Mais techniquement tout est
> possible.
>
> Emilie Laffray
>
>
>
> ___
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>
>


-- 
Mon weblog - http://www.tenshu.fr/
Je soutiens le Logiciel Libre, j'adhère à l'APRIL !
___
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr


Re: [OSM-talk-fr] [Corine] Polygone geant (Attention SQL a faire peur)

2009-10-13 Thread Etienne Chové
Emilie Laffray a écrit :
> Celui ci est constitue d'un très gros polygone, et pleins de tous petits.

Est ce que le gros polygone ne fait pas presque autant de taille que 
l'original ?

Le but est de générer 60 fichiers et des les envoyer un par un ? C'est 
donc du multipolygone où un a un outer (le gros) et plein de inner (les 
petits) ? Je crois que j'ai pas tout compris :-(

-- 
Etienne

___
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr