Estoy usando ArcGIS 10 y de nuevo en el lenguaje de programación python. Tengo un campo de cadena de caracteres que necesito para calcular multiplicando otros dos campos de cadena. Puedo hacerlo en python utilizando dos valores arbitrarios...
CINPT1 = "1.00"
CNETVAL = "8500"
print int(float(CINPT1) * int(CNETVAL))
pero...necesito esto como una arcpy fieldcalculation. Lo que tengo ahora es el siguiente. Estoy tratando básicamente de lo que está por encima: el CNETVAL campo debe ser igual a CINPT1 * CUNITV
import arcpy, sys, string, os
MAPCHAR = "MAPCHAR"
CINPT1 = "CINPT1"
CNETVAL = "CNETVAL"
CUNITV = "CUNITV"
expression = "multiStringFunc(!CNETVAL!)"
codeblock = """def multiStringFunc(netvalue):
value1 = float(CINPT1)
unitvalue = int(CUNITV)
netvalue = int(value1 * unitvalue)
return netvalue"""
# Process: CUNITV = CINPT1 * CUNITV
arcpy.CalculateField_management(MAPCHAR, CINPT1, expression, "Python", codeblock)
¿Qué recibo a cambio es "global nombre de 'CINPT1' no está definido". Soy bastante nuevo en el uso de python, así que no sé si estoy usando el valor incorrecto en el codeblock o yo estoy totalmente apagado. Cualquier cosa que usted puede aportar se agradece. Gracias!