Страница 1 из 1

Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 26 дек 2016, 15:52
dime1
Есть .tif 3,6 Gb, пробую получить изолинии (20-10-5-1 м), процесс всегда в какой-то момент виснет, что в QGIS, что в ArcGIS (не важно в .gdb или нет). В QGIS посмотрел размер файла остановился на 2.2 Гб и дальше не менялся, я так понимаю, проблема в самом формате .shp?
Как вы обходите такие ограничения?
(сейчас пробую растр конвертировать в точки и построить TIN, но вижу, что тоже не получиться по той же причине)

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 26 дек 2016, 16:01
5Nap
У SHP действительно есть такое ограничение (если быть точным - у dbf). В File Geodatabase в ArcGIS'е ограничения нет.

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 26 дек 2016, 16:14
dime1
5Nap писал(а):У SHP действительно есть такое ограничение (если быть точным - у dbf). В File Geodatabase в ArcGIS'е ограничения нет.
На практике есть и тут срабатывает ограничение на файле самой геометрии, а не файле БД. Я всё так же не могу получить файл изолинии внутри File Geodatabase (.gdb) - когда и растр и результирующий слой указаны в одной базе геоданных.

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 10:10
lam
dime1 писал(а):Есть .tif 3,6 Gb, пробую получить изолинии (20-10-5-1 м), процесс всегда в какой-то момент виснет,
изолинии (20-10-5-1 м) получаете отдельными шейпами или одним?

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 11:03
bingeomap
А может попробуйте в формате SpatiaLite (SQLite)?! Если не ошибаюсь там нет ограничений или есть но очень большой размер.

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 11:35
dime1
изолинии (20-10-5-1 м) получаете отдельными шейпами или одним?
Отдельными, инструментами Contour. Пытался нащупать предел, с каким параметром результирующий шейп таки сохраниться.

В SpatiaLite загнать растр и туда же попробовать сохранить результирующие изолинии в QGIS?

[ Сообщение с мобильного устройства ]

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 12:31
Александр Мурый
Первое, что приходит в голову - разбить растр на куски и построить изолинии, а потом сшить.
Или можно поработать с самой ЦМР. Пройтись каким-то фильтром, чтобы генерализовать немного. Видимо, изолинии получаются тяжёлыми из-за слишком заковыристого растра.

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 12:59
bingeomap
dime1 писал(а):В SpatiaLite загнать растр и туда же попробовать сохранить результирующие изолинии в QGIS?
Я не понимаю, почему загнать растр в SpatiaLite?
В ПО QGIS, откройте растр и дайте команду Contour и сохраните результат в формате SpatiaLite.
Не получается так делать? Или я вас не правильно понял вы какой результат хотите получит?

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 13:15
gamm
dime1 писал(а):Есть .tif 3,6 Gb, пробую получить изолинии (20-10-5-1 м)
а вам точно все эти изолинии нужны целиком, или это спортивный интерес? Все равно работать с таким объемом сразу не будете, нарезку на листы/тайлы/бассейны и т.д не зря придумали. К тому же сильно извилистые изолинии обычно результат плохих данных, и никакой полезной информации эти извивы не несут ...

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 14:37
dime1
Это SRTMGL1, мне хотелось без обработки получить изолинии, веря, что существует Big Geodata :)
Сейчас пробую Focal Filter (circle 5), потом буду строить. Если все еще нет, то попробую в БД SpatiaLite.
Спасибо за советы!

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 15:19
dime1
Пока после работы инструмента получаю 19000 записей с изолинией 0 (контур берега) и всё...

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 27 дек 2016, 15:19
Александр Мурый
Ещё вариант при построении в QGIS - использовать модуль GRASS <r.contour> (ищите в "Анализе данных" по слову "contour"). Там есть параметр "Minimum number of points for a contour line (0 -> no limit)". По умолчанию стоит 0, можно попробовать другие значения.

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 28 дек 2016, 12:50
dime1
bingeomap писал(а):В ПО QGIS, откройте растр и дайте команду Contour и сохраните результат в формате SpatiaLite.
Не получается так делать? Или я вас не правильно понял вы какой результат хотите получит?
Проверил, не получается. Делаю по растру (32bit float) после сглаживания фильтром focal mean (5pix) и с интервалом изолиний в 50! м, записывая .shp в БД SpatiaLite и безуспешно. Инструмент Contour просто завис на 36% и в базе пока нет этого .shp с изолиниями

Re: Получить полилинии из большой ЦМР (2gb .shp limit)

Добавлено: 28 дек 2016, 14:19
dime1
Александр Мурый писал(а):Ещё вариант при построении в QGIS - использовать модуль GRASS <r.contour> (ищите в "Анализе данных" по слову "contour"). Там есть параметр "Minimum number of points for a contour line (0 -> no limit)". По умолчанию стоит 0, можно попробовать другие значения.
Уже ближе, нарисовало изолинии 25м. Задал Minimum number of points тоже 25. Еще бы еще узнать как в инструменте r.contour.level внести все значения через 10м в поле List of contour levels? (приходит на ум в Excel сделать строку с инкрементом в 10 м и скопировать в поле)