{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lectura de archivos grib via ftp\n", "\n", "## Integrante: \n", "\n", "* Marisol Osman\n", "\n", "## Descripción:\n", "\n", "La idea del proyecto es probar:\n", "* Bajar un archivo grib desde un ftp\n", "* Abrir ese archivo grib\n", "* Extraer propiedades y graficarlo\n", "\n", "La versión final esta dos archivos python para que puedan ser ejecutados desde la linea de comandos.\n", "Los archivos son:\n", "\n", "* [main.py](https://github.com/pewen/wpc/tree/master/Trabajos_finales/Osman/main.py)\n", "* [model.py](https://github.com/pewen/wpc/tree/master/Trabajos_finales/Osman/model.py)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from ftplib import FTP #conectarme a un ftp para conseguir los datos\n", "import os\n", "import mpl_toolkits.basemap as bm # import Basemap matplotlib toolkit\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pygrib #para trabajar con archivos grib\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'230 Login successful.'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#conecto con el servidor ftp\n", "url = 'ftp.cpc.ncep.noaa.gov'\n", "ftp = FTP(url) # connect to host, default port\n", "ftp.login() # user anonymous, passwd anonymous@ruta = 'ftp.cpc.ncep.noaa.gov/NMME/clim/tmp2m.01.CFSv2.clim.1x1.grb'" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.01.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.01.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.01.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.01.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.01.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 611542 May 19 2014 prate.01.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.01.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 578960 Sep 01 2015 prate.01.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.02.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.02.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.02.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.02.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.02.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.02.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.02.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.02.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.03.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.03.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.03.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.03.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.03.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.03.GFDL_FLORa06.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.03.GFDL_FLORb01.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.03.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.03.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.03.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 513718 May 19 2014 prate.04.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.04.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.04.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.04.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.04.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.04.GFDL_FLORa06.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 May 19 2014 prate.04.GFDL_FLORb01.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.04.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.04.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 578960 Sep 01 2015 prate.04.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 513718 May 19 2014 prate.05.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 562672 May 19 2014 prate.05.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.05.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.05.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.05.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.05.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.05.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.05.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.06.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.06.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 554528 May 19 2014 prate.06.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.06.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.06.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 619688 May 19 2014 prate.06.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.06.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.06.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 505572 May 19 2014 prate.07.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.07.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 562672 May 19 2014 prate.07.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.07.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.07.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 611542 May 19 2014 prate.07.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.07.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.07.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.08.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 546384 May 19 2014 prate.08.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.08.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.08.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.08.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 603396 May 19 2014 prate.08.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.08.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 587104 Sep 01 2015 prate.08.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.09.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 538240 May 19 2014 prate.09.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.09.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.09.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.09.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.09.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.09.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.09.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.10.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.10.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.10.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 581408 May 19 2014 prate.10.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.10.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.10.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.10.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.10.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.11.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 530096 May 19 2014 prate.11.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 578960 May 19 2014 prate.11.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 589462 May 19 2014 prate.11.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.11.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 595250 May 19 2014 prate.11.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.11.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.11.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 587104 May 19 2014 prate.12.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.12.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 570816 May 19 2014 prate.12.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 597516 May 19 2014 prate.12.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 807300 Sep 01 2015 prate.12.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 603396 May 19 2014 prate.12.NASA.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 521952 May 19 2014 prate.12.NCAR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 570816 Sep 01 2015 prate.12.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1124848 Dec 14 2015 tmp2m.01.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1124848 Dec 14 2015 tmp2m.01.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1193948 Dec 14 2015 tmp2m.01.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.01.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.01.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 896620 Sep 01 2015 tmp2m.01.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 959992 Dec 14 2015 tmp2m.02.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.02.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.02.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 904766 Sep 01 2015 tmp2m.02.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 968048 Dec 14 2015 tmp2m.03.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1193948 Sep 01 2015 tmp2m.03.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.03.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 912912 Sep 01 2015 tmp2m.03.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.04.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 912912 Dec 14 2015 tmp2m.04.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 959992 Dec 14 2015 tmp2m.04.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1185892 Sep 01 2015 tmp2m.04.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.04.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 904766 Sep 01 2015 tmp2m.04.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.05.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 904766 Dec 14 2015 tmp2m.05.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 951936 Dec 14 2015 tmp2m.05.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.05.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.05.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 896620 Sep 01 2015 tmp2m.05.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.06.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.06.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 943880 Dec 14 2015 tmp2m.06.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.06.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.06.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 888474 Sep 01 2015 tmp2m.06.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.07.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 888474 Dec 14 2015 tmp2m.07.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 935824 Dec 14 2015 tmp2m.07.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.07.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.07.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.07.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.08.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.08.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.08.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.08.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 994442 Dec 14 2015 tmp2m.08.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.08.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.09.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.09.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.09.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.09.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1002588 Dec 14 2015 tmp2m.09.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.09.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1100410 Dec 14 2015 tmp2m.10.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.10.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.10.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.10.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.10.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 896620 Dec 14 2015 tmp2m.10.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.10.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.11.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 880328 Dec 14 2015 tmp2m.11.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1177836 Dec 14 2015 tmp2m.11.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1177836 Sep 01 2015 tmp2m.11.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1010734 Dec 14 2015 tmp2m.11.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 880328 Sep 01 2015 tmp2m.11.NCAR_CCSM4.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1108556 Dec 14 2015 tmp2m.12.CFSv2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1116702 Dec 14 2015 tmp2m.12.CMC1.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1116702 Dec 14 2015 tmp2m.12.CMC2.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1185892 Dec 14 2015 tmp2m.12.GFDL.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 1185892 Sep 01 2015 tmp2m.12.GFDL_FLOR.clim.1x1.grb\n", "-rwxr-xr-x 1 ftp ftp 1010734 Dec 14 2015 tmp2m.12.NASA.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 888474 Sep 01 2015 tmp2m.12.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 896620 Aug 01 2013 tmpsfc.01.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.01.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.01.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 912912 Aug 01 2013 tmpsfc.02.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.02.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.02.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 912912 Aug 01 2013 tmpsfc.03.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.03.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.03.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 790652 Aug 01 2013 tmpsfc.04.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.04.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.04.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 782506 Aug 01 2013 tmpsfc.05.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.05.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.05.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 888474 Aug 01 2013 tmpsfc.06.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.06.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.06.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 766214 Aug 01 2013 tmpsfc.07.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.07.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.07.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 766214 Aug 22 2014 tmpsfc.08.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.08.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.08.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 766214 Sep 09 2014 tmpsfc.09.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.09.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.09.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 880328 Aug 01 2013 tmpsfc.10.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.10.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.10.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 880328 Aug 01 2013 tmpsfc.11.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.11.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.11.NCAR_CCSM4.clim.1x1.grb\n", "-rwxrwxr-x 1 ftp ftp 888474 Aug 01 2013 tmpsfc.12.CFSv2.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 657660 Sep 01 2015 tmpsfc.12.GFDL_FLOR.clim.1x1.grb\n", "-rw-r--r-- 1 ftp ftp 580464 Sep 01 2015 tmpsfc.12.NCAR_CCSM4.clim.1x1.grb\n", "data/tmpsfc.01.CFSv2.clim.1x1.grb\n" ] }, { "data": { "text/plain": [ "'221 Goodbye.'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#manipulo archivos dentro del directorio clim\n", "ftp.cwd('/NMME/clim/') #ingreso al directorio\n", "ftp.dir() #listo los archivos\n", "filename = 'tmpsfc.01.CFSv2.clim.1x1.grb' #archivo ejemplo\n", "local_filename = os.path.join('data', filename) #ruta donde voy a generar el archivo que se escribe\n", "print(local_filename)\n", "file = open(local_filename, 'wb') #abro el archivo donde se va a alojar\n", "ftp.retrbinary('RETR '+ filename, file.write) #recibo info y guardo en archivo\n", "\n", "file.close() #cierro archivo\n", "ftp.quit() # This is the “polite” way to close a connection me voy del ftp" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1:Temperature:K (avg):regular_ll:surface:level 0:fcst time 0-720 months (avg):from 201101010000\n", "2:Temperature:K (avg):regular_ll:surface:level 0:fcst time 720-1440 months (avg):from 201101010000\n", "3:Temperature:K (avg):regular_ll:surface:level 0:fcst time 1440-2160 months (avg):from 201101010000\n", "4:Temperature:K (avg):regular_ll:surface:level 0:fcst time 2160-2880 months (avg):from 201101010000\n", "5:Temperature:K (avg):regular_ll:surface:level 0:fcst time 2880-3600 months (avg):from 201101010000\n", "6:Temperature:K (avg):regular_ll:surface:level 0:fcst time 3600-4320 months (avg):from 201101010000\n", "7:Temperature:K (avg):regular_ll:surface:level 0:fcst time 4320-5040 months (avg):from 201101010000\n", "8:Temperature:K (avg):regular_ll:surface:level 0:fcst time 5040-5760 months (avg):from 201101010000\n" ] } ], "source": [ "#grib_file = 'tmp2m.12.CFSv2.clim.1x1.grb'\n", "\n", "grbs = pygrib.open(local_filename)\n", "\n", "for grb in grbs:\n", " print (grb)\n", "file.close()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "3\n", "4\n", "(181, 360)\n" ] } ], "source": [ "grbs.rewind() # rewind the iterator\n", "t2mens = []\n", "i_month = 1\n", "e_month = 3\n", "\n", "for grb in grbs[1:4]:\n", " print(grb.messagenumber)\n", "# if grb.validDate == date_valid and grb.parameterName == 'Temperature' and grb.level == 2: \n", " t2mens.append(grb.values)#t2mens = np.array(t2mens)\n", "t2mens = np.array(t2mens)\n", "t2mens=np.mean(t2mens,0)\n", "#print t2mens.shape, t2mens.min(), t2mens.max()\n", "lats, lons = grb.latlons() # get the lats and lons for the grid.\n", "lats = lats[:,1]\n", "lons = lons[1,:]\n", "print(t2mens.shape)\n", "#print 'min/max lat and lon',lats.min(), lats.max(), lons.min(), lons.max()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mapproj = bm.Basemap(llcrnrlon = 360-85,llcrnrlat = -60, urcrnrlon = 360-25,\n", " urcrnrlat = 10 , projection = 'mill', area_thresh =10000 ,\n", " resolution='l')\n", "\n", "mapproj.drawcoastlines()\n", "mapproj.drawcountries()\n", "mapproj.drawparallels(np.array([-60, -40, -20, 0]))#, labels=[1,0,0,0])\n", "mapproj.drawmeridians(np.arange(0,360,60))#, labels=[0,0,0,1])\n", "\n", "lonall, latall = np.meshgrid(lons, lats)\n", "lonproj, latproj = mapproj(lonall, latall)\n", "#print(lonproj.shape)\n", "#print(latproj.shape)\n", "cs = plt.contourf(lonproj,latproj,t2mens[:,:],10)\n", "t = plt.title('Prueba')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Este css es trabajo de @LorenaABarba y su grupo\n", "from IPython.core.display import HTML\n", "css_file = '../../css/personal.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "anaconda-cloud": {}, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }