¿Hay alguna manera de asignar el número de fila para la tabla ordenada por columna en QGIS?

13

La calculadora de campo tiene una gran función en "Registros" llamada "$ rownum" que devuelve (asigna) el número de la fila actual.

¿Hay alguna manera de que funcione junto con la clasificación? Digamos que quiero ordenar la tabla por "longitud" de columna y obtener el orden (secuencia) de las líneas por longitud de menor a mayor.

Sé que puedo usar fácilmente un software de hoja de cálculo de oficina para ordenar esto por columna y llenar una columna nueva con orden (secuencia). Pero preferiría hacer todo el trabajo en QGIS.

Actualización: Como solución alternativa, también hay ¿Cómo cambiar el orden de las características en un shapefile? - usando el complemento mmqgis y la función modificar / ordenar y luego usar "$ rownum" en el nuevo archivo guardado.

Miró
fuente

Respuestas:

20

Entonces, he codificado un complemento ( Ordenar y Número ) para resolver su problema. Le permite seleccionar hasta 3 campos y ordenar su tabla de atributos de acuerdo con estos campos. Luego, numera la tabla de atributos en un nuevo campo (llamado "orden" por defecto), comenzando desde 1.

ingrese la descripción de la imagen aquí

ArMoraer
fuente
Luce extraordinario. Voy a probar este complemento ahora, gracias.
Miro
Cuando se instaló por primera vez en 2.8, se produjo un error, pero después de la prueba en 2.14 y de vuelta en 2.8, funciona excelente. Gracias.
Miro
@Miro: de nada. Espero que sea útil para otras personas también.
ArMoraer
@ArMoraer - ¡Gran complemento!
Joseph
1
¿Puedes recodificar esto para Bonn 3 -> me encantó esta herramienta!
lowsparked
7

No estoy seguro de que pueda hacerlo con la calculadora de campo, pero puede usar una capa virtual con una consulta como:

SELECT 
    * ,
    (SELECT count(*) FROM your_layer AS b WHERE a.length >= b.length) AS length_position
FROM your_layer AS a 
ORDER BY a.length
Pierma
fuente
Gracias, todavía trabajo con la versión 2.8 a largo plazo, así que fue la primera vez que descubrí la capa virtual en 2.14. Aparte fue muy muy muy lento funciona. En general, esto es aceptable, aunque voy a esperar un poco más para obtener otras respuestas, si las hay.
Miro