Last active
November 4, 2020 18:03
-
-
Save treborlp/7e1c084b1b9221bf706b68ea7e8c5b6e to your computer and use it in GitHub Desktop.
MetData.ipynb
This file contains hidden or 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
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "MetData.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/treborlp/7e1c084b1b9221bf706b68ea7e8c5b6e/metdata.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ejuiO0N0Gn7E" | |
}, | |
"source": [ | |
"\n", | |
"# Recuperación y preparación de datos meteorológicos\n", | |
"**1. Fenómenos meteorológicos**\n", | |
"\n", | |
"> Una gran cantidad de fenómenos existentes en la naturaleza están asociados al cambio en las características de indicadores meteorológicos, como la condición del cielo, la temperatura del aire, la presión atmosférica o la humedad relativa. Por ejemplo, una tormenta tropical puede describirse por estos datos (en parte), midiendo la humedad, temperatura, velocidad del viento, precipitación, etc. En este laboratorio práctico, aprenderemos a recuperar datos meteorológicos a partir de la página web del NOAA, la cual se encarga del monitoreo de estaciones meteorológicas en todo el mundo. Una vez identificado el repositorio de datos y aquellos que necesitaremos, utilizaremos Python y algunas de sus librerías básicas para almacenarlos en una estructura que nos permita una rápida manipulación.\n", | |
"NOTA: Podemos utilizar Jupyter Notebook (https://jupyter.org) cualquier otro editor de Python.\n", | |
"\n", | |
"\n", | |
"\n", | |
" \n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "FaqU6XRLYtiY" | |
}, | |
"source": [ | |
"**2. NOAA.GOV**\n", | |
"\n", | |
"\n", | |
"> La Administración Nacional Oceánica y Atmosférica (National Oceanic and Atmospheric Administration, NOAA) es una agencia científica del Departamento de Comercio de los Estados Unidos cuyas actividades se centran en las condiciones de los océanos y la atmosfera. NOAA avisa del tiempo meteorológico, prepara cartas de mares y de cielos, guía sobre el uso y la protección de los recursos oceánicos y costeros, y conduce estudios para mejorar el entendimiento y la administración del ambiente.1 Con respecto al Perú, NOAA posee información de 32 estaciones de monitoreo de datos meteorológicos. Cada una de las estaciones tiene su propia frecuencia de recolección que varía entre cada 3 horas hasta 12 horas al día. La información de las 23 estaciones (nombres, ubicación geográfica, etc.) no es importante por el momento. En este trabajo práctico, utilizaremos la página del NOAA para descargar datos. Para ello, visitamos la página siguiente: https://www7.ncdc.noaa.gov/CDO/dataproduct. \n", | |
"\n", | |
"> NOTA: la plataforma del NOAA está cambiando. Si este cambio ya fue efectuado, utilice la nueva plataforma para descargar los datos. En la página de acceso a los datos del NOAA, tenemos 4 opciones, de las cuales, la tercera es la opción que nos permite descargar datos utilizando como parámetros los atributos (paso 1, Figura 1B), la ciudad (paso 2, Figura 1B), las fechas requeridas (paso 3, Figura 1B) y eventualmente la estación (o estaciones) que necesitamos explorar. Una vez terminadas estas 4 etapas, aparecer ‘a un botón que nos permitirá descargar el archivo en formato CSV (paso 4, Figura 1B). Este documento puede abrir en cualquier editor de texto (ver Figura 2). En este trabajo práctico, utilizaremos el archivo generado por el NOAA y lo recuperaremos en Python para darle un formato adecuado y podamos realizar algunas tareas básicas con ellos.\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "VxDI-RoGaKzs" | |
}, | |
"source": [ | |
"**3. Primeros pasos en Python**\n", | |
"\n", | |
"\n", | |
"> Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional2. Python es un lenguaje de programación basado en scripts, el cual es competencia directa de Perl. El hecho de que Python sea open source, permite la existencia de muchos desarrolladores de librerías y soporte para el mismo Python. Nosotros utilizaremos 3 librerías básicas: Pandas, Matplotlib y Pylab, y se llaman utilizando la palabra reservada import.\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PBryVub5GUx7" | |
}, | |
"source": [ | |
"# -*- coding: utf-8 -*-\n", | |
"import pandas as pd\n", | |
"import matplotlib.pyplot as plt\n", | |
"import pylab" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "M5eI5aCyafwT" | |
}, | |
"source": [ | |
"\n", | |
"\n", | |
"> Luego, creamos una variable y la llamaremos data (puede llamarla como desee) y el valor de la variable sería el archivo que ha generado el NOAA y que contiene nuestros datos. La idea es capturar la información con Python, después de que el archivo sea descargado. NOTA: no se olvide de copiar el archivo de datos en la misma carpeta en la que está guardando el código Python.\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "pM8dZz9KHmSA" | |
}, | |
"source": [ | |
"# Create variable\n", | |
"data = 'data_noaa.csv'" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "gPt3xLPQa5ti" | |
}, | |
"source": [ | |
"\n", | |
"\n", | |
"> No se olvide que **data_noaa.csv** es el nombre del documento generado por el NOAA. Este nombre cambia de acuerdo a la solicitud realizada en los pasos previos (ver Figura 1). Si se genera un error al interpretar Python, cerciorarse que el archivo .csv llamado existe realmente. Además, si no pudo descargar el archivo de la página del NOAA, puede usar el archivo data.csv el cual se adjunta a este TP. Posteriormente, creamos un dataframe en Pandas y volcamos la información de la variable data en dicha estructura, utilizando como separador de atributos la coma (,), y como separador de decimales el punto (.).\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "_GKf_8s8HzPj" | |
}, | |
"source": [ | |
"# Read URL and create a dataframe in pandas\n", | |
"df = pd.read_csv(data, sep=\",\", decimal=\".\", engine='python')" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "I4Gw52BxbNkI" | |
}, | |
"source": [ | |
"\n", | |
"\n", | |
"> Finalmente, mostraremos lo que nuestro dataframe contiene. Para ello, utilizamos la sentencia print.\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "EJPrnkEEH6ER" | |
}, | |
"source": [ | |
"# Show dataframe content\n", | |
"print(df)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "P4yHi9i7IBep" | |
}, | |
"source": [ | |
"# Name of columns without spaces and in lower case\n", | |
"df.columns = map(str.strip, df.columns)\n", | |
"df.columns = map(str.lower, df.columns)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment