È disponibile uno strumento che mi consente di eseguire milioni di shapefile dei pacchi e semplificarli?
È disponibile uno strumento che mi consente di eseguire milioni di shapefile dei pacchi e semplificarli?
Risposte:
Potresti provare Shapely: un'API Python costruita su GEOS . Poiché sia Shapely che GDAL hanno librerie Python, puoi facilmente combinarle con dati provenienti da molte fonti diverse (inclusi gli shapefile) e quindi semplificare ed esportare come desiderato.
L'unico aspetto negativo potrebbe essere la velocità se stai facendo milioni di funzionalità: potrebbe essere più veloce utilizzare GEOS o JTS direttamente.
Vedi il metodo di semplificazione :
Tutti i punti nell'oggetto semplificato saranno entro la distanza di tolleranza della geometria originale. Per impostazione predefinita, viene utilizzato un algoritmo più lento che preserva la topologia. Se la conservazione della topologia è impostata su False, viene utilizzato l'algoritmo Douglas-Peucker molto più veloce.
>>> 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
La versione 9.0 di GDAL / OGR ha aggiunto l'opzione -simplify al comando ogr2ogr . La documentazione indica che conserva la topologia.
-semplifica la tolleranza: (a partire da GDAL 1.9.0) tolleranza di distanza per semplificazione. Questo metodo conserverà la topologia, in particolare per le geometrie poligonali.
Esempio di utilizzo:
ogr2ogr outfile.shp infile.shp -simplify 0.000001
Se i tuoi dati sono memorizzati in PostGIS, prova a utilizzare ST_SimplifyPreserveTopology .
ogr2ogr ha un'opzione "segmentare" che sembra fare ciò di cui hai bisogno: la documentazione di GDAL ogr2ogr
Da quella pagina:
-segmentize max_dist: (a partire da GDAL 1.6.0) distanza massima tra 2 nodi. Utilizzato per creare estensioni di query spaziali punti intermedi
GRASS v.generalize
Ispirati da Mapshaper, ma direttamente in locale, guarda https://github.com/migurski/Bloch