Odpowiedzi:
affinity
Moduł Shapely obsługuje transformacje afiniczne w dowolnej geometrii, na przykład:
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)
. Właściwie już prawie skończyłem przygotowywać ręczną aktualizację modułu.
Sextante ma narzędzie, które może działać. Nazywa się „Przekształć” w „Narzędziach warstw wektorowych”. Aby uruchomić polecenie, zdefiniuj kąt, punkt kontrolny, współczynnik skali i translację. Sextante to rozszerzenie gvsig, openjump, udig, innych. Działa również z wiersza polecenia.
Nie widzę żadnych funkcji w Pythonie ani Shapely, aby to zrobić, ale możesz to zrobić za pomocą JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, biblioteka używana przez Shapely jest portem JTS, ale JTS ma więcej funkcji)
Możesz pobrać program tutaj http://sourceforge.net/projects/jts-topo-suite/ i uruchomić testbuilder.sh lub testbuilder.bat w zależności od systemu operacyjnego, aby zagrać w jego odkrycie. Po zrozumieniu podstaw musisz zrobić to samo bez GUI, ale tylko z programowaniem w Javie.
http://geoscript.org/ może pomóc ci zrobić klej pomiędzy kodem Pythona a java (ponieważ jedna implementacja używa Jython)
Trawa może to zrobić za pomocą v.transform .
Możesz użyć powiązań gdal python do transformacji afinicznych http://www.gdal.org/ogr/osr_tutorial.html
Ponieważ jest zbudowany na bazie proj / geos / gdal, możesz robić te same rzeczy, co w foremnym + więcej