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é ?

#1 Wed 27 May 2015 10:36

devnice
Participant occasionnel
Date d'inscription: 26 Jun 2012
Messages: 18

QGIS : Sectorisation des communes

Bonjour à tous,

Je voudrais savoir s'il y a un outil qui permet de faire une sectorisation sur Qgis. Pour être plus clair j'ai des communes avec en attribut le nombre d'habitants; et je voudrais qu'une commune ou groupe de communes contigues qui a entre 85 et 115 habitants soit considéré(é) comme un secteur. Je voulais le faire manuellement mais vue le nombre de communes ça devient vite fastidieux.

Je vous remercie d'avance de vos suggestions.

Merci et bonne journée.

Dernière modification par devnice (Wed 27 May 2015 10:38)

Hors ligne

 

#2 Wed 27 May 2015 10:41

cyrille
Participant assidu
Date d'inscription: 7 Feb 2006
Messages: 401

Re: QGIS : Sectorisation des communes

Bonjour, je suis interessé par d'eventuelles reponses ..

Hors ligne

 

#3 Wed 27 May 2015 10:55

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 611

Re: QGIS : Sectorisation des communes

Bonjour,

Je ne connais rien sur QGIS, mais cela existe peut-être.

Sur R, il y a des choses sympa avec la librairie "spdep"

Je mets un bout de code que j'avais testé (il y a assez longtemps) et notamment la fonction skater

Code:

### loading data
bh <- readShapePoly(system.file("etc/shapes/bhicv.shp",
      package="spdep")[1])
### data standardized 
dpad <- data.frame(scale(bh@data[,5:8]))
 
### neighboorhod list
bh.nb <- poly2nb(bh)
 
### calculating costs
lcosts <- nbcosts(bh.nb, dpad)
 
### making listw
nb.w <- nb2listw(bh.nb, lcosts, style="B")
 
### find a minimum spanning tree
mst.bh <- mstree(nb.w,5)
 
### the mstree plot
par(mar=c(0,0,0,0))
plot(mst.bh, coordinates(bh), col=2,       
     cex.lab=.7, cex.circles=0.035, fg="blue")
plot(bh, border=gray(.5), add=TRUE)
 
### three groups with no restriction
res1 <- skater(mst.bh[,1:2], dpad, 2)
 
### groups size
table(res1$groups)
 
### the skater plot
par(mar=c(0,0,0,0))
plot(res1, coordinates(bh), cex.circles=0.035, cex.lab=.7)
 
### the skater plot, using other colors
plot(res1, coordinates(bh), cex.circles=0.035, cex.lab=.7,
     groups.colors=rainbow(length(res1$ed)))
 
### the Spatial Polygons plot
res1 <- skater(mst.bh[,1:2], dpad, 9)
 
plot(bh, col=(1:9)[res1$groups])
 
### EXPERT OPTIONS
 
### more one partition
res1b <- skater(res1, dpad, 1)
 
### length groups frequency
table(res1$groups)
table(res1b$groups)
 
### thee groups with minimum population 
res2 <- skater(mst.bh[,1:2], dpad, 2, 200000, bh@data$Pop)
 
### thee groups with minimun number of areas
res3 <- skater(mst.bh[,1:2], dpad, 2, 3, rep(1,nrow(bh@data)))
 
### thee groups with minimun and maximun number of areas
res4 <- skater(mst.bh[,1:2], dpad, 2, c(20,50), rep(1,nrow(bh@data)))
 
table(res2$groups)
table(res3$groups)
table(res4$groups)
 
### if I want to get groups with 20 to 40 elements
res5 <- skater(mst.bh[,1:2], dpad, 2,
   c(20,40), rep(1,nrow(bh@data))) ## DON'T MAKE DIVISIONS 
table(res5$groups)
 
### In this MST don't have groups with this restrictions
### In this case, first I do one division
### with the minimun criteria
res5a <- skater(mst.bh[,1:2], dpad, 1, 20, rep(1,nrow(bh@data))) 
table(res5a$groups)
 
### and do more one division with the full criteria
res5b <- skater(res5a, dpad, 1, c(20, 40), rep(1,nrow(bh@data)))
table(res5b$groups)
 
### and do more one division with the full criteria
res5c <- skater(res5b, dpad, 1, c(20, 40), rep(1,nrow(bh@data)))
table(res5c$groups)
 
### It don't have another divison with this criteria
res5d <- skater(res5c, dpad, 1, c(20, 40), rep(1,nrow(bh@data)))
table(res5d$groups)

Peut-être y a t il moyen d'adapter quelque chose avec le plugin de geotraitements?

Pascal


Pascal PLUVINET

Hors ligne

 

#4 Wed 27 May 2015 11:23

daniellopez
Participant actif
Lieu: france
Date d'inscription: 22 Jan 2015
Messages: 80

Re: QGIS : Sectorisation des communes

Le seul problème est que tu veux fusionner des polygones sur une plage de valeurs. Il faut don créer un nouveau champ dans la table attributaire qui servira à fusionner les communes qui correspondent à  la fourchette 85-115.
Pour cela:
créer un nouveau champ numérique, par exemple "secteurs"
Calculker la valeur du champ en le remplissant avec l'identifiant de ta table
selctionner les communes avec 85-115 habitants
remplir la colonne secteurs avec une valeur plus grande que le nombre d'enregistrements de la table

Comme ça, toutes les communes qui n'ont pas entre 85 et 115 habitants auront une valeur de secteurs différentes et toutes les communes avec 85-115 habitants auront la même valeur

Pour fusionner les communes par secteur il faut utiliser la commande Vecteur->Outils de géotraitement->Regrouper en mettant secteurs comme champ de catégorie


Daniel

Hors ligne

 

#5 Wed 27 May 2015 12:19

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 611

Re: QGIS : Sectorisation des communes

Je crois que j'avais lu un peu rapidement la question posée ! Je pensais que l'on souhaitait faire des secteur de comunes contigues en fonction du nombre d'habitants sans mise en classe préalable.


Pascal PLUVINET

Hors ligne

 

#6 Wed 27 May 2015 13:10

devnice
Participant occasionnel
Date d'inscription: 26 Jun 2012
Messages: 18

Re: QGIS : Sectorisation des communes

ppluvinet a écrit:

Je crois que j'avais lu un peu rapidement la question posée ! Je pensais que l'on souhaitait faire des secteur de comunes contigues en fonction du nombre d'habitants sans mise en classe préalable.


oui c'est exactement ça

Hors ligne

 

#7 Wed 27 May 2015 13:14

devnice
Participant occasionnel
Date d'inscription: 26 Jun 2012
Messages: 18

Re: QGIS : Sectorisation des communes

daniellopez a écrit:

Le seul problème est que tu veux fusionner des polygones sur une plage de valeurs. Il faut don créer un nouveau champ dans la table attributaire qui servira à fusionner les communes qui correspondent à  la fourchette 85-115.
Pour cela:
créer un nouveau champ numérique, par exemple "secteurs"
Calculker la valeur du champ en le remplissant avec l'identifiant de ta table
selctionner les communes avec 85-115 habitants
remplir la colonne secteurs avec une valeur plus grande que le nombre d'enregistrements de la table

Comme ça, toutes les communes qui n'ont pas entre 85 et 115 habitants auront une valeur de secteurs différentes et toutes les communes avec 85-115 habitants auront la même valeur

Pour fusionner les communes par secteur il faut utiliser la commande Vecteur->Outils de géotraitement->Regrouper en mettant secteurs comme champ de catégorie


Daniel


Merci Daniel de ta réponse; mais c'est pas exactement ce que je veux. Au fait les groupes de communes dont la somme sera dans la plage 85-115 doivent être contigües (voisines).

Hors ligne

 

#8 Wed 27 May 2015 13:43

daniellopez
Participant actif
Lieu: france
Date d'inscription: 22 Jan 2015
Messages: 80

Re: QGIS : Sectorisation des communes

J'ai peur de ne pas trouver une solution. Cela semble à un problème avec n solutions, car les groupes dépendront de quelle commune on prend comme base : 5 communes adjacentes avec 25 habitants chacune  peuvent avoir cinq solutions possibles en excluant une commune différente dans chacune d'elles.

Daniel

Hors ligne

 

Pied de page des forums

Powered by FluxBB