Usando software de código aberto para mesclar arquivos de forma grandes?

8

Alguns antecedentes: tenho dois arquivos de forma de polígono com aproximadamente 500.000 registros cada. Os dois arquivos são idênticos em termos de estrutura de campo.

Usando o ArcGIS 10.0, não consigo mesclar esses dois arquivos usando Geoprocessamento / Mesclagem. O ArcMap sempre trava em algum lugar no meio do processo.

Existe algum software de código aberto que possa fazer esse trabalho? O QGIS possui a função: Vetor / Mesclando arquivo de forma em um, mas houve um bug relatado com esta função na versão atual 1.7. Eu sei que o GDAL pode fazer muitas coisas e me pergunto se o GDAL ou algum outro software de código aberto pode fazer isso corretamente.

anh.hv
fonte
4
existe uma chance de você estar excedendo o limite de 2 Gb para shapefiles?

Respostas:

18

No manual da GDAL:

Uma mesclagem de dois arquivos de shapefiles 'file1.shp' e 'file2.shp' em um novo arquivo 'file_merged.shp' é realizada assim:

% ogr2ogr file_merged.shp file1.shp
% ogr2ogr -update -append file_merged.shp file2.shp -nln file_merged

O segundo comando é abrir file_merged.shp no modo de atualização e tentar encontrar as camadas existentes e anexar os recursos que estão sendo copiados.

A opção -nln define o nome da camada a ser copiada.

http://www.gdal.org/ogr/drv_shapefile.html

Jay Laura
fonte
2
--skipfailures garante que você continue se encontrar um registro ruim também. Eu o adicionaria se o processo estiver demorando muito.
Ragi Yaser Burhum
Obrigado jzl5325, era isso que eu estava procurando (além da alternativa para fazê-lo no ArcMap). Eu acho que há uma boa demanda por um manual / guia de usuário orientado a tarefas para GDAL em vez de sintaxe. Algo parecido com o da sua resposta que começa com uma tarefa: por exemplo, mesclar arquivo 2 shp, converter da guia mapinfo para esri shp. Uma longa lista de "fazer isso com o GDAL" será muito útil.
Anh.hv
@ anh.hv Concordou. Algo que eu adoraria fazer se tivesse um pouco mais de tempo. Suspeito que algo assim não ocorra até que A) faça parte de algum curso da faculdade ou B) seja financiado por um patrocinador da GDAL.
Jay Laura
Se você tiver muitos arquivos para mesclar, poderá usar um script como este: <! - language: lang-bsh -> #! / Bin / bash dest_dir = "saída" dest_layer = "shape_file" mkdir -p "$ {dest_dir } "i = 0 para src_file na fonte / *. shp; faça eco "$ {src_file}" se [$ i-eq 0]; então ogr2ogr "$ {dest_dir} / $ {dest_layer} .shp" "$ {src_file}" else ogr2ogr -update -append "$ {dest_dir} / $ {dest_layer} .shp" "$ {src_file}" -nln "$ {dest_layer} "fi i = $ ((i + 1)) feito #
AndrewHarvey
Se você tem muitos arquivos para mesclar você poderia usar um script como este: gist.github.com/andrewharvey/09f1b77f64c6f529e266
AndrewHarvey
3

Tente converter os shapefiles em um geodatabase de arquivo e depois mesclá-los no ArcGIS.

Você pode até convertê-los de volta ao formato após a mesclagem (caso esteja tentando manter a compatibilidade com outro software que se baseia em shapefiles).


fonte
Obrigado Kevin e @vadivelan. Colocar o shp no arquivo geodatabase realmente funciona. Também reduz o tamanho do arquivo mesclado em 4 vezes em comparação com os 2 arquivos de forma originais.
Anh.hv
3

Você poderia tentar Geomerge . Não tenho certeza de quantos registros ele pode manipular, mas desde que a estrutura da tabela seja a mesma para todos os arquivos que não tive problemas.

O MapBrowser disponível no mesmo site também é uma excelente ferramenta para visualização rápida de shapefiles sem a necessidade de abrir um pacote GIS.

Ian
fonte
1

Como Kevin disse, converter os arquivos de forma em fGDB é a melhor opção. (Será muito rápido comparado aos arquivos shp)

Porque, os arquivos Shape têm uma limitação na capacidade de armazenamento, acho que seus dois arquivos de formas (após a mesclagem) estão além desse limite. Pls. verifique isso.

vadivelan
fonte