8 votos

Uso de la calculadora de campos para datos de tablas de atributos en QGIS

Estoy experimentando con la adición de campos a los datos de la tabla de atributos en QGIS 2.14.5LTR (principalmente *.csv archivos) y tropiezo con una variedad de problemas o algunas cosas que no entiendo, respectivamente. He importado un archivo csv a través de import text file as layer arrastrar y soltar el mismo archivo en el proyecto y guardar este último como csv desde QGIS.

Mi proyecto de ejemplo tiene este aspecto (observe el estado de edición de las capas):

enter image description here

1er escenario - importación *.csv e intentando añadir un campo con la calculadora de campos.

Al abrir un *.csv e intentando hacerlo, sólo soy capaz de añadir un campo virtual a la tabla (Que obviamente no puede ser utilizado para joins, que es el objetivo del juego al final). Bastante extraño: Al arrastrar el mismo archivo al proyecto, puedo cambiar el modo de edición y añadir nuevos campos.

enter image description here

Los importados *.csv tiene el siguiente aspecto (sin cabeceras de columna):

92891A14.1;Eigenausbau;92891A14;09475169;Bayern;Hof, Landkreis;95131;Schwarzenbach;Döbra;Tannenweg;3;;2;4475738;5571977;272;11,99;11300;;30001;;100001;
92891A17.32;Eigenausbau;92891A17;09475169;Bayern;Hof, Landkreis;95131;Schwarzenbach;Schwarzenbach;Thiemitztalstr.;11;;1;4472917;5572009;432;16,61;12430;;30001;;90001;
92891A30.31;Eigenausbau;92891A30;09475169;Bayern;Hof, Landkreis;95131;Schwarzenbach;Schwarzenbach;Hochstr.;26;;15;4473440;5571918;147;4,78;13560;;30001;;100001;
92891A1.69;Eigenausbau;92891A1;09475169;Bayern;Hof, Landkreis;95131;Schwarzenbach;Schwarzenbach;Hauptstr.;16;;1;4473041;5571724;428;16,93;12430;;30001;;90001;

2º escenario - guardar el archivo csv abierto como csv

Hecho esto, ahora puedo cambiar al modo de edición y añadir un nuevo campo a la capa de la forma habitual:

enter image description here

Lo salvado *.csv tiene el siguiente aspecto

field_1,field_2,field_3,field_4,field_5,field_6,field_7,field_8,field_9,field_10,field_11,field_12,field_13,field_14,field_15,field_16,field_17,field_18,field_19,field_20,field_21,field_22
92891A17.32,Eigenausbau,92891A17,9475169,Bayern,"Hof, Landkreis",95131,Schwarzenbach,Schwarzenbach,Thiemitztalstr.,11,,1,4472917,5572009,432,16.61,12430,,30001,,90001
92891A30.31,Eigenausbau,92891A30,9475169,Bayern,"Hof, Landkreis",95131,Schwarzenbach,Schwarzenbach,Hochstr.,26,,15,4473440,5571918,147,4.78,13560,,30001,,100001
92891A1.69,Eigenausbau,92891A1,9475169,Bayern,"Hof, Landkreis",95131,Schwarzenbach,Schwarzenbach,Hauptstr.,16,,1,4473041,5571724,428,16.93,12430,,30001,,90001
92891A17.31,Eigenausbau,92891A17,9475169,Bayern,"Hof, Landkreis",95131,Schwarzenbach,Schwarzenbach,Thiemitztalstr.,22,,1,4472928,5572055,428,16.47,12430,,30001,,90001

Note : reimportar lo guardado *.csv capa leeds a la misma cuestión que en 1er escenario

3er escenario - Intento de añadir un campo a la capa guardada mediante la calculadora de campos de la caja de herramientas de procesamiento

Además, las tablas de atributos no pueden seleccionarse como capas de entrada para la calculadora de campos desde la caja de herramientas de procesamiento (observe el desplegable vacío):

enter image description here

Preguntas:

  • ¿Cuál es la diferencia entre los dos *.csv capas en el 1er y 2º escenario (o las diferentes formas en que entran en el proyecto)? ¿Por qué la capa guardada se puede editar y se le pueden añadir campos y la capa importada desde un archivo de texto no se puede, pero sí cuando se arrastra y suelta en el proyecto?

  • ¿Cuál es la diferencia entre todas las calculadoras de campos y existe alguna forma de añadir campos a una tabla con cualquier herramienta de procesamiento?

0 votos

Quizás sea una pregunta estúpida, pero ¿por qué no añades las columnas en excel antes de importar a QGIS si de todas formas lo estás haciendo manualmente en QGIS? Así podrías implementar la unión sin tener que manipular tu csv en QGIS.

5voto

Gdalya Puntos 409

Intentando dar una respuesta:

Al añadir un Capa de texto delimitada (mejor cambiar a la interfaz en inglés para tener a mano los términos correctos), sólo creas una conexión a ese archivo, no lo importas completamente. Se puede ver que cuando se pasa el ratón sobre la entrada de la capa en el panel de capas, mostrando una ventana emergente de color amarillo después de un tiempo.

Las capas completamente importadas, como los archivos shp, muestran sus rutas completas, mientras que con los archivos csv se ve la ruta y una especie de cadena de consulta, como las que aparecen al conectarse a una base de datos.

Esta era la forma estándar de añadir datos de texto delimitado a QGIS. La forma de arrastrar y soltar es bastante nueva y no funcionaba para tales datos de antemano que yo recuerde.

Así que la diferencia de los dos escenarios podría ser:

  1. Añadir datos delimitados con coordenadas (conexión sólo a ese fichero) y guardar después en shp o lo que sea para poder editarlo.

  2. arrastrar y soltar cualquier tipo de datos tabulares, las coordenadas contenidas sólo se manejan como atributos.

Dejando a un lado las peculiaridades del csv, creo que deberías mejorar tu flujo de trabajo. CSV no es definitivamente el formato con el que querrías trabajar a gran escala. Tiene el encanto de ser legible por humanos y es bueno para exportaciones, etc., pero creo que no es muy eficiente y ahorra hacer cosas más complejas con él, aunque sea posible.

Como no has mencionado cómo se crean esos csv, supongo que se trata de exportaciones de otro software. Comprueba si existe la posibilidad de recibir los datos en otro formato. OpenOffice SAD -Los archivos, por ejemplo, se añaden fácilmente arrastrándolos y soltándolos, y se pueden editar después.

3a. ¿Por qué quiere utilizar la calculadora de campos de la caja de herramientas y no sólo la de la tabla de atributos de su capa (Ábaco-símbolo)? Allí también puedes añadir y eliminar campos. Creo que la calculadora de campos de la Caja de herramientas se añadió recientemente para utilizarla con el modelador o para realizar cambios en una capa y guardar los resultados en un archivo nuevo o temporal (en lugar de modificar el original).

3b. Si realmente necesita una herramienta de procesamiento para añadir campos además de la calculadora de campos, existe la función "Refactorizar campos". Pero de nuevo, esto no hará cambios en su capa actual, sino que "procesará" una nueva.

1 votos

Arrastrar y soltar siempre ha funcionado. La principal diferencia es que el primero utiliza el proveedor de QGIS para csv y el arrastrar y soltar utiliza OGR. Ambos hacen lo mismo pero un poco diferente y no ambos soportan las mismas características.

1 votos

Puede añadir campos porque gdal/ogr 2.0 lo soporta. El proveedor QGIS actualmente no

5voto

Mat Puntos 196

¡Interesante! No suelo arrastrar y soltar archivos, pero pude añadir campos a una capa CSV cuando probé esto. Lo cual me parece mal :)

Los cambios no se guardaron cuando confirmé los cambios. Sólo pude conseguir que los cambios se confirmaran si los guardaba como un nuevo archivo CSV utilizando guardar como... (Probado en QGIS 2.16.3)

Suelo utilizar CSV como una forma rápida de obtener datos de scripts python en QGIS, escribiendo WKT en un CSV. Tengo que usar TAB o pipe (|) como delimitador porque WKT contiene comas. Si arrastras y sueltas no tienes la opción de establecer el delimitador y asume comas.

Echa un vistazo a las capacidades de la capa con los diferentes escenarios (uso Propiedades de capa > Metadatos y desplácese por Propiedades para buscar Capacidades)

Si importa una capa delimitada (con geometría) debería ver...

Create Spatial Index, Fast Access to Features at ID, Curved Geometries

Si arrastro un archivo CSV, o importo uno sin geometría, veo

Add Features

Observe que en ambos casos no existe la posibilidad de "Añadir atributos". Esto podría explicar por qué tengo que guardar como un nuevo CSV.

El controlador CSV de GDAL/OGR no permite realizar ediciones in situ (no permite "Añadir características" ni "Añadir atributos").

Sospecho que cuando arrastras un archivo CSV sin geometría, QGIS lo trata como un archivo de texto. Si importas un csv y se reconoce la geometría, se utiliza el controlador GDAL/OGR, y no te deja hacer ediciones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X