Im Anschluss an meine vorherige Frage ( Konvertieren der SimpleGeo Places-GeoJSON-Datei in ein Shapefile ) habe ich jetzt Probleme mit einer meiner Ansicht nach möglicherweise ogr2ogr- "Speicher" -Einschränkung, bin mir jedoch nicht sicher. Ich habe die SimpleGeo-Dump-Dateien erfolgreich in richtige Geojson-Dateien konvertiert (überprüft, ob sie direkt in QGIS lesbar sind).
Jetzt möchte ich diese Daten in SHP oder andere Formate (SQLite, PostGIS) konvertieren. Ich führe den folgenden Befehl mit Erfolg für kleinere Dateien aus (wobei "places_fr.gejson" eine Dateigröße von ~ 118 MB hat):
ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson
Wenn ich versuche, denselben exakten Befehl mit einer 340 MB großen Geojson-Datei auszuführen, stürzt ogr2ogr auf zwei Arten ab:
- "lh_table_new: calloc failed" ( erster Versuch )
- Windows wirft ein "ogr2ogr.exe funktioniert nicht mehr. Bitte schließen Sie das Programm." ( nachfolgende Versuche )
Ich führe den Befehl ogr über FWTools in einer Windows 7-Umgebung mit zwei Kernen und 8 GB installiertem RAM aus (4 GB verfügbar, 12 GB virtueller Speicher verfügbar). Gibt es eine Speicherbeschränkung für die ogr2ogr-Konvertierung dieser Datensätze? Ich habe auch versucht, in SQLite mit den gleichen Ergebnissen zu konvertieren, so denke ich nicht, dass es ein SHP-Konvertierungsproblem ist. Vielen Dank.
Antworten:
Vorwarnung : Angesichts der Speicherkapazität, die Sie auf Ihrem System melden, verwenden Sie vermutlich einen 64-Bit-Build von Windows. Wenn nicht, trifft diese Lösung nicht zu.
Das Speicherlimit für alle 32-Bit-Anwendungen unter Windows (unabhängig von der Windows-Version, also auch für 64-Bit-Windows) beträgt 2 GB. Möglicherweise überschreiten Sie dieses Limit, um die Ausführung von ogr2ogr zu bestätigen und die Speichernutzung mit dem Task-Manager zu überprüfen.
Wenn das Problem tatsächlich auf ein Speicherproblem zurückzuführen ist, können Sie zwei Dinge tun:
Bauen Sie sich eine 64-Bit-Version von GDAL (ich konnte keine verfügbaren Binärdateien finden)
Patchen Sie ogr2ogr.exe mit diesem Tool: http://ntcore.com/4gb_patch.php . Nach dem Patchen (eine Sicherungskopie natürlich) die binären sollte vorhanden sein , um eine 4GB Grandtotal zu adressieren
quelle
Wenn es ein Problem gibt, ist es höchstwahrscheinlich spezifisch für den OGR-Geojson-Treiber und nicht für OGR selbst. Versuchen Sie es mit einer neueren Binärdatei (wie der von OSGeo4W ) oder noch besser mit einer 64-Bit-Version. Entschuldigung, es sei denn, Sie kompilieren es, ich weiß nicht, wo Sie eine 64-Bit-Binärdatei für Windows bekommen können - die Ubuntu Linux- und Mac KyngChaos- Binärdateien werden jedoch 64-Bit sein.
quelle
Mai wird geteilt , die Datei zu viele Dateien und Import mit einem Batch - Dateien.
quelle