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 !.
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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 05 July 2006 16:51

FredVincent
Invité

Récupération d'attributs d'une couche à une autre

Bonjour à tous, j'ai le problème suivant:

-J'ai ArcMap 9.1
-J'ai 2 couches polygones, avec beaucoup d'entités.
-Je désire transférer l'information d'un champs de la couche A vers la couche B.
Les 3 méthodes suivante ne fonctionne pas:
1.Géoprocessing des 2 couche. Je ne peux pas puisque ça va me créer trop de mini polygones non-désirable. Le nettoyage va être trop long (On parle de 500 000 polygones)
2.Join à partir d'une localisation spatiale ne fonctionne pas vraiment. Dès qu'un polygone de la couche B superposes 2 polygone de la couche A, l'information est null (alors qu'il aurait du en choisir un selon ESRI...Bug...Il ya juste en informatique qu'ils sortent des outils en sachant pertinament que ça ne fonctionne pas...). A noter que l'information est Text.
3.Édition spécialisé -- spatial adjustment -- Attribute transfert mapping. Cet outils fonctionne très bien mais je suis obligé de faire les transferts un à un mannuellement. 500 000 polygones, je risque de tomber en congé maladie à cause d'une tandinite...

Connaissez vous une autre méthode qui pourrait répondre à mon problème. Existe-t-il des outils, des patchs, payant ou non, que je pourrait utiliser?

Merci

 

#2 Wed 05 July 2006 17:55

GUYON
Participant occasionnel
Lieu: Université de Liège - Arlon
Date d'inscription: 15 Nov 2005
Messages: 10
Site web

Re: Récupération d'attributs d'une couche à une autre

Bonjour,

A tout hasard, est-ce que la conversion de votre couche A en une couche
point (centroïde des polygones, facile à faire avec XTools Pro)puis une
jointure spatiale de cette couche point avec votre couche B ne marcherait
pas ?
__________________________________________________

Francis GUYON

Attaché de Recherche
Université de Liège - Campus d'Arlon
Département en Sciences et Gestion de l'Environnement
Avenue de Longwy, 185
B - 6700 ARLON (Belgique)

Tel. : (00.32).063/23.08.94
Mail : F.Guyon@texte-a-enlever.ulg.ac.be

Hors ligne

 

#3 Wed 05 July 2006 20:05

FredVincent
Invité

Re: Récupération d'attributs d'une couche à une autre

Pas fou comme idée. C'est pas l'idéal mais c'est mieux que rien... Le problème avec le centroid c'est qu'il abouti parfois à l'extérieur du polygone, ce qui fausse les résultats (par exemple, un polygone en forme de quartier de lune). Si quelqu'un a une meilleure idée, je suis ouvert...
Merci!

 

#4 Thu 06 July 2006 07:59

yann_eric_boyeau
Juste Inscrit !
Lieu: Nouméa
Date d'inscription: 26 Oct 2005
Messages: 5

Re: Récupération d'attributs d'une couche à une autre

bonjour,

L'idée est de chercher l'attribut A majoritaire en surface dans chaque polygone B pour lui affecter la valeur.

Il faut donc commencer par réaliser une union de vos deux couches, vous obtiendrez alors effectivement un nombre très important de petits polygones. Calculez la surface de tous les polygones.

Travaillez ensuite uniquement avec la table attributaire de la couche d'union en l'exportant dans une base de données.

On dispose alors d'une table avec les champs "Id A", "Attribut A", "Id B" et "Surface".

Faites une requête du type "somme de Surface" groupée par "Attribut A" et par "Id B"
(on connaît alors pour chaque polygone B, la somme des surfaces par "attribut A" des petits polygones qui le composent)

Utilisez le résultat de la requête précédente pour sélectionner l'attribut majoritaire en surface, c-a-d : l' "attribut A" ayant la plus grande "somme des surfaces"  par "Id B".

Reste à faire une jointure avec le champ "Id B" entre votre couche B et la table issue de la dernière requète. Vous obtiendrez alors le tranfert de l'attribut A le plus représenté en surface sur chaque polygone de la couche B.

OUF !


Yann-Eric Boyeau
Ingénieur Géomaticien
Service de la Géomatique et de la Télédétection
Gouvernement de la Nouvelle-Calédonie

Hors ligne

 

#5 Thu 06 July 2006 09:37

yann_eric_boyeau
Juste Inscrit !
Lieu: Nouméa
Date d'inscription: 26 Oct 2005
Messages: 5

Re: Récupération d'attributs d'une couche à une autre

Il me semble difficile de faire autre chose qu'une union de vos deux
couches, vous obtiendrez alors effectivement un nombre très important de
petits polygones. Calculez la surface de chaque polygone. Travaillez alors
uniquement avec la table attributaire de la couche d'union en l'exportant
dans une base de données.

On dispose alors d'une table avec les champs "Id A", "Attribut A", "Id B" et
"Surface".

Faites une requête du type "somme des surfaces" groupée par "Attribut A" et
par "Id B" (on connaît alors pour chaque polygone B la somme des surfaces
par "attribut A" des polygones qui le composent)

Faites ensuite une requête sélectionnant l' "attribut A" ayant la "somme des
surface la plus grande" par "Id B" (On obtient alors l' "attribut A" le plus
représentatif en surface du polygone ayant l'"Id B").

Reste à faire une jointure par "Id B" entre votre couche B et la table issue
de la dernière requète. Vous obtiendrez alors le tranfert de l'attribut A le
plus représenté en surface sur chaque polygone de la couche B.

OUF !

Yann-Eric Boyeau
Ingénieur Géomaticien
Service de la Géomatique et de la télédétection
Direction des Technologies et des Services de l'Information
Gouvernement de la Nouvelle-Calédonie
Tel : 27 58 88 - Mail : yann-eric.boyeau@texte-a-enlever.gouv.nc

Hors ligne

 

#6 Thu 06 July 2006 09:38

Wil
Participant occasionnel
Lieu: Limoges
Date d'inscription: 21 Dec 2005
Messages: 29
Site web

Re: Récupération d'attributs d'une couche à une autre

Lors de la conversion en points de la couche de polygones avec Xtools, vous
pouvez spécifier création au centroïde du polygone, ou au label (c'est à
dire dans le polygone dans tous les cas).
                               
        Wilfrid FAUCHER       
Direction Urbanisme - Mairie 
          de Limoges           
  tel: 05.55.45.98.43 / fax:   
        05.55.45.98.40

Hors ligne

 

#7 Thu 06 July 2006 19:12

FredVincent
Invité

Re: Récupération d'attributs d'une couche à une autre

Excelent! Je crois que cette dernière réponse me conviendra... Merci a tous... Doit faire beau en Nouvelle-Calédonie...

FredVincent en direct du nord du nord du Québec...

 

#8 Fri 07 July 2006 09:06

yann_eric_boyeau
Juste Inscrit !
Lieu: Nouméa
Date d'inscription: 26 Oct 2005
Messages: 5

Re: Récupération d'attributs d'une couche à une autre

Doit faire moins froid qu'au nord du nord du québec...

Pour ce qui est du transfert par centroid à l'intérieur du polygone,
regardez bien comment celui-ci est replacé dans le cas où il se devrait se
situer à l'extérieur... Il est pratiquement "collé" à la limite du polygone,
certes à l'intérieur. Il faut donc être prudent si vos deux couches ont des
écarts de géométrie non négligeables, il n'est pas certain que le label
fasse le transfert entre les bons polygones.

Hors ligne

 

Pied de page des forums

Powered by FluxBB