Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Responsables de formations en géomatique,

merci d'actualiser vos données sur GeoFormations

#1 ven. 19 mai 2017 11:39

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

QGIS: Recherche solution pour requête spatiale

Bonjour à tous-t-es,

Je travaille sur support SIG et je voudrais savoir si il existe une solution pour sélectionner des polygones en fonction de la somme de leurs surfaces et par rapport à leur distance à un point central géoréférencé.
Je m'explique, en gros, je place un point au centre d'une couche vecteur commune, (département, région, etc), ou en utilisant son centroide, et je voudrais réaliser une sélection automatique de x surfaces agricoles (x = la somme d'une surface voulue) et qui soient au plus proche du point central de ma couche communale. Soit une sélection de type buffer dont le rayon serait déterminé par la recherche des polygones de type RPG jusqu'à ce que je trouve x hectares de surfaces agricoles.
Je le fais manuellement jusque là en sélectionnant à taton mes parcelles autour du centre bourg et en m'éloignant progressivement jusqu'à obtenir ma surface voulue, mais c'est ultra chronophage. Je voudrais donc automatiser cette démarche.

Je voulais donc savoir si cette fonction/automatisation existe, ou si il est possible/réalisable de la créer, si des cartes en ligne proposent ce genre de modélisation, ou si vous avez des pistes de réflexion pour trouver une solution?

Vous me serez d'un secours énorme x)

En ligne

 

#2 ven. 19 mai 2017 12:50

Pascal Boulerie
Membre
Lieu: France
Date d'inscription: 12 sept. 2005
Messages: 1163
Site web

Re: QGIS: Recherche solution pour requête spatiale

Dans quel logiciel SIG ? (QGIS ? autre ?)
Qui utilise quel langage pour automatiser les manipulations internes à ce logiciel ? (python ? autre ?)

Faire une requête en recherchant par recherche dichotomique ?

Hors ligne

 

#3 ven. 19 mai 2017 14:02

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

J'utilise QGIS en effet
par dichotomie?

En ligne

 

#4 ven. 19 mai 2017 14:23

Pascal Boulerie
Membre
Lieu: France
Date d'inscription: 12 sept. 2005
Messages: 1163
Site web

Re: QGIS: Recherche solution pour requête spatiale

si la distance d1 donne comme résultat une superficie S1 trop petite,
mais que la distance d2 > d1 aboutit pour résultat à une superficie S2 trop grande,
essayer alors la distance d3 - entre d1 et d2 * - pour essayer de s'approcher de la surface S voulue.

(et continuer par itérations successives jusqu'à arriver dans la zone de "tolérance", à une superficie s0 près, voulue entre S - s0 et S + s0 ...)

https://fr.wikipedia.org/wiki/Dichotomie


* ça peut être une moyenne arithmétique ou autre.

Hors ligne

 

#5 Hier 09:20

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

Humm, c'est un peu du chinois pour moi là...
Je vois l'idée mais pour faire la manipulation là je vois pas du tout ... hmm

En ligne

 

#6 Hier 11:13

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 janv. 2006
Messages: 971
Site web

Re: QGIS: Recherche solution pour requête spatiale

Bonjour Ben14 et bienvenue sur Georezo !

Je ne voit pas comment automatiser la chose avec QGIS (avec du shp en fait), sauf à programmer une routine en python par exemple.
L'approche dichotomique sera la plus rapide en terme d'étapes de calcul mais va nécessiter autant de de créations de buffer et d'intersection dans QGIS et donc "ultra chronophage". J'imagine que vous devez répéter la chose sur un nombre conséquent de communes ?

L'emploi d'une base de données Postgis aiderait grandement. Selon le temps dont vous disposer il peut être intéressant de creuser cette piste.
L'investissement en terme de temps sera vite rentable. Il sera alors possible de faire la somme cumulée des surfaces des îlots PAC par distance croissante au centre de la commune de la commune.


Mathieu BOSSAERT

Hors ligne

 

#7 Hier 11:38

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 sept. 2005
Messages: 2276
Site web

Re: QGIS: Recherche solution pour requête spatiale

Bonjour,

Je pense que vous n'abordez pas le problème selon le bon angle et j'irais même plus loin en disant que vous ne conceptualisez pas vraiment bien ce que vous cherchez, preuves à l'appui de votre formulation :

en gros, je place un point au centre d'une couche vecteur commune, (département, région, etc), ou en utilisant son centroide, et je voudrais réaliser une sélection automatique de x surfaces agricoles (x = la somme d'une surface voulue) et qui soient au plus proche du point central de ma couche communale. Soit une sélection de type buffer dont le rayon serait déterminé par la recherche des polygones de type RPG jusqu'à ce que je trouve x hectares de surfaces agricoles.

Expliquez nous le quoi faire de façon claire et peut-être que nous pourrons trouver comment faire. Par exemple :

une sélection automatique de x surfaces agricoles (x = la somme d'une surface voulue)

Additionner n surfaces de Si m² donne Surface totale = Somme_pour_i_de_1_à_n(Si) qui est exprimée en mètres carrés
ce qui est complétement différent de n qui est une nombre de polygones.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

En ligne

 

#8 Hier 11:54

Pascal Boulerie
Membre
Lieu: France
Date d'inscription: 12 sept. 2005
Messages: 1163
Site web

Re: QGIS: Recherche solution pour requête spatiale

ça doit être une étude de remembrement agricole pour une SAFER ? :-)
(pour optimiser les déplacements des agriculteurs dans un souci de proximité, histoire qu'un gars n'ait pas à cultiver à 10 km de sa ferme un tout petit bout de parcelle)

Le mieux sera qu'il fasse un petit crobard pour qu'il explique si son problème est bien celui que MathieuB a compris (à savoir s'il va falloir faire de l' intersection et donc des découpages de parcelles et des échanges de parcelles découpées).

Hors ligne

 

#9 Hier 14:24

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

Non en fait c'est pour des calculs d'empreintes alimentaires de communes

En ligne

 

#10 Hier 14:29

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

L'emploi d'une base de données Postgis aiderait grandement. Selon le temps dont vous disposer il peut être intéressant de creuser cette piste.
L'investissement en terme de temps sera vite rentable. Il sera alors possible de faire la somme cumulée des surfaces des îlots PAC par distance croissante au centre de la commune de la commune.

Merci de ta réponse,
Qu'est-ce qu'une bd PostGis?
Et comment faire cette manipulation?

En ligne

 

#11 Hier 15:16

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 janv. 2006
Messages: 971
Site web

Re: QGIS: Recherche solution pour requête spatiale

Ben14 a écrit:

Non en fait c'est pour des calculs d'empreintes alimentaires de communes

Pourrais tu préciser ton besoin, en réponse à ChristopheV, qui aura peut-être d'autres solutions.

Voici une définition non académique et incomplète de ce qu'est PostGIS :

Postgis est une base de données relationnelle disposant de types de données géométriques (points, lignes et polygones) de fonctions et d'opérateurs  et d'opérateurs logiques pour ces types géométriques, permettant de faire ce type de requêtes, dans le language SQL

SELECT communes.nom
FROM communes JOIN rivieres ON st_interescts(commune.geom, rivieres.geom)
WHERE rivieres.nom = 'Le Lez' AND population > 10000

Ce qui répond en à la question en Français :

Quel est le nom des communes qui sont en intersection avec une rivière nommée 'le Lez' et dont la population est supérieure à 10000 habitants.

Ci-dessous un lien vers une introduction aux bases de données spatiales :
http://www.sigterritoires.fr/index.php/ … roduction/


Mathieu BOSSAERT

Hors ligne

 

#12 Hier 15:24

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

J'essaye de redéfinir mon problème.
Je voudrais trouver un moyen de faire une sélection automatique d'îlots agricoles à partir d'une distance.
En considérant par exemple que pour la commune de Paris j'ai besoin de 100 ha (lol), je voudrais sélectionner les îlots dans ou les plus proches de Paris jusqu'à obtenir 100 ha.
100 ha équivaudrait à l'empreinte alimentaire de Paris.

Et je voudrais que cette sélection soit automatisée pour pouvoir le faire pour toutes les communes.
Je sais pas si c'est plus claire?

En ligne

 

#13 Hier 17:05

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 sept. 2005
Messages: 2276
Site web

Re: QGIS: Recherche solution pour requête spatiale

Bonjour,

Je raisonnerais comme suit : déterminer les surface rpg incluses dans ma commune.
union des polygones rgp contigus, calcul de leur surface et de la somme.
Ensuite calcul de la dsitance.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

En ligne

 

#14 Hier 17:23

Ben14
Membre
Date d'inscription: 19 mai 2017
Messages: 7

Re: QGIS: Recherche solution pour requête spatiale

Pour l'instant j'ai fais ça justement:
Calcul des RPG communaux, et après je sélectionne jusqu'à obtenir le résultat souhaité. Mais je fais ça manuellement, l'idée serait de l'automatiser

En ligne

 

#15 Aujourd'hui 15:19

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 janv. 2006
Messages: 971
Site web

Re: QGIS: Recherche solution pour requête spatiale

Bonjour,

Pour te montrer ce que ça peut donner en SQL (on s'éloigne de QGIS pour le traitement), voici une requête SQL qui retourne, pour la commune de CAZEVIEILLE dans l'Hérault, les ilots du RPG les plus proches de son centroîde qui nous permettent d'atteindre la surface de 500 hectares.
Les deux tables utilisées (couches) sont la table des communes de la BD GEOFLA et la table du RPG2012.

Code:

WITH centre AS (
    /* mon point de départ */
    SELECT st_centroid(geometrie) AS geometrie
    FROM ign_geofla.commune
    WHERE insee_com = '34066'
  ),
Cumul AS (
    SELECT st_distance(centre.geometrie, rpg_2012.geom) /* la distance de l'ilot courant au point de départ */, 
    ST_AREA(rpg_2012.geom)/10000 /* la surface de l'ilot courant'*/,
    (ARRAY_AGG(gid) OVER(ORDER BY ST_DISTANCE(centre.geometrie, rpg_2012.geom))) as liste_ilots /*la liste cumuléé des ilots classés par distance croissante d'éloignement au point de départ */,
    (SUM(ST_AREA(rpg_2012.geom)) OVER(ORDER BY st_distance(centre.geometrie, rpg_2012.geom)))/10000 as surf_cumulee  /*la surface cumulée en hectares des ilots classés par distance croissante d'éloignement au point de départ */
    FROM centre JOIN agriculture.rpg_2012 ON ST_DWITHIN(centre.geometrie, rpg_2012.geom,7000) /* à partir des tables centre et rpg, déslors que les ilots sont à moins de 7000 mètres du point de départ */
),
ilots AS ( /* les ilots de l'empreinte alimentaire, correspondant, à partir de la sous-requête précédente , à la première ligjne dont la surface des ilots est supérieure à 500 ha */
SELECT liste_ilots, surf_cumulee 
FROM cumul
WHERE surf_cumulee > 500
ORDER BY surf_cumulee 
LIMIT 1)
/* enfin la selection des ilots dans le RPG */
SELECT rpg_2012.* FROM  agriculture.rpg_2012 JOIN ilots ON gid = ANY(liste_ilots)

Mathieu BOSSAERT

Hors ligne

 

#16 Aujourd'hui 16:37

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 sept. 2005
Messages: 2276
Site web

Re: QGIS: Recherche solution pour requête spatiale

Bonjour,

Mathieu B. il est vraiment vraiment gentil !!


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

En ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |