Similar a las preguntas ya hechas sobre archivos .dbf, estoy tratando de unir archivos .csv a una cobertura .gdb o shapefile en QGIS. Las tablas que se agregaron a QGIS antes de la unión se ven bien, pero una vez completada la unión, la tabla amalgamada tiene valores NULL para todos los campos unidos. Lo mismo sucede con una variedad de tablas diferentes, independientemente de si me estoy uniendo a un archivo shapefile o un archivo .gdb.
Estoy ejecutando QGIS 2.0.1 en un OSX 10.8.5. Los archivos de la tabla original están contenidos en formato .mdb, así que compré y usé el visor MDB ACCDB para exportarlos a .CSV. El hecho de que estén bien cuando se ven por separado me hace creer que el problema está en el procedimiento de unión, no en el Tablas en sí.
Sugerencias?
trim(oldField)
funcionalidad QGIS .Respuestas:
Los archivos .csv en QGIS importan por defecto todos los datos como cadenas. Debe crear un archivo de texto .csvt que indique a QGIS qué columnas deben especificarse y qué tipos de datos.
Citado de: http://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/
Entonces sus datos serán del mismo tipo, y la unión debería funcionar.
fuente
Es mejor si se asegura de que los dos campos tengan el mismo tipo de datos.
El tipo de campo no se puede cambiar para los archivos de forma. Pero es fácil crear un nuevo campo de texto vacío y hacer que sea igual al campo entero.
Puede usar una expresión de calculadora de campo que se parezca a:
tostring( "INT_FIELD" )
y simplemente reemplaceINT_FIELD
con el nombre del campo entero real.También puede cambiar fácilmente un valor de atributo de capa CSV del número de texto <-> .
ACTUALIZAR
Si está obteniendo valores nulos, puede intentar mantener la unión, pero simplemente cierre y vuelva a abrir esa tabla de atributos para ver si los valores unidos están allí (o incluso cerrar / volver a abrir QGIS).
He podido unir con éxito un csv a un shapefile con una combinación de tipos de campo, por lo que string vs integer no debería ser el problema.
ACTUALIZACIÓN 2
Parece que para deshacerse de los valores nulos, tienen que tener un registro coincidente en la tabla correspondiente desde la que se realizan las uniones. Pero en la imagen a continuación, puede ver que algunos tienen un registro coincidente:
fuente