Commits

Chris Mutel  committed 754ffdc

First version of beginning stuff

  • Participants
  • Parent commits e50ecda

Comments (0)

Files changed (2)

+Overview
+========
+
+This is a python module for calculating global (Moran's I [1]) and local spatial autocorrelation [1.5] using the AMOEBA algorithm [2]. This code works on shapefiles, although a base class is provided to allow the examination of other objects, e.g. from a spatial database.
+
+Usage
+=====
+
+The easiest way is to call `autocorrelate.py` with the name and path of the shapefile, e.g.::
+
+	python autocorrelate.py path/to/file/filename.shp
+
+To use in other python programs::
+
+	from lcia_autocorrelation.ac_shapefile import AutocorrelationShapefile
+	ac = AutocorrelationShapefile("filepath")
+	ac.global_autocorrelation()
+
+Autocorrelation calculations are made using the PySAL library; multiple measures of autocorrelation are possible.
+
+Local Indicators of Spatial Autocorrelation (LISA)
+==================================================
+
+Moran's I (http://en.wikipedia.org/wiki/Moran's_I) is a single statistic for glboal autocorrelation. However, the calculation of Moran's I involves summing the individual cross products of each spatial unit. Local indicators of spatial association (LISA) (Anselin, L. (1995). "Local indicators of spatial association – LISA". Geographical Analysis, 27, 93-115) uses these local indicators directly, to calculate a local measure of clustering or autocorrelation. The LISA statistic is:
+
+.. math::
+
+	I_{i} = \frac{Z_{i}}{}\sum_{j}W_{ij}Z_{j}
+	I = \sum_{i}\frac{I_{i}}{N}
+
+Where *I* is the autocorrelation statistic, *Z* is the deviation of the variable of interest from the average, and *W* is the spatial weight linking **i** to **j**.
+
+We use the PySAL library (http://code.google.com/p/pysal/) to calculate LISA statistics (http://pysal.org/users/tutorials/autocorrelation.html#local-indicators-of-spatial-association).
+
+Installation
+============
+
+Using pip::
+
+	pip install lcia-autocorrelation
+
+Using easy_install::
+
+	easy_install lcia-autocorrelation
+
+Requirements
+------------
+
+The following packages are required
+
+* numpy
+* scipy
+* pysal
+* rtree
+* osgeo
+* django
+* progressbar
+
+Copyright and License
+=====================
+
+This code was written by Chris Mutel [3] during his studies at ETH Zurich [4], and is copyright 2011 ETH Zurich. The license is 2-clause BSD.
+	

File lcia_autocorrelation/autocorrelate.py

-from optparse import OptionParser
+import sys, os
+from ac_shapefile import AutocorrelationShapefile
+
+if len(sys.argv) != 2:
+    print "Can't understand arguments - please give filename e.g. \n\tpython autocorrelate.py path/to/file/filename.shp"
+    sys.exit()
+try:
+    os.stat(sys.argv[1])
+except OSError:
+    print "Can't find or access file %s" % sys.argv[1]
+    sys.exit()
+
+AutocorrelationShapefile(filename).global_autocorrelation()