You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

545 lines
76 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"from matplotlib import cm\n",
"import numpy as np\n",
"import h5py as h5py\n",
"import cartopy.crs as ccrs\n",
"import cartopy.feature as cfeature\n",
"from cartopy.io.shapereader import Reader\n",
"from cartopy.feature import ShapelyFeature\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# hdf5 = '/notebooks/resources/3B-MO.MS.MRG.3IMERG.20150801-S000000-E235959.08.V03D.HDF5'\n",
"# hdf5 = '/notebooks/resources/3B-MO.MS.MRG.3IMERG.20150801-S000000-E235959.08.V06A.HDF5'\n",
"hdf5 = '/notebooks/resources/3B-MO.MS.MRG.3IMERG.20190101-S000000-E235959.01.V06A.HDF5'\n",
"dataset = h5py.File(hdf5,'r') # Change this to the proper path"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"precip = dataset['Grid/precipitation'][:]\n",
"\n",
"precip = np.transpose(precip[0])\n",
"\n",
" \n",
"\n",
"theLats= dataset['Grid/lat'][:]\n",
"\n",
"theLons = dataset['Grid/lon'][:]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1800x1200 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot the figure, define the geographic bounds\n",
"\n",
"fig = plt.figure(dpi=300)\n",
"# fig = plt.figure(figsize=(5,3))\n",
"\n",
"latcorners = ([-60,60])\n",
"\n",
"loncorners = ([-180,180])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<cartopy.mpl.feature_artist.FeatureArtist at 0x7f487f5a6dd8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"ax = plt.axes(projection=ccrs.PlateCarree())\n",
"ax.coastlines()\n",
"ax.add_feature(cfeature.BORDERS)\n",
"# ax.add_feature(cfeature.STATES.with_scale('10m'))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# Draw filled contours.\n",
"\n",
"clevs = np.arange(0,1.26,0.125)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Define the latitude and longitude data\n",
"\n",
"x, y = np.float32(np.meshgrid(theLons, theLats))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# Mask the values less than 0 because there is no data to plot.\n",
"\n",
"masked_array = np.ma.masked_where(precip < 0,precip)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"cmap = 'nipy_spectral'"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"# Plot the data\n",
"\n",
"cs = ax.contourf(x,y,precip,clevs,transform=ccrs.PlateCarree(),cmap=cmap)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Set the title and fonts\n",
"\n",
"plt.title('August 2015 Monthly Average Rain Rate')\n",
"\n",
"font = {'weight' : 'bold', 'size' : 3}\n",
"\n",
"plt.rc('font', **font)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f487c5d7390>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sm = plt.cm.ScalarMappable(cmap=cmap,norm=plt.Normalize(0,1))\n",
"sm._A = []\n",
"plt.colorbar(sm, ax=ax, label='mm/h', shrink=0.5)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"ax.set_extent([-180, 180, -90, 90])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<cartopy.mpl.feature_artist.FeatureArtist at 0x7f487c5f4c18>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fname = r'./layers/POLYGON.shp'\n",
"\n",
"# ax = plt.axes(projection=ccrs.Robinson())\n",
"shape_feature = ShapelyFeature(Reader(fname).geometries(),\n",
" ccrs.PlateCarree(), edgecolor='black')\n",
"ax.add_feature(shape_feature)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-9999.9, -9999.9, -9999.9, ..., -9999.9, -9999.9, -9999.9]],\n",
" dtype=float32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"precip[:1]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.34887332, 0.3243111 , 0.29017633, 0.2765502 , 0.27786908],\n",
" [0.34167388, 0.3020723 , 0.29026952, 0.23455362, 0.25120696],\n",
" [0.31357834, 0.30085763, 0.28203115, 0.24579698, 0.21895659],\n",
" [0.25888765, 0.24932547, 0.21262528, 0.20869504, 0.20487446]],\n",
" dtype=float32)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"precip[732:736,3368:3373]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Package Version \n",
"------------------------- ----------------------\n",
"absl-py 0.7.0 \n",
"affine 2.2.2 \n",
"altair 3.0.1 \n",
"ansiwrap 0.8.4 \n",
"astor 0.7.1 \n",
"atomicwrites 1.3.0 \n",
"attrs 19.1.0 \n",
"backcall 0.1.0 \n",
"beautifulsoup4 4.7.1 \n",
"bleach 3.1.0 \n",
"bokeh 1.1.0 \n",
"boto 2.49.0 \n",
"boto3 1.9.156 \n",
"botocore 1.12.156 \n",
"branca 0.3.1 \n",
"bs4 0.0.1 \n",
"Cartopy 0.17.0 \n",
"certifi 2019.3.9 \n",
"chardet 3.0.4 \n",
"Click 7.0 \n",
"click-plugins 1.1.1 \n",
"cligj 0.5.0 \n",
"cycler 0.10.0 \n",
"cytoolz 0.9.0.1 \n",
"deap 1.2.2 \n",
"decorator 4.3.2 \n",
"defusedxml 0.5.0 \n",
"descartes 1.1.0 \n",
"docutils 0.14 \n",
"entrypoints 0.3 \n",
"enum34 1.1.6 \n",
"Fiona 1.8.6 \n",
"folium 0.9.1 \n",
"future 0.17.1 \n",
"gast 0.2.2 \n",
"GDAL 2.2.2 \n",
"gensim 3.7.3 \n",
"Geohash 1.0 \n",
"geojson 2.4.1 \n",
"geomet 0.2.0.post2 \n",
"geopandas 0.5.0 \n",
"google-pasta 0.1.4 \n",
"greenlet 0.4.15 \n",
"grpcio 1.19.0 \n",
"h5py 2.9.0 \n",
"heamy 0.0.7 \n",
"html2text 2018.1.9 \n",
"idna 2.8 \n",
"ImageHash 4.0 \n",
"imageio 2.5.0 \n",
"importlib-metadata 0.15 \n",
"ipykernel 5.1.0 \n",
"ipython 7.3.0 \n",
"ipython-genutils 0.2.0 \n",
"ipywidgets 7.4.2 \n",
"jedi 0.13.3 \n",
"Jinja2 2.10 \n",
"jmespath 0.9.4 \n",
"joblib 0.13.2 \n",
"JSAnimation 0.1 \n",
"jsonschema 3.0.1 \n",
"jupyter 1.0.0 \n",
"jupyter-client 5.2.4 \n",
"jupyter-console 6.0.0 \n",
"jupyter-core 4.4.0 \n",
"jupyter-http-over-ws 0.0.4 \n",
"Keras-Applications 1.0.7 \n",
"Keras-Preprocessing 1.0.9 \n",
"kiwisolver 1.0.1 \n",
"lml 0.0.9 \n",
"Markdown 3.0.1 \n",
"MarkupSafe 1.1.1 \n",
"matplotlib 3.0.3 \n",
"mgrspy 0.2.2 \n",
"mistune 0.8.4 \n",
"more-itertools 7.0.0 \n",
"mplleaflet 0.0.5 \n",
"multiprocessing-generator 0.2 \n",
"munch 2.3.2 \n",
"nbconvert 5.5.0 \n",
"nbformat 4.4.0 \n",
"networkx 2.3 \n",
"nltk 3.4.1 \n",
"notebook 5.7.5 \n",
"numpy 1.16.2 \n",
"odfpy 1.4.0 \n",
"opencv-python 4.1.0.25 \n",
"packaging 19.0 \n",
"pandas 0.24.2 \n",
"pandas-profiling 1.4.2 \n",
"pandocfilters 1.4.2 \n",
"papermill 1.0.1 \n",
"parso 0.3.4 \n",
"pathlib2 2.3.3 \n",
"pdfminer3k 1.3.1 \n",
"pexpect 4.6.0 \n",
"pickleshare 0.7.5 \n",
"Pillow 6.0.0 \n",
"pip 19.1.1 \n",
"plotly 3.9.0 \n",
"pluggy 0.12.0 \n",
"ply 3.11 \n",
"prometheus-client 0.6.0 \n",
"prompt-toolkit 2.0.9 \n",
"protobuf 3.7.0 \n",
"ptyprocess 0.6.0 \n",
"py 1.8.0 \n",
"pycurl 7.43.0 \n",
"pydicom 1.2.2 \n",
"pyepsg 0.4.0 \n",
"pyexcel-io 0.5.17 \n",
"pyexcel-ods 0.5.6 \n",
"Pygments 2.3.1 \n",
"pygobject 3.20.0 \n",
"pypandoc 1.4 \n",
"pyparsing 2.3.1 \n",
"PyPDF2 1.26.0 \n",
"pyproj 2.1.3 \n",
"pyrsistent 0.14.11 \n",
"pyshp 2.1.0 \n",
"pytest 4.5.0 \n",
"python-apt 1.1.0b1+ubuntu0.16.4.4\n",
"python-dateutil 2.8.0 \n",
"pytz 2019.1 \n",
"PyWavelets 1.0.3 \n",
"PyYAML 5.1 \n",
"pyzmq 18.0.1 \n",
"qtconsole 4.4.3 \n",
"rasterio 1.0.23 \n",
"rasterstats 0.13.1 \n",
"requests 2.22.0 \n",
"retrying 1.3.3 \n",
"s3transfer 0.2.0 \n",
"scikit-image 0.15.0 \n",
"scikit-learn 0.21.2 \n",
"scipy 1.3.0 \n",
"scoop 0.7.1.1 \n",
"seaborn 0.9.0 \n",
"selectivesearch 0.3 \n",
"Send2Trash 1.5.0 \n",
"sentinelloader 1.0.0 \n",
"sentinelsat 0.13 \n",
"setuptools 40.8.0 \n",
"Shapely 1.6.4.post2 \n",
"SimpleITK 1.2.0 \n",
"simplejson 3.16.0 \n",
"six 1.12.0 \n",
"sklearn-pandas 1.8.0 \n",
"slate3k 0.5.3 \n",
"smart-open 1.8.3 \n",
"snuggs 1.4.6 \n",
"soupsieve 1.9.1 \n",
"stopit 1.1.2 \n",
"tb-nightly 1.14.0a20190301 \n",
"tenacity 5.0.4 \n",
"tensorflow 2.0.0a0 \n",
"termcolor 1.1.0 \n",
"terminado 0.8.1 \n",
"testpath 0.4.2 \n",
"textblob 0.15.3 \n",
"textwrap3 0.9.2 \n",
"tf-estimator-nightly 1.14.0.dev2019030115 \n",
"tflearn 0.3.2 \n",
"toolz 0.9.0 \n",
"tornado 5.1.1 \n",
"TPOT 0.10.1 \n",
"tqdm 4.32.1 \n",
"traitlets 4.3.2 \n",
"trueskill 0.4.5 \n",
"unattended-upgrades 0.1 \n",
"update-checker 0.16 \n",
"urllib3 1.25.3 \n",
"uuid 1.30 \n",
"wavio 0.0.4 \n",
"wcwidth 0.1.7 \n",
"webencodings 0.5.1 \n",
"Werkzeug 0.14.1 \n",
"wheel 0.29.0 \n",
"widgetsnbextension 3.4.2 \n",
"wordcloud 1.5.0.post41+g32f5d2a \n",
"zipp 0.5.1 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip list"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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": 2
}