Encontrar valores duplicados en ArcGIS usando un script de Python

Al parecer a futuro se desarrollarán más Scripts en Python antes que usando el popular VBScript, por ello comparto un código para encontrar valores duplicados dentro de la tabla de atributos de un shapefile en ArcGIS, resulta útil cuando tenemos que depurar gran cantidad de datos (ids, cadenas, números, fechas) en nuestras parcelas o elementos de trabajo, para ello ejecutamos uno pasos sencillos que se muestran a continuación.

  • Abrir la tabla de atributos y añadir un nuevo campo tipo “Short Integer”.
  • Abrir la calculadora “Field Calculator” (clic derecho sobre el nuevo campo).
  • Marcar “Python” en la pestaña “Parser”.
  • Activar “Show Codeblock”.
  • En el bloque “Pre-Logic Script Code:” insertar el siguiente código:

 

uniqueList = [] def isDuplicate(inValue):
   if inValue in uniqueList:
    return 1
  else:
    uniqueList.append(inValue)
    return 0

  • En el cuadro de texto posterior (lleva el nombre del campo) insertar este código:

isDuplicate( !InsertFieldToCheckHere! )

Por medio de estos códigos le decimos que llene el nuevo campo con valores (0, 1), los valores asignados con en número “1” son aquellos que se encuentran duplicados dentro de la tabla de atributos.

Script Python ArcGIS

franzpc

15 thoughts on “Encontrar valores duplicados en ArcGIS usando un script de Python”

  1. Marcos Vicente Lynch Mera dice:

    Me parece muy interesante encontrar los valores duplicados en ArcGis. Gracias

  2. Jesus Valdez dice:

    Debes poner tabuladores despues del If y del Else

    debe quedar asi:

    uniqueList = []
    def isDuplicate(inValue):
    if inValue in uniqueList:
    return 1
    else:
    uniqueList.append(inValue)
    return 0

    si no no funciona

    saludos

  3. Jesus Valdez dice:

    Rayos no te lo respeta el editor del blog

    uniqueList = []
    def isDuplicate(inValue):
    ---if inValue in uniqueList:
    ----return 1
    --else:
    ----uniqueList.append(inValue)
    ----return 0

    espero me entiendan

    1. franzpc dice:

      Gracias voy a verificar, todos los comentarios les tengo un alto respeto y consideración (evito aprobar quienes cometan muchos errores ortográficos).

  4. Angel dice:

    Estimado Franz, no sé qué estoy haciendo mal pero no me corre, le pongo tabuladores después de If y else pero nada, me puedes ayudar? esta es la sentencia que edite en notepad para poder pegarlo ya que en el field calculator no me deja poner tabuladores, gracias por tu respuesta y disculpa.
    uniqueList = []
    def isDuplicate(inValue):
    if inValue in uniqueList:
    return 1
    else:
    uniqueList.append(inValue)
    return 0

    1. franzpc dice:

      Voy a revisar y te comunico cualquier novedad.

  5. jose luis dice:

    Y lo llegaste a revisar?

    1. franzpc dice:

      Me funciona sin usar tabuladores, y también en campos tipo Double.

  6. Omar dice:

    Buen día.
    Necesito construir un script que me pida una par ordenado (x,y) y un radio, dibuje con estos un circulo, y lo convierta en shape.

    Me puedes ilustrar al respecto?

  7. Juvesal dice:

    a mí me funcionó, se trata del mismo código, sólo un espacio mas en else
    uniqueList = []
    def isDuplicate(inValue):
    —if inValue in uniqueList:
    —-return 1
    —else:
    —-uniqueList.append(inValue)
    —-return 0

  8. Carlos Delhdari dice:

    Intenten copiarlo a un bloc de notas, y lo importan en Field Calculator, a mi me funcionó

    uniqueList = []
    def isDuplicate(inValue):
    if inValue in uniqueList:
    return 1
    else:
    uniqueList.append(inValue)
    return 0
    __esri_field_calculator_splitter__
    isDuplicate( !CVEGEO! )

  9. Julian Forero dice:

    Cuando lo corro, me sale el siguiente error: “There was a failure during processing” ¿Que esta mal?

  10. Cris dice:

    me sale el mismo error de Julian

    1. franzpc dice:

      Asegúrate que estén los espacios (fíjate en los comentarios).

  11. Walter Alvarado dice:

    para poner tabulación en el field calculator, combinación de teclas CTRL+TAB. Si funciona.

Comments are closed.

Carrito

Últimas publicaciones

  • Crear automáticamente un mapa de uso del suelo en QGIS
  • Dibujando en QGIS con mayor precisión que AutoCAD
  • Identificando y cuantificando cambios del uso de la tierra en línea
  • Monitoreo ambiental online utilizando un Geoportal
  • Manual PDF Prácticas de QGIS
  • Descargar ArcGIS Pro
  • Libro PDF: Teledetección Espacial
  • Diferencias entre un DSM, DEM & DTM
  • ¿Qué son las distancias geodésicas?
  • El GeoAmor mueve millones
  • Limitaciones o desafíos de los SIG
  • ¿Cómo calcular 18 índices radiométricos en un solo paso?

Suscríbete al blog

Introduce tu correo electrónico para recibir notificaciones de nuevas entradas.

Únete a otros 413 suscriptores