Страница 1 из 1
Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 15 апр 2017, 03:27
Natalia Novoselova
Есть ли в ArcGIS или открытом софте ( QGIS, etc) инструмент, который позволяет убирать пустоты (дырки) внутри полигона? На примере – то, что нужно убрать перечеркнуто красным: это пустоты, со всех сторон окруженные данным полигоном (задача – превратить эти пустоты в тот полигон, который его окружает).
То есть задача - сделать полигон цельным внутри. Убрать все "озера"-пустоты, превратив их в сам полигон.
При этом, если пустота не со всех сторон окружена полигоном («залив») – ее надо оставить пустотой.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 15 апр 2017, 04:04
Natalia Novoselova
Вручную это можно сделать простым редактированием. Когда весь полигон выделяешь и переходишь в режим показа всех точек контура. То такие внутренние пустоты - удаляются при удалении всех его вершин.
По идее, может быть и автоматизированный процесс такого удаления.
Хотя ручной способ - уже хорошо. В моем случае вроде этого не так много.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 15 апр 2017, 08:10
trir
надо сделать новый полигон из внешней границы старого и записать его вместо старого - на SQL это делается в один запрос
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 15 апр 2017, 09:35
Александр Мурый
В QGIS можно через Processing --> "Delete holes". В ArcGIS попробуйте инструмент
Eliminate Polygon Part.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 16 апр 2017, 03:34
Natalia Novoselova
Спасибо! Делает. Надо настроить правильно - у меня получилось лучше через проценты.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 16 апр 2017, 10:01
nadiopt
можно еще перегнать в грид и обратно
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 03 ноя 2017, 12:56
Prince660
Я бы на питоне скрипт написал, чтобы он брал полигоны из файла и сохранял в другой файл эти полигоны, но только с координатами внешних границ. Соответственно дырок там уже не будет.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 03 ноя 2017, 15:08
trir
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 04 мар 2021, 16:05
Veronika_Coconut
Александр Мурый писал(а): ↑15 апр 2017, 09:35
В QGIS можно через Processing --> "Delete holes". В ArcGIS попробуйте инструмент Eliminate Polygon Part.
Аналогичный вопрос, как и у автора. в Кгисе попробовала метод "Delete Holes". Он убрал дырки начисто, но не превратил в пустоты, а просто полигоны стали "чистые"
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 05 мар 2021, 03:28
Ivor
Veronika_Coconut, ну да, если дырки нет - значит её нет, а есть большой полигон без дырки. А как можно "дырки" превратить в "пустоты"?
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 11 мар 2021, 16:06
Veronika_Coconut
Ivor писал(а): ↑05 мар 2021, 03:28
ну да, если дырки нет - значит её нет, а есть большой полигон без дырки. А как можно "дырки" превратить в "пустоты"?
покажу на изображении:
1)некоторые программы не любят мультиполигоны, и потэтому все "дырки" создателем вектора представляются в виде разрывов. Дырки в подобные вырезки я пока чт могу исправлять только вручную...
2)А на втором изображении самая класическая дыра, которую и убирает ранее описанный метод в Кгисе, только не делает из нее предыдущий вариант дыри,а напрочь "зашивает" все дырки.
И иногда очень нужно сделать из второго первое не руками.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 11 мар 2021, 16:56
Ivor
Veronika_Coconut, да уж, с таким не сталкивался, слава Богу. Автоматики для подобных изысков не видел, хотя, в принципе, соответствующий модуль не так и сложно написать. А что за программы требуют таких ухищрений, если не секрет?
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 11 мар 2021, 16:59
gamm
Veronika_Coconut писал(а): ↑11 мар 2021, 16:06
некоторые программы не любят мультиполигоны, и потэтому все "дырки" создателем вектора представляются в виде разрывов
жуть какая ... лучше такие программы не использовать, а написавших такое - уволить без выходного пособия
такой маразм только руками можно сделать, если резать полигоны линией. Или программу писать на R/Python ... искать, кто в кого вложен, потом искать во внешнем контуре точку, ближайшую к одной из точек дырки, вставлять дырку во внешний контур (убедившись, что линия разреза лежит внутри внешнего контура), и убирать дырку.
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 12 мар 2021, 10:41
Veronika_Coconut
Ivor писал(а): ↑11 мар 2021, 16:56
А что за программы требуют таких ухищрений, если не секрет?
Если знакомы с такими системами, как Climat Field View, в John Deere был такой заскок, но исправили, или очень старая версия Global Mapper, то там не читает, видит как два отдельных полигона. В онлайн системе Climat Field View, где идентификатором поля является его название, он еще и самозаменяет поля з одинаковыми названиями (а части мультиполигона как раз тот случай) и загружает только какую-то одну часть полигона
Re: Как превратить пустоты внутри полигона в сам полигон ?
Добавлено: 12 мар 2021, 10:44
Veronika_Coconut
gamm писал(а): ↑11 мар 2021, 16:59
такой маразм только руками можно сделать, если резать полигоны линией. Или программу писать на R/Python ... искать, кто в кого вложен, потом искать во внешнем контуре точку, ближайшую к одной из точек дырки, вставлять дырку во внешний контур (убедившись, что линия разреза лежит внутри внешнего контура), и убирать дырку.
Про маразм согласна)) Спасибо большое за ответ, я пытаюсь научится Python самостоятельно, но это очень долго)) Но когда научусь- воспользуюсь вашим советом!