{"id":843,"date":"2015-04-01T10:21:12","date_gmt":"2015-04-01T17:21:12","guid":{"rendered":"http:\/\/homepages.uc.edu\/~yaozo\/wordpress\/?p=843"},"modified":"2015-04-01T10:21:12","modified_gmt":"2015-04-01T17:21:12","slug":"plume-model","status":"publish","type":"post","link":"https:\/\/zhuoyao.net\/index.php\/2015\/04\/01\/plume-model\/","title":{"rendered":"Plume Model"},"content":{"rendered":"<div class=\"row-fluid\">\n<div class=\"span12\">\n<section class=\"h1\">For this workshop session we will consider a release of pollution from a point source.<\/p>\n<p>The scenario is that a pollution release from a research plant on the coast has resulted in a pollution plume over the county. Scientists have a model for the pollution density, and want to know which towns will be exposed to a level of pollution over 9000ng (nanograms) per square metre.<\/p>\n<p>We need a number of packages for this.<\/p>\n<div id=\"packages\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"sp\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"raster\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"rgdal\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"rgeos\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>We&#8217;ll compute a colour palette for plots, and set it as default for sp graphics:<\/p>\n<div id=\"palette\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"RColorBrewer\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">colours<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=colorRampPalette\" target=\"_blank\" rel=\"noopener\">colorRampPalette<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=brewer.pal\" target=\"_blank\" rel=\"noopener\">brewer.pal<\/a><span class=\"keyword\">(<\/span><span class=\"number\">7<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"OrRd\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">-<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">(<\/span><span class=\"number\">50<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sp.theme\" target=\"_blank\" rel=\"noopener\">sp.theme<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">set<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">regions<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=list\" target=\"_blank\" rel=\"noopener\">list<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">colours<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>All our data files are in a folder called <code>Data<\/code> at the same level as the current folder:<\/p>\n<div id=\"setdd\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">Datadir<\/span> <span class=\"assignement\">=<\/span> <span class=\"string\">\"..\/Data\"<\/span>\n<span class=\"symbol\">Datafile<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">f<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=file.path\" target=\"_blank\" rel=\"noopener\">file.path<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">f<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>You should make sure <code>Datadir<\/code> is set to the place you&#8217;ve put the data files. If you have the <code>tcltk<\/code> package, then you can use <code>as.character(tcltk::tkchooseDirectory())<\/code>. Don&#8217;t put a trailing slash or backslash at the end of <code>Datadir<\/code> or files might not be found.<\/p>\n<\/section>\n<section class=\"h1\">\n<h1>Plume Model<\/h1>\n<p>We will use a simple model for the spread of pollution. The total pollution at a location at distance <span id=\"MathJax-Element-1-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-1\" class=\"math\"><span id=\"MathJax-Span-2\" class=\"mrow\"><span id=\"MathJax-Span-3\" class=\"mi\">d<\/span><\/span><\/span><\/span> and angle <span id=\"MathJax-Element-2-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-4\" class=\"math\"><span id=\"MathJax-Span-5\" class=\"mrow\"><span id=\"MathJax-Span-6\" class=\"mi\">\u03b8<\/span><\/span><\/span><\/span> from the point source is given by:<\/p>\n<div class=\"MathJax_Display\"><span id=\"MathJax-Element-3-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-7\" class=\"math\"><span id=\"MathJax-Span-8\" class=\"mrow\"><span id=\"MathJax-Span-9\" class=\"mi\">f<\/span><span id=\"MathJax-Span-10\" class=\"mo\">=<\/span><span id=\"MathJax-Span-11\" class=\"mi\">\u03b1<\/span><span id=\"MathJax-Span-12\" class=\"mi\">exp<\/span><span id=\"MathJax-Span-13\" class=\"mo\"><\/span><span id=\"MathJax-Span-14\" class=\"mo\">(<\/span><span id=\"MathJax-Span-15\" class=\"mo\">\u2212<\/span><span id=\"MathJax-Span-16\" class=\"mo\">(<\/span><span id=\"MathJax-Span-17\" class=\"mi\">d<\/span><span id=\"MathJax-Span-18\" class=\"texatom\"><span id=\"MathJax-Span-19\" class=\"mrow\"><span id=\"MathJax-Span-20\" class=\"mo\">\/<\/span><\/span><\/span><span id=\"MathJax-Span-21\" class=\"mi\">\u03b2<\/span><span id=\"MathJax-Span-22\" class=\"msubsup\"><span id=\"MathJax-Span-23\" class=\"mo\">)<\/span><span id=\"MathJax-Span-24\" class=\"mn\">2<\/span><\/span><span id=\"MathJax-Span-25\" class=\"msubsup\"><span id=\"MathJax-Span-26\" class=\"mi\">e<\/span><span id=\"MathJax-Span-27\" class=\"texatom\"><span id=\"MathJax-Span-28\" class=\"mrow\"><span id=\"MathJax-Span-29\" class=\"mo\">\u2212<\/span><span id=\"MathJax-Span-30\" class=\"mi\">\u03ba<\/span><span id=\"MathJax-Span-31\" class=\"mi\">c<\/span><span id=\"MathJax-Span-32\" class=\"mi\">o<\/span><span id=\"MathJax-Span-33\" class=\"mi\">s<\/span><span id=\"MathJax-Span-34\" class=\"mo\">(<\/span><span id=\"MathJax-Span-35\" class=\"mi\">\u03b8<\/span><span id=\"MathJax-Span-36\" class=\"mo\">\u2212<\/span><span id=\"MathJax-Span-37\" class=\"mi\">\u03d5<\/span><span id=\"MathJax-Span-38\" class=\"msubsup\"><span id=\"MathJax-Span-39\" class=\"mo\">)<\/span><span id=\"MathJax-Span-40\" class=\"mn\">2<\/span><\/span><\/span><\/span><\/span><span id=\"MathJax-Span-41\" class=\"mo\">)<\/span><\/span><\/span><\/span><\/div>\n<p>Where <span id=\"MathJax-Element-4-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-42\" class=\"math\"><span id=\"MathJax-Span-43\" class=\"mrow\"><span id=\"MathJax-Span-44\" class=\"mi\">\u03b1<\/span><\/span><\/span><\/span> is the pollution level at distance zero, <span id=\"MathJax-Element-5-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-45\" class=\"math\"><span id=\"MathJax-Span-46\" class=\"mrow\"><span id=\"MathJax-Span-47\" class=\"mi\">\u03b2<\/span><\/span><\/span><\/span> is a distance scale factor, <span id=\"MathJax-Element-6-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-48\" class=\"math\"><span id=\"MathJax-Span-49\" class=\"mrow\"><span id=\"MathJax-Span-50\" class=\"mi\">\u03d5<\/span><\/span><\/span><\/span> is the major angle of the pollution plume, and <span id=\"MathJax-Element-7-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-51\" class=\"math\"><span id=\"MathJax-Span-52\" class=\"mrow\"><span id=\"MathJax-Span-53\" class=\"mi\">\u03ba<\/span><\/span><\/span><\/span> is the eccentricity. If <span id=\"MathJax-Element-8-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-54\" class=\"math\"><span id=\"MathJax-Span-55\" class=\"mrow\"><span id=\"MathJax-Span-56\" class=\"mi\">\u03ba<\/span><\/span><\/span><\/span> is 0 then the plume becomes a circularly symmetric exponential decay, and as <span id=\"MathJax-Element-9-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-57\" class=\"math\"><span id=\"MathJax-Span-58\" class=\"mrow\"><span id=\"MathJax-Span-59\" class=\"mi\">\u03ba<\/span><\/span><\/span><\/span> increases the plume becomes more stretched in the direction of the <span id=\"MathJax-Element-10-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-60\" class=\"math\"><span id=\"MathJax-Span-61\" class=\"mrow\"><span id=\"MathJax-Span-62\" class=\"mi\">\u03d5<\/span><\/span><\/span><\/span> parameter. You can consider <span id=\"MathJax-Element-11-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-63\" class=\"math\"><span id=\"MathJax-Span-64\" class=\"mrow\"><span id=\"MathJax-Span-65\" class=\"mi\">\u03ba<\/span><\/span><\/span><\/span> and <span id=\"MathJax-Element-12-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-66\" class=\"math\"><span id=\"MathJax-Span-67\" class=\"mrow\"><span id=\"MathJax-Span-68\" class=\"mi\">\u03d5<\/span><\/span><\/span><\/span> as the wind strength and direction respectively.<\/p>\n<p>We can create a plume function that computes the pollution for a given source <code>src<\/code> at a number of destinations <code>dst<\/code> given a set of parameters:<\/p>\n<div id=\"plume\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">pfunc<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">d2<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">ang<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">phi<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">## plume value for distance-squared d2<\/span>\n    <span class=\"symbol\">a<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=exp\" target=\"_blank\" rel=\"noopener\">exp<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">-<\/span><span class=\"keyword\">(<\/span><span class=\"symbol\">d2<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=exp\" target=\"_blank\" rel=\"noopener\">exp<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">-<\/span><span class=\"symbol\">k<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cos\" target=\"_blank\" rel=\"noopener\">cos<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ang<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">phi<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">b<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">plume<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">src<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">dst<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">phi<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">## plume value for src at dst<\/span>\n    <span class=\"symbol\">src<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">src<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">dst<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">dst<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">d2<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">dst<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">src<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span> <span class=\"keyword\">+<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">dst<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">src<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span>\n    <span class=\"symbol\">ang<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=atan2\" target=\"_blank\" rel=\"noopener\">atan2<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">dst<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">src<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">dst<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">src<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=pfunc\" target=\"_blank\" rel=\"noopener\">pfunc<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">d2<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">ang<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">phi<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Load Data<\/h1>\n<p>We will use three data sets &#8211; the location of the pollution source, the location and population of towns from a UK gazetteer source, and a polygon boundary of Cumbria obtained from the <code>gadm<\/code> web site.<\/p>\n<p>Two of the datasets are in lat-long format, so we use <code>spTransform<\/code> to convert them to Ordnance Survey grid references in metres with a little wrapper function. We then make a quick map with the source as a red dot and the towns as crosses.<\/p>\n<div id=\"data\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">toOSGB<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">s<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spTransform\" target=\"_blank\" rel=\"noopener\">spTransform<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">s<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=CRS\" target=\"_blank\" rel=\"noopener\">CRS<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"+init=epsg:27700\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<span class=\"symbol\">cumbria<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=toOSGB\" target=\"_blank\" rel=\"noopener\">toOSGB<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"cumbria\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">nuclear<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=toOSGB\" target=\"_blank\" rel=\"noopener\">toOSGB<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"nuclear\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">ukgaz<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"ukgaz\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nuclear<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">pch<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">19<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"red\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Base map\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-data\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-data.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Compute the Plume<\/h1>\n<p>To map the plume we create a 500&#215;500 raster that spans the polygon and then fill it with values computed by the <code>plume<\/code> function. The call to <code>SpatialPoints(plevel)<\/code> creates a set of coordinates of all the grid cells at which to compute the plume values. The plume parameters have been given to us by some scientists who tell us that&#8217;s what they are and that&#8217;s what we should use. You will notice that the wind has been blowing at an angle of <span id=\"MathJax-Element-13-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-69\" class=\"math\"><span id=\"MathJax-Span-70\" class=\"mrow\"><span id=\"MathJax-Span-71\" class=\"mi\">\u03c0<\/span><span id=\"MathJax-Span-72\" class=\"texatom\"><span id=\"MathJax-Span-73\" class=\"mrow\"><span id=\"MathJax-Span-74\" class=\"mo\">\/<\/span><\/span><\/span><span id=\"MathJax-Span-75\" class=\"mn\">4<\/span><\/span><\/span><\/span>, for example. We plot the plume and the other data on a map.<\/p>\n<div id=\"computePlume\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">plevel<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=raster\" target=\"_blank\" rel=\"noopener\">raster<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extent\" target=\"_blank\" rel=\"noopener\">extent<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">nrows<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">500<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ncols<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">500<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">plevel<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plume\" target=\"_blank\" rel=\"noopener\">plume<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nuclear<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPoints\" target=\"_blank\" rel=\"noopener\">SpatialPoints<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">12000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">400<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">5<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">pi<\/span><span class=\"keyword\">\/<\/span><span class=\"number\">4<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=projection\" target=\"_blank\" rel=\"noopener\">projection<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">colours<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nuclear<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">pch<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">19<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"red\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Plume Spread\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-computePlume\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-computePlume.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Urban Exposure<\/h1>\n<p>We could compute the exposure at each town by working out the distance and angle of each town from the source and calling the plume function. Instead we&#8217;ll use the <code>extract<\/code> function to sample from the raster grid at the town locations. Then we can extract the towns that have an exposure over 9000ng\/<span id=\"MathJax-Element-14-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-76\" class=\"math\"><span id=\"MathJax-Span-77\" class=\"mrow\"><span id=\"MathJax-Span-78\" class=\"msubsup\"><span id=\"MathJax-Span-79\" class=\"mi\">m<\/span><span id=\"MathJax-Span-80\" class=\"mn\">2<\/span><\/span><\/span><\/span><\/span> and put them in a table.<\/p>\n<div id=\"exposure\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">exposure<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extract\" target=\"_blank\" rel=\"noopener\">extract<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">over9000<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">exposure<\/span> <span class=\"keyword\">&gt;<\/span> <span class=\"number\">9000<\/span>\n<span class=\"symbol\">dangerTowns<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=data.frame\" target=\"_blank\" rel=\"noopener\">data.frame<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">over9000<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Name\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"pop\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"exposure\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">dangerTowns<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">                Name  pop exposure\n4            Keswick 5508     9063\n28        Borrowdale  438     9355\n43            Lorton  250     9158\n46        Loweswater  209    10350\n50        Buttermere  127    10713\n97          Gosforth 1230    11135\n100         Lamplugh  763     9323\n109 Ennerdale Bridge  240    10536\n110            Haile  237    10921\n112         Ponsonby   92    11961\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>River Exposure<\/h1>\n<p>The authorities want to know which rivers have been exposed to a level over 9000ng\/<span id=\"MathJax-Element-15-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-81\" class=\"math\"><span id=\"MathJax-Span-82\" class=\"mrow\"><span id=\"MathJax-Span-83\" class=\"msubsup\"><span id=\"MathJax-Span-84\" class=\"mi\">m<\/span><span id=\"MathJax-Span-85\" class=\"mn\">2<\/span><\/span><\/span><\/span><\/span> of pollution. To compute this we will work out the 9000ng\/<span id=\"MathJax-Element-16-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-86\" class=\"math\"><span id=\"MathJax-Span-87\" class=\"mrow\"><span id=\"MathJax-Span-88\" class=\"msubsup\"><span id=\"MathJax-Span-89\" class=\"mi\">m<\/span><span id=\"MathJax-Span-90\" class=\"mn\">2<\/span><\/span><\/span><\/span><\/span> contour from the plume and intersect it with a river dataset. The following functions compute the polygonal contour of the plume function given a value.<\/p>\n<div id=\"plumecontour\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">invpfunc<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">ang<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">phi<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">f<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">### inverse plume function - compute distance given f<\/span>\n    <span class=\"symbol\">d2<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">-<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=log\" target=\"_blank\" rel=\"noopener\">log<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">f<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">a<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">*<\/span> <span class=\"symbol\">b<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span><span class=\"keyword\">\/<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=exp\" target=\"_blank\" rel=\"noopener\">exp<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">-<\/span><span class=\"symbol\">k<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cos\" target=\"_blank\" rel=\"noopener\">cos<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ang<\/span> <span class=\"keyword\">-<\/span> <span class=\"symbol\">phi<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">^<\/span><span class=\"number\">2<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sqrt\" target=\"_blank\" rel=\"noopener\">sqrt<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">d2<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">contourPlume<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">src<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">phi<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">f<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">### return a SpatialPolygon of a plume function at value f<\/span>\n    <span class=\"comment\">### by sweeping round 360 degrees and computing the distance<\/span>\n    <span class=\"symbol\">ang<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=seq\" target=\"_blank\" rel=\"noopener\">seq<\/a><span class=\"keyword\">(<\/span><span class=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span> <span class=\"keyword\">*<\/span> <span class=\"symbol\">pi<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">len<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">360<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">d<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=invpfunc\" target=\"_blank\" rel=\"noopener\">invpfunc<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ang<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">a<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">b<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">k<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">phi<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">f<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">f<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">xy<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">src<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">polys<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPolygons\" target=\"_blank\" rel=\"noopener\">SpatialPolygons<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=list\" target=\"_blank\" rel=\"noopener\">list<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Polygons\" target=\"_blank\" rel=\"noopener\">Polygons<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=list\" target=\"_blank\" rel=\"noopener\">list<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Polygon\" target=\"_blank\" rel=\"noopener\">Polygon<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cbind\" target=\"_blank\" rel=\"noopener\">cbind<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">xy<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">+<\/span> <span class=\"symbol\">d<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sin\" target=\"_blank\" rel=\"noopener\">sin<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ang<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">xy<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span> <span class=\"keyword\">+<\/span> <span class=\"symbol\">d<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cos\" target=\"_blank\" rel=\"noopener\">cos<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ang<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span>\n        <span class=\"argument\">ID<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">polys<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">src<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">polys<\/span>\n<span class=\"keyword\">}<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>First we&#8217;ll load the rivers and lakes data, then compute the 9000 contour and intersect it with the rivers.<\/p>\n<div id=\"loadrivers\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">rivers<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=toOSGB\" target=\"_blank\" rel=\"noopener\">toOSGB<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"rivers\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">lakes<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=toOSGB\" target=\"_blank\" rel=\"noopener\">toOSGB<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"naturalwater\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">nineK<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=contourPlume\" target=\"_blank\" rel=\"noopener\">contourPlume<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nuclear<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">12000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">400<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">5<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">pi<\/span><span class=\"keyword\">\/<\/span><span class=\"number\">4<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">9000<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">rivers9k<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=gIntersection\" target=\"_blank\" rel=\"noopener\">gIntersection<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nineK<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">rivers<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">byid<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">rivers9k<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"blue\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lwd<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">3<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">rivers<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"blue\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lty<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nineK<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">lakes<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"blue\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"River sections with &gt;9000 exposure\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-loadrivers\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-loadrivers.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Lake Exposure<\/h1>\n<p>This region of England contains not only its highest mountain but also its deepest lake. We want to compute the total pollution that lands on the lakes. For this we use polygons from the natural water dataset.<\/p>\n<div id=\"loadwater\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">lakes<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=toOSGB\" target=\"_blank\" rel=\"noopener\">toOSGB<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"naturalwater\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">colours<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">lakes<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"#0000FF\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Lakes\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-loadwater\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-loadwater.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>The <code>extract<\/code> function can now be used to sum the plume within polygons. We multiply by the grid cell area in metres and divide by <span id=\"MathJax-Element-17-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-91\" class=\"math\"><span id=\"MathJax-Span-92\" class=\"mrow\"><span id=\"MathJax-Span-93\" class=\"msubsup\"><span id=\"MathJax-Span-94\" class=\"mn\">10<\/span><span id=\"MathJax-Span-95\" class=\"mn\">9<\/span><\/span><\/span><\/span><\/span> to get the total pollution in grams that has gone into the lake.<\/p>\n<div id=\"lakesum\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">lakes<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">pollution<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extract\" target=\"_blank\" rel=\"noopener\">extract<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">lakes<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">sum<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">small<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">*<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=prod\" target=\"_blank\" rel=\"noopener\">prod<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=res\" target=\"_blank\" rel=\"noopener\">res<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">\/<\/span><span class=\"number\">1e+09<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>We can then plot the ten most polluted lakes by total pollution amount. Notice the use of the <code>RColorBrewer<\/code> and <code>lattice<\/code> packages to modify the default behaviour of the <code>spplot<\/code> function. We add <code>sp.text<\/code>to the panel function to label the lakes &#8211; the default label position sits right over the feature so we adjust its position slightly.<\/p>\n<div id=\"laketable\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"lattice\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"RColorBrewer\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">top10<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=order\" target=\"_blank\" rel=\"noopener\">order<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">lakes<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">pollution<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">decreasing<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">:<\/span><span class=\"number\">10<\/span><span class=\"keyword\">]<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spplot\" target=\"_blank\" rel=\"noopener\">spplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">lakes<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">top10<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"pollution\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">panel<\/span> <span class=\"argument\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">...<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=panel.polygonsplot\" target=\"_blank\" rel=\"noopener\">panel.polygonsplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">...<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sp.text\" target=\"_blank\" rel=\"noopener\">sp.text<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">lakes<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">top10<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">lakes<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">name<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">top10<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">adj<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Lake exposure\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">lakes<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">top10<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##     osm_id               name  type pollution\n## 34 4580520      Derwent Water water    49.000\n## 35 4580524 Bassenthwaite Lake water    45.264\n## 44 4582862          Ullswater water    35.408\n## 39 4580535    Ennerdale Water water    32.499\n## 37 4580533     Crummock Water water    27.251\n## 40 4580536         Wast Water water    23.733\n## 38 4580534         Buttermere water    10.498\n## 36 4580532         Loweswater water     5.870\n## 46 4583133      Floutern Tarn water     2.703\n## 60 4583896     Greendale Tarn water     2.053\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-laketable\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-laketable.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<div class=\"well aside\">\n<h1><i class=\"icon-warning-sign\"><\/i>Simulating Sensor Samples<\/h1>\n<p>In this section we will briefly <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fourth_wall\" target=\"_blank\" rel=\"noopener\">&#8216;break the fourth wall&#8217;<\/a> and talk about how we simulate the sample measurements for the next part.<\/p>\n<p>Since there hasn&#8217;t really been a major pollution incident, we will have to simulate the results of sensor sampling. We could just take the values from the <code>plevel<\/code> raster, but that would be exact, and statistics is never exact. We could add some independent random noise to the plume raster data for each sensor but that&#8217;s not very satisfactory either. That would be equivalent to saying our measurement process is very poor &#8211; and if we took the reading again at the same point we&#8217;d get a different value. This is true in reality &#8211; no instrument has infinite precision &#8211; but it shouldn&#8217;t swamp the rest of the variability.<\/p>\n<p>What we&#8217;ll do instead is create a smoothly varying raster that is the value of a measurement taken at that point. The reason this varies from the plume value could be topology, or land cover, or rainfall, or some other spatially-continuous process. We could also add further independent random noise to these numbers to represent the imprecision of the device.<\/p>\n<p>This function creates a number of points over a grid and then does a crude smoothing using the <code>idw<\/code> function (of which more later). This is then added to the input raster to create a smoothly varying version of the input. The various parameters can change aspects of the output, but have been set at useful values for the case at hand. After this section of code, the values in raster <code>sensorValues<\/code> will be the reading of a sensor placed at those locations.<\/p>\n<div id=\"noisyraster\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"automap\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">noisyRaster<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">crs<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">npts<\/span> <span class=\"eqformalargs\">=<\/span> <span class=\"number\">300<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">idp<\/span> <span class=\"eqformalargs\">=<\/span> <span class=\"number\">4<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">a<\/span> <span class=\"eqformalargs\">=<\/span> <span class=\"number\">3000<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"symbol\">pts<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spsample\" target=\"_blank\" rel=\"noopener\">spsample<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPoints\" target=\"_blank\" rel=\"noopener\">SpatialPoints<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">npts<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">type<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"random\"<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">pts<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPointsDataFrame\" target=\"_blank\" rel=\"noopener\">SpatialPointsDataFrame<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pts<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=data.frame\" target=\"_blank\" rel=\"noopener\">data.frame<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">Z<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rnorm\" target=\"_blank\" rel=\"noopener\">rnorm<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">npts<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pts<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=CRS\" target=\"_blank\" rel=\"noopener\">CRS<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">fk<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=idw\" target=\"_blank\" rel=\"noopener\">idw<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Z<\/span> <span class=\"keyword\">~<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">pts<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPoints\" target=\"_blank\" rel=\"noopener\">SpatialPoints<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">proj4string<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">crs<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">idp<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">idp<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">fkp<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">plevel<\/span>\n    <span class=\"symbol\">fkp<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">fk<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">var1.pred<\/span>\n    <span class=\"symbol\">pmax<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=max\" target=\"_blank\" rel=\"noopener\">max<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=values\" target=\"_blank\" rel=\"noopener\">values<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=return\" target=\"_blank\" rel=\"noopener\">return<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">fkp<\/span> <span class=\"keyword\">*<\/span> <span class=\"symbol\">a<\/span> <span class=\"keyword\">*<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">pmax<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <span class=\"symbol\">plevel<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">sensorValues<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=noisyRaster\" target=\"_blank\" rel=\"noopener\">noisyRaster<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">plevel<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=CRS\" target=\"_blank\" rel=\"noopener\">CRS<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [inverse distance weighted interpolation]\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Now we can take the coordinates of the villages, sample from the simulated sensor values at those locations, create a <code>SpatialPolygonsDataFrame<\/code> and save it to disk:<\/p>\n<div id=\"writesamples\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">samples<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Name\"<\/span><span class=\"keyword\">]<\/span>\n<span class=\"symbol\">samples<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">sample<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extract\" target=\"_blank\" rel=\"noopener\">extract<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sensorValues<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=writeOGR\" target=\"_blank\" rel=\"noopener\">writeOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"samples\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"ESRI Shapefile\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">overwrite<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rm\" target=\"_blank\" rel=\"noopener\">rm<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Great! Now, forget you did all that, and pretend that someone has gone to every village, taken a sensor reading, and put it all into a Shapefile for you. Read on&#8230;<\/p>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Sampling Stations<\/h1>\n<p>At each town and village location a sampling system was set up to measure the pollution. The data was supplied as a point Shapefile with the measurements in an attribute called <code>sample<\/code>. We&#8217;ll read this in and plot it.<\/p>\n<div id=\"readSamples\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">samples<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"samples\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spplot\" target=\"_blank\" rel=\"noopener\">spplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"sample\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Samples from towns\/villages\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-readSamples\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-readSamples.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Inverse Distance Weighting<\/h2>\n<p>The <code>automap<\/code> package has some functions for producing smoothed maps from point-sampled data. Perhaps the simplest method is inverse distance weighting. In this, the value at any point is a weighted sum of the sampled values, where the weight is inversely related to the distance, so that further points have little influence.<\/p>\n<p>The <code>idw<\/code> function performs inverse distance weighting, and a few more lines convert the predictions to a raster data set.<\/p>\n<div id=\"idwfit\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=library\" target=\"_blank\" rel=\"noopener\">library<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"automap\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">rIDW<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=raster\" target=\"_blank\" rel=\"noopener\">raster<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extent\" target=\"_blank\" rel=\"noopener\">extent<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ncol<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">100<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">nrow<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">100<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">crs<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=projection\" target=\"_blank\" rel=\"noopener\">projection<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">sampleFitIDW<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=idw\" target=\"_blank\" rel=\"noopener\">idw<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sample<\/span> <span class=\"keyword\">~<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">samples<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPoints\" target=\"_blank\" rel=\"noopener\">SpatialPoints<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">rIDW<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">proj4string<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=CRS\" target=\"_blank\" rel=\"noopener\">CRS<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [inverse distance weighted interpolation]\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">rIDW<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">sampleFitIDW<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">var1.pred<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">rIDW<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Inverse Distance Weighting\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-idwfit\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-idwfit.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>This looks rather spotty. We could try adjusting some of the parameters or we could use a more statistically principled method.<\/p>\n<h2>Kriging<\/h2>\n<p>Kriging can be thought of as similar to inverse distance weighting, but the effect of distance is derived from inspecting the relationship between sample points and their separation. This enables the construction of a &#8220;variogram&#8221;, and from this both an estimate and a variance of the sample measurement can be made over a grid.<\/p>\n<p>The <code>autoKrige<\/code> function returns and object that contains the prediction estimates and variances, and the variogram parameters. We first set up an empty rasters, <code>rKrige<\/code> to define the prediction locations, and call the <code>autoKrige<\/code> function. Plotting the <code>autoKrige<\/code> object shows the prediction, the standard error, and the variogram. The variogram is usually an increasing function with distance, showing that points further apart are less likely to be similar. Fitting variograms can be a fine art, with sometimes crucial selections of function parameters, ranges, and binning.<\/p>\n<div id=\"krigefit\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">sampleFit<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=autoKrige\" target=\"_blank\" rel=\"noopener\">autoKrige<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sample<\/span> <span class=\"keyword\">~<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: Removed 1 duplicate observation(s) in input_data:\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##          coordinates                 Name sample\n## 93  (301671, 507141)    St John Beckermet   3414\n## 104 (301671, 507141) St Bridget Beckermet   3414\n## [using ordinary kriging]\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sampleFit<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-krigefit\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-krigefit.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Exceedence Mapping<\/h2>\n<p>Because kriging gives us a prediction and standard error, we can make meaningful statements about the predictions. For example, we can compute the probability that the underlying value is over 9000 units by using the <code>pnorm<\/code> function with the given means and standard deviations.<\/p>\n<p>Then we can map areas that are definitely (<span id=\"MathJax-Element-18-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-96\" class=\"math\"><span id=\"MathJax-Span-97\" class=\"mrow\"><span id=\"MathJax-Span-98\" class=\"mi\">p<\/span><span id=\"MathJax-Span-99\" class=\"mo\">&gt;<\/span><span id=\"MathJax-Span-100\" class=\"mn\">0.95<\/span><\/span><\/span><\/span>) above 9000 in red, those that are definitely (<span id=\"MathJax-Element-19-Frame\" class=\"MathJax\"><span id=\"MathJax-Span-101\" class=\"math\"><span id=\"MathJax-Span-102\" class=\"mrow\"><span id=\"MathJax-Span-103\" class=\"mi\">p<\/span><span id=\"MathJax-Span-104\" class=\"mo\">&lt;<\/span><span id=\"MathJax-Span-105\" class=\"mn\">0.05<\/span><\/span><\/span><\/span>) below 9000 in blue, and the rest of the area in gray, showing this is a `gray area&#8217; where we cannot decide with confidence if the value is over 9000 units.<\/p>\n<p>First we&#8217;ll create two functions to compute these exceedences as a raster and to plot them. We&#8217;ll code significantly low as zero, significantly high as two, and intermediate as one.<\/p>\n<div id=\"exceedencefunctions\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">pOver<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">thresh<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">krigeFit<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">### convert kriging output to exceedence<\/span>\n\n    <span class=\"comment\">### pnorm computes probabilities from a Normal\/Gaussian distribution<\/span>\n    <span class=\"symbol\">pValue<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=pnorm\" target=\"_blank\" rel=\"noopener\">pnorm<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">thresh<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">krigeFit<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">krige_output<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">var1.pred<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">krigeFit<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">krige_output<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">var1.stdev<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lower.tail<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"comment\">### create a raster object from the kriging coordinates and the probability<\/span>\n    <span class=\"symbol\">pExceed<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rasterFromXYZ\" target=\"_blank\" rel=\"noopener\">rasterFromXYZ<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cbind\" target=\"_blank\" rel=\"noopener\">cbind<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">krigeFit<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">krige_output<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">pValue<\/span> <span class=\"keyword\">&gt;<\/span> <span class=\"number\">0.05<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">pValue<\/span> <span class=\"keyword\">&gt;<\/span> <span class=\"number\">0.95<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=attr\" target=\"_blank\" rel=\"noopener\">attr<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pExceed<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"thresh\"<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">thresh<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=return\" target=\"_blank\" rel=\"noopener\">return<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pExceed<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">eColours<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"#4040FF\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"grey\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"red\"<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"symbol\">plotExceed<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">pe<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">overlay<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">region<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">### plot the exceedence with a couple of additional overlays<\/span>\n    <span class=\"symbol\">thresh<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=attr\" target=\"_blank\" rel=\"noopener\">attr<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pe<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"thresh\"<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pe<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">eColours<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">legend<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=legend\" target=\"_blank\" rel=\"noopener\">legend<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"topright\"<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=paste\" target=\"_blank\" rel=\"noopener\">paste<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Under \"<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">thresh<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Gray Area\"<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=paste\" target=\"_blank\" rel=\"noopener\">paste<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Over \"<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">thresh<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">fill<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">eColours<\/span><span class=\"keyword\">,<\/span>\n        <span class=\"argument\">bg<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"white\"<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">overlay<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">region<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">add<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Now we&#8217;ll compute the exceedence map from the kriging and plot it.<\/p>\n<div id=\"exceedencecalc\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">pK<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=pOver\" target=\"_blank\" rel=\"noopener\">pOver<\/a><span class=\"keyword\">(<\/span><span class=\"number\">9000<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">sampleFit<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plotExceed\" target=\"_blank\" rel=\"noopener\">plotExceed<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">nineK<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Exceedence Map\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-exceedencecalc\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-exceedencecalc.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Additional Sampling Locations<\/h2>\n<p>Now we have been given the capability to deploy 25 new sensors. Where do we put them? There&#8217;s little point putting them in the areas where we are certain of the values, so we&#8217;ll put them within the convex hull of the grey area from the kriging. The <code>spsample<\/code> function can generate simple point sampling schemes, including random, gridded and the one we&#8217;ll use here, hexagonal. The hexagonal scheme might not generate exactly 25 sensor points, so we&#8217;ll add in some extra ones randomly to make up the numbers.<\/p>\n<div id=\"extrasamples\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"comment\"># grey cells are == 1<\/span>\n<span class=\"symbol\">greyPts<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPoints\" target=\"_blank\" rel=\"noopener\">SpatialPoints<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=xyFromCell\" target=\"_blank\" rel=\"noopener\">xyFromCell<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">:<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=length\" target=\"_blank\" rel=\"noopener\">length<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=values\" target=\"_blank\" rel=\"noopener\">values<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">)<\/span> == <span class=\"number\">1<\/span> <span class=\"keyword\">&amp;<\/span> <span class=\"keyword\">!<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=is.na\" target=\"_blank\" rel=\"noopener\">is.na<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=values\" target=\"_blank\" rel=\"noopener\">values<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">ch<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=chull\" target=\"_blank\" rel=\"noopener\">chull<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">greyPts<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">ch<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ch<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=length\" target=\"_blank\" rel=\"noopener\">length<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ch<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">ch<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">nNew<\/span> <span class=\"assignement\">=<\/span> <span class=\"number\">25<\/span>\n<span class=\"symbol\">newPts<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spsample\" target=\"_blank\" rel=\"noopener\">spsample<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Polygon\" target=\"_blank\" rel=\"noopener\">Polygon<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">greyPts<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">ch<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">nNew<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"hexagonal\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">extra<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">nNew<\/span> <span class=\"keyword\">-<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=length\" target=\"_blank\" rel=\"noopener\">length<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">if<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">extra<\/span> <span class=\"keyword\">&gt;<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"symbol\">more<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spsample\" target=\"_blank\" rel=\"noopener\">spsample<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Polygon\" target=\"_blank\" rel=\"noopener\">Polygon<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=coordinates\" target=\"_blank\" rel=\"noopener\">coordinates<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">greyPts<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">ch<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">extra<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"random\"<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">newPts<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rbind\" target=\"_blank\" rel=\"noopener\">rbind<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">more<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">eColours<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">legend<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=points\" target=\"_blank\" rel=\"noopener\">points<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">pch<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">19<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"New Sensor Locations\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-extrasamples\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-extrasamples.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<div class=\"well aside\">\n<h2><i class=\"icon-warning-sign\"><\/i>Faking The Sensor Measurements<\/h2>\n<p>Now we have to fake the sensor measurements by sampling from that raster we created.<\/p>\n<div id=\"extrasensorvalues\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">newPts2<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPointsDataFrame\" target=\"_blank\" rel=\"noopener\">SpatialPointsDataFrame<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=data.frame\" target=\"_blank\" rel=\"noopener\">data.frame<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">sample<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=extract\" target=\"_blank\" rel=\"noopener\">extract<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sensorValues<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">newPts<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts2<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=CRS\" target=\"_blank\" rel=\"noopener\">CRS<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=proj4string\" target=\"_blank\" rel=\"noopener\">proj4string<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">samples<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=writeOGR\" target=\"_blank\" rel=\"noopener\">writeOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts2<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"sensors\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"ESRI Shapefile\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">overwrite<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rm\" target=\"_blank\" rel=\"noopener\">rm<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">newPts2<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Now we have a Shapefile of simulated measurements at the new sensor locations that we can pretend someone gave us. Read on&#8230;<\/p>\n<\/div>\n<h2>Kriging With The New Data<\/h2>\n<p>The new sensor data has been supplied to us in a Shapefile. We&#8217;ll read this in and merge it with the original settlement measurements. We run the kriging function again. We then re-use our functions to compute and plot the exceedence.<\/p>\n<div id=\"krige2\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">sensors<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=readOGR\" target=\"_blank\" rel=\"noopener\">readOGR<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">Datadir<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"sensors\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## OGR data source with driver: ESRI Shapefile \n## Source: \"..\/Data\", layer: \"sensors\"\n## with 25 features and 1 fields\n## Feature type: wkbPoint with 2 dimensions\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">newData<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rbind\" target=\"_blank\" rel=\"noopener\">rbind<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sensors<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"sample\"<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">samples<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"sample\"<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">sampleFit2<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=autoKrige\" target=\"_blank\" rel=\"noopener\">autoKrige<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sample<\/span> <span class=\"keyword\">~<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">newData<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: Removed 1 duplicate observation(s) in input_data:\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##          coordinates sample\n## 118 (301671, 507141)   3414\n## 129 (301671, 507141)   3414\n## [using ordinary kriging]\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">pK2<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=pOver\" target=\"_blank\" rel=\"noopener\">pOver<\/a><span class=\"keyword\">(<\/span><span class=\"number\">9000<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">sampleFit2<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plotExceed\" target=\"_blank\" rel=\"noopener\">plotExceed<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK2<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">nineK<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">cumbria<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=title\" target=\"_blank\" rel=\"noopener\">title<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Exceedence Map\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-krige2\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-krige2.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>From this second map you should be able to see the grey area is smaller &#8211; we can create a table of pixel count in each category for the two exceedence maps which shows this change:<\/p>\n<div id=\"showetable\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">eTable<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=cbind\" target=\"_blank\" rel=\"noopener\">cbind<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=table\" target=\"_blank\" rel=\"noopener\">table<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=values\" target=\"_blank\" rel=\"noopener\">values<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=table\" target=\"_blank\" rel=\"noopener\">table<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=values\" target=\"_blank\" rel=\"noopener\">values<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">pK2<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rownames\" target=\"_blank\" rel=\"noopener\">rownames<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">eTable<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Low\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Grey\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"High\"<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=colnames\" target=\"_blank\" rel=\"noopener\">colnames<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">eTable<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"Settlements\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Plus Sensors\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">eTable<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##      Settlements Plus Sensors\n## Low         4426         4393\n## Grey         541          490\n## High          36          114\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Further Ideas<\/h1>\n<p>Instead of getting the sensor locations from the <code>spsample<\/code> function, you could try manually placing the sensors using the <code>locator()<\/code> function. Another possibility might be that sensors can only be placed on main roads &#8211; <code>spsample<\/code> can take points from lines too!<\/p>\n<\/section>\n<section class=\"h1\">\n<h1>Lessons Learnt<\/h1>\n<ul>\n<li>Reading vector data with <code>readOGR()<\/code><\/li>\n<li>Reading raster data with <code>raster()<\/code><\/li>\n<li>Transforming vectors with <code>spTransform()<\/code><\/li>\n<li>Mapping with <code>plot()<\/code> and <code>spplot()<\/code><\/li>\n<li>Point- and area-sampling rasters with <code>extract()<\/code><\/li>\n<li>Vector-vector intersection with <code>gIntersection()<\/code><\/li>\n<li>Simple kriging with the <code>automap<\/code> package<\/li>\n<li>Converting kriged output to raster format<\/li>\n<\/ul>\n<div class=\"aside well\">\n<h1>Coda<\/h1>\n<p>Because we simulated the sensor measurements, we can actually plot them. This is the underlying surface that the kriging was predicting:<\/p>\n<div id=\"sensorsurface\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">sensorValues<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/plume.html#img-sensorsurface\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/plume-sensorsurface.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<hr \/>\n<footer>\u00a9 Barry Rowlingson 2012 | stock imagery from <a href=\"http:\/\/www.sxc.hu\/\" target=\"_blank\" rel=\"noopener\">Stock.xchng<\/a><\/p>\n<p><a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/\" rel=\"license\"><img decoding=\"async\" src=\"http:\/\/i.creativecommons.org\/l\/by-nc-sa\/3.0\/88x31.png\" alt=\"Creative Commons License\" \/><\/a><br \/>\nUseR 2012 Spatial Data Workshop is licensed under a <a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/\" rel=\"license\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License<\/a>.<\/footer>\n","protected":false},"excerpt":{"rendered":"<p>For this workshop session we will consider a release of pollution from a point source. The scenario is that a pollution release from a research&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-843","post","type-post","status-publish","format-standard","hentry","category-r"],"_links":{"self":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/posts\/843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/comments?post=843"}],"version-history":[{"count":0,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/posts\/843\/revisions"}],"wp:attachment":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/media?parent=843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/categories?post=843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/tags?post=843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}