أكثر

فشل ogr2ogr في تحويل ملف GeoJson> 200 ميجابايت

فشل ogr2ogr في تحويل ملف GeoJson> 200 ميجابايت


كمتابعة لسؤالي السابق (تحويل ملف SimpleGeo Places GeoJSON إلى ملف شكل) ، أنا الآن أعاني من ما أراه من قيود "ذاكرة" ogr2ogr ، لكن لا يمكنني التأكد. لقد نجحت في تحويل ملفات تفريغ SimpleGeo إلى ملفات geojson مناسبة (تم التحقق من أنها قابلة للقراءة مباشرة في QGIS).

الآن أريد تحويل هذه البيانات إلى SHP أو تنسيقات أخرى (SQLite ، PostGIS). أقوم بتشغيل الأمر التالي بنجاح على ملفات أصغر (حيث يبلغ حجم ملف "places_fr.gejson" 118 ميجابايت تقريبًا):

ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson

عندما أحاول تشغيل نفس الأمر بالضبط مع ملف geojson بحجم 340 ميغا بايت ، يتعطل ogr2ogr بإحدى طريقتين:

  1. "lh_table_new: فشل calloc" (المحاولة الأولى)
  2. يطرح Windows "توقف ogr2ogr.exe عن العمل. الرجاء إغلاق البرنامج." (المحاولات اللاحقة)

أقوم بتشغيل الأمر ogr عبر FWTools في بيئة Windows 7 ثنائية النواة مع 8 جيجابايت من ذاكرة الوصول العشوائي المثبتة (4 جيجابايت متوفرة ، وذاكرة افتراضية 12 جيجابايت متوفرة). هل هناك حد للذاكرة حتى تتمكن ogr2ogr من تحويل مجموعات البيانات هذه؟ لقد حاولت أيضًا التحويل إلى SQLite بنفس النتائج ، لذلك لا أعتقد أنها مشكلة تحويل SHP. شكرا.


تحذير: نظرًا لضخامة الذاكرة التي تقوم بالإبلاغ عنها على نظامك ، أفترض أنك تستخدم إصدار 64 بت من Windows. إذا لم يكن هذا الحل لا ينطبق.

الحد الأقصى للذاكرة لجميع تطبيقات 32 بت على Windows (بغض النظر عن إصدار Windows ، لذا فهو صحيح أيضًا لنظام Windows 64 بت) هو 2 جيجابايت. قد تصل إلى هذا الحد ، لتأكيد تشغيل ogr2ogr والتحقق من استخدام الذاكرة باستخدام مدير المهام.

إذا كانت المشكلة بالفعل بسبب مشكلة في الذاكرة ، فيمكنك القيام بأمرين:

  1. قم ببناء نسخة 64 بت من GDAL (لم أجد بسهولة ثنائيات متوفرة)

  2. قم بتصحيح ogr2ogr.exe باستخدام هذه الأداة: http://ntcore.com/4gb_patch. بعد الترقيع (عمل نسخة احتياطية بالطبع) الثنائي ينبغي يكون متاحا لمخاطبة grandtotal 4GB


إذا كانت هناك مشكلة ، فستكون على الأرجح خاصة ببرنامج تشغيل OGR geojson وليس OGR نفسه. جرب استخدام نسخة ثنائية أحدث (مثل تلك الموجودة في OSGeo4W) أو أفضل ، نسخة 64 بت منها. عذرًا ، ما لم تكن تقوم بتجميعها ، فأنا لا أعرف من أين يمكنك الحصول على ثنائي 64 بت لنظام التشغيل Windows - ستكون ثنائيات Ubuntu Linux و Mac KyngChaos 64 بت بالرغم من ذلك.


ربما ينقسم الملف إلى العديد من الملفات واستيرادها دفعة واحدة من الملفات.

http://www.clubic.com/telecharger-fiche184550-split-files.html أو http://www.hjsplit.org/


شاهد الفيديو: Spatial File Format conversion using OGR2OGR. GDALOGR Tutorial