[R-br] Rotação de matrizes com coordenadas geográficas em UTM

Hélio Gallo Rocha heliogallorocha em gmail.com
Segunda Abril 8 19:25:39 BRT 2013


Alexandre,


Andei olhando o seu CRM sobre rotação.

Tava achando que era a sua matriz de multiplicação, mas não é..
fiz tres mudanças, veja se é isso

1. Ao invés de usar as coordenadas UTM, que não davam certo, coloquei
inicial (0,0)
2. ao invés de usar ang=60, usei ang=pi/3
3. Depois somei o resultado com as coordenadas iniciais em UTM,


é uma "gambiarra", pode ser , mas parece que deu certo

p0<-c(0,0)
plot(p0[1],p0[2], col="red")

c0 <- seq(p0[1],p0[1]+400,by=100)### Criando o grid
d0 <- seq(p0[2],p0[2]+500,by=100)
d1 <- expand.grid(x=c0, y=d0)

plot(d1[,1],d1[,2])
d2<-as.matrix(d1)
plot(d2[,1],d2[,2])
ang<- (pi/3) #### Angulo a ser rotacionado
Q<-rbind(c(cos(ang),sin(ang)),c(-sin(ang), cos(ang)))  ## Matriz de rotação
Q
drt<-d2 %*% Q  # Multiplicação de matrizes
plot(drt[,1],drt[,2], col="red")
 x1=  drt[,1]+524237
 x2=  drt[,2]+ 7978856
 d3=cbind(x1,x2)
 d3=as.matrix(d3)
 d3
 plot(d3, col="red")


Hélio


Em 3 de abril de 2013 20:35, ASANTOS [via R-br] <
ml-node+s2285057n4658838h46 em n4.nabble.com> escreveu:

> Prof. Paulo,
>
>         Muito obrigado, mas desisti de rotacionar a área da base apesar de
> necessário, minhas áreas ou seja talhões são irregulares e a criação de um
> expand.grid() com posterior over() para criar uma máscara de pontos que
> estão contidos no interior da área não aproveitam muito bem a área
> disponível. Por ora, vou me rebaixar a ter que jogar o grid no autocad e
> rotacionar, mas futuramente pretendo achar uma solução para isto,
>
> Redobrados agradecimentos,
>
> Alexandre
>
>
> Em 03/04/2013 16:15, Paulo Justiniano escreveu:
>
> Alexandre
>
> Então o correto não é que voce nao consegue plotar, e sium não consegue
> sobrepor a um outro mapa.
>
> de fato a rotação vai criar novas coordenadas que nao tem a mesma projeção
> para ser superposta no mapa original
>
> No caso entao sugiro voce criar um grid retangular e depois deslocar as
> coordanadas X ou Y de acordo com algum angulo desejado
> por uma simples operacao trigonometrica.
> a grade pode depois ser "recortada" para retar apenas os pontos na área.
>
> note que gráficos como image() persp() contour() nao poderao ser feitos
> com esta grade.
> Outra possibilidade é rotacionar a area de base
>
> Ao final disto talvez velha a pena pensar se voce de fato precisa fazer
> tal rotacao...
>
>
>
> On Tue, 2 Apr 2013, ASANTOS wrote:
>
> Obrigado Prof. Paulo,
>
>          Mas estar fora de escala é justamente meu problema, quando tento
> plotar estes pontos sobre um shapefile, quando uso o grid
> regular (plot(d1[,1],d1[,2]) ) os pontos aparecem na minha imagem, porém
> quando uso o grid rotacionado (points(drt[,1],drt[,2],
> col="red")), não aparece, pois não tenho coordenadas UTM negativas e um
> Mod() não resolve o problema,
>
> Obrigado,
>
>
> Alexandre
>
>
> Em 02/04/2013 06:58, Paulo Justiniano escreveu:
>       No seu ultimo comando voce adicionou pontos ao grafico anterior com
> points() entretanto os pontos estao fora da escala do
>       gráfico e nao aparecem
>
>       nba umtima linha simplesmente troque points() por plot()
>
>       On Tue, 2 Apr 2013, ASANTOS wrote:
>
>             Bom dia pessoal,
>
>                      Estou cá de volta com o problema de rotacionar
> matrizes para rotacionar um grid criado com
>             expand.grid(), o exemplo numérico que havia postado na lista
> esta OK, porém agora quando emprego coordenadas
>             geográficas em UTM não estou conseguindo plotar, pois os
> valores no eixo x estão estranhos e o eixo y esta
>             negativo, alguém saberia me dar alguma sugestão, segue CRM
> abaixo, obrigado
>
>             #
>             p0<-c(524237,7978856)### Primeiro ponto (Coordenada geográfica
> conhecida em UTM)
>             points(p0[1],p0[2], col="red")
>             #
>             #
>             c0 <- seq(p0[1],p0[1]+400,by=100)### Criando o grid
>             d0 <- seq(p0[2],p0[2]+500,by=100)
>             d1 <- expand.grid(x=c0, y=d0)
>             plot(d1[,1],d1[,2])
>             #
>             d2<-as.matrix(d1)
>             ang<- 60 #### Angulo a ser rotacionado
>             Q<-rbind(c(cos(ang),sin(ang)),c(-sin(ang), cos(ang))) ##
> Matriz de rotação
>             drt<-d2 %*% Q  # Multiplicação de matrizes
>             points(drt[,1],drt[,2], col="red")
>             #
>
>             --
>
> ======================================================================
>             Alexandre dos Santos
>             Proteção Florestal
>             Coordenador do curso Técnico em Florestas
>             Vice Coordenador do curso de Engenharia Florestal
>             IFMT - Instituto Federal de Educação, Ciência e Tecnologia de
> Mato Grosso
>             Campus Cáceres
>             Caixa Postal 244
>             Avenida dos Ramires, s/n
>             Bairro: Distrito Industrial
>             Cáceres - MT                      CEP: 78.200-000
>             Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
>             [hidden email]<http://user/SendEmail.jtp?type=node&node=4658838&i=0>
>                    [hidden email]<http://user/SendEmail.jtp?type=node&node=4658838&i=1>
>
> ======================================================================
>
>             _______________________________________________
>             R-br mailing list
>             [hidden email]<http://user/SendEmail.jtp?type=node&node=4658838&i=2>
>             https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>             Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
> forneça código mínimo reproduzível.
>
>
>
> _______________________________________________
> R-br mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=3>
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> Coordenador do curso Técnico em Florestas
> Vice Coordenador do curso de Engenharia Florestal IFMT - Instituto Federal
> de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial Cáceres - MT                      CEP:
> 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=4>
>         [hidden email]<http://user/SendEmail.jtp?type=node&node=4658838&i=5>======================================================================
>
>
>
>
> _______________________________________________
> R-br mailing list[hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=6>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> Coordenador do curso Técnico em Florestas
> Vice Coordenador do curso de Engenharia Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=7>
>         [hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=8>
> ======================================================================
>
>
> _______________________________________________
> R-br mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=4658838&i=9>
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://r-br.2285057.n4.nabble.com/R-br-Rotacao-de-matrizes-com-coordenadas-geograficas-em-UTM-tp4658805p4658838.html
>  To unsubscribe from R-br, click here<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=aGVsaW9nYWxsb3JvY2hhQGdtYWlsLmNvbXwzMzU3OTgyfC0xMzQ3NTkwMDY4>
> .
> NAML<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>



-- 
Hélio Gallo Rocha
IFSULDEMINAS - Câmpus Muzambinho
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130408/a4bff33f/attachment.html>


Mais detalhes sobre a lista de discussão R-br