Suite

Formatage de l'expression SQL pour l'outil de calcul de champ (gestion) ?


J'essaie de prendre le secteur de recensement de la population et de calculer le pourcentage de la population par secteur de recensement sur le terrain (Populati_2). Pour ce faire, je crée un nouveau champ avec la somme totale de la population (pop).

Pour obtenir le pourcentage que j'utilise l'expression suivante sur arcgis[Population_2] / [Pop] *100. Cela fonctionne bien dans arcgis, mais lorsque je l'utilise pour calculer la gestion des champs ou python, cela ne fonctionne tout simplement pas.

Je ne sais pas comment formater l'expression, j'ai essayé toutes les combinaisons et cela ne fonctionne tout simplement pas.

Voici une partie du script :

arcpy.AddField_management(r"Résultatspopjoin.dbf", "Pop", "LONG", "", "", "5") arcpy.AddField_management(r"Résultatspopjoin.dbf", "Pop2", "DOUBLE ", "", "", "5") arcpy.CalculateField_management(r"Resultspopjoin.dbf", "Pop", summed_total) arcpy.CalculateField_management(r"Resultspopjoin.dbf", "Pop2","Populati_2 ] / [Pop] *100")

Celui-ci me donne des erreurs, mais ce qui suit ne me donne aucune erreur mais j'obtiens un 0 dans chaque ligne au lieu du calcul.

expression = "!Populati_2! / !Pop! * 100"

arcpy.CalculateField_management(r"Résultatspopjoin.dbf", "Pop2", expression, "PYTHON_9.3")

Comme vous pouvez le lire dans les commandes, faites attention à ce qu'est un VBS et quel Python commande/expression.

fc = "file_name" # http://gis.stackexchange.com/a/82251/53268 summed_total = 0 avec arcpy.da.SearchCursor(fc, "Populati_2") comme curseur : pour la ligne dans le curseur : summed_total = summed_total + ligne [0] arcpy.AddField_management(fc, "Pop", "LONG", "", "", "5") arcpy.CalculateField_management(fc, "Pop", summed_total) arcpy.AddField_management(fc, "Pop2", " DOUBLE", "", "", "5") arcpy.CalculateField_management(fc, "Pop2", "!Populati_2! / !Pop! * 100", "PYTHON", "#")

Si vous rencontrez des problèmes avec l'expression, vous pouvez toujours utiliser la boîte à outils de calcul de champ pour créer votre expression. Voir votre ancien résultat sousGéotraitement -> Résultats

Avec un double clic sur Calculer le champ vous pouvez ouvrir la boîte à outils. Ici, vous pouvez utiliser le générateur d'expressions (assurez-vous de définir Python comme analyseur) :


Si vous n'êtes pas sûr de la syntaxe de l'expression, essayez ce qui suit :

  1. Créez un module dans ModuleBuilder, ajoutez l'outil Calculer le champ, définissez tous les paramètres et exécutez le modèle.
  2. S'il s'exécute avec succès, exportez le modèle Fichier>Exporter vers le script python
  3. Utilisez la syntaxe d'expression python du .py exporté de l'étape 2 dans votre instruction python Calculate Field


Voir la vidéo: Presentation des expressions Text (Octobre 2021).