Ferramenta gratuita para simplificar os shapefiles dos pacotes?

16

Existe alguma ferramenta disponível que permita executar milhões de shapefiles de pacotes e simplificá-los?

NetConstructor.com
fonte
1
o que você quer dizer com simplificar, a borda?
artwork21
1
Eu acho que estaria preocupado em executar simplificar em polígonos sem algum tipo de topologia. Eu nem acho que esri conseguirá simplificar duas arestas simultaneamente, para que elas permaneçam consistentes. Talvez eu esteja errado.
Brad Nesom

Respostas:

6

Você pode experimentar o Shapely - uma API Python construída sobre o GEOS . Como o Shapely e o GDAL têm bibliotecas Python, você pode combiná-los facilmente com dados de várias fontes diferentes (incluindo shapefiles) e simplificar e exportar conforme desejado.

A única desvantagem pode ser a velocidade se você estiver executando milhões de recursos - pode ser mais rápido usar o GEOS ou o JTS diretamente.

Veja o método simplify :

Todos os pontos no objeto simplificado estarão dentro da distância de tolerância da geometria original. Por padrão, é usado um algoritmo mais lento que preserva a topologia. Se a topologia de preservação estiver definida como False, o algoritmo Douglas-Peucker é muito mais rápido.

>>> 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
fonte
14

A versão 9.0 do GDAL / OGR adicionou a opção -simplify ao comando ogr2ogr . A documentação indica que preserva a topologia.

-simplifique a tolerância: (começando com GDAL 1.9.0) tolerância à distância para simplificação. Este método preservará a topologia, especialmente para geometrias de polígonos.

Exemplo de uso:

ogr2ogr outfile.shp infile.shp -simplify 0.000001
Tyler Erickson
fonte
6

ogr2ogr possui uma opção "segmentar" que parece fazer o que você precisa: GDAL ogr2ogr documentation

A partir dessa página:

-segmentize max_dist: (começando com GDAL 1.6.0) distância máxima entre 2 nós. Usado para criar extensões intermediárias de consulta de pontosespaciais

Derek Swingley
fonte
5

Você pode experimentar o Mapshaper . Talvez haja algumas limitações devido ao tamanho do arquivo.

julien
fonte
4

GRASS v.generalize

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

Giovanni Manghi
fonte
Fiz alguns testes e, até hoje, todos os métodos sugeridos aqui e contando com o GEOS (ogr2ogr com -simplify, bem torneado, a função ST_SimplifyPreserveTopology do PostGIS) produzem anomalias topológicas (ou seja, buracos / sobreposições entre polígonos). Somente com GRASS tive bons resultados.
capooti
3

Inspire-se no Mapshaper, mas diretamente no local, consulte https://github.com/migurski/Bloch

ThomasG77
fonte
obrigado pela sua resposta. Eu acho que a questão aqui é o que fazer se não topologia é definir com o shapefile
NetConstructor.com