{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 重定义森林火灾模拟" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "在前面的例子中,我们定义了一个 `BurnableForest`,实现了一个循序渐进的生长和燃烧过程。\n", "\n", "假设我们现在想要定义一个立即燃烧的过程(每次着火之后燃烧到不能燃烧为止,之后再生长,而不是每次只燃烧周围的一圈树木),由于燃烧过程不同,我们需要从 `BurnableForest` 中派生出两个新的子类 `SlowBurnForest`(原来的燃烧过程) 和 `InsantBurnForest`,为此\n", "\n", "- 将 `BurnableForest` 中的 `burn_trees()` 方法改写,不做任何操作,直接 `pass`(因为在 `advance_one_step()` 中调用了它,所以不能直接去掉)\n", "- 在两个子类中定义新的 `burn_trees()` 方法。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "from scipy.ndimage.measurements import label\n", "\n", "class Forest(object):\n", " \"\"\" Forest can grow trees which eventually die.\"\"\"\n", " def __init__(self, size=(150,150), p_sapling=0.0025):\n", " self.size = size\n", " self.trees = np.zeros(self.size, dtype=bool)\n", " self.p_sapling = p_sapling\n", " \n", " def __repr__(self):\n", " my_repr = \"{}(size={})\".format(self.__class__.__name__, self.size)\n", " return my_repr\n", " \n", " def __str__(self):\n", " return self.__class__.__name__\n", " \n", " @property\n", " def num_cells(self):\n", " \"\"\"Number of cells available for growing trees\"\"\"\n", " return np.prod(self.size)\n", " \n", " @property\n", " def tree_fraction(self):\n", " \"\"\"\n", " Fraction of trees\n", " \"\"\"\n", " num_trees = self.trees.sum()\n", " return float(num_trees) / self.num_cells\n", " \n", " def _rand_bool(self, p):\n", " \"\"\"\n", " Random boolean distributed according to p, less than p will be True\n", " \"\"\"\n", " return np.random.uniform(size=self.trees.shape) < p\n", " \n", " def grow_trees(self):\n", " \"\"\"\n", " Growing trees.\n", " \"\"\"\n", " growth_sites = self._rand_bool(self.p_sapling)\n", " self.trees[growth_sites] = True \n", " \n", " def advance_one_step(self):\n", " \"\"\"\n", " Advance one step\n", " \"\"\"\n", " self.grow_trees()\n", "\n", "class BurnableForest(Forest):\n", " \"\"\"\n", " Burnable forest support fires\n", " \"\"\" \n", " def __init__(self, p_lightning=5.0e-6, **kwargs):\n", " super(BurnableForest, self).__init__(**kwargs)\n", " self.p_lightning = p_lightning \n", " self.fires = np.zeros((self.size), dtype=bool)\n", " \n", " def advance_one_step(self):\n", " \"\"\"\n", " Advance one step\n", " \"\"\"\n", " super(BurnableForest, self).advance_one_step()\n", " self.start_fires()\n", " self.burn_trees()\n", " \n", " @property\n", " def fire_fraction(self):\n", " \"\"\"\n", " Fraction of fires\n", " \"\"\"\n", " num_fires = self.fires.sum()\n", " return float(num_fires) / self.num_cells\n", " \n", " def start_fires(self):\n", " \"\"\"\n", " Start of fire.\n", " \"\"\"\n", " lightning_strikes = (self._rand_bool(self.p_lightning) & \n", " self.trees)\n", " self.fires[lightning_strikes] = True\n", " \n", " def burn_trees(self): \n", " pass\n", " \n", "class SlowBurnForest(BurnableForest):\n", " def burn_trees(self):\n", " \"\"\"\n", " Burn trees.\n", " \"\"\"\n", " fires = np.zeros((self.size[0] + 2, self.size[1] + 2), dtype=bool)\n", " fires[1:-1, 1:-1] = self.fires\n", " north = fires[:-2, 1:-1]\n", " south = fires[2:, 1:-1]\n", " east = fires[1:-1, :-2]\n", " west = fires[1:-1, 2:]\n", " new_fires = (north | south | east | west) & self.trees\n", " self.trees[self.fires] = False\n", " self.fires = new_fires\n", "\n", "class InstantBurnForest(BurnableForest):\n", " def burn_trees(self):\n", " # 起火点\n", " strikes = self.fires\n", " # 找到连通区域\n", " groves, num_groves = label(self.trees)\n", " fires = set(groves[strikes])\n", " self.fires.fill(False)\n", " # 将与着火点相连的区域都烧掉\n", " for fire in fires:\n", " self.fires[groves == fire] = True\n", " self.trees[self.fires] = False\n", " self.fires.fill(False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "测试:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "forest = Forest()\n", "sb_forest = SlowBurnForest()\n", "ib_forest = InstantBurnForest()\n", "\n", "forests = [forest, sb_forest, ib_forest]\n", "\n", "tree_history = []\n", "\n", "for i in xrange(1500):\n", " for fst in forests:\n", " fst.advance_one_step()\n", " tree_history.append(tuple(fst.tree_fraction for fst in forests))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "显示结果:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nIYRB/g+UqSYn01RDXAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "plt.figure(figsize=(10,6))\n", "\n", "plt.plot(tree_history)\n", "plt.legend([f.__str__() for f in forests])\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }