Como manter zeros à esquerda no arquivo csv ao trabalhar com o QGIS

8

Sou novato no QGIS e em Sistemas de Informação Geográfica em geral e também não tenho experiência com informática.

Eu tenho um shapefile que funciona bem e, em seguida, tenho um arquivo no formato CSV, e tento associar esses dois arquivos, usando uma coluna que deve ser igual entre dois arquivos. O problema é que alguns dos números têm zeros à esquerda (são algum tipo de código postal no meu país) que desaparecem do arquivo CSV quando eu o importo para o QGIS ...

Existe alguma maneira simples de manter os zeros à esquerda?

No arquivo de forma, os zeros à esquerda não desaparecem.

João Santos
fonte
Definitivamente, você deve tratar os campos do código postal como Strings / texto.
Alexandre Neto

Respostas:

9

Você pode especificar valores de tipo usando um arquivo CSVT, da seguinte maneira:

"Integer(6)","Real(5.5)","String(22)"

Se o seu arquivo csv for nomeado, data.csvvocê o nomeará data.csvt.

Anita Graser (aqui conhecida como underdark) escreveu um post no blog relacionado a isso. Está disponível em: https://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/

Eu também consultaria este Q / A para obter mais informações.

Editar: para ser mais preciso, você deve especificar sua coluna como "String" para manter os zeros à esquerda . Uma outra opção também seria usar a lpad()função da calculadora . Veja Q / A a seguir .

Por exemplo : lpad('22', 4, 0), will return '0022'

simo
fonte
Gostaria de saber quem inventou esse exemplo, mas ele retorna 2200para mim. Em vez disso, sugiro deixou preenchimento, conforme explicado em gis.stackexchange.com/questions/208686/...
Andrej
obrigado por apontar isto ... era tarde quando eu respondi ;-)
simo
Não tenho certeza, mas colocar os valores de seqüência entre aspas "0082" no arquivo CSV pode ser suficiente.
user30184
1
Eu também queria acrescentar que é necessário fazer o upload dos arquivos .csv e .csvt ao mesmo tempo no QGis por meio do método Camada -> Adicionar camada -> Adicionar camada de vetor.
Michael Workman