Last active
August 29, 2015 13:56
-
-
Save sergiobuj/9159111 to your computer and use it in GitHub Desktop.
Clusterpy usage: 0 Loading and exploring shapes (http://nbviewer.ipython.org/gist/sergiobuj/9159111)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "0_loading_shapes_with_clusterpy" | |
| }, | |
| "nbformat": 2, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "# Clusterpy usage", | |
| "", | |
| "## Loading a shape (.shp, .dbf, .shx) and exploring it using Clusterpy.", | |
| "", | |
| "Before using the clustering algorithms included in Clusterpy we need to load/import a shapefile.", | |
| "", | |
| "The data_examples directory in Clusterpy contains some shapefiles that we can use to start exploring the different components in the library.", | |
| "", | |
| "", | |
| "Let's start by importing clusterpy:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "import clusterpy", | |
| "# To use this same version use git to checkout this commit: 434b415f", | |
| "# $ git checkout 434b415f", | |
| "# Current version is v0.9.9" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "ClusterPy: Library of spatially constrained clustering algorithms" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 1 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "The basic data structure for Clusterpy is the 'Layer' object.", | |
| "", | |
| "This object will hold the information of our shapefile and will hold a reference to future modification of the shape that result from running the clustering algorithms.", | |
| "", | |
| "To create a layer object we can import an ESRI shape file or generate a regular lattice of polygons." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "### Import an ESRI file (the most common case):" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Use the importArcData function", | |
| "ca_layer = clusterpy.importArcData('clusterpy/data_examples/CA_Polygons')" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Loading clusterpy/data_examples/CA_Polygons.dbf", | |
| "Loading clusterpy/data_examples/CA_Polygons.shp", | |
| "Done" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 2 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# You can use the CPhelp function to quickly get the function's __doc__ like this:", | |
| "clusterpy.CPhelp('importArcData')" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Creates a new Layer from a shapefile (<file>.shp)", | |
| " ", | |
| " :param filename: filename without extension ", | |
| " :type filename: string", | |
| " :rtype: Layer (CP project)", | |
| "", | |
| " **Description**", | |
| "", | |
| " `ESRI <http://www.esri.com/>`_ shapefile is a binary file used to", | |
| " save and transport maps. During the last times it has become", | |
| " the most used format for the spatial scientists around the world.", | |
| "", | |
| " On clusterPy's \"data_examples\" folder you can find some shapefiles. To", | |
| " load a shapefile in clusterPy just follow the example bellow.", | |
| "", | |
| " **Example** ::", | |
| "", | |
| " import clusterpy", | |
| " china = clusterpy.importArcData(\"clusterpy/data_examples/china\")", | |
| "", | |
| " " | |
| ] | |
| } | |
| ], | |
| "prompt_number": 3 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "### Generate a regular lattice of polygons:", | |
| "Another way to create a Layer file is by generating a regular lattice with the createGrid function." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "clusterpy.CPhelp('createGrid')" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Creates a new Layer with a regular lattice", | |
| " ", | |
| " :param nRows: number of rows", | |
| " :type nRows: integer", | |
| " :param nCols: number of columns", | |
| " :type nCols: integer", | |
| " :type lowerLeft: tuple or none, lower-left corner coordinates; default is (0,0) ", | |
| " :type upperRight: tuple or none, upper-right corner coordinates; default is (100,100)", | |
| " :rtype: Layer new lattice ", | |
| "", | |
| " **Description**", | |
| "", | |
| " Regular lattices are widely used in both theoretical and empirical", | |
| " applications in Regional Science. The example below shows how easy ", | |
| " the creation of this kind of maps is using clusterPy.", | |
| " ", | |
| " **Examples**", | |
| "", | |
| " Create a grid of ten by ten points.::", | |
| "", | |
| " import clusterpy", | |
| " points = clusterpy.createGrid(10,10)", | |
| " ", | |
| "", | |
| " Create a grid of ten by ten points on the bounding box (0,0,100,100).::", | |
| "", | |
| " import clusterpy", | |
| " points = clusterpy.createGrid(10, 10, lowerLeft=(0, 0), upperRight=(100, 100))", | |
| " " | |
| ] | |
| } | |
| ], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# From the examples found in the help function we can create a simple 10x10 grid.", | |
| "# let's create a smaller grid for simplicity", | |
| "grid_layer = clusterpy.createGrid(5, 5)" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Creating grid", | |
| "Done" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 5 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "Now that we have our basic Layer data structure loaded with a shape, we can start working on it and exploring its contents.", | |
| "", | |
| "### Exploring a shapefile", | |
| "", | |
| "After loading a Shapefile we can easily get the contiguity matrix and also the information found in the .dbf (in case we loaded an ESRI file).", | |
| "", | |
| "**Contiguity matrices**: We can work with both _Wqueen_ and _Wrook_ to specify the neighbouring areas in our shapefile. In _Wqueen_, two areas are considered neighbours if they touch each other even by a point. In _Wrook_, two areas are neighbours if they share a border." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "\"\"\"", | |
| "In Wqueen, the area 'A' has all neighbors named 'Q'", | |
| "", | |
| "+=====+=====+=====+", | |
| "| Q | Q | Q |", | |
| "+=====+=====+=====+", | |
| "| Q | A | Q |", | |
| "+=====+=====+=====+", | |
| "| Q | Q | Q |", | |
| "+=====+=====+=====+", | |
| "", | |
| "In Wrook, the area 'A' has all neighbors named 'R'", | |
| "+=====+=====+=====+", | |
| "| | R | |", | |
| "+=====+=====+=====+", | |
| "| R | A | R |", | |
| "+=====+=====+=====+", | |
| "| | R | |", | |
| "+=====+=====+=====+", | |
| "\"\"\"", | |
| "None" | |
| ], | |
| "language": "python", | |
| "outputs": [], | |
| "prompt_number": 6 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Contiguity matrices of our layers", | |
| "print \"ca_layer Wqueen: \", ca_layer.Wqueen", | |
| "print \"\\nca_layer Wrook: \", ca_layer.Wrook", | |
| "print \"\\ngrid_layer Wqueen: \", grid_layer.Wqueen", | |
| "print \"\\ngrid_layer Wrook: \", grid_layer.Wrook" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "ca_layer Wqueen: {0: [6, 38, 40, 42], 1: [2, 4, 8, 25, 54], 2: [1, 4, 8, 33, 38], 3: [5, 10, 31, 50, 51, 57], 4: [1, 2, 38, 49, 54], 5: [3, 10, 16, 50, 56], 6: [0, 33, 38, 47], 7: [11, 46], 8: [1, 2, 30, 33], 9: [13, 15, 19, 23, 25, 26, 34, 53], 10: [3, 5, 16, 22, 51], 11: [7, 22, 46, 52], 12: [32, 36], 13: [9, 14, 25, 35, 53], 14: [13, 15, 18, 35, 39, 41, 53, 55], 15: [14, 9, 26, 39, 53], 16: [10, 5, 22, 27, 48, 56], 17: [24, 31, 44, 45], 18: [14, 29, 35, 55], 19: [9, 21, 23, 25, 54], 20: [48], 21: [19, 23, 49, 54], 22: [11, 10, 16, 48, 51, 52], 23: [19, 9, 21, 34, 42, 49], 24: [17, 44, 46], 25: [13, 9, 19, 1, 54], 26: [9, 15, 34, 39, 43], 27: [16, 47, 48, 56], 28: [30, 45, 57], 29: [18, 32, 35, 36], 30: [8, 28, 33, 50, 57], 31: [17, 3, 44, 45, 51, 57], 32: [12, 29, 35, 36], 33: [30, 8, 2, 6, 38, 47, 50, 56], 34: [23, 9, 26, 42, 43], 35: [13, 32, 29, 18, 14], 36: [32, 12, 29], 37: [40], 38: [6, 33, 2, 4, 0, 49], 39: [26, 15, 14, 41], 40: [37, 0, 42, 43], 41: [39, 14, 55], 42: [0, 23, 34, 40, 43, 49], 43: [42, 34, 26, 40], 44: [24, 17, 31, 46, 51, 52], 45: [31, 17, 28, 57], 46: [24, 44, 11, 7, 52], 47: [33, 6, 27, 48, 56], 48: [20, 22, 16, 27, 47], 49: [21, 23, 42, 38, 4, 54], 50: [3, 30, 33, 5, 56, 57], 51: [44, 31, 3, 10, 22, 52], 52: [46, 44, 51, 22, 11], 53: [13, 14, 15, 9], 54: [1, 25, 19, 21, 49, 4], 55: [14, 18, 41], 56: [5, 50, 33, 47, 27, 16], 57: [45, 28, 30, 50, 3, 31]}", | |
| "", | |
| "ca_layer Wrook: {0: [6, 38, 40, 42], 1: [2, 4, 8, 25, 54], 2: [1, 4, 8, 33, 38], 3: [5, 10, 31, 50, 51, 57], 4: [1, 2, 38, 49, 54], 5: [3, 10, 16, 50, 56], 6: [0, 33, 38, 47], 7: [11, 46], 8: [1, 2, 30, 33], 9: [13, 15, 19, 23, 25, 26, 34, 53], 10: [3, 5, 16, 22, 51], 11: [7, 22, 46, 52], 12: [32, 36], 13: [9, 14, 25, 35, 53], 14: [13, 15, 18, 35, 39, 41, 53, 55], 15: [14, 9, 26, 39, 53], 16: [10, 5, 22, 27, 48, 56], 17: [24, 31, 44, 45], 18: [14, 29, 35, 55], 19: [9, 21, 23, 25, 54], 20: [48], 21: [19, 23, 54], 22: [11, 10, 16, 48, 51, 52], 23: [19, 9, 21, 34, 42, 49], 24: [17, 46], 25: [13, 9, 19, 1, 54], 26: [9, 15, 34, 39, 43], 27: [16, 47, 48, 56], 28: [30, 45, 57], 29: [18, 32, 35, 36], 30: [8, 28, 33, 50, 57], 31: [17, 3, 44, 45, 51, 57], 32: [12, 29, 35, 36], 33: [30, 8, 2, 6, 38, 47, 50, 56], 34: [23, 9, 26, 42, 43], 35: [13, 32, 29, 18, 14], 36: [32, 12, 29], 37: [40], 38: [6, 33, 2, 4, 0, 49], 39: [26, 15, 14, 41], 40: [37, 0, 42, 43], 41: [39, 14, 55], 42: [0, 23, 34, 40, 43, 49], 43: [42, 34, 26, 40], 44: [17, 31, 46, 51, 52], 45: [31, 17, 28, 57], 46: [24, 44, 11, 7, 52], 47: [33, 6, 27, 56], 48: [20, 22, 16, 27], 49: [23, 42, 38, 4, 54], 50: [3, 30, 33, 5, 56, 57], 51: [44, 31, 3, 10, 22, 52], 52: [46, 44, 51, 22, 11], 53: [13, 14, 15, 9], 54: [1, 25, 19, 21, 49, 4], 55: [14, 18, 41], 56: [5, 50, 33, 47, 27, 16], 57: [45, 28, 30, 50, 3, 31]}", | |
| "", | |
| "grid_layer Wqueen: {0: [1, 5, 6], 1: [0, 2, 5, 6, 7], 2: [1, 3, 6, 7, 8], 3: [2, 4, 7, 8, 9], 4: [3, 8, 9], 5: [0, 1, 6, 10, 11], 6: [0, 1, 5, 2, 7, 10, 11, 12], 7: [1, 2, 6, 3, 8, 11, 12, 13], 8: [2, 3, 7, 4, 9, 12, 13, 14], 9: [3, 4, 8, 13, 14], 10: [5, 6, 11, 15, 16], 11: [5, 6, 10, 7, 12, 15, 16, 17], 12: [6, 7, 11, 8, 13, 16, 17, 18], 13: [7, 8, 12, 9, 14, 17, 18, 19], 14: [8, 9, 13, 18, 19], 15: [10, 11, 16, 20, 21], 16: [10, 11, 15, 12, 17, 20, 21, 22], 17: [11, 12, 16, 13, 18, 21, 22, 23], 18: [12, 13, 17, 14, 19, 22, 23, 24], 19: [13, 14, 18, 23, 24], 20: [15, 16, 21], 21: [15, 16, 20, 17, 22], 22: [16, 17, 21, 18, 23], 23: [17, 18, 22, 19, 24], 24: [18, 19, 23]}", | |
| "", | |
| "grid_layer Wrook: {0: [1, 5], 1: [0, 2, 6], 2: [1, 3, 7], 3: [2, 4, 8], 4: [3, 9], 5: [0, 6, 10], 6: [1, 5, 7, 11], 7: [2, 6, 8, 12], 8: [3, 7, 9, 13], 9: [4, 8, 14], 10: [5, 11, 15], 11: [6, 10, 12, 16], 12: [7, 11, 13, 17], 13: [8, 12, 14, 18], 14: [9, 13, 19], 15: [10, 16, 20], 16: [11, 15, 17, 21], 17: [12, 16, 18, 22], 18: [13, 17, 19, 23], 19: [14, 18, 24], 20: [15, 21], 21: [16, 20, 22], 22: [17, 21, 23], 23: [18, 22, 24], 24: [19, 23]}" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 7 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "Both the _Wqueen_ and _Wrook_ are properties of the layer object. They are a Python dictionary where the key is the area ID and the value is a Python list containing the IDs of the neighbouring areas." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "**Layer's fieldNames**", | |
| "The fieldNames property is a list with the identifiers of the data loaded with the shape file." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "ca_layer.fieldNames" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "pyout", | |
| "prompt_number": 8, | |
| "text": [ | |
| "['ID',", | |
| " 'NAME',", | |
| " 'STATE_FIP',", | |
| " 'STATE',", | |
| " 'MYID',", | |
| " 'AREA',", | |
| " 'PERIMETER',", | |
| " 'PCR1969',", | |
| " 'PCR1970',", | |
| " 'PCR1971',", | |
| " 'PCR1972',", | |
| " 'PCR1973',", | |
| " 'PCR1974',", | |
| " 'PCR1975',", | |
| " 'PCR1976',", | |
| " 'PCR1977',", | |
| " 'PCR1978',", | |
| " 'PCR1979',", | |
| " 'PCR1980',", | |
| " 'PCR1981',", | |
| " 'PCR1982',", | |
| " 'PCR1983',", | |
| " 'PCR1984',", | |
| " 'PCR1985',", | |
| " 'PCR1986',", | |
| " 'PCR1987',", | |
| " 'PCR1988',", | |
| " 'PCR1989',", | |
| " 'PCR1990',", | |
| " 'PCR1991',", | |
| " 'PCR1992',", | |
| " 'PCR1993',", | |
| " 'PCR1994',", | |
| " 'PCR1995',", | |
| " 'PCR1996',", | |
| " 'PCR1997',", | |
| " 'PCR1998',", | |
| " 'PCR1999',", | |
| " 'PCR2000',", | |
| " 'PCR2001',", | |
| " 'PCR2002',", | |
| " 'POP1969',", | |
| " 'POP1970',", | |
| " 'POP1971',", | |
| " 'POP1972',", | |
| " 'POP1973',", | |
| " 'POP1974',", | |
| " 'POP1975',", | |
| " 'POP1976',", | |
| " 'POP1977',", | |
| " 'POP1978',", | |
| " 'POP1979',", | |
| " 'POP1980',", | |
| " 'POP1981',", | |
| " 'POP1982',", | |
| " 'POP1983',", | |
| " 'POP1984',", | |
| " 'POP1985',", | |
| " 'POP1986',", | |
| " 'POP1987',", | |
| " 'POP1988',", | |
| " 'POP1989',", | |
| " 'POP1990',", | |
| " 'POP1991',", | |
| " 'POP1992',", | |
| " 'POP1993',", | |
| " 'POP1994',", | |
| " 'POP1995',", | |
| " 'POP1996',", | |
| " 'POP1997',", | |
| " 'POP1998',", | |
| " 'POP1999',", | |
| " 'POP2000',", | |
| " 'POP2001',", | |
| " 'POP2002']" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 8 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "Having the data identifiers we can extract the data using the getVars method that returns a Python dictionary where the key is the area ID and the value is an array of values." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Extract one column", | |
| "print ca_layer.getVars('NAME')", | |
| "", | |
| "# Or extract multiple columns", | |
| "print ca_layer.getVars(['NAME','POP2002'])" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Getting variables", | |
| "Variables successfully extracted", | |
| "{0: ['Alameda'], 1: ['Alpine'], 2: ['Amador'], 3: ['Butte'], 4: ['Calaveras'], 5: ['Colusa'], 6: ['Contra Costa'], 7: ['Del Norte'], 8: ['El Dorado'], 9: ['Fresno'], 10: ['Glenn'], 11: ['Humboldt'], 12: ['Imperial'], 13: ['Inyo'], 14: ['Kern'], 15: ['Kings'], 16: ['Lake'], 17: ['Lassen'], 18: ['Los Angeles'], 19: ['Madera'], 20: ['Marin'], 21: ['Mariposa'], 22: ['Mendocino'], 23: ['Merced'], 24: ['Modoc'], 25: ['Mono'], 26: ['Monterey'], 27: ['Napa'], 28: ['Nevada'], 29: ['Orange'], 30: ['Placer'], 31: ['Plumas'], 32: ['Riverside'], 33: ['Sacramento'], 34: ['San Benito'], 35: ['San Bernardino'], 36: ['San Diego'], 37: ['San Francisco'], 38: ['San Joaquin'], 39: ['San Luis Obispo'], 40: ['San Mateo'], 41: ['Santa Barbara'], 42: ['Santa Clara'], 43: ['Santa Cruz'], 44: ['Shasta'], 45: ['Sierra'], 46: ['Siskiyou'], 47: ['Solano'], 48: ['Sonoma'], 49: ['Stanislaus'], 50: ['Sutter'], 51: ['Tehama'], 52: ['Trinity'], 53: ['Tulare'], 54: ['Tuolumne'], 55: ['Ventura'], 56: ['Yolo'], 57: ['Yuba']}", | |
| "Getting variables", | |
| "Variables successfully extracted", | |
| "{0: ['Alameda', 1465923.0], 1: ['Alpine', 1219.0], 2: ['Amador', 36742.0], 3: ['Butte', 208779.0], 4: ['Calaveras', 43113.0], 5: ['Colusa', 19363.0], 6: ['Contra Costa', 989340.0], 7: ['Del Norte', 27481.0], 8: ['El Dorado', 165513.0], 9: ['Fresno', 831946.0], 10: ['Glenn', 26797.0], 11: ['Humboldt', 127348.0], 12: ['Imperial', 145843.0], 13: ['Inyo', 18273.0], 14: ['Kern', 692474.0], 15: ['Kings', 134802.0], 16: ['Lake', 62223.0], 17: ['Lassen', 33576.0], 18: ['Los Angeles', 9768236.0], 19: ['Madera', 128824.0], 20: ['Marin', 246824.0], 21: ['Mariposa', 17318.0], 22: ['Mendocino', 87516.0], 23: ['Merced', 224976.0], 24: ['Modoc', 9306.0], 25: ['Mono', 13043.0], 26: ['Monterey', 411140.0], 27: ['Napa', 129894.0], 28: ['Nevada', 95093.0], 29: ['Orange', 2926160.0], 30: ['Placer', 278515.0], 31: ['Plumas', 21003.0], 32: ['Riverside', 1695369.0], 33: ['Sacramento', 1301627.0], 34: ['San Benito', 55757.0], 35: ['San Bernardino', 1806450.0], 36: ['San Diego', 2904687.0], 37: ['San Francisco', 761983.0], 38: ['San Joaquin', 613153.0], 39: ['San Luis Obispo', 252064.0], 40: ['San Mateo', 700341.0], 41: ['Santa Barbara', 401757.0], 42: ['Santa Clara', 1677426.0], 43: ['Santa Cruz', 253295.0], 44: ['Shasta', 171784.0], 45: ['Sierra', 3489.0], 46: ['Siskiyou', 44231.0], 47: ['Solano', 409510.0], 48: ['Sonoma', 465862.0], 49: ['Stanislaus', 481014.0], 50: ['Sutter', 82273.0], 51: ['Tehama', 57454.0], 52: ['Trinity', 13254.0], 53: ['Tulare', 381039.0], 54: ['Tuolumne', 56008.0], 55: ['Ventura', 781159.0], 56: ['Yolo', 180011.0], 57: ['Yuba', 62386.0]}" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 9 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "From there you can use this dictionaries as you normally would using Python.", | |
| "", | |
| "**Geometry** Last thing we will explore this time is the geometry of the shape we just loaded.", | |
| "To do this we can use the following methods: _getBbox_, _getCentroids_ and _getGeometricAreas_." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "print \"Bounding box of the layer:\\n\", ca_layer.getBbox()", | |
| "print \"\\nCoordinates of each polygon's centroid:\\n\", ca_layer.getCentroids()", | |
| "print \"\\nGeometric area of each polygon:\\n\", ca_layer.getGeometricAreas()" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Bounding box of the layer:", | |
| "(-13849215.0216, 3810651.8715000004, -12705407.2537, 5133802.977899998)", | |
| "", | |
| "Coordinates of each polygon's centroid:", | |
| "Processing geometric areas", | |
| "Done", | |
| "{0: [-13568659.919586366, 4503413.063612468], 1: [-13338372.215979917, 4637531.6768424865], 2: [-13430882.045796787, 4616096.512727589], 3: [-13536520.309179187, 4790502.499745239], 4: [-13419984.710444089, 4582013.482539735], 5: [-13607377.60687068, 4720192.822275058], 6: [-13573009.426717965, 4541750.500248381], 7: [-13792155.732439086, 5094215.939646447], 8: [-13416714.916405657, 4663289.480117444], 9: [-13319197.243995998, 4380231.914094166], 10: [-13624642.23431504, 4780557.530761684], 11: [-13789745.01937965, 4940740.548065312], 12: [-12842419.767405918, 3877368.457248818], 13: [-13070398.220065115, 4346359.124208251], 14: [-13216999.188649021, 4186062.4704793678], 15: [-13337783.804150525, 4285929.164384436], 16: [-13664853.450876404, 4709153.371158138], 17: [-13424562.10058535, 4936793.228410435], 18: [-13160714.601288402, 4048240.6935433187], 19: [-13331807.234915387, 4443863.697048869], 20: [-13661436.093311014, 4563414.568985493], 21: [-13347796.208296021, 4494482.175947623], 22: [-13735889.12302683, 4758165.55509784], 23: [-13438225.181055542, 4440263.2055810755], 24: [-13439052.651975656, 5071553.099204304], 25: [-13234556.374408357, 4544807.466138684], 26: [-13496355.326297682, 4305487.455694987], 27: [-13617772.683528531, 4624707.534311376], 28: [-13443815.780664323, 4737914.395268852], 29: [-13109123.387110595, 3965293.3584607164], 30: [-13438152.9326567, 4703903.310220157], 31: [-13451723.687715685, 4839259.111399066], 32: [-12912367.250883367, 3970782.0348184193], 33: [-13507935.889340824, 4616562.908849987], 34: [-13478055.376873886, 4358891.890145417], 35: [-12933022.016070718, 4118558.098666614], 36: [-12994910.64984747, 3876686.1000765674], 37: [-13630999.501299726, 4518811.469500262], 38: [-13499919.919868827, 4544013.408017299], 39: [-13403416.238293068, 4192003.5300912694], 40: [-13617402.38900018, 4472389.9554926595], 41: [-13360251.215654947, 4095464.879514745], 42: [-13547194.159427388, 4445769.069474665], 43: [-13581197.11435818, 4421214.244132896], 44: [-13585433.711149536, 4949833.469471982], 45: [-13415787.879356084, 4777934.4592928], 46: [-13641136.58655161, 5071983.217357874], 47: [-13573367.305089545, 4591299.189713263], 48: [-13679783.383839797, 4627817.291038316], 49: [-13469357.95243801, 4491395.628752196], 50: [-13547026.266442705, 4699770.334356141], 51: [-13606986.489451626, 4856779.688482221], 52: [-13704749.605066169, 4933513.55758898], 53: [-13224817.616867151, 4305885.060021143], 54: [-13353290.198194833, 4557087.129823579], 55: [-13256343.395780759, 4066212.6464521573], 56: [-13570056.24491133, 4650245.633251788], 57: [-13508731.568547059, 4733319.941590071]}" | |
| ] | |
| }, | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "", | |
| "", | |
| "Geometric area of each polygon:", | |
| "Processing geometric areas", | |
| "Done", | |
| "{0: 3108321800.5820312, 1: 3141322375.7226562, 2: 2547049328.8671875, 3: 7310071012.136719, 4: 4338156715.0234375, 5: 4969871133.613281, 6: 3149200450.6289062, 7: 4705894364.058594, 8: 7599260770.140625, 9: 24223594696.015625, 10: 5773798622.015625, 11: 16226764037.457031, 12: 16483687478.710938, 13: 40911603668.70703, 14: 31697765299.308594, 15: 5503534454.2421875, 16: 5703143196.484375, 17: 21192838314.5, 18: 15538836545.734375, 19: 8773033085.925781, 20: 2273285525.9296875, 21: 6017271483.527344, 22: 15218627771.582031, 23: 8027682224.042969, 24: 19404443747.214844, 25: 13009352723.707031, 26: 13149450775.453125, 27: 3324242362.1484375, 28: 4203259051.8867188, 29: 2986245536.53125, 30: 6439967903.96875, 31: 11505610290.414062, 32: 27301274272.67578, 33: 4192057172.7734375, 34: 5577376003.628906, 35: 77145020084.69531, 36: 15661603577.3125, 37: 202862566.37890625, 38: 5923598317.199219, 39: 12917199330.90625, 40: 1889379664.0625, 41: 10501274949.964844, 42: 5315647723.28125, 43: 1811574275.0820312, 44: 17319422674.6875, 45: 4182072183.6835938, 46: 29305219389.515625, 47: 3722485525.2265625, 48: 6711028502.027344, 49: 6227170623.6796875, 50: 2604709852.703125, 51: 13085397427.78125, 52: 14390904869.09375, 53: 19211393642.875, 54: 9468555258.746094, 55: 7061990877.597656, 56: 4335799114.730469, 57: 2773976792.0351562}" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 10 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "This is what the geometric information looks like for a grid." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "print \"Bounding box of the layer:\\n\", grid_layer.getBbox()", | |
| "print \"\\nCoordinates of each polygon's centroid:\\n\", grid_layer.getCentroids()", | |
| "print \"\\nGeometric area of each polygon:\\n\", grid_layer.getGeometricAreas()" | |
| ], | |
| "language": "python", | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Bounding box of the layer:", | |
| "(0, 0.0, 100.0, 100)", | |
| "", | |
| "Coordinates of each polygon's centroid:", | |
| "Processing geometric areas", | |
| "Done", | |
| "{0: [10.0, 90.0], 1: [30.0, 90.0], 2: [50.0, 90.0], 3: [70.0, 90.0], 4: [90.0, 90.0], 5: [10.0, 70.0], 6: [30.0, 70.0], 7: [50.0, 70.0], 8: [70.0, 70.0], 9: [90.0, 70.0], 10: [10.0, 50.0], 11: [30.0, 50.0], 12: [50.0, 50.0], 13: [70.0, 50.0], 14: [90.0, 50.0], 15: [10.0, 30.0], 16: [30.0, 30.0], 17: [50.0, 30.0], 18: [70.0, 30.0], 19: [90.0, 30.0], 20: [10.0, 10.0], 21: [30.0, 10.0], 22: [50.0, 10.0], 23: [70.0, 10.0], 24: [90.0, 10.0]}", | |
| "", | |
| "Geometric area of each polygon:", | |
| "Processing geometric areas", | |
| "Done", | |
| "{0: 400.0, 1: 400.0, 2: 400.0, 3: 400.0, 4: 400.0, 5: 400.0, 6: 400.0, 7: 400.0, 8: 400.0, 9: 400.0, 10: 400.0, 11: 400.0, 12: 400.0, 13: 400.0, 14: 400.0, 15: 400.0, 16: 400.0, 17: 400.0, 18: 400.0, 19: 400.0, 20: 400.0, 21: 400.0, 22: 400.0, 23: 400.0, 24: 400.0}" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 11 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "We will leave it there. Here we are just covering the basics but if you are interested check out the full documentation for this version [here](http://www.rise-group.org/risem/clusterpy/clusterpy0_9_9/documentation.html)." | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment