Last active
March 29, 2020 13:24
-
-
Save feromes/627f24edb0ef881a982e9a61a3c28739 to your computer and use it in GitHub Desktop.
Exercícios de UTM para disciiiplina PTR5003
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# PTR 5003 - Fundamentos de Informações Espaciais\n", | |
"\n", | |
"_Nome:_ *Fernando Gomes*\n", | |
"\n", | |
"_NUSP:_ *11863953*\n", | |
"\n", | |
"> Trabalho Prático\n", | |
"## Sistema UTM" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 5. Calcule o fator de escala k para o seguinte local: φ = -26° 46’ 57” e λ = -45° 40’ 48”." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Primeiramente temos que obter os ângulos $\\lambda$ e $\\varphi$ em decimal e armazenalos nas variáveis `lambda` e `phi`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Para o ângulo GMS -45 40 48 agora temos o ângulo decimal -45.68\n", | |
"Para o ângulo GMS -26 46 57 agora temos o ângulo decimal -26.7825\n", | |
"O fuso de referência é 23\n", | |
"O lambda de referência é -45\n" | |
] | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"from math import ceil\n", | |
"\n", | |
"lambda_gms = '-45 40 48'\n", | |
"phi_gms = '-26 46 57'\n", | |
"\n", | |
"# função de converção de GMS (Grau, Minuto, Segundo) para ângulo decimal\n", | |
"def gms_para_decimal(angulo):\n", | |
" divisor = np.asarray((1, 60, 3600))\n", | |
" gms = np.fromstring(angulo, dtype=float, sep=' ')\n", | |
" operador = gms[0] / abs(gms[0])\n", | |
" return np.sum(np.abs(gms / divisor)) * operador\n", | |
"\n", | |
"lambda_dec = gms_para_decimal(lambda_gms)\n", | |
"fuso_referencia = ceil((180 + lambda_dec + 3) / 6)\n", | |
"lambda_referencia = fuso_referencia * 6 -180 -3\n", | |
"phi_dec = gms_para_decimal(phi_gms)\n", | |
"\n", | |
"print(f\"Para o ângulo GMS {lambda_gms} agora temos o ângulo decimal {lambda_dec}\")\n", | |
"print(f\"Para o ângulo GMS {phi_gms} agora temos o ângulo decimal {phi_dec}\")\n", | |
"print(f\"O fuso de referência é {fuso_referencia}\")\n", | |
"print(f\"O lambda de referência é {lambda_referencia}\")\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Agora devevos aplicar a fórmula para determinar o `k`" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$k=\\frac{k_0}{\\sqrt{1-\\cos{\\varphi{}_m}\\sin{(\\lambda_m - \\lambda_0)}}}$$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"O fator de escala K portanto é 0.9943464242978314\n" | |
] | |
} | |
], | |
"source": [ | |
"from math import sqrt, cos, sin, radians\n", | |
"\n", | |
"k0 = 0.9996\n", | |
"\n", | |
"k = k0 / sqrt(1 - cos(radians(phi_dec)) * sin(radians(lambda_dec - lambda_referencia)))\n", | |
"\n", | |
"print(f\"O fator de escala K portanto é {k}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 8. Considerando o fator de escala calculado no item 5, pede-se calcular a distância sobre o plano UTM conhecendo-se a distância sobre o elipsíde (3579,864 m)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"A distância no plano UTM é 3559.6249678725317\n" | |
] | |
} | |
], | |
"source": [ | |
"distancia_plano_UTM = 3579.864 * k\n", | |
"print(f\"A distância no plano UTM é {distancia_plano_UTM}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 9. Considerado que agora que você está em um ponto cujas coordenadas são as seguintes: φ = +26° 46’57” e λ = +45° 40’ 48”. Pede-se calcular o fator de escala k e comparar os resultados com o item 5. Explique." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Para o ângulo GMS -45 40 48 agora temos o ângulo decimal -45.68\n", | |
"Para o ângulo GMS -26 46 57 agora temos o ângulo decimal -26.7825\n", | |
"O fuso de referência é 23\n", | |
"O lambda de referência é -45\n", | |
"O fator de escala K portanto é 0.9943464242978314\n" | |
] | |
} | |
], | |
"source": [ | |
"lambda_gms_2 = '+45 40 48'\n", | |
"phi_gms_2 = '+26 46 57'\n", | |
"\n", | |
"lambda_dec_2 = gms_para_decimal(lambda_gms_2)\n", | |
"fuso_referencia_2 = ceil((180 + lambda_dec_2 + 3) / 6)\n", | |
"lambda_referencia_2 = fuso_referencia_2 * 6 -180 -3\n", | |
"phi_dec_2 = gms_para_decimal(phi_gms_2)\n", | |
"\n", | |
"k = k0 / sqrt(1 - cos(radians(phi_dec)) * sin(radians(lambda_dec - lambda_referencia)))\n", | |
"\n", | |
"print(f\"Para o ângulo GMS {lambda_gms} agora temos o ângulo decimal {lambda_dec}\")\n", | |
"print(f\"Para o ângulo GMS {phi_gms} agora temos o ângulo decimal {phi_dec}\")\n", | |
"print(f\"O fuso de referência é {fuso_referencia}\")\n", | |
"print(f\"O lambda de referência é {lambda_referencia}\")\n", | |
"print(f\"O fator de escala K portanto é {k}\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Os resultados de K são os mesmos que do exercício 5. pois ambos pontos estão na mesma posição em relação ao referencial k0." | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment