+1 voto
1.8k vistas
por Confiable (257 puntos)   en ArcGIS Desktop
reetiquetada por

Numerar automáticamente un campo de una tabla en un shp, distinto al de FID u objectid, ya que el orden del numero correlativo de  fid u objectid es DIFERENTE al orden alfabético Ejemplo centros poblados

Object ID Centros poblados

Número Automático

(Enumerar según orden alfabético de los centros poblados)
 

1 Alzamora 1
3 Bartolomé 2
2 Guadalupe 3

                      

1 Respuesta

0 votos
por Administrador (7.4k puntos)  
editado por

Tal vez has intentado con al crea un nuevo campo tipo Double/Short Integer, clic derecho sobre el campo seleccionar Field Calculator, selecciona Python, activa Show Codeblock, ahora en Pre-Logic Script Code y el siguiente cuadro copias los siguientes códigos respectivamente:

Expression:
autoIncrement()

Expression Type:
PYTHON_9.3

Code Block:
rec=0
def autoIncrement():
 global rec
 pStart = 1 #adjust start value, if req'd 
 pInterval = 1 #adjust interval value, if req'd
 if (rec == 0): 
  rec = pStart 
 else: 
  rec = rec + pInterval 
 return rec

Los valores de las líneas pStart pInterval, se pueden modificar arbitrariamente.

Field Calculator Python Rec

 

Otra opción sería con un script de Visual Basic rec_number.cal de Easy Calculate.

Static rec As Long
Static i As Long
Dim lStart As Long
Dim lInterval As Long
'=================
'adjust start value and interval below
lStart =  1
lInterval = 1
'=================
If (i = 0) Then
  rec = lStart
Else
  rec = rec + lInterval
End If
i = i + 1

__esri_field_calculator_splitter__
rec

por Confiable (257 puntos)  
editado por
Franz, podrías en reenviar esos códigos de una manera con separaciones, que se puedan ver los que siguen después y no colocar todos de unos solo sin con separación, no se si me dejo entender, algo así ya que solo puedo ver lo de la imagen, espero puedas y seria de gran ayuda, gracias

global rec
pStart = 1
pInterval = 1
if (rec == 0):

Bueno lo he intentado pero se enumera igual al de object o fid y no se puede realizar una numeración de acuerdo al orden alfabético a-z o z-a que deberían de ser distinta numeración.
por Administrador (7.4k puntos)  
Correcto, ya lo he corregido.
No olvides hacer un correcto uso de la gramática y ortografía.
por Novato (100 puntos)  
Buenas tardes Franzpc:

En primer lugar gracias por el blog, me esta siendo de gran ayuda. Estoy intentando, sin éxito, aplicar esta explicación práctica a mi caso. Tengo un shape con 1700 parcelas que contienen datos del catastro con un FID asignado (por defecto). Quiero ordenar este shape  a mi manera y asignarle un ID personalizado. El problema es que siempre que creo mi ID desde Phyton, tal y como has explicado, no me varia el orden respecto a FID, mi ID personaliza es igual al FID y yo lo que quiero es que sea distinta. ¿ Puedes ayudarme?

Gracias
por Administrador (7.4k puntos)  
Cómo deseas ordenar, este script ordena en base al orden de creación de cada registro.
por Novato (100 puntos)  
Tengo la misma duda que le primer comentario. Al aplicar el código phyton, si bien se enumeran automáticamente, no es en el orden que yo deseo. Me gustaría que el producto fuera que estuvieran numerados por orden alfabético del campo (A., B, C ...... Z - 1. A, 2.B, 3.C .... n.Z)
por Novato (100 puntos)  
Hola, tengo la misma duda, y no consigo que nadie me pueda ayudar, lo he buscado por todos los foros que conozco, igual me dejo alguno pero no hay manera de poder conseguir lo que quiero hacer que és lo mismo que piden estos usuarios.
Alguien lo ha conseguido?
como se puede ordenar automaticamente un campo nuevo o ya creado siguiendo el orden de otro campo, o según su selección y ordenados de mayor a menor o al revés.

gracias
...