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 Fri 19 April 2019 21:37

louloupzh18
Participant occasionnel
Lieu: Le Mans
Date d'inscription: 9 Apr 2015
Messages: 11

[ArcGIS] - Script jointure CSV/Shapes

Bonjour à tous,

J'essaye actuellement de créer un script dans ArCatalog qui me permettra d'importer des shapes ainsi que des CSV, pour pouvoir faire une jointure entre les deux. Or, je ne comprend pas bien comment paramétrer tout ca :

Données de base :
- 3 fichiers .csv
- 3 fichiers shapes

Voici le code que j'utilise :

Code:

import arcpy

repertoire = arcpy.GetParameterAsText(0)
destination = arcpy.GetParameterAsText(1)
csvfile1 = arcpy.GetParameterAsText(2)
csvfile2 = arcpy.GetParameterAsText(3)
csvfile3 = arcpy.GetParameterAsText(4)

Shape1 = destination + "\\Shape1_shp.shp"
Shape2 = destination + "\\Shape2_shp.shp"
Shape3 = destination + "\\Shape3_shp.shp"

# Process: Ajouter une jointure
arcpy.AddJoin_management("Shape3", "OBJECTID", csvfile1, "OBJECTID", "KEEP_ALL")
arcpy.AddJoin_management("Shape2", "OBJECTID", csvfile2, "OBJECTID", "KEEP_ALL")
arcpy.AddJoin_management("Shape1", "REFERENCE", csvfile3, "REFERENCE", "KEEP_ALL")

Shape3_shp = destination + "\\Shape3_shp_shp.shp"
Shape2_shp = destination + "\\Shape2_shp_shp.shp"
Shape1_shp = destination + "\\Shape1_shp_shp.shp"

Pourtant, a chaque fois que je lance le script dans ArcCatalog, une erreur m'est remontée :

Traceback (most recent call last):
  File "code.py", line 26, in <module>
    arcpy.AddJoin_management(shape1, "OBJECTID", csvfile1, "OBJECTID", "KEEP_ALL")
  File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 5632, in AddJoin
    raise e
ExecuteError: Échec de l’exécution. Les paramètres ne sont pas valides.
The value cannot be a feature class
ERROR 000840: La valeur ne correspond pas à un Couche raster.
ERROR 000840: La valeur ne correspond pas à un Couche du catalogue d’images.
ERROR 000840: La valeur ne correspond pas à un Couche de mosaïque.
WARNING 000970: Le champ de jointure OBJECTID dans la table de jointure shape1 n’est pas indexé. Pour améliorer les performances, nous vous recommandons de créer un index pour le champ de jointure dans la table de jointure.
ERROR 000728: Le champ OBJECTID n’existe pas dans la table
Échec de l’exécution de (AddJoin).


Échec de l’exécution de (code).


Avez-vous une idée de comment je dois procéder ? Savez-vous pourquoi ce type d'erreur m'est remonté à chaque fois ? Car finalement ca ne dit pas que mon code est faux mais plutôt que ce n'est pas supporté ...

J'oubliais, que doit-on changer dans les paramètres du script pour importer un CSV ? J'ai tenté pas mal de chose en pensant que ca venait de là mais j'obtient toujours cette même erreur sad. Vous trouverez en PJ les paramètres que j'ai choisis pour le moment...

Merci d'avance pour votre aide,

Louloupzh18

Hors ligne

 

#2 Tue 23 April 2019 09:17

Arnaud_D
Membre
Date d'inscription: 9 Mar 2009
Messages: 88

Re: [ArcGIS] - Script jointure CSV/Shapes

Bonjour,

Le problème de ton script c'est que tu utilise directement un shape ce qui n'est pas possible.

L'entrée doit être une couche d'entités, une vue tabulaire ou une couche raster possédant une table attributaire ; ce ne peut pas être une classe d'entités ou une table.


Regarde l'aide en ligne tu trouveras un exemple de code que tu pourras adapter:
http://desktop.arcgis.com/fr/arcmap/10. … d-join.htm


Arnaud DESSENT

Hors ligne

 

Pied de page des forums

Powered by FluxBB