Eu tenho que mesclar muitos arquivos de forma em um grande arquivo de forma.
Então, eu quero comparar as propriedades das tabelas de atributos para ver se há diferenças entre as propriedades da tabela de cada forma (tipo, comprimento, precisão, nome, etc.). Com a intenção de padronizar todos os shapefiles
por exemplo:
Existe uma maneira de imprimir uma lista das propriedades da tabela, como mostrado na guia 'fields', ou exportar as propriedades para um .xls ou .dbf?
Ou existe uma maneira automatizada de fazer a padronização? (Talvez este seja um assunto para um novo tópico ...)
Estou usando o QGIS 1.8 (o QGIS 2.2 também é possível).
obrigado
Respostas:
Solução de shell OSGeo4W
IMHO, a maneira mais simples de extrair as propriedades da tabela de atributos ( esquema ) consiste em abrir o shell OSGeo4W (porque você está no Windows OS), alterar o diretório para sua pasta de dados e simplesmente digitar algo como:
Ele mostrará as informações resumidas, como projeção, esquema , contagem de recursos e extensões. Então, como você tem vários shapefiles, pode fazer um
FOR
ciclo como o seguinte:Isso retorna um arquivo txt com as propriedades de todos os shapefiles em um diretório (porque o redirecionamento de saída
>>
anexa cada saída única aoproperties.txt
arquivo).Como alternativa, se você estiver interessado em um arquivo de propriedades para cada shapefile:
Sobre a padronização, existem várias técnicas. Sugiro que você use a
RESIZE
opção de criação de camada após a mesclagem para redimensionar os campos para o tamanho ideal (por exemplo, os campos de texto com tamanho excessivo serão reduzidos). Por exemplo:Solução de script de processamento
Abra a caixa de ferramentas Processing no QGIS, crie um novo script (clique em
Scripts
->Tools
->Create new script
) e digite:Salve como quiser, por exemplo
ogrinfo_so.py
. Em seguida, um novo scriptogrinfo (summary only)
aparecerá na caixa de ferramentas Processando ->Scripts
->User script
grupo. Pode ser executado como está ou no modo batch.A mesma operação é possível para redimensionar o comprimento do campo, conforme descrito anteriormente:
Um novo script chamado
Resize fields
estará disponível na caixa de ferramentas Processando ->Scripts
->User scripts
grupo. Aproveite!fonte
Os shapefiles mantêm seus atributos em arquivos .dbf. Você não pode simplesmente abrir o arquivo .dbf diretamente em um programa como o libreoffice calc e depois imprimir a partir daí? Se você não possui muitos arquivos, isso deve funcionar.
Outra opção seria escrever um script python que imprima (para o console) os atributos dos recursos diretamente ou até os compare para você. Você pode acessar os atributos de um recurso como este:
Você precisaria fazer isso para cada arquivo de forma que você comparar e ver se
mais informações aqui: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/
fonte
Seguindo o tema .dbf, você procurou comparadores .dbf diretamente? Não encontrei uma solução gratuita imediatamente, mas algo como: dbfCompare
fonte
Experimente alguns dos extratores de metadados DBF disponíveis. A maioria deles suporta o modo de linha de comando, para que várias extrações de metadados possam ser executadas em lote.
http://geology.usgs.gov/tools/metadata/tools/doc/dbfmeta.html http://sco.wisc.edu/wisclinc/metatool/dbfmeta.htm
fonte
Basta abrir o arquivo .dbf no Libreoffice Calc ou Excel, salve-o como um novo arquivo. Eu salvei uma vez e o shapefile não foi bom.
fonte