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 Fri 31 May 2013 09:35

lauriane
Participant occasionnel
Date d'inscription: 19 Mar 2013
Messages: 21

calcul de distance moyenne entre des points au sein d'un polygone

Bonjour,

Je sais que de nombreux sujets traitent du calcul de distance sur ArcGis mais je n’arrive pas à trouver une méthode qui s’applique correctement à mon cas.
J’aimerais pouvoir calculer une distance moyenne entre des arbres, matérialisés dans ma base de données par des points, à l’intérieur de leur polygone d’appartenance.
Savez-vous comment je peux m’y prendre ? Je précise que je travaille sur ArcGis 10.

Merci beaucoup,

Lauriane

Hors ligne

 

#2 Fri 31 May 2013 10:55

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: calcul de distance moyenne entre des points au sein d'un polygone

Bonjour,

Je ne connais pas d'outils permettant de faire ça, mais je serais en mesure de le développer en Python (sous ArcGIS 10 en particulier).
Laissons un peu de temps à nos magiciens (Robin, nitram, Franck pour ne citer qu'eux) de répondre à votre questions, ils connaîtront peut-être une technique pour y arriver. Dans le cas contraire, je pourrai regarder ça ce week-end (mais il me faudrait si possible un extrait de votre jeu de données, arbres+polygones d'appartenance).

Cordialement,
Kevin.

Hors ligne

 

#3 Fri 31 May 2013 11:29

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: calcul de distance moyenne entre des points au sein d'un polygone

Bonjour,

Laissons un peu de temps à nos magiciens


Bidouilleurs? smile

De quelle licence disposez vous ?

En s'appuyant sur l'outil "Distance entre les points (Analyse)" - ArcInfo
http://help.arcgis.com/fr/arcgisdesktop … 01r000000/
En dupliquant la couche de point et en embarquant un attribut d'appartenance aux différents polygones via une jointure spatiale, je pense que ça peut le faire, si licence arcinfo...

Martin

Hors ligne

 

#4 Fri 31 May 2013 11:30

lauriane
Participant occasionnel
Date d'inscription: 19 Mar 2013
Messages: 21

Re: calcul de distance moyenne entre des points au sein d'un polygone

Merci beaucoup! Je vous enverrais mon jeu de données si jamais il n'y a pas de réponse d'ici ce week-end!

Hors ligne

 

#5 Fri 31 May 2013 11:34

lauriane
Participant occasionnel
Date d'inscription: 19 Mar 2013
Messages: 21

Re: calcul de distance moyenne entre des points au sein d'un polygone

merci! je peux disposer d'une licence arcinfo donc je vais essayer!

Hors ligne

 

#6 Fri 31 May 2013 16:37

Georgie
Participant assidu
Date d'inscription: 28 May 2011
Messages: 232

Re: calcul de distance moyenne entre des points au sein d'un polygone

Oui inutile de dupliquer d'ailleurs, on peut prendre deux fois la couche dans l'outil Point Distance. ça prend tout les points entre eux.
Jointure ou selection spatiale avec les polygones pour faire des moyennes des distances.

Hors ligne

 

#7 Sat 01 June 2013 13:01

lauriane
Participant occasionnel
Date d'inscription: 19 Mar 2013
Messages: 21

Re: calcul de distance moyenne entre des points au sein d'un polygone

En effet, il n'y a pas besoin de dupliquer la couche. Néanmoins, je me rends compte que je suis un peu ambitieuse : ma couche comporte plus de 12000 entités, ce qui ferait une matrice de distance avec un nombre énorme d'enregistrement!

Dans l'idéal il faudrait que je trouve un script qui me permette de créer un champ de distance entre un point et tous les autres points du même polygone dans ma table de point, et un champ de distance moyenne entre les points dans ma table polygone. J'ai quelques premières idées :

1) récupérer l'id du polygone auxquels les points appartiennent, ensuite créer un champ  de récapitulation afin de savoir le nombre de points qui sont dans ce même polygone.

Lancer un script python qui va remplir un champ grâce à ce genre de boucle :

tant que  i < (nombre de points dans le polygone) :
a=\sqrt[2]{(Xpointsenquestion - Xi)^2 + (Ypointenquestion + Yi)^2}+ a //on récupère l'ancienne valeur de a
// fin de la boucle

a=\frac{a}{nombre de points-1} // on enlève le point en question

remplir le champ avec ce a


Cela donne pour chaque point une distance moyenne en fonction des autres dans le même polygone.

2)Ensuite il faut faire la moyenne de ce champ en fonction du champ Id du polygone récupéré à la première étape. On obtient alors un champ avec la distance moyenne.

Maintenant il faut arriver à créer le script nécessaire pour faire cela

Hors ligne

 

#8 Sat 01 June 2013 13:05

Georgie
Participant assidu
Date d'inscription: 28 May 2011
Messages: 232

Re: calcul de distance moyenne entre des points au sein d'un polygone

Oui cela fera 12 000 * 12 000 - 12 000 enregistrements, ce qui ne devrait pas poser problème en créant son propre champ identifiant (les FID s'arrêtent je crois à 10 000).

Mais si c'est pour vous l'occasion de mettre les mains dans Python, je ne peux que vous encourager !

Hors ligne

 

#9 Sat 01 June 2013 22:30

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: calcul de distance moyenne entre des points au sein d'un polygone

Bonsoir,

Je vous ferai une ébauche de script en ce sens demain.

Kevin

Hors ligne

 

#10 Sun 02 June 2013 10:09

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: calcul de distance moyenne entre des points au sein d'un polygone

Bonjour,

Vous trouverez en pièce jointe un script qui devrait répondre au 1er de vos 2 points. Je l'ai encapsulé au sein d'un outil dans une boite à outil pour en faciliter l'utilisation.
Cet outil requiert les paramètres suivants :
1. la couche d'entités surfacique d'appartenance des points
2. le champ de la couche des polygones les identifiant de manière unique (utiliser le champ OID interne d'ESRI si vous n'avez pas de champ identifiant)
3. la couche des points dont il faut calculer l'interdistance moyenne
4. le champ de la couche des points dans lequel l'identifiant du polygone d'emprise sera inscrit. Le script ne crée pas le champ, il faut qu'il existe au préalable. ATTENTION : ce champ doit être du même type que le champ identifiant choisi en 2, aucun contrôle de cohérence n'étant fait, le script plantera si ce n'est pas le cas.
5. le champ de la couche des points dans lequel l'interdistance moyenne sera inscrite. Doit être de type DOUBLE.

J'ai essayé de commenter au maximum mon script afin que vous puissiez vous l'approprier. N'hésitez pas à me poser des questions.

Pour info :
- pour vos 1ers tests, je vous conseille de sélectionner seulement 2 ou 3 polygones d'emprise, l'outil ne calculera la distance moyenne que sur cette sélection
- j'ai lancé le test sur une entité surfacique comprenant 4500 points, cela a pris 24min. Je n'ai pas cherché à optimiser.

Il fait désormais trop beau pour rester derrière mon ordinateur cool, mais je pourrai compléter ce script ce soir pour qu'il traite également le 2ème point en renseignant un champ de la couche des polygones d'emprise.

A+,
Kevin

Dernière modification par Kevin Jousseaume (Sun 02 June 2013 10:16)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#11 Sun 02 June 2013 15:30

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: calcul de distance moyenne entre des points au sein d'un polygone

Vous trouverez en pièce jointe une autre version de l'outil et du script. L'outil requiert désormais les paramètres suivants :
1. la couche d'entités surfacique d'appartenance des points
2. le champ de la couche des polygones les identifiant de manière unique (utiliser le champ OID interne d'ESRI si vous n'avez pas de champ identifiant)
3. le champ de la couche des polygones dans lequel l'interdistance moyenne sera inscrite. Doit être de type DOUBLE.
4. la couche des points dont il faut calculer l'interdistance moyenne
5. le champ de la couche des points dans lequel l'identifiant du polygone d'emprise sera inscrit. Le script ne crée pas le champ, il faut qu'il existe au préalable. ATTENTION : ce champ doit être du même type que le champ identifiant choisi en 2, aucun contrôle de cohérence n'étant fait, le script plantera si ce n'est pas le cas.
6. le champ de la couche des points dans lequel l'interdistance moyenne sera inscrite. Doit être de type DOUBLE.

Bonne fin de week-end,
Kevin


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#12 Mon 03 June 2013 09:12

lauriane
Participant occasionnel
Date d'inscription: 19 Mar 2013
Messages: 21

Re: calcul de distance moyenne entre des points au sein d'un polygone

Super! Merci! Je vais tester ce soir et je vous retiens au courant! Et désolée de vous faire cogiter le week-end! smile Lauriane

Hors ligne

 

#13 Mon 03 June 2013 09:37

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: calcul de distance moyenne entre des points au sein d'un polygone

Ne soyez pas désolée, ce fut un plaisir au contraire !!! Et puis n'ayez pas mauvaise conscience : étant en arrêt de travail depuis 2 mois, la notion de week-end s'est considérablement estompée...

Kevin

Hors ligne

 

Pied de page des forums

Powered by FluxBB