{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Point Processes\n", "\n", "**Author: Serge Rey and Wei Kang **\n", "\n", "## Introduction\n", "\n", "One philosophy of applying inferential statistics to spatial data is to think in terms of spatial processes and their possible realizations. In this view, an observed map pattern is one of the possible patterns that might have been generated by a hypothesized process. In this notebook, we are going to regard point patterns as the outcome of point processes. There are three major types of point process, which will result in three types of point patterns:\n", "\n", "* [Random Patterns](#Random-Patterns)\n", "* [Clustered Patterns](#Clustered-Patterns)\n", "* [Regular Patterns](#Regular-Patterns)\n", "\n", "We will investigate how to generate these point patterns via simulation (Data Generating Processes (DGP) is the correponding point process), and inspect how these resulting point patterns differ from each other visually. In [Quadrat statistics notebook](Quadrat_statistics.ipynb) and [distance statistics notebook](distance_statistics.ipynb), we will adpot some statistics to infer whether it is a [Complete Spaital Randomness](https://en.wikipedia.org/wiki/Complete_spatial_randomness) (CSR) process.\n", "\n", "A python file named \"process.py\" contains several point process classes with which we can generate point patterns of different types." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from pointpats import PoissonPointProcess, PoissonClusterPointProcess, Window, poly_from_bbox, PointPattern\n", "import libpysal as ps\n", "from libpysal.cg import shapely_ext\n", "%matplotlib inline\n", "import numpy as np\n", "#import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Random Patterns\n", "\n", "Random point patterns are the outcome of CSR. CSR has two major characteristics:\n", "1. Uniform: each location has equal probability of getting a point (where an event happens)\n", "2. Independent: location of event points are independent\n", "\n", "It usually serves as the null hypothesis in testing whether a point pattern is the outcome of a random process.\n", "\n", "There are two types of CSR:\n", "* $N$-conditioned CSR: $N$ is fixed\n", " * Given the total number of events $N$ occurring within an area $A$, the locations of the $N$ events represent an independent random sample of $N$ locations where each location is equally likely to be chosen as an event.\n", "* $\\lambda$-conditioned CSR: $N$ is randomly generated from a Poisson process.\n", " * The number of events occurring within a finite region $A$ is a random variable $\\dot{N}$ following a Poisson distribution with mean $\\lambda|A|$, with $|A|$ denoting area of $A$ and $\\lambda$ denoting the intensity of the point pattern.\n", " * Given the total number of events $\\dot{N}$ occurring within an area $A$, the locations of the $\\dot{N}$ events represent an independent random sample of $\\dot{N}$ locations where each location is equally likely to be chosen as an event." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulating CSR\n", "We are going to generate several point patterns (200 events) from CSR within Virginia state boundary." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# open the virginia polygon shapefile\n", "va = ps.io.open(ps.examples.get_path(\"virginia.shp\"))\n", "polys = [shp for shp in va]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Create the exterior polygons for VA from the union of the county shapes\n", "state = shapely_ext.cascaded_union(polys)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# create window from virginia state boundary\n", "window = Window(state.parts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1. Generate a point series from N-conditioned CSR " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# simulate a csr process in the same window (200 points, 1 realization)\n", "# by specifying \"asPP\" false, we can generate a point series\n", "# by specifying \"conditioning\" false, we can simulate a N-conditioned CSR\n", "np.random.seed(5)\n", "samples = PoissonPointProcess(window, 200, 1, conditioning=False, asPP=False)\n", "samples" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-76.3326571 , 36.57893856],\n", " [-81.93206633, 37.0243966 ],\n", " [-79.55664806, 37.35242254],\n", " [-78.5166233 , 37.55701527],\n", " [-77.21660795, 38.26514268],\n", " [-82.09226973, 37.00701809],\n", " [-77.44823305, 38.6714618 ],\n", " [-79.95384378, 37.99268412],\n", " [-81.36397951, 37.03187854],\n", " [-78.37289635, 38.78731506],\n", " [-78.78567678, 37.07057506],\n", " [-78.61625258, 36.89065808],\n", " [-82.45957129, 36.95802405],\n", " [-77.77370645, 37.01124988],\n", " [-78.80401745, 38.78711285],\n", " [-78.2800756 , 37.64869473],\n", " [-76.33475868, 37.41755285],\n", " [-79.71621808, 37.22853963],\n", " [-80.31108929, 36.90895769],\n", " [-76.81331831, 37.13340462],\n", " [-77.17489798, 37.62727824],\n", " [-79.58599474, 37.17903022],\n", " [-78.34778262, 37.31439593],\n", " [-76.78862975, 36.56978482],\n", " [-78.90167513, 38.14339807],\n", " [-78.31750801, 38.6042175 ],\n", " [-80.63065732, 37.39418456],\n", " [-79.0679983 , 38.20670684],\n", " [-76.97054563, 37.43228348],\n", " [-78.28781253, 38.80715429],\n", " [-79.51445209, 37.05899454],\n", " [-78.75479687, 36.94362059],\n", " [-76.56183486, 37.14352317],\n", " [-82.8250185 , 36.77946552],\n", " [-75.57058942, 37.84115351],\n", " [-83.57095518, 36.62173807],\n", " [-82.73830125, 36.76063464],\n", " [-79.64158321, 36.68065846],\n", " [-76.92510237, 36.92895731],\n", " [-80.20619679, 37.80498897],\n", " [-77.74757811, 37.55846008],\n", " [-80.89034305, 36.65326387],\n", " [-79.23362271, 38.12835879],\n", " [-78.10257435, 36.59838991],\n", " [-76.14501324, 36.74210979],\n", " [-77.18266793, 36.84631799],\n", " [-77.27402385, 37.404438 ],\n", " [-77.68764731, 37.34273888],\n", " [-77.20460382, 37.91075633],\n", " [-81.8075696 , 36.94054096],\n", " [-76.84214327, 37.82794034],\n", " [-76.86353526, 36.82540288],\n", " [-76.8056485 , 37.18366661],\n", " [-78.70526218, 38.89314571],\n", " [-78.11460871, 39.00196074],\n", " [-78.77656343, 37.61506248],\n", " [-78.1748728 , 37.29187339],\n", " [-78.33817368, 38.36125302],\n", " [-79.22973299, 37.54091061],\n", " [-75.5696782 , 37.90756983],\n", " [-77.02179404, 36.72052872],\n", " [-79.48678905, 38.05681891],\n", " [-78.58205854, 37.41314179],\n", " [-77.36276352, 37.04549049],\n", " [-77.30130598, 37.53465902],\n", " [-79.10398846, 38.25305909],\n", " [-82.54221637, 36.90375945],\n", " [-77.94793345, 38.75199833],\n", " [-78.9452502 , 37.54473244],\n", " [-79.048031 , 37.65131473],\n", " [-78.25853547, 38.2769875 ],\n", " [-77.54648155, 36.66647077],\n", " [-78.48230503, 38.91668951],\n", " [-78.71263077, 38.2499848 ],\n", " [-78.57345575, 37.83448379],\n", " [-78.57683725, 38.88609472],\n", " [-81.60393528, 37.14655422],\n", " [-80.41085679, 37.23246613],\n", " [-79.45003004, 37.75664579],\n", " [-78.00505977, 39.15971417],\n", " [-79.5153296 , 38.36726525],\n", " [-79.69680058, 37.87120598],\n", " [-77.87487209, 37.85508792],\n", " [-76.78504902, 36.99733473],\n", " [-81.76182614, 36.88421234],\n", " [-81.96888594, 36.99263064],\n", " [-77.86127482, 37.16191786],\n", " [-79.91539534, 36.57794908],\n", " [-82.27493376, 36.93038256],\n", " [-75.89989311, 37.49087981],\n", " [-80.83633012, 37.38476674],\n", " [-77.93737278, 37.73587757],\n", " [-78.80405416, 38.2423914 ],\n", " [-80.09426594, 36.77163754],\n", " [-78.55997549, 36.9372054 ],\n", " [-80.74982401, 36.69837703],\n", " [-79.89144123, 37.27287164],\n", " [-77.53568375, 38.42234669],\n", " [-79.36034573, 37.9199658 ],\n", " [-78.39624506, 39.22046697],\n", " [-77.32624847, 37.32763411],\n", " [-77.14780326, 38.1270279 ],\n", " [-80.24638938, 37.5142178 ],\n", " [-77.41027396, 36.97299833],\n", " [-78.73229552, 37.60233533],\n", " [-79.50446982, 38.04796476],\n", " [-77.34484259, 37.05615369],\n", " [-80.66964982, 37.07084403],\n", " [-77.15297781, 37.29870784],\n", " [-78.28959166, 39.29418715],\n", " [-77.10310375, 37.3812618 ],\n", " [-78.11943302, 37.92836454],\n", " [-80.31267194, 36.665347 ],\n", " [-76.6777552 , 36.75870423],\n", " [-79.31751436, 38.06910198],\n", " [-77.02234401, 38.29308642],\n", " [-77.44257801, 38.34724139],\n", " [-77.54221373, 37.50425399],\n", " [-75.67749041, 37.81841772],\n", " [-80.21661887, 37.67742691],\n", " [-78.75115924, 38.71767437],\n", " [-78.95485683, 36.59501015],\n", " [-76.86872936, 38.02181925],\n", " [-79.21340288, 37.13898883],\n", " [-80.00081862, 36.81108808],\n", " [-77.77941742, 36.66281858],\n", " [-77.3124049 , 38.04905423],\n", " [-77.9213301 , 36.92944526],\n", " [-77.66093307, 38.33654176],\n", " [-77.21170491, 38.93214783],\n", " [-76.68169985, 36.70007358],\n", " [-77.30664489, 37.89347582],\n", " [-82.34535364, 36.75272866],\n", " [-76.86645645, 37.8687134 ],\n", " [-77.3709068 , 38.3866506 ],\n", " [-78.8063798 , 37.3391586 ],\n", " [-80.03257936, 37.4129918 ],\n", " [-78.68101007, 38.44562521],\n", " [-77.63204774, 36.87786176],\n", " [-78.88306754, 38.49431963],\n", " [-77.45255789, 37.83099746],\n", " [-79.5298396 , 37.78361184],\n", " [-81.55542816, 36.61994736],\n", " [-78.47299022, 36.8579181 ],\n", " [-79.02176971, 36.65214546],\n", " [-78.28147935, 37.80847913],\n", " [-79.58518375, 38.20539312],\n", " [-77.77610921, 37.82863786],\n", " [-80.58914692, 37.04572831],\n", " [-81.84584342, 36.68964681],\n", " [-79.5701122 , 37.36705848],\n", " [-76.7064535 , 36.5658754 ],\n", " [-79.68195266, 37.01713442],\n", " [-76.22771852, 36.73171684],\n", " [-77.16980606, 38.0809812 ],\n", " [-77.10609198, 37.20993371],\n", " [-77.83263118, 37.30642911],\n", " [-77.3096478 , 38.04267336],\n", " [-80.09196435, 37.69627213],\n", " [-77.06346097, 37.66044069],\n", " [-78.39635026, 38.35692905],\n", " [-80.70881825, 37.33395262],\n", " [-77.77980079, 36.81863702],\n", " [-77.48032587, 37.53013036],\n", " [-80.64284755, 37.29151092],\n", " [-78.31970329, 39.03988516],\n", " [-77.99991705, 38.62963975],\n", " [-81.39136576, 36.6361113 ],\n", " [-76.2500645 , 36.58381878],\n", " [-77.75281574, 38.09955844],\n", " [-79.18848841, 36.86516089],\n", " [-78.10679754, 37.23406281],\n", " [-77.72774175, 37.75365148],\n", " [-80.79353455, 36.66466322],\n", " [-79.09248227, 38.11065381],\n", " [-79.43627162, 36.9317042 ],\n", " [-80.67513179, 36.98716053],\n", " [-79.23362918, 37.89815733],\n", " [-78.88007206, 38.63625233],\n", " [-77.102715 , 36.9571268 ],\n", " [-79.16601272, 37.50364778],\n", " [-78.17995667, 37.56372944],\n", " [-78.55397235, 38.94719771],\n", " [-82.21842212, 37.31977937],\n", " [-75.70804637, 37.73079071],\n", " [-76.86774363, 37.59858498],\n", " [-79.2410832 , 36.73533614],\n", " [-75.63397197, 37.85672189],\n", " [-78.43974651, 36.73714428],\n", " [-79.63776485, 38.06933981],\n", " [-78.32258504, 38.01500577],\n", " [-77.85944265, 36.88932439],\n", " [-77.86902482, 39.14909625],\n", " [-81.97464747, 36.8508439 ],\n", " [-78.99980174, 37.44186754],\n", " [-77.36680988, 38.99916544],\n", " [-79.9150312 , 37.36377025],\n", " [-80.36600514, 36.67015317],\n", " [-77.42381708, 37.2241776 ],\n", " [-77.93652737, 38.17731926]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples.realizations[0] # simulated event points" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# build a point pattern from the simulated point series\n", "pp_csr = PointPattern(samples.realizations[0])\n", "pp_csr" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "