#1 Tue 29 May 2012 16:19
- Yukimina
- Juste Inscrit !
- Date d'inscription: 23 Aug 2010
- Messages: 8
Répartition de données d'un objet vers plusieurs objets
Bonjour,
Je n'arrive pas à faire une petite manipulation qui me semble possible sur Mapinfo, peut-être que quelqu'un pourrait m'aider...
Je dispose de 2 tables (A et B). La table A dispose de plusieurs grands objets auxquels sont associées des données population que je souhaite lier aux objets de la table B.
Les objets de la table A sont plus vastes que ceux de la table B, et ceux de la table B ne remplissent pas la totalité de la surface des objets de la table A (schéma en PJ).
Je souhaiterais que la donnée population soit associée à la table B et qu'elle soit faite de telle façon que la somme population des objets B contenus dans un objet A, corresponde à la population totale de l'objet A. Le tout en prenant en compte la surface des différents objets B (la répartition se fera donc de façon proportionnelle en fonction de la taille des objets).
J'espère avoir été claire...
Merci d'avance !
Et bonne journée !
Hors ligne
#2 Wed 30 May 2012 15:44
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: Répartition de données d'un objet vers plusieurs objets
Bonjour
Il faut en premier lieu connaître la proportion de B par rapport à A. Une fois cette donnée trouvée, il sera facile de mettre à jour la colonne population de votre Table B par rapport à la population de A.
Faites une recherche avec Proportionarea, ou juste Proportion... Vous devriez trouver quelque chose pour vous partir.....
Daniel
De retour à la géomatique
Hors ligne
#3 Sat 02 June 2012 00:09
- tholot
- Participant actif
- Lieu: viré
- Date d'inscription: 5 May 2009
- Messages: 55
Re: Répartition de données d'un objet vers plusieurs objets
ou à l'inverse :
1) vous répartissez la population de A dans chaque polygone B.
-> table mettre à jour colonne: la tableB grâce TableA, avec en jointure polygones A intersecte B
et on met à jour pop de B grâce à Proportion Sum du champ pop de A
2) Vous faites la somme des populations de tous les B
selection sql
-> sum(pop) (dans le dialogue champ) sur la table B et on lance. on obitent la pop rééllement ventilé et il en manque...
3) Vous mettez à jour le champ population de B avec le ratio :
->table mettre à jour colonne tableB à partir d'elle même
on met à jour la colonne pop
et on saisie l'expression pop(le nom de la colonne pop)*la_valeur_pop_de_A (1000 dans votre exemple) / la_valeur_de_sum(pop de tous les B) de votre précédente requête.
Dernière modification par tholot (Sat 02 June 2012 00:12)
Yann
Hors ligne
#4 Mon 04 June 2012 16:31
- Yukimina
- Juste Inscrit !
- Date d'inscription: 23 Aug 2010
- Messages: 8
Re: Répartition de données d'un objet vers plusieurs objets
Merci beaucoup pour vos réponses !! Daniel, je n'ai pas très bien compris la votre, par contre tholot, je vais essayer tout de suite !
Cependant, je me suis rendue compte qu'il manquait un élément important dans mon énoncé : il existe différents types d'objets B et je souhaiterais ajouter un coefficient en fonction du type d'objet. L'objectif : répartir 25% de la pop dans l'objet numéroté 7, et 75% dans l'objet numéroté 8...
Donc première question, chaque objet est identifié par un chiffre : 7 et 8, et je souhaiterais pouvoir indiquer une formule équivalente à celle-ci sous Excel : =SI(B1=7;0,25;SI(B1=8;0,75))
C'est à dire, si l'objet B = 7, alors son coefficient est de 0,25.
Deuxième question, à quel moment ajouter cette condition dans les 3 étapes que vous décrivez Tholot ? Et comment exprimer cette condition ?
Un très grand merci d'avance !
Hors ligne
#5 Mon 11 June 2012 15:26
- Yukimina
- Juste Inscrit !
- Date d'inscription: 23 Aug 2010
- Messages: 8
Re: Répartition de données d'un objet vers plusieurs objets
Personne ne peut m'aider ?
Hors ligne
#6 Mon 11 June 2012 23:13
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Répartition de données d'un objet vers plusieurs objets
Bonjour
Vous pouvez calculer la surface de chaque objet B (par area(obj), puis la somme des surfaces de ceux contenus dans un objet A (par sélection et l'outil "statistique") et donc à la fin le pourcentage respectif de surface de chaque objet B contenu dans un objet A (une simple division, le total de ces pourcentages devant être vérifié égal à 100).
Il suffit alors d'une règle de 3 pour créer une colonne qui utilise ce pourcentage pour l'exprimer en part de population de A
Si vous le souhaitez, faites passer vos données (ou un bout) et je vous explique ça mieux (j'en ai fini avec les impots, j'ai du temps )
Hors ligne