{"id":841,"date":"2015-04-01T10:20:00","date_gmt":"2015-04-01T17:20:00","guid":{"rendered":"http:\/\/homepages.uc.edu\/~yaozo\/wordpress\/?p=841"},"modified":"2015-04-01T10:20:00","modified_gmt":"2015-04-01T17:20:00","slug":"crime-data-mapping","status":"publish","type":"post","link":"https:\/\/zhuoyao.net\/index.php\/2015\/04\/01\/crime-data-mapping\/","title":{"rendered":"Crime Data Mapping"},"content":{"rendered":"<section class=\"h1\">For this workshop session we&#8217;ll read in some data and do some basic mapping.<\/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>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>Read The Street-level Crime Data<\/h1>\n<p>The crime data at the street level is supplied in a CSV file each month. We&#8217;ll read in one month and plot it. The coordinates are Ordnance Survey of Great Britain grid references, which is <a href=\"http:\/\/spatialreference.org\/ref\/epsg\/27700\/\" target=\"_blank\" rel=\"noopener\">EPSG code 27700<\/a>.<\/p>\n<div id=\"readstreet\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">streetCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=read.csv\" target=\"_blank\" rel=\"noopener\">read.csv<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Datafile\" target=\"_blank\" rel=\"noopener\">Datafile<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"2012-03-cumbria-street.csv\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=head\" target=\"_blank\" rel=\"noopener\">head<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##     Month          Reported.by         Falls.within Easting Northing                          Location Crime.type Context\n## 1 2012-03 Cumbria Constabulary Cumbria Constabulary  351534   492353          On or near Dowker'S Lane   Burglary      NA\n## 2 2012-03 Cumbria Constabulary Cumbria Constabulary  299210   528515            On or near Supermarket   Burglary      NA\n## 3 2012-03 Cumbria Constabulary Cumbria Constabulary  351183   492741        On or near Serpentine Road   Burglary      NA\n## 4 2012-03 Cumbria Constabulary Cumbria Constabulary  301277   524712          On or near Hallwood Road   Burglary      NA\n## 5 2012-03 Cumbria Constabulary Cumbria Constabulary  299416   527779 On or near Sports\/Recreation Area   Burglary      NA\n## 6 2012-03 Cumbria Constabulary Cumbria Constabulary  361096   478662            On or near Chapel Lane   Burglary      NA\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><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\">streetCrime<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">~<\/span><span class=\"symbol\">Easting<\/span> <span class=\"keyword\">+<\/span> <span class=\"symbol\">Northing<\/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\">streetCrime<\/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><span class=\"string\">\"+init=epsg:27700\"<\/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\">streetCrime<\/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\">\"Street-level crime 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\/crime.html#img-readstreet\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-readstreet.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>OSM Background<\/h2>\n<p>Can we do a nicer map using the <code>OpenStreetMap<\/code> package? This gives us a function to download and print map tiles from <a href=\"http:\/\/www.openstreetmap.org\/\">Open Street Map<\/a>, and other tile servers. These tiles use the Google Mercator coordinate system, so we have to transform our points to that. The <code>osm()<\/code> function returns the CRS string for the tiles.<\/p>\n<div id=\"osmness\" 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\">\"OpenStreetMap\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">latLongBox<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=bbox\" target=\"_blank\" rel=\"noopener\">bbox<\/a><span class=\"keyword\">(<\/span><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\">streetCrime<\/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:4326\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">map<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=openmap\" target=\"_blank\" rel=\"noopener\">openmap<\/a><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=\"symbol\">latLongBox<\/span><span class=\"keyword\">[<\/span><span class=\"number\">2<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">latLongBox<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/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=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">latLongBox<\/span><span class=\"keyword\">[<\/span><span class=\"number\">2<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">latLongBox<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"argument\">type<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"osm\"<\/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\">map<\/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><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\">streetCrime<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=osm\" target=\"_blank\" rel=\"noopener\">osm<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/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\/crime.html#img-osmness\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-osmness.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Using <code>ggplot<\/code><\/h2>\n<p>If we add the coordinates back to the data frame we can use <code>ggplot<\/code> to produce some nice plots:<\/p>\n<div id=\"ggmap\" 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\">\"ggplot2\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/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><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><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\">streetCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ggplot\" target=\"_blank\" rel=\"noopener\">ggplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=geom_point\" target=\"_blank\" rel=\"noopener\">geom_point<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=aes\" target=\"_blank\" rel=\"noopener\">aes<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Easting<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Northing<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">colour<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Crime.type<\/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=coord_equal\" target=\"_blank\" rel=\"noopener\">coord_equal<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=opts\" target=\"_blank\" rel=\"noopener\">opts<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">title<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Street Crime By Type\"<\/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\/crime.html#img-ggmap\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-ggmap.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Relative Rates<\/h1>\n<p>It is clear from the maps that there are more crimes in urban areas, because that&#8217;s where people live. What we really want to do is look at rates of crime relative to some baseline. We could use population if we had a good measure of baseline population, or we can compare one crime rate against all crimes.<\/p>\n<p>The <code>sparr<\/code> package provides functions for computing estimates of densities of point patterns using kernel smoothing. It has several methods for computing the kernel bandwidth, including adaptive methods. To use it we have to convert our points into an <code>ppp<\/code> object from the <code>spatstat<\/code> package. For the window containing the points we&#8217;ll use the convex hull. We&#8217;ll write a function that does the smoothing for a particular crime type. The function will convert the output from <code>bivariate.density<\/code> into a <code>raster<\/code> object. We&#8217;ll also read in some town locations and get the largest of them for some context when mapping.<\/p>\n<div id=\"smoothone\" 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\">\"spatstat\"<\/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\">\"sparr\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: RGL: unable to open X11 display\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: error in rgl_init\n<\/pre>\n<\/div>\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\">\"raster\"<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"symbol\">coords<\/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\">streetCrime<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">cHull<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.matrix\" target=\"_blank\" rel=\"noopener\">as.matrix<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">coords<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rev\" target=\"_blank\" rel=\"noopener\">rev<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=chull\" target=\"_blank\" rel=\"noopener\">chull<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">coords<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">data<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ppp\" target=\"_blank\" rel=\"noopener\">ppp<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">coords<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">coords<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">window<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=owin\" target=\"_blank\" rel=\"noopener\">owin<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">poly<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">cHull<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">marks<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Crime.type<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: data contain duplicated points\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">makeIntensity<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">data<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">type<\/span><span class=\"keyword\">)<\/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=bivariate.density\" target=\"_blank\" rel=\"noopener\">bivariate.density<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">data<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">data<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ID<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">type<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">intensity<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">comment<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">pilotH<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=diff\" target=\"_blank\" rel=\"noopener\">diff<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=range\" target=\"_blank\" rel=\"noopener\">range<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">data<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">x<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/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=raster\" target=\"_blank\" rel=\"noopener\">raster<\/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><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">d<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">X<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">d<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Y<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">z<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">d<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Zm<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">allCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=makeIntensity\" target=\"_blank\" rel=\"noopener\">makeIntensity<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">data<\/span><span class=\"keyword\">,<\/span> NULL<span class=\"keyword\">)<\/span>\n<span class=\"symbol\">asbos<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=makeIntensity\" target=\"_blank\" rel=\"noopener\">makeIntensity<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">data<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Anti-social behaviour\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: more than two distinct ID values detected in 'data'\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">drugs<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=makeIntensity\" target=\"_blank\" rel=\"noopener\">makeIntensity<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">data<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Drugs\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"warning\">\n<pre class=\"knitr\">## Warning message: more than two distinct ID values detected in 'data'\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><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<span class=\"symbol\">topTowns<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">ukgaz<\/span><span class=\"keyword\">[<\/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\">ukgaz<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">pop<\/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\">8<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span>\n\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=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"blue\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"gray\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"red\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">(<\/span><span class=\"number\">20<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<h2>ASBO ratio<\/h2>\n<div id=\"asbomap\" 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\">asbos<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">allCrime<\/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=text\" target=\"_blank\" rel=\"noopener\">text<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">topTowns<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">topTowns<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Name<\/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\">\"ASBOs as fraction of all crime\"<\/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\/crime.html#img-asbomap\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-asbomap.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>The regional rate of ASBO crime to all crime is <code class=\"knitr inline\">0.5248<\/code>. We can see that Kendal seems higher and Workington lower than this average value.<\/p>\n<h2>Drugs Ratio<\/h2>\n<div id=\"drugsmap\" 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\">drugs<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">allCrime<\/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=text\" target=\"_blank\" rel=\"noopener\">text<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">topTowns<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">topTowns<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Name<\/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\">\"Drug offences as fraction of all crime\"<\/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\/crime.html#img-drugsmap\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-drugsmap.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>This shows almost the opposite pattern. The average drug crime ratio is <code class=\"knitr inline\">0.0333<\/code>, with Workington over double this, and Kendal much lower.<\/p>\n<p>These kind of &#8216;heat maps&#8217; are aften used to show crime maps, house fires, or other point-based data, but without reference to some kind of background population as a denominator they can&#8217;t display meaningful risk. The <code>sparr<\/code> package has functions for computing relative risk with error calculations. Read the package documentation for more information.<\/p>\n<\/section>\n<section class=\"h1\">\n<h1>Police Neighbourhood Areas<\/h1>\n<p>UK crime data is organised by areas known as neighbourhoods. The boundaries of the neighbourhoods are available as a shapefile. The coordinates are lat-long, so we convert to the same CRS as the street crime data. In this section we will aggregate the cases to neighbourhood level.<\/p>\n<div id=\"unnamed-chunk-1\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">neighbourhoods<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spTransform\" target=\"_blank\" rel=\"noopener\">spTransform<\/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\">\"neighbourhoods\"<\/span><span class=\"keyword\">)<\/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\">streetCrime<\/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\">## OGR data source with driver: ESRI Shapefile \n## Source: \"..\/Data\", layer: \"neighbourhoods\"\n## with 46 features and 3 fields\n## Feature type: wkbPolygon with 2 dimensions\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\">neighbourhoods<\/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\">streetCrime<\/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\">\"Neighbourhood polygons\"<\/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\/crime.html#img-unnamed-chunk-1\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-1.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Topological Colouring<\/h2>\n<p>Plain regions like in the previous map never look too interesting, but colouring everything one colour isn&#8217;t much better. Can we colour regions so that two regions with a common boundary don&#8217;t have the same colour? The theory tells us that we only need at most four colours to do this for a planar map. However, the algorithm to do that is very hard, and our map might not be strictly planar, with islands and holes here and there.<\/p>\n<p>The following function uses <code>poly2nb<\/code> from the <code>spdep<\/code> package to compute the adjacency of regions, and then executes a &#8216;greedy&#8217; algorithm. For each region it finds the smallest colour not present in any of its neighbours. If all the colours are currently being used by its neighbours then it has to start using a new one.<\/p>\n<div id=\"topocolour\" 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\">\"spdep\"<\/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\">colourmap<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">polys<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">snap<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"symbol\">colouring<\/span> <span class=\"assignement\">=<\/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=\"keyword\">)<\/span>\n    <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\">colouring<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/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\">polys<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">nbl<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=poly2nb\" target=\"_blank\" rel=\"noopener\">poly2nb<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">polys<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">snap<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">snap<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">nextFreeColour<\/span> <span class=\"assignement\">=<\/span> <span class=\"number\">1<\/span>\n    <span class=\"keyword\">for<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">node<\/span> <span class=\"keyword\">in<\/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\">nbl<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n        <span class=\"symbol\">nbrColours<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">colouring<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">nbl<\/span><span class=\"keyword\">[[<\/span><span class=\"symbol\">node<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n        <span class=\"symbol\">freeColour<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=min\" target=\"_blank\" rel=\"noopener\">min<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=setdiff\" target=\"_blank\" rel=\"noopener\">setdiff<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">(<\/span><span class=\"number\">1<\/span><span class=\"keyword\">:<\/span><span class=\"symbol\">nextFreeColour<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">nbrColours<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n        <span class=\"symbol\">colouring<\/span><span class=\"keyword\">[[<\/span><span class=\"symbol\">node<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">freeColour<\/span>\n        <span class=\"keyword\">if<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">freeColour<\/span> == <span class=\"symbol\">nextFreeColour<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n            <span class=\"symbol\">nextFreeColour<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">nextFreeColour<\/span> <span class=\"keyword\">+<\/span> <span class=\"number\">1<\/span>\n        <span class=\"keyword\">}<\/span>\n    <span class=\"keyword\">}<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">colouring<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n<span class=\"symbol\">colouring<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=colourmap\" target=\"_blank\" rel=\"noopener\">colourmap<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">snap<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">100<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=palette\" target=\"_blank\" rel=\"noopener\">palette<\/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><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=max\" target=\"_blank\" rel=\"noopener\">max<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">colouring<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Set3\"<\/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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">colouring<\/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\">\"Topology colouring\"<\/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\/crime.html#img-topocolour\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-topocolour.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>This map shouldn&#8217;t have any two adjacent regions with the same colour. The <code>snap<\/code> had to be adjusted to make this work, however,because the map has some problems&#8230;<\/p>\n<h2>Digitizing Problems<\/h2>\n<p>Unfortunately the borders are very poorly digitized, and the edges between neighbourhoods do not match up very well. You can see this by zooming in on Carlisle and plotting with semi-transparent colours. This shows up the overlaps and the gaps.<\/p>\n<div id=\"unnamed-chunk-2\" 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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">xlim<\/span> <span class=\"argument\">=<\/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=\"number\">336000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">344000<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ylim<\/span> <span class=\"argument\">=<\/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=\"number\">552000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">560000<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rainbow\" target=\"_blank\" rel=\"noopener\">rainbow<\/a><span class=\"keyword\">(<\/span><span class=\"number\">10<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"argument\">alpha<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0.5<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">border<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">NA<\/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\">\"Overlapping and misaligned polygons\"<\/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\/crime.html#img-unnamed-chunk-2\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-2.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Point overlays<\/h2>\n<p>We can use the <code>over<\/code> function to count the number of crimes in each neighbourhood. This function does various things depending on the exact class of object passed to it. It is also fussy about making sure its arguments have the same coordinate system.<\/p>\n<p>Because we know that our polygons aren&#8217;t well constructed, we&#8217;ll return the list of polygons that each point is in. We can then count how many by computing the length of the list element. We&#8217;ll then plot Carlisle and show those points that are not over exactly one region.<\/p>\n<div id=\"unnamed-chunk-3\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">crimeN<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=over\" target=\"_blank\" rel=\"noopener\">over<\/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\">streetCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPolygons\" target=\"_blank\" rel=\"noopener\">SpatialPolygons<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">polygons<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">returnList<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">nPoly<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">crimeN<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">length<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=table\" target=\"_blank\" rel=\"noopener\">table<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">nPoly<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## nPoly\n##    0    1    2 \n##    6 4287   57 \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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">xlim<\/span> <span class=\"argument\">=<\/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=\"number\">336000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">344000<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ylim<\/span> <span class=\"argument\">=<\/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=\"number\">552000<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">560000<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rainbow\" target=\"_blank\" rel=\"noopener\">rainbow<\/a><span class=\"keyword\">(<\/span><span class=\"number\">10<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"argument\">alpha<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0.5<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">border<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">NA<\/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\">streetCrime<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">cex<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0.25<\/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\">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\">\"black\"<\/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\">streetCrime<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">nPoly<\/span> <span class=\"keyword\">&gt;<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/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\">streetCrime<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">nPoly<\/span> <span class=\"keyword\">&lt;<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/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\">\"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\">\"Points not in a single polygon\"<\/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\/crime.html#img-unnamed-chunk-3\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-3.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<h2>Points in polygons<\/h2>\n<p>Conversely we can overlay polygons on points and get a list of the same length as the number of polygons. Each element contains the indices of points in that polygon. This way we will double-count points that are in more than one polygon, and drop those outside all the polygons.<\/p>\n<div id=\"unnamed-chunk-4\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">crimeL<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=over\" target=\"_blank\" rel=\"noopener\">over<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=SpatialPolygons\" target=\"_blank\" rel=\"noopener\">SpatialPolygons<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">polygons<\/span><span class=\"keyword\">)<\/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\">streetCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">returnList<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">TRUE<\/span><span class=\"keyword\">)<\/span>\n<span class=\"comment\"># how many crimes per area<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">crimeL<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">length<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##  [1] 399 129 120  93  66 100  33  31  86 145 156 244  54  62  62  47  35 126  90 115  74 205  41  65 270 122 190  40  92 127  93  81\n## [33]   7  38  43  53  32  21  24 152  33 142 195  20  38  10\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>We can then assign this vector to the neighbourhood object and use it to produce some maps. The default colours in <code>spplot<\/code> aren&#8217;t particularly good, so we define a new palette from gray to red and set that.<\/p>\n<div id=\"unnamed-chunk-5\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">colours2<\/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=c\" target=\"_blank\" rel=\"noopener\">c<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"gray90\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"red\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">(<\/span><span class=\"number\">20<\/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\">colours2<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">TotalCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">crimeL<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">length<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">TotalCrimeRateK<\/span> <span class=\"assignement\">=<\/span> <span class=\"number\">1000<\/span> <span class=\"keyword\">*<\/span> <span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">TotalCrime<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Population<\/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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"TotalCrimeRateK\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Crimes\/1000ppl\/month from street data\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">[<\/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\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">TotalCrimeRateK<\/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\">5<\/span><span class=\"keyword\">]<\/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>\n    <span class=\"string\">\"Population\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"TotalCrimeRateK\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">]<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##                               Name Population TotalCrimeRateK\n## 24            Carlisle City Centre       2042          132.22\n## 23        Botcherby And Durranhill       1334           48.73\n## 0                   Barrow Central      13706           29.11\n## 26                      St. Aidans       6813           27.89\n## 31 Raffles \/ Newtown \/ Willowholme       5172           15.66\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"rimage\"><a href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#img-unnamed-chunk-5\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-5.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>You&#8217;ll notice that most of the county is gray &#8211; this is because the distribution is very skew. Try taking a log-transform and mapping that.<\/p>\n<h2>Area Data<\/h2>\n<p>The monthly area crime data is supplied in a CSV file. We can read this in, join it to the polygons by matching the ID and Neighbourhood columns from each object. The map from this data looks broadly similar to the data from the street-level file.<\/p>\n<div id=\"unnamed-chunk-6\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">monthCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=read.csv\" target=\"_blank\" rel=\"noopener\">read.csv<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Datafile\" target=\"_blank\" rel=\"noopener\">Datafile<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"2012-03-cumbria-neighbourhood.csv\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=dim\" target=\"_blank\" rel=\"noopener\">dim<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">monthCrime<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [1] 46 15\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">monthCrime<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">:<\/span><span class=\"number\">10<\/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\">\"Neighbourhood\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"All.crime.and.ASB\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">]<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##    Neighbourhood All.crime.and.ASB\n## 1         GARS07                33\n## 2         GARS06                99\n## 3         GARS05                66\n## 4         GARS04                88\n## 5         GARS03               119\n## 6         GARS02               125\n## 7         GARS01               407\n## 8         GARY01                 7\n## 9         GARS09                85\n## 10        GARS08                30\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">MonthlyCrime<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">monthCrime<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=match\" target=\"_blank\" rel=\"noopener\">match<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">ID<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">monthCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Neighbourhood<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"string\">\"All.crime.and.ASB\"<\/span><span class=\"keyword\">]<\/span>\n<span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">MonthlyCrimeRate<\/span> <span class=\"assignement\">=<\/span> <span class=\"number\">1000<\/span> <span class=\"keyword\">*<\/span> <span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">MonthlyCrime<\/span><span class=\"keyword\">\/<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Population<\/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\">colours2<\/span><span class=\"keyword\">)<\/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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"MonthlyCrimeRate\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Crimes\/1000ppl\/month from monthly data\"<\/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\/crime.html#img-unnamed-chunk-6\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-6.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Land Use\/Cover Data<\/h1>\n<p>The land use data comes from the <a href=\"http:\/\/www.eea.europa.eu\/data-and-maps\/data\/corine-land-cover-2006-raster-1\">EU Corine Land Cover<\/a> data set. This uses a coordinate system designed for use across Europe. We&#8217;ll transform our neighbourhoods to this system, and plot them, using two colours for contrast. The land use is a GeoTIFF file, and it comes with a text file describing the land use categories for creating legends.<\/p>\n<p>The land use classification is hierarchical at three levels. We can read in the legend file and display the top level classes.<\/p>\n<div id=\"readlegend\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">legend<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=read.csv\" target=\"_blank\" rel=\"noopener\">read.csv<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Datafile\" target=\"_blank\" rel=\"noopener\">Datafile<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"legend.csv\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">row.names<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"GRID_CODE\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">as.is<\/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=unique\" target=\"_blank\" rel=\"noopener\">unique<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL1<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [1] \"Artificial surfaces\"           \"Agricultural areas\"            \"Forest and semi natural areas\" \"Wetlands\"                     \n## [5] \"Water bodies\"                  \"NODATA\"                        \"UNCLASSIFIED\"                 \n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Then each of those levels divides down into subcategories. For example, the agricultural areas divides into:<\/p>\n<div id=\"label2\" 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=unique\" target=\"_blank\" rel=\"noopener\">unique<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL2<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL1<\/span> == <span class=\"string\">\"Agricultural areas\"<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [1] \"Arable land\"                      \"Permanent crops\"                  \"Pastures\"                        \n## [4] \"Heterogeneous agricultural areas\"\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>and then those classifications are further subdivided, for example:<\/p>\n<div id=\"label3\" 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=unique\" target=\"_blank\" rel=\"noopener\">unique<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL3<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL2<\/span> == <span class=\"string\">\"Heterogeneous agricultural areas\"<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [1] \"Annual crops associated with permanent crops\"                                          \n## [2] \"Complex cultivation patterns\"                                                          \n## [3] \"Land principally occupied by agriculture, with significant areas of natural vegetation\"\n## [4] \"Agro-forestry areas\"                                                                   \n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>We&#8217;ll now read in the land use file itself and plot it with the <code>raster<\/code> package.<\/p>\n<div id=\"readplotlu\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">landUse<\/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=Datafile\" target=\"_blank\" rel=\"noopener\">Datafile<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"cumbriaLandUse.tif\"<\/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\">landUse<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">neighEU<\/span> <span class=\"assignement\">=<\/span> <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\">neighbourhoods<\/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=projection\" target=\"_blank\" rel=\"noopener\">projection<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">landUse<\/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=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighEU<\/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\">border<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"white\"<\/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\">neighEU<\/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\">border<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"black\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lwd<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">1<\/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\/crime.html#img-readplotlu\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-readplotlu.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>The colours correspond to the land use categories of <code>LABEL3<\/code> above.<\/p>\n<h2>Extracting Values<\/h2>\n<p>The <code>extract<\/code> function is the workhorse for getting information out of rasters. We will get the land use code for each of our street crime points and add the information to the object. We use <code>as.character<\/code> in order to look up from the row names of the legend data frame.<\/p>\n<div id=\"plotcrimelu\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">luCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/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\">landUse<\/span><span class=\"keyword\">,<\/span> <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\">streetCrime<\/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=projection\" target=\"_blank\" rel=\"noopener\">projection<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">landUse<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">luCrime<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">luCrime<\/span> == <span class=\"string\">\"0\"<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"number\">NA<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">landUse<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">luCrime<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">landUseCode3<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">legend<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">luCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"LABEL3\"<\/span><span class=\"keyword\">]<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">landUseCode2<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">legend<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">luCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"LABEL2\"<\/span><span class=\"keyword\">]<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">landUseCode1<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">legend<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">luCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"LABEL1\"<\/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\">streetCrime<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">legend<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">landUse<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Colour\"<\/span><span class=\"keyword\">]<\/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\">\"Street level crime by land use\"<\/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\/crime.html#img-plotcrimelu\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-plotcrimelu.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>We can also use <code>ggplot<\/code> to produce maps by crime type, coloured by broad land use code<\/p>\n<div id=\"ggplot2waymap\" 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=ggplot\" target=\"_blank\" rel=\"noopener\">ggplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=geom_point\" target=\"_blank\" rel=\"noopener\">geom_point<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=aes\" target=\"_blank\" rel=\"noopener\">aes<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Easting<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Northing<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">landUseCode1<\/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=coord_equal\" target=\"_blank\" rel=\"noopener\">coord_equal<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=facet_wrap\" target=\"_blank\" rel=\"noopener\">facet_wrap<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">~<\/span><span class=\"symbol\">Crime.type<\/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\/crime.html#img-ggplot2waymap\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-ggplot2waymap.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Land Use Classification<\/h1>\n<p>Some neighbourhoods are clearly more rural than others. By considering the pixels that each polygon covers we can come up with a simple classification scheme.<\/p>\n<h2>Polygon-Raster Overlay<\/h2>\n<p>The <code>extract<\/code> function considers all polygons in a Spatial Polygons Data Frame and returns a list where the elements are the pixels in each polygon. We&#8217;ll then process this list to get a table of land use categories for each neighbourhood.<\/p>\n<p>The <code>lutable<\/code> function first removes any pixels in the &#8216;missing&#8217; category, and then computes the fraction of the pixels in each category. We then make the list into a matrix with row and column names so we can then do a stacked barplot. Note there&#8217;s not enough room for all the labels, so only a few are shown.<\/p>\n<div id=\"extractlanduse\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">ext<\/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\">landUse<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">neighEU<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"symbol\">lutable<\/span> <span class=\"assignement\">=<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">x<\/span><span class=\"keyword\">,<\/span> <span class=\"formalargs\">...<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"symbol\">x<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">x<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">x<\/span> <span class=\"keyword\">!=<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">]<\/span>\n    <span class=\"symbol\">tx<\/span> <span class=\"assignement\">=<\/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=factor\" target=\"_blank\" rel=\"noopener\">factor<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">x<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">levels<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=row.names\" target=\"_blank\" rel=\"noopener\">row.names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">)<\/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=length\" target=\"_blank\" rel=\"noopener\">length<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">x<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"symbol\">tx<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"symbol\">clm<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=do.call\" target=\"_blank\" rel=\"noopener\">do.call<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cbind<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ext<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">lutable<\/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\">clm<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL3<\/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\">clm<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">neighEU<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Name<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=barplot\" target=\"_blank\" rel=\"noopener\">barplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">clm<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Colour<\/span><span class=\"keyword\">)<\/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\/crime.html#img-extractlanduse\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-extractlanduse.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>We can show the legend in a separate plot.<\/p>\n<div id=\"legend\" 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=par\" target=\"_blank\" rel=\"noopener\">par<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">mar<\/span> <span class=\"argument\">=<\/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=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">0<\/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><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=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">)<\/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=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">type<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"n\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">axes<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">xlab<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ylab<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"\"<\/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=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">legend<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=substr\" target=\"_blank\" rel=\"noopener\">substr<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL3<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">50<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">fill<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Colour<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ncol<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"argument\">title<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Land Use\"<\/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\/crime.html#img-legend\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-legend.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>This shows our regions are either mostly red (urban) or yellow\/green (rural). For our simple classification scheme we&#8217;ll look at the number of pixels in the region that are in the broad classes defined in <code>LABEL2<\/code>, and take the class with the most pixels. The <code>classify<\/code> function here takes as its argument a vector of land use class codes and returns the label of the most common value of <code>LABEL2<\/code> for those codes. We&#8217;ll then run that on the list of pixel values to get a vector classification that we&#8217;ll add to the spatial polygons.<\/p>\n<div id=\"unnamed-chunk-7\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">classify<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">x<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\">### x is vector of raster values<\/span>\n    <span class=\"comment\">## remove missing values<\/span>\n    <span class=\"symbol\">inR<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">x<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">x<\/span> <span class=\"keyword\">!=<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">]<\/span>\n    <span class=\"symbol\">tableValues<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sort\" target=\"_blank\" rel=\"noopener\">sort<\/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><span class=\"symbol\">legend<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">inR<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"LABEL2\"<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">decreasing<\/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=return\" target=\"_blank\" rel=\"noopener\">return<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">tableValues<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"keyword\">}<\/span>\n<span class=\"comment\"># example<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=classify\" target=\"_blank\" rel=\"noopener\">classify<\/a><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=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">22<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">22<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">43<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">22<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">22<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## [1] \"Heterogeneous agricultural areas\"\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">neighEU<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Class<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=factor\" target=\"_blank\" rel=\"noopener\">factor<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">ext<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">classify<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>Now we&#8217;ll plot the neighbourhoods with the new classes. To get colours for each of the classes we&#8217;ll average the colours for the levels in the class:<\/p>\n<div id=\"plotnewclasses\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">meanColour<\/span> <span class=\"assignement\">&lt;-<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">cs<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <span class=\"comment\"># convert colours to red-green-blue, and average components<\/span>\n    <span class=\"symbol\">rgbc<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=apply\" target=\"_blank\" rel=\"noopener\">apply<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=col2rgb\" target=\"_blank\" rel=\"noopener\">col2rgb<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">cs<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">mean<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"comment\"># convert r-g-b back to colours<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=rgb\" target=\"_blank\" rel=\"noopener\">rgb<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">rgbc<\/span><span class=\"keyword\">[<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">rgbc<\/span><span class=\"keyword\">[<\/span><span class=\"number\">2<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">rgbc<\/span><span class=\"keyword\">[<\/span><span class=\"number\">3<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">max<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">256<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span>\n\n<span class=\"comment\"># use tapply to compute mean colours within groups defined by LABEL2<\/span>\n<span class=\"symbol\">colourTable<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=tapply\" target=\"_blank\" rel=\"noopener\">tapply<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Colour<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.character\" target=\"_blank\" rel=\"noopener\">as.character<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">legend<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">LABEL2<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">meanColour<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">colours3<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">colourTable<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=levels\" target=\"_blank\" rel=\"noopener\">levels<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighEU<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Class<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">]<\/span>\n\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\">colours3<\/span><span class=\"keyword\">)<\/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\">neighEU<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Class\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Classification system\"<\/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\/crime.html#img-plotnewclasses\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-plotnewclasses.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>This map shows us a possible classification of urban and two types of rural neighbourhoods. Notice that the regions on the west coast, although they have some urban content, have more rural land area. The one industrial area in the south contains the shipyards at Barrow.<\/p>\n<\/section>\n<section class=\"h1\">\n<h1>Crimes and Roads<\/h1>\n<p>In this section we&#8217;ll look at crime locations and roads. We have a shapefile of roads with classification in lat-long coordinates which we&#8217;ll convert to Ordnance Survey grid reference so we can plot the<code>streetCrime<\/code> points on it. We&#8217;ll also define some colours and widths so the plot looks a bit like the OpenStreetMap maps.<\/p>\n<div id=\"roadmap\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">mainroads<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=spTransform\" target=\"_blank\" rel=\"noopener\">spTransform<\/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\">\"mainroads\"<\/span><span class=\"keyword\">)<\/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<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">## OGR data source with driver: ESRI Shapefile \n## Source: \"..\/Data\", layer: \"mainroads\"\n## with 3486 features and 3 fields\n## Feature type: wkbLineString with 2 dimensions\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=summary\" target=\"_blank\" rel=\"noopener\">summary<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">mainroads<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">type<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##       motorway  motorway_link        primary   primary_link           road      secondary secondary_link       tertiary \n##            198             75            610              9            193            629              3            945 \n##  tertiary_link          trunk     trunk_link \n##             11            757             56 \n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">roadColours<\/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\">\"#809CC0\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#809CC0\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#EC989B\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#EC989B\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"gray\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#FDD5A4\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#FDD5A4\"<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"string\">\"gray\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"gray\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#A9DAA9\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"#A9DAA9\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">roadWidths<\/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=\"number\">4<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">4<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">3<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">3<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/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=plot\" target=\"_blank\" rel=\"noopener\">plot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">mainroads<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">col<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">roadColours<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">mainroads<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">type<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lwd<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">roadWidths<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">mainroads<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">type<\/span><span class=\"keyword\">]<\/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\/crime.html#img-roadmap\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-roadmap.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>Next we can compute the distance from each point to the nearest point on the major roads of the road network. First we extract the motorways, trunk roads, and primary roads, then work with that.<\/p>\n<div id=\"roaddistance\" class=\"chunk\">\n<div class=\"transcript\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">isMajor<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">mainroads<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">type<\/span> <span class=\"keyword\">%in%<\/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\">\"motorway\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"motorway_link\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"trunk\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"trunk_link\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"primary\"<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"string\">\"primary_link\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">majorRoads<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">mainroads<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">isMajor<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span>\n<span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">dRoad<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=unlist\" target=\"_blank\" rel=\"noopener\">unlist<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=lapply\" target=\"_blank\" rel=\"noopener\">lapply<\/a><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=nrow\" target=\"_blank\" rel=\"noopener\">nrow<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">function<\/span><span class=\"keyword\">(<\/span><span class=\"formalargs\">i<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">{<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=gDistance\" target=\"_blank\" rel=\"noopener\">gDistance<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">[<\/span><span class=\"symbol\">i<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">majorRoads<\/span><span class=\"keyword\">)<\/span>\n<span class=\"keyword\">}<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>We can use <code>ggplot<\/code> to produce some graphics showing how the road distance varies for different crimes. A box plot shows the outliers well.<\/p>\n<div id=\"ggplotroaddist\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">x45<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=opts\" target=\"_blank\" rel=\"noopener\">opts<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">axis.text.x<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=theme_text\" target=\"_blank\" rel=\"noopener\">theme_text<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">angle<\/span> <span class=\"argument\">=<\/span> <span class=\"keyword\">-<\/span><span class=\"number\">45<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">hjust<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">vjust<\/span> <span class=\"argument\">=<\/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=ggplot\" target=\"_blank\" rel=\"noopener\">ggplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">streetCrime<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=aes\" target=\"_blank\" rel=\"noopener\">aes<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Crime.type<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">dRoad<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <span class=\"symbol\">x45<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=geom_boxplot\" target=\"_blank\" rel=\"noopener\">geom_boxplot<\/a><span class=\"keyword\">(<\/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\/crime.html#img-ggplotroaddist\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-ggplotroaddist.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>What can we get from this? Perhaps only that shoplifting happens close to major roads, but thats because shops tend to be close to major roads.<\/p>\n<\/section>\n<section class=\"h1\">\n<h1>Space-Time Regional Data<\/h1>\n<p>We also have a data file of the crime counts in neighbourhoods for a number of months (We would have more months of data but the neighbourhood boundaries changed, so we can only go back so far). The file has one for each month for each neighbourhood, and lists the number of crimes in each category. This form is ideal for feeding into <code>ggplot<\/code> to get a quick time-series plot.<\/p>\n<div id=\"tscrime\" class=\"chunk\">\n<div class=\"transcript half\">\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"symbol\">allCrime<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=read.csv\" target=\"_blank\" rel=\"noopener\">read.csv<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=Datafile\" target=\"_blank\" rel=\"noopener\">Datafile<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"allCrime.csv\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">as.is<\/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=head\" target=\"_blank\" rel=\"noopener\">head<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">allCrime<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">,<\/span> <span class=\"number\">1<\/span><span class=\"keyword\">:<\/span><span class=\"number\">5<\/span><span class=\"keyword\">]<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"output\">\n<pre class=\"knitr\">##     Month                Force Neighbourhood All.crime.and.ASB Burglary\n## 1 2011-09 Cumbria Constabulary        GARS07                41        3\n## 2 2011-09 Cumbria Constabulary        GARS06               141        3\n## 3 2011-09 Cumbria Constabulary        GARS05                56        0\n## 4 2011-09 Cumbria Constabulary        GARS04                82        2\n## 5 2011-09 Cumbria Constabulary        GARS03               119        4\n## 6 2011-09 Cumbria Constabulary        GARS02                90        2\n<\/pre>\n<\/div>\n<div class=\"source\">\n<pre class=\"knitr\"><span class=\"comment\"># plot time series for each nbrhood - leave the legend out<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ggplot\" target=\"_blank\" rel=\"noopener\">ggplot<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">allCrime<\/span><span class=\"keyword\">,<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=aes\" target=\"_blank\" rel=\"noopener\">aes<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">x<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Month<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">y<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Criminal.damage.and.Arson<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">group<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Neighbourhood<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">colour<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">Neighbourhood<\/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=geom_line\" target=\"_blank\" rel=\"noopener\">geom_line<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">)<\/span> <span class=\"keyword\">+<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=opts\" target=\"_blank\" rel=\"noopener\">opts<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">legend.position<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"none\"<\/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\/crime.html#img-tscrime\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-tscrime.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>To plot maps of criminal damage and arson over time, we&#8217;ll reformat the data into a matrix of neighbourhood by month and attach it to the neighbourhood map data object. We have to do some work with the months to get them into something that can be used in a formula for the <code>spplot<\/code> function. We&#8217;ll just plot the first four months.<\/p>\n<div id=\"unnamed-chunk-8\" 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\">\"reshape2\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">criminalDamage<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=dcast\" target=\"_blank\" rel=\"noopener\">dcast<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">allCrime<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">Neighbourhood<\/span> <span class=\"keyword\">~<\/span> <span class=\"symbol\">Month<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">value.var<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Criminal.damage.and.Arson\"<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"symbol\">months<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">-<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">-<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=format\" target=\"_blank\" rel=\"noopener\">format<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=as.Date\" target=\"_blank\" rel=\"noopener\">as.Date<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=sprintf\" target=\"_blank\" rel=\"noopener\">sprintf<\/a><span class=\"keyword\">(<\/span><span class=\"string\">\"%s-01\"<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">months<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"%b.%Y\"<\/span><span class=\"keyword\">)<\/span>\n\n<span class=\"symbol\">criminalDamage<\/span> <span class=\"assignement\">=<\/span> <span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">[<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=match\" target=\"_blank\" rel=\"noopener\">match<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">ID<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">$<\/span><span class=\"symbol\">Neighbourhood<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"keyword\">]<\/span>\n<span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/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><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">@<\/span><span class=\"slot\">data<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">)<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">)<\/span> <span class=\"assignement\">&lt;-<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=make.names\" target=\"_blank\" rel=\"noopener\">make.names<\/a><span class=\"keyword\">(<\/span><a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">neighbourhoods<\/span><span class=\"keyword\">)<\/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\">colours2<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lwd<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">)<\/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\">neighbourhoods<\/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\">\"Sep.2011\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Oct.2011\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Nov.2011\"<\/span><span class=\"keyword\">,<\/span> <span class=\"string\">\"Dec.2011\"<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Criminal Damage\"<\/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\/crime.html#img-unnamed-chunk-8\" data-toggle=\"modal\"><img decoding=\"async\" class=\"rplot\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/figure\/crime-unnamed-chunk-8.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<p>Static plots like that are fine for publications in dead-tree format, but for online work we can use technology to make animations.<\/p>\n<h2>Animation<\/h2>\n<p>The <code>animation<\/code> package provides functions for creating frame-based animations. All you need to do is write the code that produces a plot as each frame of the animation.<\/p>\n<div id=\"crimeanimation\" 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\">\"animation\"<\/span><span class=\"keyword\">)<\/span>\n<span class=\"symbol\">months<\/span> <span class=\"assignement\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=names\" target=\"_blank\" rel=\"noopener\">names<\/a><span class=\"keyword\">(<\/span><span class=\"symbol\">criminalDamage<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">[<\/span><span class=\"keyword\">-<\/span><span class=\"number\">1<\/span><span class=\"keyword\">]<\/span>\n<a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ani.options\" target=\"_blank\" rel=\"noopener\">ani.options<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">outdir<\/span> <span class=\"argument\">=<\/span> <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=getwd\" target=\"_blank\" rel=\"noopener\">getwd<\/a><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=saveHTML\" target=\"_blank\" rel=\"noopener\">saveHTML<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">{<\/span>\n    <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ani.options\" target=\"_blank\" rel=\"noopener\">ani.options<\/a><span class=\"keyword\">(<\/span><span class=\"argument\">interval<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0.5<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">verbose<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"keyword\">for<\/span> <span class=\"keyword\">(<\/span><span class=\"symbol\">month<\/span> <span class=\"keyword\">in<\/span> <span class=\"symbol\">months<\/span><span class=\"keyword\">)<\/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\">colours2<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">lwd<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">2<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n        <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=print\" target=\"_blank\" rel=\"noopener\">print<\/a><span class=\"keyword\">(<\/span><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\">neighbourhoods<\/span><span class=\"keyword\">,<\/span> <span class=\"symbol\">month<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">at<\/span> <span class=\"argument\">=<\/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\">55<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">len<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">20<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">main<\/span> <span class=\"argument\">=<\/span> <span class=\"symbol\">month<\/span><span class=\"keyword\">)<\/span><span class=\"keyword\">)<\/span>\n        <a href=\"http:\/\/rgm2.lab.nig.ac.jp\/RGM2\/search.php?query=ani.pause\" target=\"_blank\" rel=\"noopener\">ani.pause<\/a><span class=\"keyword\">(<\/span><span class=\"keyword\">)<\/span>\n    <span class=\"keyword\">}<\/span>\n<span class=\"keyword\">}<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">img.name<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"crime_ani\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">single.opts<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"'utf8': false\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">autoplay<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">FALSE<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">interval<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">0.5<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">imgdir<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"crime_dir\"<\/span><span class=\"keyword\">,<\/span>\n    <span class=\"argument\">htmlfile<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"crimeAni.html\"<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ani.height<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">400<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">ani.width<\/span> <span class=\"argument\">=<\/span> <span class=\"number\">600<\/span><span class=\"keyword\">,<\/span> <span class=\"argument\">title<\/span> <span class=\"argument\">=<\/span> <span class=\"string\">\"Crime animation\"<\/span><span class=\"keyword\">)<\/span>\n<\/pre>\n<\/div>\n<div class=\"message\">\n<pre class=\"knitr\">## HTML file created at: \/home\/rowlings\/Work\/R\/UseR\/UseR2012\/Tutorial\/WorkshopsHTML\/crimeAni.html\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"scianimator\">\n<div id=\"crime_ani\" class=\"scianimator light\"><img decoding=\"async\" src=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime_dir\/crime_ani1.png\" alt=\"\" \/><\/p>\n<div id=\"crime_ani-controls\" class=\"scianimator controls light\">\n<form><a id=\"crime_ani-first\" class=\"control first\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">First<\/a><a id=\"crime_ani-previous\" class=\"control previous\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">Previous<\/a><a id=\"crime_ani-play\" class=\"control play\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">Play<\/a><a id=\"crime_ani-next\" class=\"control next\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">Next<\/a><a id=\"crime_ani-last\" class=\"control last\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">Last<\/a><span id=\"crime_ani-navigator\" class=\"control navigator box\"><a id=\"crime_ani-navigator-0\" class=\"control navigator current\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, blue 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, blue 0px 0px 1px; height: 10px; width: 10px; background: blue;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-1\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-2\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-3\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-4\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-5\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><a id=\"crime_ani-navigator-6\" class=\"control navigator\" style=\"color: #555555; text-decoration: none; cursor: pointer; display: inline-block; padding: 0px; border: 1px solid #999999; border-radius: 4px; font-family: 'Lucida Grande', sans-serif; font-size: 10px; text-shadow: #ffffff 0px 1px; margin: 2px; position: relative; box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; -webkit-box-shadow: #666666 0px 0px 3px 1px inset, #00ff00 0px 0px 1px; height: 10px; width: 10px; background: #00ff00;\" title=\"Click to go to frame; &lt;ctrl&gt;+click to enable\/disable frame.\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">\u00a0<\/a><\/span><a id=\"crime_ani-loop\" class=\"control loop loop\" title=\"Click to toggle loop mode\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">Loop<\/a><span id=\"crime_ani-speed\" class=\"control speed box\"><a id=\"crime_ani-speed-down\" class=\"control speed-down small\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">&#8211;<\/a><label>Speed<\/label><a id=\"crime_ani-speed-up\" class=\"control speed-up small\" href=\"http:\/\/www.maths.lancs.ac.uk\/~rowlings\/Teaching\/UseR2012\/crime.html#\">+<\/a><\/span><\/form>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"h1\">\n<h1>Lessons Learnt<\/h1>\n<ul>\n<li>Creating spatial point data sets from scratch<\/li>\n<li>Making maps with base graphics, <code>ggplot<\/code>, and <code>spplot<\/code><\/li>\n<li>Kernel Smoothing with <code>package:sparr<\/code><\/li>\n<li>Reading in vector data with <code>readOGR<\/code><\/li>\n<li>Reading in raster data with <code>raster<\/code><\/li>\n<li>Analysing raster data with <code>extract<\/code><\/li>\n<li>Transforming coordinates with <code>spTransform<\/code><\/li>\n<li>Making animations with the <code>animation<\/code> package<\/li>\n<\/ul>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>For this workshop session we&#8217;ll read in some data and do some basic mapping. We need a number of packages for this. library(&#8220;sp&#8221;) library(&#8220;raster&#8221;) library(&#8220;rgdal&#8221;)&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-841","post","type-post","status-publish","format-standard","hentry","category-r"],"_links":{"self":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/posts\/841","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=841"}],"version-history":[{"count":0,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/posts\/841\/revisions"}],"wp:attachment":[{"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/media?parent=841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/categories?post=841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zhuoyao.net\/index.php\/wp-json\/wp\/v2\/tags?post=841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}