Suite

Remplir le champ de chaîne de table attributaire avec les valeurs du champ long à l'aide de vbScript dans ArcGIS Field Calculator ?

Remplir le champ de chaîne de table attributaire avec les valeurs du champ long à l'aide de vbScript dans ArcGIS Field Calculator ?


Je veux calculer le champ "area_type" avec du texte en fonction des nombres du champ "Value". J'ai essayé avec le script VB suivant dans "Field Calculator" mais je reçois ce message d'erreur :

"La valeur calculée n'est pas valide pour la ligne avec ObjectID = 1. Par exemple, la valeur calculée peut être trop grande pour le champ ou vous essayez peut-être d'ajouter une chaîne à un champ numérique. Cette ligne ne sera pas mise à jour".

Mon type de champ "area_type" est une chaîne et "Value" est un type long.

Dim area_type Sélectionnez Case [value] Case "1" area_type = "aapent omraade" Case "11" area_type = "bebygd" Case "12" area_type = "samferdsel" Case "21" area_type = "fulldyrka jord" Case "22" area_type = "overflatedyrka jord" Case "23" area_type = "innmarksbeite" Case "30" area_type = "skog" Case "50" area_type = "aapen fastmark" Case "60" area_type = "myr" Case "70" area_type = "isbre " Case "80" area_type = "vann" Case "99" area_type = "ruralt (ikke kartlagt)" End Select

Vous avez mélangé l'approche VB Script des calculs de champs avec l'approche Python. Avec VB Script, l'expression ne doit pas indiquer le nom du champ d'entrée, elle doit indiquer la variable de sortie. Python doit utiliser l'expression pour alimenter les valeurs de champ dans la section Code de script pré-logique, mais VB Script ne le fait pas. Par conséquent, votre expression ne doit pas être Value et doit plutôt être area_type.

Vous devez également utiliser des valeurs entières pour les valeurs de cas, pas des chaînes. Vous devriez également avoir un Case Else pour utiliser la valeur de champ existante pour la situation où vous avez omis un code, car quelque chose doit encore être écrit dans le champ area_type. Par conséquent, le code de script pré-logique devrait plutôt être :

Select Case [value] Case 1 area_type = "aapent omraade" Case 11 area_type = "bebygd" Case 12 area_type = "samferdsel" Case 21 area_type = "fulldyrka jord" Case 22 area_type = "overflatedyrka jord" Case 23 area_type = "innmarksbeite" Case 30 area_type = "skog" Case 50 area_type = "aapen fastmark" Case 60 area_type = "myr" Case 70 area_type = "isbre" Case 80 area_type = "vann" Case 99 area_type = "ruralt (ikke kartlagt)" Case Else area_type = [area_type] Fin de la sélection

letype_zonele champ est suffisamment grand avec les 50 caractères par défaut pour ces valeurs. L'erreur se produit car le calcul ne définit jamais une variable appelée valeur, donc rien n'est jamais renvoyé. En changeant la valeur entype_zoneune valeur variable sera renvoyée.


Voir la vidéo: How to Calculate Polygon Area in ArcMap. Calcul surface ArcGis