Você está aqui: Python ::: Topografia e Geoprocessamento ::: Passos Iniciais |
Como converter Rumo em Azimute em Python - Python para Topografia e Engenharia CivilQuantidade de visualizações: 606 vezes |
É muito comum, nos códigos que estamos escrevendo para cálculos de Topografia e Engenharia Civil, termos que lidar com conversões de Rumo para Azimute e vice-versa. A palavra azimute, de origem árabe, significa "as direções", e é sempre determinado no sentido horário. Muito utilizado na Topografia, em levantamentos topográficos, o azimute é o ângulo entre o norte magnético, e um ponto levantado, ou entre o norte e um lado de um determinado polígono. Seu valor varia de 0º a 360º. Não esqueça, sempre partindo do norte. O Rumo, por sua vez, é o menor ângulo formado pelo alinhamento norte sul e a direção considerada. Seu valor varia de 0º a 90º e é obtido a partir do norte ou do sul por leste e oeste. Como o rumo expressa o ângulo sempre em função do quadrante em que ele se encontra, temos que acrescentar as siglas NE, SE, SW, NW. A primeira letra indica a origem a partir da qual a contagem é realizada e a segunda letra indica a direção do giro ou quadrante. Dessa forma, valores em rumo quase sempre vêm descritos como graus, minutos e segundos, variando de 0º a 90º e precedidos ou antecedidos pelas siglas discutidas acima. Veja na figura a seguir uma exemplicação de azimute e rumo: ![]() Veja agora o código Python completo que pede para o usuário informar a direção em rumo e mostra a direção correspondente em azimute: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos pedir para o usuário informar o valor do rumo rumo = float(input("Informe o valor do rumo: ")) # agora vamos pedir a sigla sigla = input("Informe a sigla [NE, SE, SW, NW]: ") # agora vamos converter rumo em azimute azimute = 0; if sigla == "NE": # estamos no primeiro quadrante: 0º a 90º azimute = rumo elif sigla == "SE": # estamos no segundo quadrante: 90º1' a 180º azimute = 180 - rumo elif sigla == "SW": # estamos no terceiro quadrante: 180º1' a 270º azimute = 180 + rumo elif sigla == "NW": # estamos no quarto quadrante: 270º1' a 360º azimute = 360 - rumo; # mostramos o resultado print("O azimute para o rumo informado é: {0}".format(azimute)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o valor do rumo: 35 Informe a sigla [NE, SE, SW, NW]: SE O azimute para o rumo informado é: 145.0 Note que o nosso código Python está considerando apenas os graus, ou seja, não incluímos os minutos e segundos. Em outras dicas do site eu mostro como converter graus, minutos e segundos em graus decimais antes de efetuar os cálculos. |
![]() |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como gerar vetores e matrizes com números inteiros aleatórios usando a função random.randint() da biblioteca NumPy para - Machine Learning com PythonQuantidade de visualizações: 822 vezes |
Veremos nessa dica como podemos usar o método random.randint() da biblioteca NumPy para gerar vetores e matrizes já preenchidos com números inteiros aleatórios. Note que a criação de vetores e matrizes preenchidos com números randômicos é uma parte importante para o desenvolvimento de modelos de teste (test models) em Inteligência Artificial (IA), Machine Learning e outras áreas de estudo que envolvem Data Science. Vamos começar com a forma mais simples do uso da função random.randint() para gerar um vetor de 10 elementos contendo números aleatórios de 0 até 10 (não incluído): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 0 (incluído) à 10 (não incluído) valores = random.randint(10, size=10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Ao executar este código teremos um resultado parecido com: O vetor gerado foi: [0 3 2 3 8 9 3 9 6 4] Aqui nós informamos o limite alto do valor aleatório a ser gerado (mas ele não é incluído). Se quisermos limitar a faixa inferior, podemos tirar proveito dos parâmetros low e high da função randint(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos o módulo random da bibliteca NumPy from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 50 (incluído) à 101 (não incluído) valores = random.randint(50, 101, 10) print("O vetor gerado foi: ", valores) if __name__== "__main__": main() Agora o resultado será parecido com: O vetor gerado foi: [92 89 66 52 61 77 55 58 72 55] Para gerarmos uma matriz, por exemplo, de 2 linhas e 4 colunas, só precisamos gerar o vetor de números aleatórios e em seguida usar o método reshape(), também da biblioteca NumPy para converter a matriz de uma dimensão (vetor) em uma matriz de duas dimensões. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- from numpy import random def main(): # vamos gerar um vetor de números inteiros aleatórios # de 1 (incluído) à 21 (não incluído) valores = random.randint(1, 21, 8) # agora vamos converter o vetor para uma matriz # de 2 linhas e 4 colunas valores = valores.reshape(2, 4) print("A matriz gerada foi: ", valores) if __name__== "__main__": main() Quando executamos este código nós temos um resultado parecido com: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- A matriz gerada foi: [[17 5 2 9] [14 10 10 19]] A partir da versão 1.19 da NumPy, os desenvolvedores da biblioteca recomendam o uso do método integers() do módulo default_rng(). |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular os esforços solicitantes majorados em pilares usando Python - Python para Engenharia CivilQuantidade de visualizações: 242 vezes |
![]() Quando estamos dimensionando pilares em concreto armado em geral, a primeira coisa que devemos fazer é calcular os esforços solicitantes, ou seja, as cargas que estão chegando ao pilar. No caso dos pilares intermediários, ou seja, pilares que residem fora dos cantos e extremidades da estrutura e que, por isso, recebem a carga em seu centro geométrico, considera-se a compressão centrada. Dessa forma, chamamos de Nk o somatório de todas as cargas verticais atuantes na estrutura e podemos desprezar as excentricidades de 1ª ordem. De acordo com a NBR 6118 (ABNT, 2014), para a situação de projeto, essa força normal Nk deve ser majorada pelos coeficientes γn e γf, resultando em uma força normal de projeto chamada Nd. O coeficiente γn deve majorar os esforços solicitantes finais de cálculo de acordo com a menor dimensão do pilar. A norma diz que a menor dimensão que um pilar pode ter é 19cm, mas, em alguns casos, podemos ter a menor dimensão de até 14cm, precisando, para isso, majorar os esforços solicitantes. Nos comentários do código Python eu mostro como esse cálculo é feito, de acordo com a NBR 6118 (ABNT, 2014), é claro. O coeficiente γf, na maioria dos casos, possui o valor 1,4 e entra no cálculo para converter a força normal Nk em força normal de projeto Nd. A fórmula para o cálculo dos esforços solicitantes majorados em pilares intermediários é: \[ Nd = \gamma n \cdot \gamma f \cdot Nk \] Onde: γn majora os esforços de acordo com a menor dimensão do pilar de acordo com a NBR 6118 (ABNT, 2014). γf em geral possui o valor 1.4 para majorar os esforços em estruturas de concreto armado. Nk é a força normal característica aplicada ao pilar, em kN. Nd é a força normal de projeto, em kN. Vamos então ao código Python, que solicitará ao usuário os valores de suas dimensões hx e hy (em centímetros) e a carga, ou seja, a força normal característica chegando no pilar em kN e vamos mostrar a força normal de projeto Nd: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # vamos pedir as dimensões do pilar hx = float(input("Informe a dimensão do pilar na direção x (em cm): ")) hy = float(input("Informe a dimensão do pilar na direção y (em cm): ")) # vamos pedir a carga total no pilar em kN Nk = float(input("Informe a carga total no pilar (em kN): ")) # vamos obter o menor lado do pilar (menor dimensão da seção transversal) if (hx < hy): b = hx else: b = hy # agora vamos calcular a área do pilar em centímetros quadrados area = hx * hy # a área está de acordo com a norma NBR 6118 (ABNT, 2014) if (area < 360): print("A área do pilar não pode ser inferior a 360cm2") return # vamos calcular a força normal de projeto Nd yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1 yf = 1.4 # regra geral para concreto armado Nd = yn * yf * Nk # e mostramos os resultados print("\nA área do pilar é: {0} cm2".format(round(area, 2))) print("A menor dimensão do pilar é: {0} cm".format(round(b, 2))) print("O valor do coeficiente yn é: {0}".format(round(yn, 2))) print("A força normal de projeto Nd é: {0} kN".format(round(Nd, 2))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 A área do pilar é: 760.0 cm2 A menor dimensão do pilar é: 19.0 cm O valor do coeficiente yn é: 1.0 A força normal de projeto Nd é: 1177.89 kN |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Como calcular o peso de uma pessoa na Lua usando PythonQuantidade de visualizações: 629 vezes |
Pergunta/Tarefa: Escreva um programa Python que leia o peso de uma pessoa na Terra e retorne o seu peso na Lua. Lembre-se da seguinte fórmula: \[\text{Peso na Lua} = \frac{\text{Peso na Terra}}{9,81} \times 1,622 \] Aqui nós estamos definindo a força da gravidade na Terra como 9,81 m/s2 e a força da gravidade na Lua como 1,622 m/s2. Se você quiser calcular o peso de uma pessoa em Marte, por exemplo, basta trocar a força da gravidade na Lua pela força da gravidade em Marte. Sua saída deverá ser parecida com: Peso na terra (kg): 70 O peso da pessoa na Lua é: 11.57 kg Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos ler o peso da pessoa na Terra peso_terra = float(input("Peso na terra (kg): ")) # vamos calcular o peso da pessoa na Lua peso_lua = (peso_terra / 9.81) * 1.622 # arredonda para duas casas decimais peso_lua = round(peso_lua, 2) # vamos mostrar o resultado print("O peso da pessoa na Lua é: {0} kg".format(peso_lua)) if __name__== "__main__": main() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript C# - Como remover um elemento em uma determinada posição de uma List<T> do C# usando a função RemoveAt() |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |