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

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 26 дек 2016, 15:52

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

5Nap
Участник
Сообщения: 85
Зарегистрирован: 21 ноя 2010, 17:36
Репутация: 31

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

Сообщение 5Nap » 26 дек 2016, 16:01

У SHP действительно есть такое ограничение (если быть точным - у dbf). В File Geodatabase в ArcGIS'е ограничения нет.

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 26 дек 2016, 16:14

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

lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

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

Сообщение lam » 27 дек 2016, 10:10

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

Аватара пользователя
bingeomap
Гуру
Сообщения: 503
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

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

Сообщение bingeomap » 27 дек 2016, 11:03

А может попробуйте в формате SpatiaLite (SQLite)?! Если не ошибаюсь там нет ограничений или есть но очень большой размер.
С уважением,
Биннат Халилов

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 27 дек 2016, 11:35

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

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

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

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 27 дек 2016, 12:31

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

Аватара пользователя
bingeomap
Гуру
Сообщения: 503
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

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

Сообщение bingeomap » 27 дек 2016, 12:59

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

gamm
Гуру
Сообщения: 4048
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 27 дек 2016, 13:15

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

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 27 дек 2016, 14:37

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

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 27 дек 2016, 15:19

Пока после работы инструмента получаю 19000 записей с изолинией 0 (контур берега) и всё...

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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, можно попробовать другие значения.
Редактор материалов, модератор форума

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 28 дек 2016, 12:50

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

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 28 дек 2016, 14:19

Александр Мурый писал(а):Ещё вариант при построении в 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 м и скопировать в поле)

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей