Tengo una tabla de atributos con dos campos vacíos en QGIS.
Quiero importar una base de datos de Excel para llenar mis campos vacíos en QGIS. Mi archivo de Excel coincide con las columnas de mi tabla de atributos QGIS.
Puedo unir correctamente mi Excel (.CSV) a mi shapefile. Sin embargo, el proceso, en lugar de llenar los campos en blanco como deseo, creó duplicados. Con la ayuda de «Table Manager» puedo corregir la situación, pero requiere mucho tiempo. Estoy buscando una forma más eficiente de unir mis datos de Excel.
¿Cómo puedo unir mi archivo de Excel a mi tabla de atributos sin crear duplicados?
qgis
attribute-table
attribute-joins
excel
Laurent Robitaille-Lainesse
fuente
fuente
Respuestas:
Haría las siguientes cosas para hacer la vida más fácil:
Antes de hacer esto, haga una copia de seguridad de su shapefile.
esta es la pestaña Campo a la que me refiero
No olvide alternar la edición antes y después de eliminar campos innecesarios.
fuente
Deberá unir el archivo de Excel al archivo de forma. Los unirá en un atributo común y el resultado será una capa unida donde cada registro contiene los atributos tanto del archivo de forma como del archivo de Excel.
Ok, primero carga su archivo de Excel y su vector más tarde en las capas. Utilicé algunos datos de prueba que hice, pero su configuración debería ser similar a la siguiente.
Ahora haga clic derecho en la capa (en el panel de capas) y elija propiedades, luego elija unir. Primero presione el signo verde + en la esquina inferior izquierda (Flecha roja grande en la imagen a continuación) y aparecerá un nuevo menú Agregar unión de vectores (como a continuación) Aquí su capa de unión será el archivo de Excel (así que elija el archivo de Excel adecuado & hoja) el campo de unión es el campo en el archivo de Excel que contiene el atributo común para el archivo de forma. El campo de destino es el campo coincidente en el archivo de forma. (en mi caso, ambos campos comunes se denominaron unidad, pero si el campo se llamara UNIT_ en el archivo de forma, lo habría usado en lugar de UNIT para mi campo objetivo)
Hay algunas otras opciones con las que puede meterse en la unión, como si solo desea ver ciertos campos, etc. de todos modos, así que ahora están unidos y si regresa y mira los atributos del shapefile verá ahora tiene los atributos correspondientes del archivo de Excel como a continuación.
Aquí hay algunos tutoriales útiles para mostrarle paso a paso cómo hacerlo:
https://www.mapbox.com/tilemill/docs/guides/joining-data/
http://maps.cga.harvard.edu/qgis/wkshop/join_csv.php
http://qgis.spatialthoughts.com/2012/03/using-tabular-data-in-qgis.html
¿Cómo unir tablas externas con la tabla de atributos de un shapefile en QGIS?
http://www.digital-geography.com/qgis-tutorial-ii-how-to-join-data-with-shapefiles/#.Vs9vpmHXKUk
y el tutorial ArMoraer mencionado en los comentarios.
fuente
Solo para agregar otro método, puede configurar una macro de proyecto que cuando se carga:
IP1
yIP2
Primero, cree un proyecto si aún no lo ha hecho y luego vaya a la barra de herramientas:
Proyecto> Propiedades del proyecto ...> Macros
Luego use el siguiente código en la
def openProject():
función e ingrese los nombres de sus capas y los campos que desea unir. Usé "Ejemplo" y "hoja de cálculo" para mi archivo de forma y archivo csv respectivamente con el campoID
:Asegúrese de que las capas no estén unidas, guarde el proyecto y habilite las macros yendo a la barra de herramientas:
Configuración> General> Habilitar macros
Ahora, cuando cierre el proyecto y edite el archivo csv, la próxima vez que cargue el proyecto, los campos deberían actualizarse automáticamente:
fuente
Mi sugerencia es utilizar LibreOffice / Open Office de código abierto para editar su archivo de Excel y crear un archivo .dbf. Preparé el libro de prueba para ti. Libro de prueba - enlace
Tabla de resultados sin duplicados en QGIS:
fuente
¿Por qué están los campos vacíos allí para empezar? ¿Puede comenzar sin los campos vacíos y simplemente usar las dos columnas producidas en la unión? Creo que este es el enfoque más simple. O eso o encontrar una herramienta similar a la herramienta "Cargar" en ArcGIS.
https://desktop.arcgis.com/en/arcmap/latest/extensions/production-mapping/loading-data-into-a-geodatabase.htm
Si no está utilizando una geodatabase, le recomiendo esto.
fuente
No sé si hay una forma directa de unirse sin duplicado ya que ese archivo .shp es compatible con attribut en .DBF (archivo de base de datos). Este DBF tiene una declaración de tipo de columna como entero, real, cadena, etc. con detalles de su longitud y precisión. El archivo CSV solo tiene una columna normal sin ningún tipo declarado. No sé qué tan grande es su archivo. Para mí, mantendré los campos duplicados y luego usaré el indicador de campo con fórmula general:
Luego elimine todos esos campos duplicados (a través de QGIS o programa de base de datos)
fuente
Creo que la forma más fácil de solucionar esto sería simplemente eliminar las dos columnas en cuestión en la tabla QGIS antes de la unión. Luego, cuando se une al archivo de forma, las dos columnas que desea no se duplicarán y mantendrán sus nombres de columna originales.
fuente