Semelhante às perguntas já feitas sobre arquivos .dbf, estou tentando associar arquivos .csv a uma cobertura .gdb ou shapefile no QGIS. As tabelas adicionadas ao QGIS antes da associação ficam bem, mas depois que a associação é concluída, a tabela amalgamada tem valores NULL para todos os campos associados. O mesmo acontece com uma variedade de tabelas diferentes, e independentemente de eu estar ingressando em um arquivo shapefile ou .gdb.
Estou executando o QGIS 2.0.1 em um OSX 10.8.5. Os arquivos de tabela originais estão contidos no formato .mdb, então eu comprei e usei o MDB ACCDB Viewer para exportá-los para .CSV O fato de estarem bem quando visualizados separadamente me leva a acreditar que o problema está no procedimento de associação, não no tabelas em si.
Sugestões?
fonte
trim(oldField)
funcionalidade QGIS .Respostas:
Os arquivos .csv no QGIS, por padrão, importam todos os dados como seqüências de caracteres. Você precisa criar um arquivo de texto .csvt que informe ao QGIS quais colunas devem ser especificadas e quais tipos de dados.
Citado em: http://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/
Seus dados serão do mesmo tipo e a associação deverá funcionar.
fonte
É melhor garantir que os dois campos tenham o mesmo tipo de dados.
O tipo de campo não pode ser alterado para shapefiles. Mas é fácil criar um novo campo de texto vazio e torná-lo igual ao campo inteiro.
Você pode usar uma expressão de calculadora de campo que se parece com:
tostring( "INT_FIELD" )
e simplesmente substituirINT_FIELD
pelo nome do campo inteiro real.Você também pode alterar facilmente um valor de atributo da camada CSV do número do texto <-> .
ATUALIZAR
Se você estiver obtendo valores nulos, tente manter a associação, mas apenas feche e reabra a tabela de atributos para ver se os valores associados estão lá (ou mesmo feche / reabra o QGIS).
Consegui ingressar com êxito em um csv em um shapefile com uma mistura de tipos de campo, portanto, string vs inteiro não deve ser o problema.
ATUALIZAÇÃO 2
Parece que, para se livrar dos valores nulos, eles precisam realmente ter um registro correspondente na tabela correspondente da qual as junções estão sendo feitas. Mas na imagem abaixo, você pode ver que alguns têm um registro correspondente:
fonte