Инвертировать полигоны с помощью QGIS?


14

У меня есть шейп-файл с элементами Polygon, представляющими земные территории мира (континенты, острова).

Можно ли их инвертировать и получить геометрию, которая представляет океаны и моря мира?

Таким образом, исходные полигоны должны стать кольцами в едином глобальном полигоне, который покрывает планету.

По сути, я ищу что-то вроде Select> Inverse в Photoshop.

Я использую QGIS.

Ответы:


20

Вы можете сделать это, используя следующие шаги:

1- В QGIS перейдите по ссылке Vector > Research Tools > Polygon From Layer Extent. Используйте площадь Земли в качестве входного файла. Выберите Желаемое имя для имени выходного файла слоя экстента. Это создаст новый векторный слой, покрывающий всю территорию Земли.

2- Использование Geoprocessing Tools > Difference: используйте слой экстента, созданный на первом этапе, в качестве входного файла, а площадь земного шара в мире - в качестве файла различий. Тогда Вы получите противоположный шейп-файл, который представляет океан.


1
Я принимаю это, потому что, как правило, это правильная техника. Матовый прав, хотя: часть океана будет отсутствовать.
kontextify

8

Когда вы инвертируете полигоны, в конце концов, возможно, вам не хватает небольшого количества океана, так как протяженность суши не поднимется до северного полюса, и, следовательно, разница там может немного отсутствовать. В зависимости от того, что следует делать с данными впоследствии, может быть лучше просто получить данные об океане.

http://www.naturalearthdata.com/features/


2
Я рассмотрел Natural Earth, но мне нужны более подробные береговые линии.
kontextify

Это интересно, потому что нет точки, в которой береговая линия достаточно «детализирована»; всегда будет больше деталей в мире природы. Для восточного побережья США я знаю, что береговой линии, доступной от NOAA ( ngdc.noaa.gov/mgg/shorelines ), мне было недостаточно.
Geocurious

2
Я закончил с отличным набором данных на основе OSM. Это достаточно подробно для меня. openstreetmapdata.com/data/water-polygons
kontextify

3

В дополнение к ответу Ахмадханба, вы можете создать буфер в несколько градусов / км / миль к «Полигону от протяженности слоя», таким образом, у вас будет некоторое пространство из самых внешних вершин ваших континентальных форм (то, что вы получения).

Затем вы можете применить «Различие» к этой буферизованной форме, чтобы стереть континентальные полигоны и получить океан.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.