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.
Gracias por todo.
ResponderEliminarMuchas gracias. Muy bueno. ¿Por qué no hacer join con FID en vez de con area?
ResponderEliminar