Відповіді:
affinity
Модуль Shapely підтримує афінні перетворення на будь-якій геометрії, наприклад:
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, ви можете робити ті ж речі, що і у стройних + більше