Estou tentando criar um retângulo girado em coordenadas lat / lon.
Basicamente, tenho as coordenadas do centro e o ângulo de rotação ao redor do centro.
É possível usar usando, bem torneado ou gdal, ou algo mais?
O affinity
módulo Shapely suporta transformações afins em qualquer geometria, por exemplo:
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)
. Na verdade, estou quase terminando de preparar a atualização manual para o módulo.O Sextante possui uma ferramenta que pode funcionar. É chamado de transformação, nas "Ferramentas para camadas vetoriais". Para executar o comando, defina o ângulo, ponto de ancoragem, fator de escala e translação. Sextante é uma extensão para gvsig, openjump, udig, outros. Também é executado a partir da linha de comando.
fonte
Não vejo nenhum recurso em Python ou Shapely para fazer isso, mas você pode fazer isso com o JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, a lib usada por Shapely é uma porta do JTS, mas o JTS tem mais funções)
Você pode baixar o software aqui http://sourceforge.net/projects/jts-topo-suite/ e iniciar o testbuilder.sh ou testbuilder.bat, dependendo do seu sistema operacional para descobrir. Depois de entender, você precisará fazer o mesmo sem a GUI, mas apenas com a programação Java.
http://geoscript.org/ pode ajudar você a criar a cola entre o código python e o java (porque uma implementação usa o Jython)
fonte
A grama pode fazer isso usando v.transform .
fonte
Você pode usar as ligações gdal python para fazer transformações afins http://www.gdal.org/ogr/osr_tutorial.html
Uma vez que é construído sobre proj / geos / gdal, você pode fazer as mesmas coisas que em formas bem torneadas + more
fonte