Suite

Searchcursor ne prend que la première valeur dans le champ


Mon script ArcGIS 10.2 utilise le curseur de recherche pour lire la classe d'entités mlanduse pour renvoyer la valeur dans lField, mais il ne renvoie que la première valeur dans lField pour remplir le sField dans mSoils.

# Parcourez les lignes et mettez à jour les valeurs sField vides dans mSoils # avec les lFields de mlanduse pour la ligne dans le curseur : avec arcpy.da.UpdateCursor(mSoils, sField, "SoilType ="") comme curseur2 : pour la ligne2 dans le curseur2 : ligne2 [0] = ligne[0] ligne = curseur.suivant()

Si je comprends bien, le problème ici est que vous voulez faire une jointure spatiale (basée sur l'emplacement) mais que vous utilisez une méthode de jointure de table (basée sur un champ "clé"). En effet, il ne semble pas y avoir de champ clé et vous n'avez pas le même nombre de feature, vous ne pourrez donc pas obtenir la correspondance en fonction de vos attributs. Je suggère que vous commenciez avec arcpy.SpatialJoin_analysis et l'option de correspondance "dans", puis vous pouvez mettre à jour vos champs vides avec votre curseur de mise à jour. L'inconvénient de la méthode est qu'elle crée une nouvelle classe d'entités, vous pouvez donc également utiliser la géométrie dans votre curseur, mais je n'ai pas le temps d'écrire le script.