Sebagai tindak lanjut dari pertanyaan saya sebelumnya ( Konversi file GeoJSON Places SimpleGeo Places ke shapefile ), saya sekarang bergumul dengan apa yang saya anggap sebagai batasan "memori" ogr2ogr, tetapi saya tidak yakin. Saya telah berhasil mengkonversi file dump SimpleGeo menjadi file geojson yang tepat (diverifikasi yang langsung dapat dibaca di QGIS).
Sekarang saya ingin mengonversi data ini ke SHP atau format lain (SQLite, PostGIS). Saya menjalankan perintah berikut ini dengan sukses pada file yang lebih kecil (di mana "places_fr.gejson" memiliki ukuran file ~ 118MB):
ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson
Ketika saya mencoba menjalankan perintah yang sama persis ini dengan file geojson yang 340MB, ogr2ogr lumpuh dalam salah satu dari dua cara:
- "lh_table_new: calloc gagal" ( upaya pertama )
- Windows melempar "ogr2ogr.exe telah berhenti berfungsi. Tutup program ini." ( upaya selanjutnya )
Saya menjalankan perintah ogr melalui FWTools di lingkungan dual core Windows 7 dengan 8GB RAM terpasang (tersedia 4GB, tersedia memori virtual 12GB). Apakah ada batas memori untuk ogr2ogr mengonversi kumpulan data ini? Saya juga telah mencoba mengonversikannya ke dalam SQLite dengan hasil yang sama, jadi saya rasa ini bukan masalah konversi SHP. Terima kasih.
Jawaban:
Peringatan : mengingat besarnya memori yang Anda laporkan pada sistem Anda, saya kira Anda menggunakan build Windows 64 bit. Jika tidak, solusi ini tidak berlaku.
Batas memori untuk semua aplikasi 32 bit pada Windows (terlepas dari versi Windows, jadi memang benar juga untuk Windows 64 bit) adalah 2GB. Anda mungkin mencapai batas itu, untuk mengonfirmasi menjalankan ogr2ogr dan memeriksa penggunaan memori dengan pengelola tugas.
Jika masalahnya memang karena masalah memori, Anda dapat melakukan dua hal:
buat sendiri versi 64 bit GDAL (saya tidak bisa menemukan binari yang siap pakai)
menambal ogr2ogr.exe dengan alat ini: http://ntcore.com/4gb_patch.php . Setelah menambal (membuat salinan cadangan tentu saja) biner harus tersedia untuk mengatasi 4GB grandtotal
sumber
Jika ada masalah, kemungkinan besar akan spesifik untuk driver geojson OGR dan bukan OGR itu sendiri. Coba gunakan biner yang lebih baru (seperti yang dari OSGeo4W ) atau bahkan lebih baik, versi 64 bit. Maaf, kecuali Anda mengompilasinya, saya tidak tahu di mana Anda bisa mendapatkan biner 64bit untuk Windows - binari Linux Linux dan Mac KyngChaos akan menjadi 64 bit.
sumber
Mungkin membagi file menjadi banyak file dan mengimpor dengan batch file.
sumber