Answers:
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)
。实际上,我几乎准备完成该模块的手动更新。
我没有看到Python或Shapely的任何功能,但是您可以使用JTS(Java拓扑套件)实现此功能http://tsusiatsoftware.net/jts/main.html(GEOS,Shapely使用的lib是端口JTS,但JTS具有更多功能)
您可以在此处下载软件http://sourceforge.net/projects/jts-topo-suite/并根据您的操作系统启动testbuilder.sh或testbuilder.bat进行发现。了解了这些基本知识之后,您将不得不在没有GUI的情况下执行相同的操作,而仅使用Java编程。
http://geoscript.org/可能会帮助您在python代码和java之间进行融合(因为一个实现使用Jython)
Grass可以使用v.transform做到这一点。
您可以使用gdal python绑定进行仿射转换http://www.gdal.org/ogr/osr_tutorial.html
由于它是基于proj / geos / gdal构建的,因此您可以执行与shape +更多相同的操作