Proyecto: Reto datos misteriosos
Facultad de Ciencias, UNAM
Asignatura: Técnicas experimentales
Profesores:
Ana Karina Ramos Musalem
Ernesto Eduardo Gómez de la Peña
Iván Esau Arenas Ortíz
Integrantes del equipo 6:
Blas Ortega Alondra
Díaz Espinosa Kenya
Larson Rivero Lucía Kirene
Fecha de entrega: 29/ 10/ 2020
1.- Campamento base.
Analizar el archivo para encontrar los metadatos.
Nuestro archivo tiene 54 líneas de encabezado, y el valor nulo es 8989. Esto lo sabemos después de haber revisado el archivo en Excel.
Importamos pandas para leer el archivo
import pandas as pd
data = pd.read_csv('datos/archivo04.csv', header=54, na_values=8989)
Para ver el tipo de datos que tenemos usamos data.dtypes
data.dtypes
data.describe nos da un resumen de la estadística del conjunto de datos
data.describe()
Pedimos que imprima data
print(data)
Debido la gran cantidad de datos es más práctico visualizarlos por secciones. Visualisamos las primeras 10 y las últimas 10 líneas de datos con data.head y data.tail
data.head(10)
data.tail(10)
Con esta información y la encontrada en el encabezado respondemos:
a) ¿Qué información hay en el archivo a simple vista?
R:
Institución que realizó las mediciones: University of Victoria.
Ubicación del lugar en donde se midieron los datos
Profundidad: 0.0 (m).
Valores de temperatura.
Fecha y hora en la que fueron tomadas las mediciones.
Banderas, las cuales nos indican la calidad de la medición.
Periodo de mediciones: Del 2019-01-01 00:00:00.000 al 2020-01-01 00:00:00.000.
b) ¿Qué unidades de medición se reportan?
R:
Temperatura del aire en superficie: Temperatura en grados centígrados (°C).
Bandera: Es una variable estadística de tipo cualitativo ordinal.
c) ¿Estas unidades corresponden al Sistema Internacional de Unidades? Si no es así, ¿cuáles son las unidades equivalentes en el SI?
R: No, porque la unidad básica en el SI para la temperatura es el Kelvin: La fórmula para convertir grados centígrados a kelvin es °C +273.15=K. Por otro lado, la bandera es la que presenta estados y se ocupa en programación, por lo tanto, sus unidades no corresponden al SI.
2. Sumidero de la incertidumbre.
Graficar los datos
Graficamos las tres columnas de variables (Temperatura, bandera y cuenta) con respecto a la fecha a lo largo de todo el periodo de medición (2019-2020)
Importamos matplotlib para graficar
import pandas as pd
import matplotlib.pyplot as plt
data=pd.read_csv("datos/archivo04.csv",header=54,na_values=8989)
fig=plt.figure(figsize=(30,25))
ax = fig.add_subplot(3,1,1)
fechas_datetime=pd.to_datetime(data["Tiempo"])
ax.plot(fechas_datetime,data["Temperatura"],color="b",alpha=0.5, label="temperatura")
ax.set_ylabel("Temperatura(°C)")
ax.set_title("Temperatura a lo largo del año 2019")
ax.set_xlim(fechas_datetime[0], fechas_datetime[8759])
ax.legend()
fig.autofmt_xdate
En estas gráficas podemos comparar las mediciones de temperatura durante todo el año 2019. Se realizan 23 mediciones cada día, desde 0:30 am hrs hasta las 23:30, durante todo del año. En la gráfica, es visible una discontinuidad de datos, esto es porque por las condiciones no fue posible que la estación recopilara los datos de esas horas. Esto es posible de verificar con los metadatos proporcionados por las banderas. Las banderas nos indican la calidad o confiabilidad del dato, en el encabezado nos indica el significado de cada badera: "QC Flag (0-9): 0 = no QC; 1 = good; 2 = probably good, use with caution; 3 = probably bad; 4 = bad; 6 = bad down-sampling; 7 = Averaged value; 8 = Interpolated Value; 9 = Missing Value (8989)"
Ahora graficaremos los datos por tres periodos de tiempo: Los meses fríos de enero a mayo, que corresponden a la primera parte del invierno del año, los meses cálidos de junio a septiembre que son los correpondientes al "verano", y los meses fríos de octubre a diciembre, que son la segunda parte del invierno. Escogimos estos intervalos tomando en cuenta que en el punto geográfico donde se tomaron las mediciones (Canadá) en los meses de verano las temperaturas van entre los 0 ºC a 10ºC,y en los meses de invierno son menores a 0ºC hasta los -50°C.
Encontramos la fila donde termina el mes requerido dividiendo el número total de datos(obteniendo el número de datos por mes) y multiplicando este resultado por el número del mes buscado. Dado que no tenemos la certeza de que todos los meses abarquen exactamente el mismo número de datos, el resultado será un aproximado
Por último, se gráfico un día representativo de cada estación (invierno y verano). Para tratar de identificar, si existía alguna oscilación ciclíca durante el día. A partir de las gráficas, no es observable ningún ciclo, esto es probable ya que la incidencia de la luz solar en las zonas polares, en invierno no es constante o casí nula, y en verano es casí constante durante todo el día.
8760/12
Dado que el primer dato se encuentra en la fila 0, no 1, enero termina en la fila 729, y cada mes abarca 730 filas.
print('mayo termina aproximadamente en la fila', 729+(730*4))
print('septiembre termina aproximadamente en la fila', 729+(730*8))
print('diciembre termina en la fila', 729+(730*11))
Con esto podemos definir aproximadamente el inicio y fin de nuestros meses,para encontrar la frontera exacta buscamos directamente en el archivo, teniendo como referencia los valores obtenidos anteriormente para agilizar la búsqueda
print("Graficamos desde",data["Tiempo"][0],"hasta",data["Tiempo"][3623])
fig = plt.figure(figsize=(18,15))
ax = fig.add_subplot(3,1,1)
ax.plot(pd.to_datetime(data['Tiempo'][0:3623]),data['Temperatura'][0:3623], color='blue',
alpha=0.5, label='Temperatura')
ax.set_ylabel('Temperatura (°C)')
ax.set_title('Temperatura de Invierno I 2019')
ax.legend()
fig.autofmt_xdate()
Obtenemos el resumen estadístico de los primeros meses fríos
data[0:3623].describe()
print("Graficamos desde",data["Tiempo"][3624],"hasta",data["Tiempo"][6551])
fig = plt.figure(figsize=(18,15))
ax = fig.add_subplot(3,1,1)
ax.plot(pd.to_datetime(data['Tiempo'][3624:6551]),data['Temperatura'][3624:6551], color='orange',
alpha=0.5, label='Temperatura')
ax.set_ylabel('Temperatura (°C)')
ax.set_title('Temperatura de Verano 2019')
ax.legend()
fig.autofmt_xdate()
Obtenemos el resumen estadístico de los meses cálidos
data[3624:6551].describe()
print("Graficamos desde",data["Tiempo"][6552],"hasta",data["Tiempo"][8759])
fig = plt.figure(figsize=(18,15))
ax = fig.add_subplot(3,1,1)
ax.plot(pd.to_datetime(data['Tiempo'][6552:8759]),data['Temperatura'][6552:8759], color='blue',
alpha=0.5, label='Temperatura')
ax.set_ylabel('Temperatura (°C)')
ax.set_title('Temperatura de Invierno II 2019')
ax.legend()
fig.autofmt_xdate()
Obtenemos el resumen estadístico de los últimos meses fríos
data[6552:8759].describe()
Para observar aún más a detalle los datos, graficaremos los datos de 24 horas de un día en los meses cálidos, y de un día en los meses fríos, y obtendremos sus respectivos resúmenes estadísticos.
print("Graficamos desde",data["Tiempo"][0],"hasta",data["Tiempo"][23])
fig = plt.figure(figsize=(18,15))
ax = fig.add_subplot(3,1,1)
ax.plot(pd.to_datetime(data['Tiempo'][0:23]),data['Temperatura'][0:23], color='violet',
alpha=0.5, label='Temperatura')
ax.set_ylabel('Temperatura (°C)')
ax.set_title('Temperatura en 24 hrs Invierno (enero)')
ax.legend()
fig.autofmt_xdate()
data[0:23].describe()
print("Graficamos desde",data["Tiempo"][4344],"hasta",data["Tiempo"][4367])
fig = plt.figure(figsize=(18,15))
ax = fig.add_subplot(3,1,1)
ax.plot(pd.to_datetime(data['Tiempo'][4344:4367]),data['Temperatura'][4344:4367], color='y',
alpha=0.5, label='Temperatura')
ax.set_ylabel('Temperatura (°C)')
ax.set_title('Temperatura en 24 hrs Verano (julio)')
ax.legend()
fig.autofmt_xdate()
data[4344:4367].describe()
¿La variable dependiente es directamente proporcional al tiempo transcurrido, inversamente proporcional, o ninguna? ¿Observan algún ciclo? R: La variable no es directamente proporcional, ni inversamente proporcional al tiempo. Los datos corresponden al ciclo de las estaciones del año para un clima subpolar o siberiano en la clasificación de Köppen, el cual se genera en las latitudes de 50° a 70°. Se caracteriza por invierno largos, “veranos” cortos frescos o fríos, y nieve presente durante gran parte del año (Gabler, Petersen & Trapasso, 2007) Las temperaturas representadas, van de -40ºC a 0ºC de enero a mayo, toman valores de 0ºC a 10ºC de junio a septiembre, y vuelven a bajar de 0ºC a -40ºC de octubre a diciembre. El máximo valor es 17.698325ºC, y se alcanza en el mes de junio, mientras que el mínimo es -40.496792ºC y se alcanza en enero.
A partir de los metadatos, ¿pueden saber el lugar en donde se realizaron las mediciones? ¿Cuánto tiempo abarcan? R: Sí, las medidas se realizaron en las siguientes coordenadas: 69° 8'57.30"N y 105°55' 50.10"O, tal ubicación se encuentra en Canadá, cerca del Estrecho de Victoria. Las mediciones mostradas, son durante todo el año 2019, y cada día se generaron 23 mediciones (desde 00:30 am hasta las 23:30 pm).
¿Pueden pensar en algún fenómeno físico que se explique a partir de estos datos? R: La medición de los datos, representan las características climatológicas y meteorológicas de la zona. También, este tipo de mediciones de la oscilación de la temperatura del aire durante años, son utilizados como registro, para evaluar el cambio climático, y de igual forma como evidencia del calentamiento global.
¿Con qué instrumentos fueron realizadas estas mediciones? ¿Cómo funciona este aparato? R: Las mediciones fueron realizadas con Lufft WS501.Este es un sensor meteorológico compacto que mide temperatura del aire, humedad relativa, dirección y velocidad del viento y radiación. La tecnología que usa para efectuar las mediciones, son las siguientes: Ultrasónico / Viento, NTC / T, Capacitivo / RH, MEMS capacitivo / Presión, Kipp & Zonen Piranómetro / Radiación. Un sensor meteorológico, atendiendo a la definición de la Agencia Estatal de Meteorología (AEMET) (1), es un «dispositivo diseñado para recibir información de una magnitud meteorológica y transformarla en otra, en muchos casos eléctrica, que se pueda cuantificar y procesar» para facilitar su comprensión.
-Gabler, R., Petersen, J. y Trapasso, L. (2007). Fundamentos de la geografía física . Belmont, CA: Thomson Brooks / Cole.
-WS501-UMB Smart Weather Sensor. (s. f.). Lufft. Recuperado 29 de octubre de 2020, de https://www.lufft.com/products/compact-weather-sensors-293/ws501-umb-smart-weather-sensor-1839/
-Cambridge Bay Community Observatory Backgrounder (2012). En Ocean Networks Canada. Recuperado de https://www.oceannetworks.ca/cambridge-bay-community-observatory-backgrounder (octubre, 2020).
-Enviraiot. Qué son y para qué sirven los sensores meteorológicos. Recuperado 29 de octubre del 2020, de https://enviraiot.es/que-son-sensores-meteorologicos/#:~:text=Un%20sensor%20meteorol%C3%B3gico%2C%20atendiendo%20a,procesar%C2%BB%20para%20facilitar%20su%20comprensi%C3%B3n.