{ "metadata": { "name": "", "signature": "sha256:a5186c511c664d90599fbdc9c30dd11a678692bcea13fcea7090be68872725dd" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "# import packages\n", "from netCDF4 import Dataset\n", "import simplekml\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# read data from netcdf\n", "url = 'http://opendap.deltares.nl/thredds/dodsC/opendap/rijkswaterstaat/grainsize_vtv/grainsize_vtv.nc'\n", "ds = Dataset(url)\n", "lat = ds.variables['lat'][:]\n", "lon = ds.variables['lon'][:]\n", "D50 = ds.variables['meanD50'][:]\n", "std = ds.variables['sigmaD50'][:]\n", "ds.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# create kml with placemarks\n", "kml = simplekml.Kml()\n", "for lt,ln,d in zip(lat,lon,D50):\n", " pnt = kml.newpoint(coords=[(ln,lt)])\n", "kml.save('grainsize.kml')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# define colors\n", "cmap = plt.get_cmap('jet') \n", "cNorm = mpl.colors.Normalize(vmin=D50.min(), vmax=D50.max())\n", "scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=cmap)\n", "rgba = map(scalarMap.to_rgba, D50)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "# create kml with colored placemarks\n", "kml = simplekml.Kml()\n", "for lt,ln,c in zip(lat,lon,rgba):\n", " pnt = kml.newpoint(coords=[(ln,lt)])\n", " pnt.style.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png'\n", " pnt.style.iconstyle.color = simplekml.Color.rgb(*np.array(c)*255)\n", "kml.save('grainsize_color.kml')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# create colorbar\n", "fig = plt.figure(figsize=(1,6))\n", "ax = fig.add_axes([0.1, 0.2, 0.2, 0.72])\n", "cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap,\n", " norm=cNorm,\n", " orientation='vertical')\n", "fig.savefig('cbar.png')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "# add colorbar to kml\n", "screen = kml.newscreenoverlay(name='Colorbar')\n", "screen.icon.href = 'cbar.png'\n", "screen.overlayxy = simplekml.OverlayXY(x=0,y=1,xunits=simplekml.Units.fraction,\n", " yunits=simplekml.Units.fraction)\n", "screen.screenxy = simplekml.ScreenXY(x=15,y=15,xunits=simplekml.Units.pixel,\n", " yunits=simplekml.Units.insetpixels)\n", "kml.save('grainsize_color_cbar.kml')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }