banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 08 November 2010 19:21

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Calcul de surface avec deux tables spatiales

Bonjour,

Je souhaite calculer lea surface géographique d'un ensemble de parcelle en utilisant une valeur de référence. J'ai un ensemble de parcelle A qui intesect avec un ensemble de parcelle B, pour chaque table ou ensemble de parcelle il y a un champ surface, le champ surface de l'ensemble A contient une valeur. Le but est de déduire la surface de l'ensemble B en le calculant par rapport à la proportion qu'il occupe dans l'ensemble A.

J'ai déjà travaillé sur une formule magique mais je ne suis pas sur du résultat :

Code:

Select Parcellaire_A.Commune, Parcellaire_A.Section, Parcellaire_A.Parcelle, Parcellaire_B.Parcelle, Parcellaire_B.Surface, proportionoverlap(Parcellaire_A.obj, Parcellaire_B.obj) from Parcellaire_A, Parcellaire_B where Parcellaire_A.obj intersects Parcellaire_B.obj

Merci

Hors ligne

 

#2 Tue 09 November 2010 08:31

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 608

Re: Calcul de surface avec deux tables spatiales

Il me semble que c'est une question qui irait mieux dans le forum MapInfo (je me trompe ?)


Pour davantage de lisibilité du code, je rajouterai quelques espaces.

Code:

Select Parcellaire_A.Commune, Parcellaire_A.Section, Parcellaire_A.Parcelle, 
Parcellaire_B.Parcelle, Parcellaire_B.Surface, 
proportionoverlap(Parcellaire_A.obj, Parcellaire_B.obj) 
from Parcellaire_A, Parcellaire_B 
where Parcellaire_A.obj intersects Parcellaire_B.obj

Et désolé, je connais mal la fonction proportionoverlap.

Dernière modification par ppluvinet (Tue 09 November 2010 08:31)


Pascal PLUVINET

Hors ligne

 

#3 Tue 23 November 2010 10:26

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Re: Calcul de surface avec deux tables spatiales

Bonjour,

J'ai pris un peu de temps pour répondre car j'ai souhaité chercher une solution que je n'ai toujours pas trouvé, donc je relance ce sujet. Pour répondre à ppluvinet, c'est justement mon problème, je souhaite adapter ce type de requête utilisée sous MapInfo à Postgresql/Posgis.

Hors ligne

 

#4 Tue 23 November 2010 11:02

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1222
Site web

Re: Calcul de surface avec deux tables spatiales

Bonjour geobrie,

si je comprends bien ta recherche, tu veux renseigner un champ à partir d'une valeur de référence, et au prorata de l'intersection entre deux objets.

Si c'est bien cela, voici un exemple fonctionnel avec la table commune de la bd_topo et une table contenant les perimtres d'inventaire et réglementaires environnementaux.

Je calcule la part de la population communale (valeur fixe popul) potentiellement concernée par la ZPS.

Code:

select a.code_insee, a.popul, 
round(((area2d(intersection(a.geometrie, b.geometrie))/area2d(a.geometrie))*100)::numeric,2) AS  "%_de la commune_en_en_zps", 
round(((area2d(intersection(a.geometrie, b.geometrie))/area2d(a.geometrie))*popul)::numeric,2) AS popul_concernee
FROM ign_bd_topo.commune a, perimetre b
WHERE type_perimetre = 'zps'AND st_intersects(a.geometrie, b.geometrie)

[edit]
Si on vaut la population non concernée, on selectionne

Code:

round(((1-area2d(intersection(a.geometrie, b.geometrie))/area2d(a.geometrie))*popul)::numeric,2) AS popul_non_concernee

[/edit]
J'espère que ça t'aidera.

Dernière modification par Mathieu BOSSAERT (Tue 23 November 2010 11:41)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#5 Tue 23 November 2010 11:37

geobrie
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 120

Re: Calcul de surface avec deux tables spatiales

Bonjour Mathieu,

Merci pour cette réponse, en regardant ta requête, je pense que c'est exactement ce type de requête que je tente de faire fonctionner. Je vais tenter de l'intégrer à mon projet. Affaire à suivre !!! Encore un grand merci pour cette aide précieuse.

Hors ligne

 

Pied de page des forums

Powered by FluxBB