Como acompanhamento da minha pergunta anterior ( Convertendo o arquivo GeoJSON do SimpleGeo Places em shapefile ), agora estou lutando com o que percebo ser uma limitação de "memória" do ogr2ogr, mas não tenho certeza. Eu converti com êxito os arquivos de despejo do SimpleGeo em arquivos geojson adequados (verificados que são diretamente legíveis no QGIS).
Agora eu quero converter esses dados para SHP ou outros formatos (SQLite, PostGIS). Estou executando o seguinte comando com êxito em arquivos menores (onde "places_fr.gejson" tem um tamanho de arquivo de ~ 118 MB):
ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson
Quando tento executar esse mesmo comando exato com um arquivo geojson de 340 MB, o ogr2ogr falha de uma das duas maneiras:
- "lh_table_new: calloc falhou" ( primeira tentativa )
- O Windows lança um "ogr2ogr.exe parou de funcionar. Por favor, feche o programa." ( tentativas subseqüentes )
Estou executando o comando ogr via FWTools em um ambiente Windows 7 dual core com 8 GB de RAM instalada (4 GB disponíveis, 12 GB de memória virtual disponível). Existe um limite de memória para ogr2ogr converter esses conjuntos de dados? Eu também tentei converter para SQLite com os mesmos resultados, então não acho que seja um problema de conversão de SHP. Obrigado.
Respostas:
Aviso prévio : dada a quantidade de memória que você está relatando em seu sistema, suponho que você esteja usando uma compilação de 64 bits do Windows. Caso contrário, esta solução não se aplica.
O limite de memória para todos os aplicativos de 32 bits no Windows (independentemente da versão do Windows, portanto também é válido para o Windows de 64 bits) é de 2 GB. Você pode estar atingindo esse limite para confirmar a execução do ogr2ogr e verificar o uso de memória com o gerenciador de tarefas.
Se o problema é realmente devido a um problema de memória, você pode fazer duas coisas:
Crie uma versão de 64 bits do GDAL (não consegui encontrar binários prontamente disponíveis)
corrija ogr2ogr.exe com esta ferramenta: http://ntcore.com/4gb_patch.php . Após o patch (faça uma cópia de backup, é claro), o binário deve estar disponível para endereçar um grandioso total de 4 GB
fonte
Se houver um problema, provavelmente será específico para o driver geojson do OGR e não para o próprio OGR. Tente usar um binário mais recente (como o da OSGeo4W ) ou, melhor ainda, uma versão de 64 bits. Desculpe, a menos que você o esteja compilando, não sei onde você pode obter um binário de 64 bits para Windows - os binários Ubuntu Linux e Mac KyngChaos terão 64 bits.
fonte
Pode ser dividido o arquivo em vários arquivos e importado com um lote os arquivos.
fonte