Бесплатный инструмент для упрощения шейп-файлов участков?

16

Существует ли какой-либо инструмент, позволяющий мне запускать миллионы шейп-файлов участков и упрощать их?

NetConstructor.com
источник
1
что вы подразумеваете под упрощением, край?
artwork21
1
Я думаю, что я буду обеспокоен запуском упрощения на полигонах без какой-либо топологии. Я даже не думаю, что esri будет управлять двумя одновременно упрощенными ребрами, чтобы они оставались последовательными. Может я не прав.
Брэд Несом

Ответы:

6

Вы можете попробовать Shapely - Python API, построенный на основе GEOS . Поскольку и Shapely, и GDAL имеют библиотеки Python, вы можете легко объединить их с данными из разных источников (включая шейп-файлы), а затем упростить и экспортировать по желанию.

Единственным недостатком может быть скорость, если вы выполняете миллионы функций - может быть быстрее использовать GEOS или JTS напрямую.

Смотрите упрощенный метод:

Все точки в упрощенном объекте будут находиться в пределах допуска от исходной геометрии. По умолчанию используется более медленный алгоритм, который сохраняет топологию. Если для топологии сохранения задано значение False, используется гораздо более быстрый алгоритм Дугласа-Пекера.

>>> p = Point(0.0, 0.0)
>>> x = p.buffer(1.0)
>>> x.area
3.1365484905459389
>>> s = x.simplify(0.05, preserve_topology=False)
>>> s.area
3.0614674589207187
geographika
источник
14

Версия 9.0 GDAL / OGR добавила опцию -simplify к команде ogr2ogr . В документации указано, что она сохраняет топологию.

- упрощенный допуск: (начиная с GDAL 1.9.0) допуск на расстояние для упрощения. Этот метод сохранит топологию, в частности, для геометрий многоугольников.

Пример использования:

ogr2ogr outfile.shp infile.shp -simplify 0.000001
Тайлер Эриксон
источник
6

В ogr2ogr есть опция «segmentize», которая, кажется, делает то, что вам нужно: документация GDAL ogr2ogr

С этой страницы:

-segmentize max_dist: (начиная с GDAL 1.6.0) максимальное расстояние между 2 узлами. Используется для создания промежуточных точек пространственного запроса экстентов

Дерек Суингли
источник
5

Вы можете попробовать Maphaper . Возможно, есть некоторые ограничения из-за размера вашего файла.

жюльен
источник
4

GRASS v.generalize

http://grass.osgeo.org/gdp/html_grass64/v.generalize.html

Джованни Манги
источник
Я провел некоторый тест, и на сегодняшний день все методы, предлагаемые здесь и основанные на GEOS (ogr2ogr с -simplify, shapely, функцией PostGIS ST_SimplifyPreserveTopology), создают топологические аномалии (то есть дыры / перекрытия между полигонами). Только с GRASS у меня были хорошие результаты.
Capooti
3

Вдохновлять от Mapshaper, но прямо в местном, посмотрите на https://github.com/migurski/Bloch

ThomasG77
источник
Спасибо за ваш ответ. Я думаю, проблема в том, что делать, если топология не определена с шейп-
файлом