Ответы:
Shapely в affinity
модуль поддерживает аффинные преобразования по любой геометрии, например:
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)
. На самом деле я почти закончил подготовку обновления модуля вручную.
Sextante имеет инструмент, который может работать. Он называется «Преобразование» в разделе «Инструменты для векторных слоев». Чтобы запустить команду, определите угол, опорную точку, масштабный коэффициент и перевод. Sextante - это расширение для gvsig, openjump, udig и других. Он также запускается из командной строки.
Я не вижу никаких возможностей в Python или Shapely, чтобы сделать это, но вы можете сделать это с помощью JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, библиотека, используемая Shapely, является портом у JTS но у JTS больше функций)
Вы можете скачать программное обеспечение здесь http://sourceforge.net/projects/jts-topo-suite/ и запустить testbuilder.sh или testbuilder.bat в зависимости от вашей ОС, чтобы поиграть для обнаружения. После того, как вы поняли основы, вам придется делать то же самое без графического интерфейса, но только с программированием на Java.
http://geoscript.org/ может помочь вам сделать клей между кодом Python и Java (потому что одна реализация использует Jython)
Трава может сделать это с помощью v.transform .
Вы можете использовать привязки gdal python для аффинных преобразований http://www.gdal.org/ogr/osr_tutorial.html
Так как он построен поверх proj / geos / gdal, вы можете делать то же самое, что и в shapely + more