Preparando arquivos CSV para uso no ArcGIS Desktop?

16

Como preparo arquivos CSV para uso no ArcGIS Desktop.

Pergunto porque tenho alguns problemas ao usar arquivos CSV porque o ArcGIS atribui tipos de campo incorretos às minhas colunas e também interpreta mal caracteres especiais como á ou ê.

Li no fórum da Esri que existe um arquivo chamado schema.ini que define de alguma forma os tipos de campo, por exemplo, "Col22 = Texto V002", veja aqui http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

Isso é meio engraçado, porque eu sempre vi esses arquivos .ini no meu disco, mas nunca me perguntei para que servem. É meio estranho que o Excel armazene esses metadados em um arquivo extra, já que outros programas como o R não o fazem.

Eu já tentei manipular esse arquivo .ini com pouco sucesso, pois não descobri como aplicar, por exemplo, o tipo "string". Há algumas informações nos sites da Microsoft, consulte aqui: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx, mas não consegui encontrar uma solução .

Também não gostei muito da ideia de trabalhar com esse arquivo .ini porque é bastante trabalhoso definir e digitar todos os nomes de campo quando eu tiver, digamos, 50 colunas. E esses arquivos .ini podem se perder, etc.

Dspanes
fonte

Respostas:

16

Minha solução rápida é criar a primeira linha, todos com valores fictícios, e excluir essa linha / registro depois de entrar no ArcGIS.

Essa primeira linha contém valores representativos ou, geralmente, valores totalmente diferentes (por exemplo, caracteres alfabéticos, mesmo que a coluna contenha números que eu quero que sejam do tipo dados de texto) e com o maior número de caracteres necessários para essa linha (porque os campos de texto tendem a ficar truncados) .

Os valores de data / hora estão sujeitos a erros de importação (especialmente entre os formatos de data padrão do Canadá / EUA), portanto, meu trabalho é dividir as partes de data / hora em colunas separadas (por exemplo, ano, mês, dia, hora, minuto) e, em seguida, concatená-los em um novo cálculo de campo depois de incorporar com sucesso no ArcGIS.

A ponta das coordenadas geográficas de Jamie também é necessária - especifique valores negativos para a longitude do hemisfério ocidental e latitude do hemisfério sul. E o unicode cuida de caracteres especiais.

Por fim, se um tipo de dado de campo ainda for mal interpretado após a inserção no ArcGIS, adicionarei um novo campo ao tipo de dados correto e calcularei / converteremos os valores do campo original, mas geralmente a linha / registro fictício cuidará da maioria, se não tudo, problemas.

ccn
fonte
8

Um pequeno desvio da camada tradicional CSV-> ArcGIS pode ser o uso do ogr2ogr para criar seu shapefile a partir do CSV ANTES de carregá-lo no ArcMap.

Ao usar o OGR , você pode criar manualmente um arquivo CSVT que descreva seus tipos de coluna, semelhante ao que o ArcGIS tenta fazer com o arquivo schema.ini.

Esta postagem de @underdark sobre Como especificar tipos de dados de colunas CSV (para uso no QGIS) explica os detalhes da criação de um CSVT. Você pode ignorar o uso do QGIS, pois ele apenas usa ogr para importar os dados CSV para sua interface do usuário.

RyanKDalton-OffTheGridMaps
fonte
7

Com o ArcGIS 10, você pode criar a classe de recurso e definir todos os tipos de campo primeiro, depois carregar o arquivo .csv usando o ArcCatalog. Simplesmente clique com o botão direito do mouse na classe de recurso e escolha Carregar> Carregar dados. Em seguida, siga a caixa de diálogo Carregador de dados simples para corresponder aos campos etc. É um carregador simples, pois não há muitas opções, mas funciona com dados bem formatados. Não tenho certeza se isso é novo para 10, porque não tenho uma versão anterior à mão para verificar.

Rich Wawrzonek
fonte
3

A maneira correta de resolver esses problemas é usando um arquivo 'schema.ini', conforme sugerido por @Kirk_Kuykendall nos comentários. Essa é uma maneira padrão da Microsoft de manipular a entrada de um CSV em um banco de dados em que o tipo de coluna possa ser interpretado de forma ambígua.

O ArcGIS respeita esses arquivos 'schema.ini' ao importar do CSV.

Consulte a documentação da Microsoft em: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

O arquivo 'schema.ini' precisa estar no mesmo local que o arquivo CSV e pode incluir configurações para vários outros arquivos CSV no mesmo local, se você precisar.

Um simples arquivo 'schema.ini' para um único arquivo CSV que possui apenas uma coluna que, de outra forma, é lida com o tipo errado pode ser assim:

[SomeFileName.csv]
Col2=SomeFieldName Long
Filho da Praia
fonte
Confirmado que isso funciona no ArcGIS Pro. Eu estava usando a outra solução alternativa em que você adiciona uma linha de dados superior com valores que correspondem ao tipo de dados que você deseja, o que funciona uma vez, mas se a tabela for grande ou você tiver automação, essa é a melhor solução, com certeza. Você acabou de configurá-lo e esquecê-lo!
alexGIS 25/09/19
1

Uma solução alternativa que encontrei é abrir o CSV em um editor de texto (usei o bloco de notas ++) e salve como CSV novamente. Não vejo alterações visíveis no conteúdo do arquivo, incluindo caracteres de marcação especiais, mas o problema provavelmente está relacionado à forma como o Excel formata arquivos CSV. Eu estava salvando o arquivo no Excel usando as opções padrão de CSV 'CSV (delimitado por vírgula) (*. Csv)'. Talvez um formato CSV diferente funcione melhor.

Informações adicionais: Algo fundamental deve ter mudado com o arquivo CSV quando o salvei com o bloco de notas ++, porque agora posso editá-lo e salvá-lo no Excel e ele ainda é importado como numérico pelo arcmap. Não tenho idéia do que mudou.

DrPo
fonte
-2

Surpreendentemente, abrir o arquivo original (para mim .txt) em um editor de texto (UltraEdit para mim) e salvá-lo como um arquivo .csv ou .txt funcionou. Não há alterações visíveis no arquivo no UltraEdit, pandas ou qualquer outro método de exame que eu possa ver.

Nenhuma das soluções alternativas, incluindo a minha, explica a razão subjacente fundamental pela qual o ArcMap às vezes decide ler colunas numéricas como texto.

Então, isso funcionou duas vezes ... então o mesmo procedimento parou de funcionar.

Eu tenho que remover todas as junções, remover a tabela, desligar o ArcMap, abrir a tabela em um editor de texto, salvar novamente a tabela, abrir o ArcMap, adicionar a tabela e refazer a junção ... toda vez que eu mudar alguma coisa no mesa.

Wesley Kitlasten
fonte