Pages: 1
- Sujet précédent - calcul de distance moyenne entre des points au sein d'un polygone - Sujet suivant
#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
Re: calcul de distance moyenne entre des points au sein d'un polygone
Bonjour,
Laissons un peu de temps à nos magiciens
Bidouilleurs?
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) :
//on récupère l'ancienne valeur de a
// fin de la boucle
// 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 , 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)
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
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! 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
Pages: 1
- Sujet précédent - calcul de distance moyenne entre des points au sein d'un polygone - Sujet suivant