este problema se puede abordar de variadas formas, sin embargo te compartimos la respuesta más completa en nuestra opinión.
Solución:
Me encontré haciéndome la misma pregunta y compartiré mi experiencia con los futuros Googlers.
Fuentes de datos
Quería datos sin procesar, y muchos de ellos… una API no funcionaría. Necesitaba ir directamente a la fuente. La mejor fuente para todos esos datos parecía ser los servidores NCEP o NCDC NOMADS:
http://nomads.ncdc.noaa.gov/dods/ <- bueno para datos históricos
http://nomads.ncep.noaa.gov/dods/ <- bueno para datos recientes
(Nota: un comentarista indicó que ahora debe usar https en lugar de http. Todavía no lo he probado, pero si tiene problemas, ¡pruébelo!)
Para dar una idea de la cantidad de datos, ¡sus datos se remontan a 1979! Si está buscando Canadá y EE. UU., el conjunto de datos de reanálisis regional de América del Norte es probablemente su mejor respuesta.
usando los datos
Soy un gran usuario de python, y pydap o NetCDF parecían buenas herramientas para usar. Sin ninguna razón en particular, comencé a jugar con pydap.
Para dar un ejemplo de cómo obtener todos los datos de temperatura para una ubicación en particular del sitio web de nómadas, intente lo siguiente en python:
from pydap.client import open_url
# setup the connection
url = 'http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/narr-a_221_197901dd_hh00_000'
modelconn = open_url(url)
tmp2m = modelconn['tmp2m']
# grab the data
lat_index = 200 # you could tie this to tmp2m.lat[:]
lon_index = 200 # you could tie this to tmp2m.lon[:]
print tmp2m.array[:,lat_index,lon_index]
¡El fragmento anterior le proporcionará una serie temporal (cada tres horas) de datos para todo el mes de enero de 1979! Si necesita varias ubicaciones o todos los meses, el código anterior se modificaría fácilmente para adaptarse.
A los superdatos… ¡y más allá!
No estaba feliz de detenerme allí. Quería estos datos en una base de datos SQL para poder dividirlos fácilmente. Una excelente opción para hacer todo esto es el módulo de pronóstico de Python.
Divulgación: armé el código detrás del módulo. Todo el código es de código abierto: puede modificarlo para satisfacer mejor sus necesidades (¿quizás está pronosticando para Marte?) o extraer pequeños fragmentos para su proyecto.
Mi objetivo era poder obtener el último pronóstico del modelo Rapid Refresh (su mejor opción si desea información precisa sobre el clima actual):
from forecasting import Model
rap = Model('rap')
rap.connect(database='weather', user='chef')
fields = ['tmp2m']
rap.transfer(fields)
y luego trazar los datos en un mapa de los buenos EE. UU.:
Los datos para la trama procedían directamente de SQL y podían modificar fácilmente la consulta para obtener cualquier tipo de datos deseados.
Si el ejemplo anterior no es suficiente, consulte la documentación, donde puede encontrar más ejemplos.
En el Archivo de datos meteorológicos históricos del Laboratorio Nacional de Tormentas Severas de los Estados Unidos (nota: esto se ha retirado desde entonces).
Además, el Portal de Geodatos del Centro Nacional de Datos Climáticos de los Estados Unidos.
El Centro Nacional de Datos Climáticos de los Estados Unidos Climate Data Online.
Los productos más populares del Centro Nacional de Datos Climáticos de los Estados Unidos.