W odpowiedzi na moje poprzednie pytanie ( Konwertowanie pliku GeoJSON z SimpleGeo Places na plik kształtu ), walczę teraz z tym, co według mnie może być ograniczeniem „pamięci” ogr2ogr, ale nie jestem pewien. Z powodzeniem przekonwertowałem pliki zrzutu SimpleGeo na odpowiednie pliki geojson (sprawdzone, które można bezpośrednio odczytać w QGIS).
Teraz chcę przekonwertować te dane na SHP lub inne formaty (SQLite, PostGIS). Korzystam z następującego polecenia z powodzeniem na mniejszych plikach (gdzie „places_fr.gejson” ma rozmiar pliku ~ 118 MB):
ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson
Kiedy próbuję uruchomić to samo dokładne polecenie z plikiem geojson o wielkości 340 MB, ogr2ogr ulega awarii na jeden z dwóch sposobów:
- „lh_table_new: calloc nie powiodło się” ( pierwsza próba )
- System Windows zgłasza komunikat „Ogród2ogr.exe przestał działać. Zamknij program.” ( kolejne próby )
Korzystam z polecenia ogr za pomocą FWTools w środowisku Windows 7 dual core z 8 GB zainstalowanej pamięci RAM (dostępne 4 GB, dostępna pamięć wirtualna 12 GB). Czy istnieje limit pamięci dla ogr2ogr konwersji tych zestawów danych? Próbowałem również przekonwertować na SQLite z tymi samymi wynikami, więc nie sądzę, że jest to problem z konwersją SHP. Dzięki.
Odpowiedzi:
Ostrzeżenie : biorąc pod uwagę ilość pamięci, którą zgłaszasz w swoim systemie, przypuszczam, że używasz 64-bitowej wersji systemu Windows. Jeśli nie, to rozwiązanie nie ma zastosowania.
Limit pamięci dla wszystkich 32-bitowych aplikacji w systemie Windows (niezależnie od wersji systemu Windows, tak jest również w 64-bitowym systemie Windows) wynosi 2 GB. Być może osiągasz ten limit, aby potwierdzić uruchomienie ogr2ogr i sprawdzić użycie pamięci za pomocą menedżera zadań.
Jeśli problem rzeczywiście wynika z problemu z pamięcią, możesz zrobić dwie rzeczy:
zbuduj sobie 64-bitową wersję GDAL (nie mogłem znaleźć łatwo dostępnych plików binarnych)
załataj ogr2ogr.exe za pomocą tego narzędzia: http://ntcore.com/4gb_patch.php . Po załataniu (oczywiście wykonaj kopię zapasową) plik binarny powinien być dostępny, aby zajął się grandtotal 4 GB
źródło
Jeśli występuje problem, najprawdopodobniej byłby specyficzny dla sterownika geojson OGR, a nie samego OGR. Spróbuj użyć nowszej wersji binarnej (takiej jak OSGeo4W ) lub jeszcze lepszej - wersji 64-bitowej. Przepraszamy, chyba że go kompilujesz, nie wiem, gdzie można uzyskać 64-bitowy plik binarny dla systemu Windows - jednak pliki binarne Ubuntu Linux i Mac KyngChaos będą 64-bitowe.
źródło
Można podzielić plik na wiele plików i zaimportować je wsadowo.
źródło