Commit 0040f636 authored by ChristianF88's avatar ChristianF88

added stages of coding example

parent eee87f18
......@@ -479,7 +479,8 @@
"\n",
"- Numpy is fast! Why?\n",
" - try to stick with one variable type. Don't use lists and arrays and mix it all up\n",
"- "
"- what needs to be in a loop what not. \n",
"- trade off memory, performance"
]
},
{
......@@ -513,7 +514,7 @@
},
{
"cell_type": "code",
"execution_count": 170,
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
......@@ -526,18 +527,20 @@
" \n",
" @property # allows use of the method without brackets \n",
" def Q(self):\n",
" tank_area = 1\n",
" return self.level * self.rate / tank_area\n",
" return self.level * self.rate\n",
" \n",
" def fill_tank(self):\n",
" if self.upstream_tanks is not None:\n",
" for uptank in self.upstream_tanks:\n",
" # recursion\n",
" # recursion (sort of)\n",
" uptank.fill_tank() \n",
" \n",
" uptank.level -= uptank.Q\n",
" self.level += uptank.Q\n",
" \n",
" \n",
" def __repr__(self):\n",
" return \"tank_id: {}\\nlevel: {}\\nrate: {}\".format(self.tank_id,self.level,self.rate)\n",
" \n",
"def initiate_tanks(network_structure, attributes):\n",
" # init all tanks without upstream tanks\n",
" tanks = {}\n",
......@@ -559,7 +562,7 @@
},
{
"cell_type": "code",
"execution_count": 171,
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
......@@ -574,7 +577,7 @@
},
{
"cell_type": "code",
"execution_count": 172,
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
......@@ -588,12 +591,19 @@
},
{
"cell_type": "code",
"execution_count": 173,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"image/png": "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\n",
"text/plain": [
"<Figure size 864x576 with 6 Axes>"
]
......@@ -611,29 +621,415 @@
"for idx, ax in enumerate(axis):\n",
" ax.plot(levels[idx+1])\n",
" ax.set_title(idx+1)\n",
"plt.tight_layout()"
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": []
"source": [
"\"\"\"Version 1\"\"\"\n",
"# simulate 2 tanks -> one filling the other! tank_area=1!\n",
"\n",
"level_1 = 50\n",
"rate_1 = 0.21\n",
"level_2 = 0\n",
"for t in range(100):\n",
" level_2 += level_1*rate_1\n",
" level_1 -= level_1*rate_1\n",
" \n",
"# code quick and dirty!! "
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": []
"source": [
"\"\"\"Version 2\"\"\"\n",
"# clean the code a little and make it more readable und easier to understand (variable names usw...)\n",
"\n",
"# Tank 1 as dict, having a name, level, rate\n",
"tank_1 = dict(name=\"tank_1\", level=50, rate=0.21)\n",
"\n",
"# Tank 2 ...\n",
"tank_2 = {\"name\":\"tank_2\", \"level\":0.4, \"rate\":0}\n",
"\n",
"for i in range(10):\n",
" Q_2 = tank_2[\"level\"]*tank_2[\"rate\"]\n",
" tank_2[\"level\"] -= Q_2\n",
" \n",
" Q_12 = tank_1[\"level\"]*tank_1[\"rate\"]\n",
" tank_1[\"level\"] -= Q_12\n",
" tank_2[\"level\"] += Q_12"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"Version 3\"\"\"\n",
"# What about if the setup changes and we want more tanks\n",
"# 4 tanks: 1 -> 4, 2 -> 3, 3 -> 4\n",
"\n",
"# the tanks\n",
"tank_1 = dict(name=\"tank_1\", level=50, rate=0.21)\n",
"tank_2 = {\"name\":\"tank_2\", \"level\":80, \"rate\":tank_1[\"rate\"]/2}\n",
"tank_3 = dict(name=\"tank_3\", level=5, rate=0.09)\n",
"tank_4 = dict(name=\"tank_4\",level=0, rate=0.01) # tank has a leak\n",
"\n",
"for i in range(20):\n",
" Q_4 = tank_4[\"level\"]*tank_4[\"rate\"]\n",
" tank_4[\"level\"] -= Q_4\n",
" \n",
" Q_34 = tank_3[\"level\"]*tank_3[\"rate\"]\n",
" tank_3[\"level\"] -= Q_34\n",
" tank_4[\"level\"] += Q_34\n",
" \n",
" Q_14 = tank_1[\"level\"]*tank_1[\"rate\"]\n",
" tank_1[\"level\"] -= Q_14\n",
" tank_4[\"level\"] += Q_14\n",
" \n",
" Q_23 = tank_2[\"level\"]*tank_2[\"rate\"]\n",
" tank_2[\"level\"] -= Q_23\n",
" tank_3[\"level\"] += Q_23\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"Version 4\"\"\"\n",
"# Each configuration needs an entirely new script! Our code is hardly reusable for different scenarios.\n",
"# Lets try to make our code a bit more convenient\n",
"# define a function that calculates the flow for us\n",
"# YES FUNCTION ARE OUR FRIENDS!\n",
"def Q(tank_up,tank_down=None):\n",
" Q = tank_up[\"level\"]*tank_up[\"rate\"]\n",
" tank_up[\"level\"] -= Q\n",
" if tank_down is not None:\n",
" tank_down[\"level\"] += Q\n",
" return tank_up, tank_down\n",
"\n",
"\n",
"# What about if the setup changes and we want more tanks\n",
"# 4 tanks: 1 -> 4, 2 -> 3, 3 -> 4\n",
"\n",
"# the tanks\n",
"tank_1 = dict(name=\"tank_1\", level=50, rate=0.21)\n",
"tank_2 = {\"name\":\"tank_2\", \"level\":80, \"rate\":tank_1[\"rate\"]/2}\n",
"tank_3 = dict(name=\"tank_3\", level=5, rate=0.09)\n",
"tank_4 = dict(name=\"tank_4\",level=0, rate=0.01) # tank has a leak\n",
"\n",
"for i in range(20):\n",
" tank_4, _ = Q(tank_4)\n",
" tank_3, tank_4 = Q(tank_3,tank_4)\n",
" tank_2, tank_3 = Q(tank_2,tank_3)\n",
" tank_1, tank_4 = Q(tank_1,tank_4)\n",
" \n",
"# this version is better, as we can calculate the different flows a bit more easily\n",
"# and if we were to change the details of our flow calculation we would only have to \n",
"# adapt our function instead of the entire script. For our network 1 change instead of 4.\n",
"\n",
"# but still it will be lots of work to adjust the network. imagine a complex network with 200 tanks!\n",
"# most likely we would get the data of different tanks from a file or gis layer... \n",
"\n",
"# until now we don't really know whats happening in out network, retrieving the data is essential!"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x576 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\"\"\"version 5\"\"\"\n",
"# Lets try to change our code so it represents the reality better and is more generic\n",
"# Some improvements we want to make:\n",
"# 1.\n",
"# It would be great to have a better representation for a tank, \n",
"# so that someone else using our program\n",
"# also understands whats goin on.\n",
"\n",
"# 2.\n",
"# Additionally it would be beneficial to have a simply way to \n",
"# create complex networks automatically without us\n",
"# having to initiate all the tanks by hand\n",
"\n",
"# 3.\n",
"# We will want to check the tank levels during our simulation. \n",
"# So lets make sure we write a convenience function for that \n",
"\n",
"# 1 ---\n",
"# A tank is a object we can touch,\n",
"# it has attributes like level and id and so on,\n",
"# discharge is property of a tank, furthermore it does have the capability to fill up (a function or method)\n",
"class Tank:\n",
" def __init__(self, tank_id, level, rate, upstream_tanks=None):\n",
" self.tank_id = tank_id\n",
" self.level = level\n",
" self.rate = rate\n",
" self.upstream_tanks = upstream_tanks\n",
" \n",
" # the method Q calculates the flow of a given tank every time it's called\n",
" @property # allows use of the method without brackets \n",
" def Q(self):\n",
" return self.level * self.rate\n",
" \n",
" # filling a tank from all its upstream tanks\n",
" def fill_tank(self):\n",
" self.level -= self.Q\n",
" if self.upstream_tanks is not None:\n",
" for uptank in self.upstream_tanks:\n",
" # recursion (sort of)\n",
" self.level += uptank.Q\n",
" uptank.fill_tank()\n",
" \n",
" # our joice of representation for a tank!\n",
" # so that the user knows whats happening\n",
" def __repr__(self):\n",
" return \"tank_id: {}\\nlevel: {}\\nrate: {}\".format(self.tank_id,self.level,self.rate)\n",
"\n",
"\n",
"# 2 ---\n",
"# in order to automatically init our tanks we will have to \n",
"# provide the network structure and attributes of all tanks.\n",
"# a graph would be a good way to go. But we want to keep thinks nice and simple!\n",
"# lets go with some dictionaries, we could write adapters for graphs later...\n",
"# network_structure = {tank_down_i:[tank_up_i,tank_up_(i+1),...],} eg.: {6:[4,5],4:[1,2],5:[3]}\n",
"# attributes = {tank_id:(tank_level, tank_rate),...}\n",
"def initiate_tanks(network_structure, attributes):\n",
" # init all tanks without upstream tanks\n",
" tanks = {}\n",
" for tank_id in attributes:\n",
" level = attributes[tank_id][0]\n",
" rate = attributes[tank_id][1]\n",
" tanks[tank_id] = Tank(tank_id, level, rate, upstream_tanks=None)\n",
" # add upstream tanks\n",
" for tank_id in network_structure:\n",
" tanks[tank_id].upstream_tanks = [tanks[tank_id_up] for tank_id_up in network_structure[tank_id]]\n",
" return tanks\n",
"\n",
"# 3 ---\n",
"# \n",
"# \n",
"def get_levels_upstream(fill_dict,tank):\n",
" fill_dict[tank.tank_id].append(tank.level)\n",
" if tank.upstream_tanks is not None:\n",
" for uptank in tank.upstream_tanks:\n",
" get_levels_upstream(fill_dict, uptank) \n",
"\n",
"### --- User Code ---\n",
"\n",
"## define network and attributes \n",
"network_structure = {6:[4,5],4:[1,2],5:[3]}\n",
"attributes = {1:(10, 0.0),\n",
" 2:(20, 0.06),\n",
" 3:(15, 0.9),\n",
" 4:(8, 0.3),\n",
" 5:(44, 0.5),\n",
" 6:(2.5, 0.0)}\n",
"\n",
"## generate the network\n",
"all_tanks = initiate_tanks(network_structure,attributes)\n",
"final_tank = all_tanks[6] # only the last tank is necessary to run the entire simulation\n",
"\n",
"## simulate \n",
"levels = {k:[] for k in range(7)[1:]} # init dict for our level values\n",
"for dt in range(100):\n",
" get_levels_upstream(levels,final_tank) # retrieve levels for every iteration\n",
" final_tank.fill_tank() # open valves and let the water through to our last tank!\n",
" \n",
" # checking the mass balance ?\n",
" # print(sum([levels[key][-1] for key in levels])) \n",
"\n",
"\n",
"# checking results\n",
"import matplotlib.pyplot as plt\n",
"fig, axis = plt.subplots(6,1,figsize = (12,8))\n",
"for idx, ax in enumerate(axis):\n",
" ax.plot(levels[idx+1])\n",
" ax.set_title(idx+1)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'version 6'"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"version 6\"\"\"\n",
"# Document our code, in a way we can use it together with sphinx!\n",
"\n",
"# Lets try to change our code so it represents the reality better and is more generic\n",
"# Some improvements we want to make:\n",
"# 1.\n",
"# It would be great to have a better representation for a tank, \n",
"# so that someone else using our program\n",
"# also understands whats goin on.\n",
"\n",
"# 2.\n",
"# Additionally it would be beneficial to have a simply way to \n",
"# create complex networks automatically without us\n",
"# having to initiate all the tanks by hand\n",
"\n",
"# 3.\n",
"# We will want to check the tank levels during our simulation. \n",
"# So lets make sure we write a convenience function for that \n",
"\n",
"# 1 ---\n",
"# A tank is a object we can touch,\n",
"# it has attributes like level and id and so on,\n",
"# discharge is property of a tank, furthermore it does have the capability to fill up (a function or method)\n",
"class Tank:\n",
" def __init__(self, tank_id, level, rate, upstream_tanks=None):\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" self.tank_id = tank_id\n",
" self.level = level\n",
" self.rate = rate\n",
" self.upstream_tanks = upstream_tanks\n",
" \n",
" # the method Q calculates the flow of a given tank every time it's called\n",
" @property # allows use of the method without brackets \n",
" def Q(self):\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" return self.level * self.rate\n",
" \n",
" # filling a tank from all its upstream tanks\n",
" def fill_tank(self):\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" self.level -= self.Q\n",
" if self.upstream_tanks is not None:\n",
" for uptank in self.upstream_tanks:\n",
" # recursion (sort of)\n",
" self.level += uptank.Q\n",
" uptank.fill_tank()\n",
" \n",
" # our joice of representation for a tank!\n",
" # so that the user knows whats happening\n",
" def __repr__(self):\n",
" return \"tank_id: {}\\nlevel: {}\\nrate: {}\".format(self.tank_id,self.level,self.rate)\n",
"\n",
"\n",
"# 2 ---\n",
"# in order to automatically init our tanks we will have to \n",
"# provide the network structure and attributes of all tanks.\n",
"# a graph would be a good way to go. But we want to keep thinks nice and simple!\n",
"# lets go with some dictionaries, we could write adapters for graphs later...\n",
"# network_structure = {tank_down_i:[tank_up_i,tank_up_(i+1),...],} eg.: {6:[4,5],4:[1,2],5:[3]}\n",
"# attributes = {tank_id:(tank_level, tank_rate),...}\n",
"def initiate_tanks(network_structure, attributes):\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" # init all tanks without upstream tanks\n",
" tanks = {}\n",
" for tank_id in attributes:\n",
" level = attributes[tank_id][0]\n",
" rate = attributes[tank_id][1]\n",
" tanks[tank_id] = Tank(tank_id, level, rate, upstream_tanks=None)\n",
" # add upstream tanks\n",
" for tank_id in network_structure:\n",
" tanks[tank_id].upstream_tanks = [tanks[tank_id_up] for tank_id_up in network_structure[tank_id]]\n",
" return tanks\n",
"\n",
"# 3 ---\n",
"# \n",
"# \n",
"def get_levels_upstream(fill_dict,tank):\n",
" \"\"\"\n",
" \n",
" \"\"\"\n",
" fill_dict[tank.tank_id].append(tank.level)\n",
" if tank.upstream_tanks is not None:\n",
" for uptank in tank.upstream_tanks:\n",
" get_levels_upstream(fill_dict, uptank) \n",
"\n",
"### --- User Code ---\n",
"\n",
"## define network and attributes \n",
"network_structure = {6:[4,5],4:[1,2],5:[3]}\n",
"attributes = {1:(10, 0.0),\n",
" 2:(20, 0.06),\n",
" 3:(15, 0.9),\n",
" 4:(8, 0.3),\n",
" 5:(44, 0.5),\n",
" 6:(2.5, 0.0)}\n",
"\n",
"## generate the network\n",
"all_tanks = initiate_tanks(network_structure,attributes)\n",
"final_tank = all_tanks[6] # only the last tank is necessary to run the entire simulation\n",
"\n",
"## simulate \n",
"levels = {k:[] for k in range(7)[1:]} # init dict for our level values\n",
"for dt in range(100):\n",
" get_levels_upstream(levels,final_tank) # retrieve levels for every iteration\n",
" final_tank.fill_tank() # open valves and let the water through to our last tank!\n",
" \n",
" # checking the mass balance ?\n",
" # print(sum([levels[key][-1] for key in levels])) \n",
"\n",
"\n",
"# checking results\n",
"import matplotlib.pyplot as plt\n",
"fig, axis = plt.subplots(6,1,figsize = (12,8))\n",
"for idx, ax in enumerate(axis):\n",
" ax.plot(levels[idx+1])\n",
" ax.set_title(idx+1)\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
"source": [
"\"\"\"version 7\"\"\"\n",
"# let's make it a package!\n"
]
},
{
"cell_type": "code",
......@@ -666,7 +1062,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
"version": "3.7.3"
}
},
"nbformat": 4,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment