Kostenloses Tool zur Vereinfachung von Paketformdateien?

16

Gibt es ein Tool, mit dem ich Millionen von Paket-Shapefiles ausführen und vereinfachen kann?

NetConstructor.com
quelle
1
was meinst du mit vereinfachen, den rand?
artwork21
1
Ich denke, ich wäre besorgt, wenn ich auf Polygonen ohne irgendeine Topologie Simplify ausführen würde. Ich glaube nicht einmal, dass esri zwei Kanten gleichzeitig simulieren wird, damit sie konsistent bleiben. Vielleicht bin ich falsch.
Brad Nesom

Antworten:

6

Sie könnten Shapely ausprobieren - eine Python-API, die auf GEOS aufbaut . Da sowohl Shapely als auch GDAL über Python-Bibliotheken verfügen, können Sie diese auf einfache Weise zu Daten aus vielen verschiedenen Quellen (einschließlich Shapefiles) kombinieren und anschließend nach Bedarf vereinfachen und exportieren.

Der einzige Nachteil kann die Geschwindigkeit sein, wenn Sie Millionen von Funktionen ausführen - es könnte schneller sein, GEOS oder JTS direkt zu verwenden.

Siehe die simplify- Methode:

Alle Punkte im vereinfachten Objekt liegen innerhalb des Toleranzabstands der ursprünglichen Geometrie. Standardmäßig wird ein langsamerer Algorithmus verwendet, der die Topologie beibehält. Wenn "Topologie beibehalten" auf "Falsch" gesetzt ist, wird der viel schnellere Douglas-Peucker-Algorithmus verwendet.

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

In Version 9.0 von GDAL / OGR wurde die Option -simplify zum Befehl ogr2ogr hinzugefügt . In der Dokumentation wird angegeben, dass die Topologie beibehalten wird.

-Einfache Toleranz: (ab GDAL 1.9.0) Abstandstoleranz zur Vereinfachung. Diese Methode erhält die Topologie, insbesondere für Polygongeometrien.

Anwendungsbeispiel:

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

ogr2ogr hat eine "Segmentierungs" -Option, die genau das tut, was Sie brauchen: GDAL ogr2ogr-Dokumentation

Von dieser Seite:

-segmentize max_dist: (beginnend mit GDAL 1.6.0) Maximaler Abstand zwischen 2 Knoten. Wird verwendet, um räumliche Abfragebereiche für Zwischenpunkte zu erstellen

Derek Swingley
quelle
5

Sie könnten Mapshaper versuchen . Es gibt möglicherweise einige Einschränkungen aufgrund Ihrer Dateigröße.

julien
quelle
4

GRASS v.generalisieren

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

Giovanni Manghi
quelle
Ich habe einige Tests durchgeführt und seit heute erzeugen alle hier vorgeschlagenen Methoden, die auf GEOS (ogr2ogr mit -simplify, shapely, PostGISs ST_SimplifyPreserveTopology-Funktion) basieren, topologische Anomalien (dh Löcher / Überlappungen zwischen Polygonen). Nur mit GRASS hatte ich gute Ergebnisse.
Capooti
3

Inspirieren Sie von Mapshaper, aber direkt vor Ort, unter https://github.com/migurski/Bloch

ThomasG77
quelle
Vielen Dank für Ihre Antwort. Ich denke, das Problem hier ist, was zu tun ist, wenn keine Topologie mit dem Shapefile definiert ist
NetConstructor.com