Antworten:
Das Shapely- affinity
Modul unterstützt affine Transformationen für jede Geometrie, zum Beispiel:
from shapely import affinity
from shapely.geometry import LineString
# Example geometry
line = LineString([(1, 3), (1, 1), (4, 1)])
# Rotate 30 degrees CCW from origin at the center of bbox
line_rot_center = affinity.rotate(line, 30, 'center')
# Rotate from origin at (1, 1)
line_rot_11 = affinity.rotate(line, 30, (1, 1))
help(shapely.affinity)
. Eigentlich bin ich fast fertig mit der Vorbereitung des manuellen Updates für das Modul.
Sextante hat ein Tool, das funktionieren könnte. Es heißt Transformieren unter "Werkzeuge für Vektorebenen". Um den Befehl auszuführen, definieren Sie den Winkel, den Ankerpunkt, den Skalierungsfaktor und die Verschiebung. Sextante ist eine Erweiterung für gvsig, openjump, udig, andere. Es wird auch über die Befehlszeile ausgeführt.
Ich sehe keine Funktionen in Python oder Shapely, aber Sie können dies mit JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, die von Shapely verwendete Bibliothek ist ein Port ) tun von JTS aber JTS haben mehr Funktionen)
Sie können das Soft hier herunterladen http://sourceforge.net/projects/jts-topo-suite/ und testbuilder.sh oder testbuilder.bat starten, je nach Betriebssystem, um es zu entdecken. Nachdem Sie die Grundlagen verstanden haben, müssen Sie dasselbe ohne GUI tun, jedoch nur mit Java-Programmierung.
http://geoscript.org/ kann Ihnen helfen, den Klebstoff zwischen Python-Code und Java herzustellen (da eine Implementierung Jython verwendet).
Grass kann dies mit v.transform tun .
Sie können die gdal-Python-Bindungen verwenden, um affine Transformationen durchzuführen. Http://www.gdal.org/ogr/osr_tutorial.html
Da es auf proj / geos / gdal basiert, können Sie die gleichen Dinge tun wie in formschön + mehr