sábado, 23 de marzo de 2019

CREAR UN CAMPO AUTONUMÉRICO EN UNA TABLA CON UNA COLUMNA REORDENADA DISTINTA AL FID

Respondiendo a una pregunta de un lector del blog, vamos a ver como crear una columna autonmérica en una tabla donde hemos ordenado otra columna con un criterio distinto al FID, como vemos en este ejemplo:


Como vemos tenemos ordenada la columna área de menor a mayor, por lo que el campo FID se ha descolocado, entonces ahora queremos crear con este orden una columna nueva autonumérica correspondiente a este nuevo orden.
Después de comprobar que con Arcgis y Qgis no podemos realizar esta opción y la programación con python nos da siempre una autonumérica pero con el mismo orden que el FID, lo he realizado de una manera poco ortodoxa pero eficaz, siguiendo los siguientes pasos:

- Abrimos con Microsoft Excel el archivo .dbf del shapefile que contiene la tabla de atributos, y ordenamos la columna "área" de menor a mayor con la opción de Excel "ordenar y filtrar".


- Creamos una nueva columna que denominaremos "orden".
- En su primer campo ponemos un "1" y con el botón derecho del ratón pinchamos en la esquina inferior derecha y sin soltar arrastramos hasta el final de los campos de la tabla.


- Cuando soltamos el botón del ratón aparece un menú en Excel y elegimos en él "rellenar serie".


- Esto nos crea ya esta columna autonumérica que buscábamos con el orden de las áreas de menor a mayor, cuyo FID está desordenado.


- Guardamos la tabla en formato de Excel, quizás nos lo guarde con el nombre de "copia" y el nombre de la tabla.
- Abrimos Arcmap y abrimos el shapefile.


- Ahora abrimos en Arcmap la tabla de Excel que hemos creado, esto se nos abrirá solamente como tabla.


- Abrimos la tabla de atributos del shapefile y en la opciones de la tabla creamos un join con la tabla nueva cuyo campo común va a ser "área".


- Ya tenemos las tablas relacionadas y ya tenemos en la tabla del shapefile la nueva columna denominada "orden", con la nueva clasificación autonumérica basada en las áreas de menor a mayor.


- Ahora guardamos el shapefile con otro nombre mediante Data / export data.
- Abrimos el nuevo shapefile que hemos creado y abrimos la tabla de atributos, que debe tener los atributos del shapefile original más los del join, solamente nos queda eliminar los campos repetidos y dejar los campos originales más el campo "orden" que hemos creado.


Espero haber solucionado tu pregunta con este método, este proceso también se puede realizar con Qgis.