Skip to content

Instantly share code, notes, and snippets.

Created February 20, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/bf417150abe1f7dca2c3 to your computer and use it in GitHub Desktop.
Save anonymous/bf417150abe1f7dca2c3 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:e429e37ed4ed850b772f67a17326ae88b567d0651fee6f7d72632c2b785d26c1"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![MET logo](http://met.no/filestore/logo_2013_no.png \"MET logo\")"
]
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Kodeklubben"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Innhold"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. IPython Notebook\n",
"2. [api.met.no](http://api.met.no) - kodeeksempler"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"1. IPython Notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"IPython Notebook er en slags digital loggbok, som kan inneholde alt fra ren tekst til kj\u00f8rbar Python kode, med resultater vist direkte i nettleseren.\n",
"\n",
"Jeg kommer til \u00e5 legge ut denne notatboken p\u00e5 [it.met.no](http://it.met.no) i l\u00f8pet av morgendagen, sammen med instruksjoner til hvordan dere kan installere IPython Notebook, slik at dere kan videreutvikle programsnuttene vi lager etterp\u00e5.\n",
"\n",
"F\u00f8rst sier vi at plot skal vises direkte i notatboken:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Litt eksperimentering med plotting:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = linspace(0, 10, 50)\n",
"\n",
"y = 0.2*x\n",
"y2 = cos(x)\n",
"\n",
"plot(x,y)\n",
"plot(x,y2)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"[<matplotlib.lines.Line2D at 0x7fae9ad74a10>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7fae9ad74a50>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Variable er globale for hele notatboken, her skriver vi ut 'x':"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"array([ 0. , 0.20408163, 0.40816327, 0.6122449 ,\n",
" 0.81632653, 1.02040816, 1.2244898 , 1.42857143,\n",
" 1.63265306, 1.83673469, 2.04081633, 2.24489796,\n",
" 2.44897959, 2.65306122, 2.85714286, 3.06122449,\n",
" 3.26530612, 3.46938776, 3.67346939, 3.87755102,\n",
" 4.08163265, 4.28571429, 4.48979592, 4.69387755,\n",
" 4.89795918, 5.10204082, 5.30612245, 5.51020408,\n",
" 5.71428571, 5.91836735, 6.12244898, 6.32653061,\n",
" 6.53061224, 6.73469388, 6.93877551, 7.14285714,\n",
" 7.34693878, 7.55102041, 7.75510204, 7.95918367,\n",
" 8.16326531, 8.36734694, 8.57142857, 8.7755102 ,\n",
" 8.97959184, 9.18367347, 9.3877551 , 9.59183673,\n",
" 9.79591837, 10. ])"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Litt mer plotting:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.xkcd()\n",
"plt.title('Cosine!')\n",
"plot(x, y2)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"[<matplotlib.lines.Line2D at 0x7fae9ac47410>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7fae9ac473d0>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Noen flere eksempler p\u00e5 hva vi kan gj\u00f8re i en notatbok:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![MET logo](http://met.no/filestore/logo_2013_no.png \"MET logo\")"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import YouTubeVideo\n",
"\n",
"YouTubeVideo('t_TzRaK9kpU')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"\n",
" <iframe\n",
" width=\"400\"\n",
" height=300\"\n",
" src=\"https://www.youtube.com/embed/t_TzRaK9kpU\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"<IPython.lib.display.YouTubeVideo at 0x7ff3d0d0d090>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.display import HTML\n",
"HTML('<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350></iframe>')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350></iframe>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"<IPython.core.display.HTML at 0x7ff3d0d0d050>"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En notatbok kan ogs\u00e5 lett deles p\u00e5 nett, f.eks. p\u00e5 [nbviewer.ipython.org](http://nbviewer.ipython.org). F\u00f8lg med p\u00e5 [it.met.no](http://it.met.no), s\u00e5 f\u00e5r dere vite hvordan."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"2. api.met.no"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Her f\u00f8lger tre kodeeksempler (det f\u00f8rste eksempelet henter kun et bilde via en url) som benytter api.met.no:"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Hente satellittbilde"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Satellittbilde](http://api.met.no/weatherapi/geosatellite/1.3/?area=global;width=1200;height=600 'Satellittbilde av Europa')"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Sol opp/ned"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from lxml import etree\n",
"import dateutil.parser as dparser\n",
"\n",
"# les XML-dokument fra url og hent ut rot-noden (se http://api.met.no/weatherapi/sunrise/1.0/documentation)\n",
"tree = etree.parse('http://api.met.no/weatherapi/sunrise/1.0/?lat=59.9132694;lon=10.7391112;date=2015-02-19')\n",
"root = tree.getroot()\n",
"\n",
"# skriv ut hele XML-dokumentet\n",
"#print(etree.tostring(root, pretty_print=True))\n",
"\n",
"# 1. finn den f\u00f8rste tag-en ved navn \"sun\", og les attributtene \"rise\" og \"set\"\n",
"# 2. les disse attributtene inn i et dato-og-tid objekt (ved hjelp av dparser.parse())\n",
"sunrise = dparser.parse(next(tree.iter('sun')).attrib['rise'])\n",
"sunset = dparser.parse(next(tree.iter('sun')).attrib['set'])\n",
"\n",
"# hent ut tid-delen, gj\u00f8r denne om til en tekststreng og skriv ut\n",
"print \"Rise (UTC tid): \" + str(sunrise.time())\n",
"print \"Set (UTC tid): \" + str(sunset.time())"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Rise (UTC tid): 06:44:57\n",
"Set (UTC tid): 16:17:51\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Hent aktuelt v\u00e6rsymbol"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from lxml import etree\n",
"import dateutil.parser as dparser\n",
"import datetime as dt\n",
"from IPython.display import Image\n",
"\n",
"# les XML-dokument fra url og hent ut rot-noden (se http://api.met.no/weatherapi/locationforecast/1.9/documentation)\n",
"tree = etree.parse('http://api.met.no/weatherapi/locationforecast/1.9/?lat=59.9132694;lon=10.7391112')\n",
"root = tree.getroot()\n",
"\n",
"# skriv ut hele XML-dokumentet\n",
"#print(etree.tostring(root, pretty_print=True))\n",
"\n",
"# finn modellen som heter \"LOCAL\" og les ut tidsperioden varselet gjelder for\n",
"for element in tree.iter('model'):\n",
" if element.attrib['name'] == 'LOCAL':\n",
" from_time = dparser.parse(element.attrib['from'])\n",
" to_time = dparser.parse(element.attrib['to'])\n",
"\n",
"print \"Leser fra varsel for perioden \" + str(from_time) + \" til \" + str(to_time) + \" (UTC tid)\"\n",
"\n",
"\n",
"# 1. g\u00e5 igjennom alle time-tag-er, finn tag-en som dekker n\u00e5tid til +1 time\n",
"# 2. finn s\u00e5 v\u00e6rsymbolet gitt i tag-en \"symbol\", som er en barne-tag av time-tag-en\n",
"for element in tree.iter('time'):\n",
" current_from = dparser.parse(element.attrib['from'])\n",
" current_to = dparser.parse(element.attrib['to'])\n",
" if current_from == from_time and (from_time + dt.timedelta(hours=1)) == current_to:\n",
" weather_symbol_text = next(element.iterdescendants('symbol')).attrib['id']\n",
" weather_symbol_number = next(element.iterdescendants('symbol')).attrib['number']\n",
" \n",
"print \"\\nAktuelt v\u00e6rsymbol:\"\n",
"\n",
"# konstruer url for \u00e5 hente riktig v\u00e6rsymbol fra api.met.no\n",
"weather_symbol_url = \"http://api.met.no/weatherapi/weathericon/1.1/?symbol=\" + weather_symbol_number +\";is_night=0;content_type=image/png\"\n",
"#print weather_symbol_url\n",
"\n",
"# hent v\u00e6rsymbol-bildet og vis det\n",
"weather_symbol_image = Image(url=weather_symbol_url)\n",
"display(weather_symbol_image)\n",
"\n",
"print weather_symbol_text"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Leser fra varsel for perioden 2015-02-19 12:00:00+00:00 til 2015-02-22 00:00:00+00:00 (UTC tid)\n",
"\n",
"Aktuelt v\u00e6rsymbol:"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"html": [
"<img src=\"http://api.met.no/weatherapi/weathericon/1.1/?symbol=4;is_night=0;content_type=image/png\"/>"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<IPython.core.display.Image at 0x7fae99480510>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Cloud\n"
]
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment