В продолжение моего предыдущего вопроса ( Преобразование файла SimpleGeo Places GeoJSON в шейп-файл ) я сейчас борюсь с тем, что, по моему мнению, может быть ограничением памяти ogr2ogr, но я не уверен. Я успешно преобразовал файлы дампа SimpleGeo в правильные файлы geojson (проверено, что они непосредственно читаются в QGIS).
Теперь я хочу преобразовать эти данные в SHP или другие форматы (SQLite, PostGIS). Я успешно запускаю следующую команду для файлов меньшего размера (где "place_fr.gejson" имеет размер файла ~ 118 МБ):
ogr2ogr -f "ESRI Shapefile" places_fr.shp places_fr.geojson
Когда я пытаюсь выполнить ту же самую команду с файлом geojson, который составляет 340 МБ, ogr2ogr вылетает одним из двух способов:
- «lh_table_new: calloc fail» ( первая попытка )
- Windows выдает «ogr2ogr.exe перестал работать. Пожалуйста, закройте программу». ( последующие попытки )
Я запускаю команду ogr через FWTools в двухъядерной среде Windows 7 с 8 ГБ установленной ОЗУ (доступно 4 ГБ, доступно 12 ГБ виртуальной памяти). Есть ли предел памяти для преобразования этих наборов данных в ogr2ogr? Я также пытался конвертировать в SQLite с теми же результатами, поэтому я не думаю, что это проблема конвертации SHP. Благодарю.
Ответы:
Предупреждение : учитывая объем памяти, который вы сообщаете в своей системе, я полагаю, что вы используете 64-битную сборку Windows. Если нет, то это решение не применяется.
Ограничение памяти для всех 32-разрядных приложений в Windows (независимо от версии Windows, поэтому это справедливо и для 64-разрядных Windows) составляет 2 ГБ. Возможно, вы достигли этого предела, чтобы подтвердить запуск ogr2ogr и проверить использование памяти с помощью диспетчера задач.
Если проблема действительно связана с проблемой памяти, вы можете сделать две вещи:
создайте себе 64-битную версию GDAL (я не мог найти готовые к использованию двоичные файлы)
патч ogr2ogr.exe с помощью этого инструмента: http://ntcore.com/4gb_patch.php . После внесения исправлений (конечно же, сделайте резервную копию), двоичный файл должен быть доступен для адреса размером 4 ГБ.
источник
Если есть проблема, она, скорее всего, будет связана с драйвером OGR geojson, а не с самим OGR. Попробуйте использовать более новый двоичный файл (например, из OSGeo4W ) или, что еще лучше, 64-разрядную версию. Извините, если вы не компилируете его, я не знаю, где можно получить 64-разрядный двоичный файл для Windows - хотя двоичные файлы Ubuntu Linux и Mac KyngChaos будут 64-разрядными.
источник
Может быть разбить файл на несколько файлов и импортировать пакетные файлы.
источник