Existe alguma ferramenta disponível que permita executar milhões de shapefiles de pacotes e simplificá-los?
Existe alguma ferramenta disponível que permita executar milhões de shapefiles de pacotes e simplificá-los?
Respostas:
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
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
Se seus dados estiverem armazenados no PostGIS, tente usar ST_SimplifyPreserveTopology .
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
GRASS v.generalize
Inspire-se no Mapshaper, mas diretamente no local, consulte https://github.com/migurski/Bloch