Extrair Azimutes de Linhas em Graus - Minutos - Segundos

1,726 views
Skip to first unread message

Big_Head

unread,
Oct 19, 2012, 4:12:48 PM10/19/12
to qgisb...@googlegroups.com
Olá,

Alguém pode me auxiliar a extrair azimutes de linhas no formato graus - minutos - segundos, na tabela de atributos no QGIS?

Eu consegui extrair os azimutes das linhas, mas em graus decimais, no hora de converter para graus-minutos-segundos, eu não consegui inserir uma função que tivesse resultados...

Alguém tem uma sugestão?

Obrigado!

Rodrigo Moreira Maia

unread,
Oct 19, 2012, 6:16:18 PM10/19/12
to qgisb...@googlegroups.com

Nobre amigo Elias.. Veja bem a coordenada das linhas nao faz parte da geometria da camada.
Porem se vc criar um novo shape de ponto. Esses sim podem ser adicionados das cooddenadas pra cada ponto..

Crie o shape de pontos.
Em vetores tem uma opçao que nao lembro qual menu agora to no graal da bandeirantes perto de sp e nem tem como ver e dentro dele adicionar geometria das colunas... Lá resolve seu problema...

Rodrigo Maia
www.rmaia.com.br

Samsung Galaxy ACE Duos
Android 2.3.8

--
---
Você recebeu esta mensagem do Grupo "QGISBrasil"
Para postar neste grupo, envie um e-mail para qgisb...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail paragisbrasi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/qgisbrasil?hl=pt?hl=pt-BR

Big_Head

unread,
Oct 21, 2012, 11:39:36 AM10/21/12
to qgisb...@googlegroups.com
Caro Rodrigo,

Eu já tenho o shape de pontos dos vértices da área, com as coordenadas calculadas, já consegui também extrair os azimutes em graus decimais, conforme havia mencionado, agora pra produzir um memorial descritivo, preciso transformar esses azimutes em graus-minutos-segundos, eu costumo transformar graus decimais em graus minutos e segundos no Excel, lá consigo fácil, mas quando vou tentar montar dentro da tabela de atributos no QGIS não consegui, , não entendi como utilizar a geometria de colunas pra isso, você pode postar algum material aqui, por favor?

Obrigado!

Big_Head

unread,
Oct 26, 2012, 10:58:10 PM10/26/12
to qgisb...@googlegroups.com
Prezados,

Eu consegui calcular os azimutes das linhas em graus decimais utilizando a seguinte expressão na calculadora de campo:

(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))

O resultado sai em graus decimais, mas ainda não consegui converter pra graus-minutos-segundos, se alguém conseguir, poste aqui, por favor.

Abraço!

Rodrigo Moreira Maia

unread,
Oct 27, 2012, 12:03:42 AM10/27/12
to qgisb...@googlegroups.com

Elias converta a regua do qgis para grau ,imuto e segundo e mande adicionar a geometria de colunas...

Motorola XOOM™ Android 4.0.1

Ander

unread,
Oct 27, 2012, 8:42:17 PM10/27/12
to qgisb...@googlegroups.com
Caro,
Dá pra fazer deste modo (testado no QGis 1.8.0 Lisboa) no field calculator:

1) Crie as colunas com os nomes (verde) e tipo (azul): 
  • azimute (real), Precisão: 10 tá bom;
  • grau_int (inteiro)
  • min_int (inteiro)
  • seg (real) Precisão: 4 tá bom;
  • gms ou outro nome qualquer (texto)
2) Cálculo do Azimute com esta fórmula: (atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))

3) Cálculo do grau_intcase when (toint( "azimute") -  "azimute" > 0) Then (toint( "azimute") - 1) else toint( "azimute") end

4) Cálculo do min_int: case when (toint(("azimute"- "grau_int")*60)-("azimute"- "grau_int")*60) > 0 Then (("azimute"- "grau_int")*60)-1 else toint(("azimute"- "grau_int")*60) end 

5) Cálculo do seg:  "azimute" * 3600- "grau_int" *3600- "min_int" *60

6) Cálculo do gms ou outro nome qualquer:  "grau_int" || '° ' || "min_int" || '´ ' ||  "seg" || '"'
 
Motivo da criação das colunas: no field calculator do QGis não sei se é possível definir variáveis, tentei e não consegui. Logo, salvei nas colunas os resultados. 
A condição case when utilizado nos cálculos dos itens 3 e 4, servem pois a operação toint (extrair a parte inteira) dá um resultado não esperado. Exemplo: toint(145.5) retorna 146 e não 145 como esperado. No console python, se escrever a expressão int(145.5), retorna 145. Por isso coloquei a condição.

É trabalhoso, talvez seja mais fácil exportar numa tabela do excel e fazer os cálculos lá, do que fazer no própria QGis. 

Abraços!

--
 
Anderson Roberto da Silva
Engenheiro Cartógrafo




Sidney - Geosaber

unread,
Oct 27, 2012, 9:41:41 PM10/27/12
to qgisb...@googlegroups.com
Nesse excelente fórum internacional eles dão duas soluções para o problema:
  1. Pela Calculadora de Campo
  2. Pelo Console Python
Dê uma olhada que talvez te ajude a resolver o problema: http://gis.stackexchange.com/questions/24260/how-to-add-direction-and-distance-to-attribute-table

Sidney Goveia

Elias Alves

unread,
Oct 30, 2012, 1:27:12 PM10/30/12
to qgisb...@googlegroups.com
Grato pela ajuda Anderson, vou realizar o procedimento agora...

Elias Alves

unread,
Oct 30, 2012, 1:28:17 PM10/30/12
to qgisb...@googlegroups.com
Agradeço ajuda Sidney, eu vou checar o método da calculadora de campo, o python eu não sei nem por onde começar.

--
Reply all
Reply to author
Forward
0 new messages