Suite

Le calcul de la latitude centroïde dans ArcMap génère l'erreur 000539 dans Arcpy?

Le calcul de la latitude centroïde dans ArcMap génère l'erreur 000539 dans Arcpy?


Je peux créer un champ de latitude centroïde dans ArcMap10.1 en utilisant "Calculer la géométrie… " dans la table attributaire, mais quand j'essaye la même chose en utilisant : arcpy.CalculateField_management(bins_WGS84, "cent_lat", "!SHAPE.CENTROID.Y!" , "PYTHON_9.3"),

J'obtiens l'erreur suivante : arcgisscripting.ExecuteError : ERREUR 000539 : Erreur lors de l'exécution de l'expression : GPVARIANTOBJECT0.CENTROID.Y. Cela n'arrive qu'occasionnellement, mais tue mon script et me coûte beaucoup de temps/de données. Sur l'ensemble de données particulier que je teste, cela se produit sur environ 10 lignes, bien que la géométrie semble correcte et qu'Arcmap ne se plaint pas lors de la recherche du centroïde.

Je sais que c'est possible, car cela fonctionne pour le même jeu de données dans ArcMap, cependant, cette action n'apparaît pas dans la fenêtre Résultats.


Je suppose qu'il y a quelque chose qui ne va pas avec votre géométrie.

Essayez d'utiliserRepairGeometry_managementavant le calcul de votre champ.

Si cela ne fonctionne pas, une solution de contournement est probablement nécessaire.

j'utiliseraisFeatureToPoint_management, suivi parAddXY_management, suivi parSpatialJoin_analysis.

Edit: La meilleure méthode pourrait être via un UpdateCursor. Ensuite, vous pouvez utiliser un essai/sauf pour savoir quelles fonctionnalités sont à l'origine du problème et approfondir vos recherches.

curseur = arcpy.da.UpdateCursor (bins_WGS84, ["cent_lat", "[email protected]", "[email protected]"]) pour la ligne dans le curseur : essayez : ligne[0] = ligne[2][1] curseur.updateRow( row) sauf : print "Impossible d'ajouter la valeur Y à", row[1] del row del cursor

Voir la vidéo: Python: Map Automation in ArcGIS Pro