{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import os\n", "from tqdm import tqdm" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#Getting a list of files in raw data folder\n", "filenames = os.listdir('./processed_data/')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "header_wanted = [\n", " 'HOURLYVISIBILITY',\n", " 'HOURLYDRYBULBTEMPC',\n", " 'HOURLYWETBULBTEMPC',\n", " 'HOURLYDewPointTempC',\n", " 'HOURLYRelativeHumidity',\n", " 'HOURLYWindSpeed',\n", " #'HOURLYWindGustSpeed',\n", " 'HOURLYStationPressure',\n", " #'HOURLYPressureTendency',\n", " #'HOURLYPressureChange',\n", " #'HOURLYSeaLevelPressure',\n", " #'HOURLYPrecip',\n", " #'HOURLYAltimeterSetting'\n", "]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "usecols = ['DATE','STATION'] + header_wanted" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████| 372/372 [00:34<00:00, 10.78it/s]\n" ] } ], "source": [ "#Loading all files into a pandas Dataframe\n", "tqdm.pandas()\n", "df = pd.concat([pd.read_csv('./processed_data/{}'.format(x), usecols=usecols, low_memory=False) for x in tqdm(filenames)])\n", "df[header_wanted] = (df[header_wanted] - df[header_wanted].min()) / (df[header_wanted].max() - df[header_wanted].min())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point all the data has been loaded into a single dataframe and any data changes have been made. The next step is to break the data up by WBAN and place in a 2D array at the appropriate grid cell. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "stations = pd.read_csv(\"./stations_mask.csv\", usecols = ['STATION_ID', 'LON_SCALED', 'LAT_SCALED'])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "height = 20\n", "width = 40\n", "depth = 24 * 365 * 2" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "mask = [([0] * width) for i in range(height)]\n", "\n", "wban_loc = dict(zip(stations.STATION_ID,zip(stations.LON_SCALED,stations.LAT_SCALED)))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "grid = [([pd.DataFrame()] * width) for i in range(height)]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████| 372/372 [03:56<00:00, 1.57it/s]\n" ] } ], "source": [ "for key, value in tqdm(wban_loc.items()):\n", " mask[value[1]][value[0]] = 1\n", " grid[value[1]][value[0]] = df.loc[df.STATION == key]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(mask)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def create_frames(data,height, width, depth):\n", " days = []\n", " frames = []\n", " for i in tqdm(range(depth)):\n", " frame = np.zeros((height,width,7))\n", " frame[:,:,:] = np.nan\n", " for y in range(height):\n", " for x in range(width):\n", " if(not data[y][x].empty):\n", " frame[y][x] = data[y][x].iloc[[i],1:8].values.flatten()\n", " if((i+1)%24 != 0):\n", " frames.append(frame)\n", " else:\n", " frames.append(frame)\n", " days.append(frames)\n", " frames = []\n", " return np.array(days)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "def average_grid(mask,data, height, width):\n", " temp_frame = [([0] * width) for i in range(height)]\n", " for i in range(height):\n", " for j in range(width):\n", " if(mask[i][j] != 1):\n", " neighbors = get_neighbors(j,i,data)\n", " temp_frame[i][j] = np.nanmean(neighbors, axis=0)\n", " merge_frames(temp_frame, mask, data, height, width)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def get_neighbors(x,y,g):\n", " neighbors = []\n", " for i in [y-1,y,y+1]:\n", " for j in [x-1,x,x+1]:\n", " if(i >= 0 and j >= 0):\n", " if(i != y or j != x ):\n", " try:\n", " neighbors.append(g[i][j])\n", " except:\n", " pass\n", " return np.array(neighbors)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def merge_frames(average, mask, data, height, width):\n", " for i in range(height):\n", " for j in range(width):\n", " if(mask[i][j] != 1):\n", " data[i][j] = average[i][j]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def store_sequence(frames):\n", " import hickle as hkl\n", " train_frames = []\n", " train_sources = []\n", " validation_frames = []\n", " validation_sources = []\n", " test_frames = []\n", " test_sources = []\n", " \n", " for day in range(len(frames)):\n", " for hour in range(len(frames[day])):\n", " if(day/len(frames) < .6):\n", " train_sources.append(\"{}\".format(day))\n", " train_frames.append(frames[day][hour])\n", " elif(day/len(frames) >= .6 and day/len(frames) < .8):\n", " validation_sources.append(\"{}\".format(day))\n", " validation_frames.append(frames[day][hour])\n", " else:\n", " test_sources.append(\"{}\".format(day))\n", " test_frames.append(frames[day][hour])\n", " \n", " print(\"There are {} frames and {} sources in training set\".format(len(train_frames), len(train_sources)))\n", " print(\"There are {} frames and {} sources in validation set\".format(len(validation_frames), len(validation_sources)))\n", " print(\"There are {} frames and {} sources in testing set\".format(len(test_frames), len(test_sources)))\n", " \n", " hkl.dump(np.array(train_frames), '../data/x_train.hkl')\n", " hkl.dump(train_sources, '../data/sources_train.hkl')\n", " hkl.dump(np.array(validation_frames), '../data/x_val.hkl')\n", " hkl.dump(validation_sources, '../data/sources_val.hkl')\n", " hkl.dump(np.array(test_frames), '../data/x_test.hkl')\n", " hkl.dump(test_sources, '../data/sources_test.hkl')\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Splits is a dictionary holding train, test, val\n", "the values for train, test, and val are lists of tuples holding category and folder name\n", "in the end each image gets a source associated with it\n", "there is only one data and one source hickle dump for each of train, test, and val" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████████████████████| 17520/17520 [1:12:34<00:00, 4.02it/s]\n" ] } ], "source": [ "frames = create_frames(grid, height, width,depth)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(15,10))\n", "columns = 3\n", "rows = 4\n", "for i in range(1,columns+rows +1):\n", " fig.add_subplot(rows,columns,i)\n", " plt.imshow(frames[0,0,:,:,i-1])\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ " 0%| | 0/730 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure(figsize=(15,10))\n", "columns = 3\n", "rows = 4\n", "for i in range(1,columns+rows +1):\n", " fig.add_subplot(rows,columns,i)\n", " plt.imshow(frames[0,0,:,:,i-1])\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(730, 24, 20, 40, 7)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frames.shape" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 10512 frames and 10512 sources in training set\n", "There are 3504 frames and 3504 sources in validation set\n", "There are 3504 frames and 3504 sources in testing set\n" ] } ], "source": [ "store_sequence(frames)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point the data has been processed and made into discrete frames and it is time to run it through the PredNet architecture for training." ] } ], "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }