Risposte:
Il affinity
modulo di Shapely supporta trasformazioni affine su qualsiasi geometria, ad esempio:
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)
. In realtà ho quasi finito di preparare l'aggiornamento manuale per il modulo.
Sextante ha uno strumento che potrebbe funzionare. Si chiama Transform, sotto "Strumenti per livelli Vector". Per eseguire il comando, definire l'angolo, il punto di ancoraggio, il fattore di scala e la traslazione. Sextante è un'estensione di gvsig, openjump, udig, altri. Funziona anche dalla riga di comando.
Non vedo alcuna funzionalità in Python o Shapely per farlo, ma puoi farlo con JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, la lib usata da Shapely è una porta di JTS ma JTS ha più funzioni)
Puoi scaricare il software qui http://sourceforge.net/projects/jts-topo-suite/ e avviare testbuilder.sh o testbuilder.bat a seconda del tuo sistema operativo da giocare per la scoperta. Dopo aver capito, le basi dovrete fare lo stesso senza la GUI ma solo con la programmazione Java.
http://geoscript.org/ può aiutarti a creare la colla tra codice Python e Java (perché un'implementazione utilizza Jython)
L'erba può farlo usando v.transform .
Puoi usare le associazioni gdal python per eseguire trasformazioni affini http://www.gdal.org/ogr/osr_tutorial.html
Dal momento che è costruito su proj / geos / gdal puoi fare le stesse cose di shapely + more