<jupyter_start><jupyter_text>"Part 1: 1.2. Interior Space Architecture in aPBLandscape for Organismic aFootball"> Space species in Organismic Football Playground- toc: true- branch: master- badges: true- description: Space species in the Organismic Football Playground- comments: true- image: images/12aPLandscape.png,images/12interior_aPLandscape_neighborhood.png- author: <NAME>- categories: [Affordances, aFICS Literacy, Organismic football, Convex hull]- hide: false- search_exclude: true- metadata_key1: Affordances- metadata_key2: Convex_Hull  2. Interior Space Architecture in aPBLandscape for Organismic aFootball> **<NAME>** 2020 aNatureTechnologies > ” …after all, on the pitch what we see are plays, not data” - Clement Lengled> "There is no exterior, just interior in the closed aFICS Football Universe and it is full of affordances” - aF Vision> "The main affordance of interior space architecture invites and constrain to play in an organismic aFootball style” - aF Vision<jupyter_code>#collapse_hide
from __future__ import print_function

# Base Computational Geometry of the Environment in Python
#Set of Fundamental packages  
# scientific packages
import numpy as np
import scipy
import scipy.spatial

# data science packages
import pandas as pd

# visualization packages
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

# animation packages
import ipywidgets as widgets
import moviepy as mpy


from IPython.core.interactiveshell import InteractiveShell
from IPython.display import display
from IPython.display import display_html, display_jpeg, display_png, display_json, display_latex, display_pretty, display_svg
from IPython.display import Image
from matplotlib.patches import Polygon,Arc,Ellipse
from datetime import datetime
from ipywidgets import interact, interactive, fixed, interact_manual

from moviepy.editor import VideoClip
from moviepy.video.io.bindings import mplfig_to_npimage

                                    #from matplotlib import colors
%matplotlib inline
%matplotlib ipympl
%load_ext autoreload
%autoreload 2

%config InlineBackend.figure_format = 'retina'
plt.style.use('fivethirtyeight')
#collapse_hide
import networkx as nx

from nxviz import CircosPlot, ArcPlot, MatrixPlot #for network vizualization 
from datetime import datetime
from collections import Counter
#import numpy as np

import warnings
#from custom import load_data as cf
#warning.filterwarnings('ignore')

#%matplotlib inline
#import matplotlib
#import matplotlib.pyplot as plt
#%load_ext autoreload
#%autoreload 2
%config InlineBackend.figure_format = 'retina'
plt.style.use('fivethirtyeight')
#hide
# cell added by aNT
from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all" #alter a modify the ast_note_interactivity kernel
                                                #to display more than one variable from a cell<jupyter_output><empty_output><jupyter_text>2.1. Affordances, Landscape Fitness and aFICS Literacy Gon, *playing alone*, is learning to explore and exploit the aPBLandscape. He is instructed to *observe and perceive the environment in behavioral terms* or as **processes**. The **set of things** (goals, perimeter, patch-zones, the ball) in the playground, provides **opportunities for and constrains his agency to move himself out-ball control or on-ball control in the next direction or next play**, or have cognition of the **affordances** in order to answer the great question: **What is like to play football**? That in Gon's circunstances, only depends on the channeling that all 'actual affordances' perceived by him constrain his 'autonomy' in the context of his own aFICS skills and his football action capabilities.Affordances constitute a **fluid process** in the coupled dynamical system *Gon-aPBLandscape*, scaled to his action capabilities (strength, speed, reaction times, height, weight, body dimensions) and, affordances are perceived by Gon as he learn to establish a **Gon-aPBLandscape fit**.Academia Emeritense knows that its first cognitive task in Gon’s aFICS footbal education is help him to acquire the idea of *perceive the patched landscape*, and later the pitch, in relation to constrain its functionality as a footballer. Its meaning is rooted in the affordances that provide insights in what Gon learns and how he accomplished the motor task with open inteligence that guides the 'reduced' decision making process of **how and when to act**{% fn 1 %}.Gon and Acadenia Emeritense know that **learning a skill** must be understood as the emergence of an adaptive, functional dynamic and constrained relation between he and his football environment fitness. This **fit** is influenced by a set of constrains, always present, due to- His individual biophysical, emotional, mental and psycological constrains and,- Environmental physical, perimeter, patch-inherents constrains, and most important - its set of affordances offered to him in any eventAll of them must be used and exploited by Gon as *opportunities for his agency* in the aPBLandscape and his actions will be observed by the head coach HC as a *metric* of his basic **aFICS literacy**.In this perspective, Gon involves understanding of his whole body -embodied- with affordances offered by the -embedded- aPBLandscape will determine his agency or task performance in the ground play. aFICS literacy is the metric used during his **aFICS synergon development process** until he left Academia Emeritense. Literacy must be understood by our talents as ‘*being educated*’ in our aFICS vision in the language game in the community. Moreover, the perception of affordances evolves and changes as capability for skilled action improves. It is our responsability to offer, in the physical plant of our institution, through deliberate design facilities for enhance motor skills improvement.Let me help any player an aid that expand his vision of the invisible that <NAME> does not consider… after all, on the aPBLandscape **we see actual affordances and plays**, not data.  2.2. Graph Model of the Interior of the Patched Landscape Let us move from the bounded landscape model of the aFootball Universe with a *perimeter* and an *interior space* to a more strict idea of an empty patched landscape without perimeter and **just constitued for interior space** as constrained playground.  > Note:This landscape called **aPLandscape** has only eighteen patch-zones {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17} and fifty five bidirectional spatial- *adjacency relationships between patches*, included eigthteen spatial-adjecency self-relations of the patches themselves.  The aPLandscape is shown in Figure 1.2.1. and modeled as the network graph PL in Figure 1.2.2. ![](../images/12aPLandscape.png "Figure 1.2.1. Interior Space in aPLandscape")<jupyter_code>#collapse_hide
# aNT's Patch proposal for the Inside Patched Landscape in aFootball
PL = nx.Graph(name='PL-aFootball')

#, patch='a', lane='central', zone='z1', half='us', poss=0,
#             patch_org={0,0}, patch_max={100,100}, bip={'x':50,'y':50})
#it is a eighteen_patch_zones_graph indeed

PL.add_node( 0, patch='00',pwU='inside',half='own',subsp='box')
#,zone='z1',poss=0, patch_org=(xmin,ymin),patch_max=(boxEdgeus,boxEdgeLeft),bip={'x':xcb,'y':ycb})
PL.add_node( 1, patch='01',pwU='inside',half='own',subsp='outter')
#,zone='z1',poss=0,patch_org=(xmin,boxEdgeRight),patch_max=(boxEdgeus,ymax), bip={'x':xcc,'y':ycc})
PL.add_node( 2, patch='02',pwU='inside',half='own',subsp='outter')
#,zone='z1',poss=0, patch_org=(boxEdgeus,boxEdgeLeft + gl3),patch_max=(halfwayline,boxEdgeRight - gl3),bip={'x':xcd,'y':ycd})
PL.add_node( 3, patch='03',pwU='inside',half='own',subsp='outter')
#,zone='z1',poss=0, patch_org=(boxEdgeus,boxEdgeLeft),patch_max=(halfwayline,boxEdgeLeft + gl3),bip={'x':xcf,'y':ycf})
PL.add_node( 4, patch='04',pwU='inside',half='own',subsp='outter')
#,zone='z1',poss=0, patch_org=(boxEdgeus,boxEdgeRight - gl3),patch_max=(halfwayline,boxEdgeRight),bip= {'x':xcg,'y':ycg})
                                 
PL.add_node( 5, patch='05',pwU='inside', half='own',subsp='inner')
#,zone='z1',poss=0, patch_org=(boxEdgeus,0),patch_max=(boxEdgeus + bl2us,boxEdgeLeft),bip={'x':xch,'y':ych})
PL.add_node( 6, patch='06',pwU='inside',half='own',subsp='inner')
#,zone='z1',poss=0, patch_org=(boxEdgeus,boxEdgeRight),patch_max=(boxEdgeus + bl2us,ymax), bip={'x':xcj,'y':ycj})
PL.add_node( 7, patch='07',pwU='inside',half='own',subsp='inner')
#,zone='z2',poss=0, patch_org=(boxEdgeus + bl2us,ymin),patch_max=(halfwayline,boxEdgeLeft), bip={'x':xck,'y':yck})
PL.add_node( 8, patch='08',pwU='inside',half='own',subsp='core')
#,zone='z2',poss=0, patch_org=(boxEdgeus + bl2us,boxEdgeRight),patch_max=(halfwayline,ymax), bip={'x':xcl,'y':ycl})

PL.add_node( 9, patch='09',pwU='inside',half='them',subsp='box')
#, zone='z2',poss=0, patch_org=(halfwayline,boxEdgeLeft),patch_max=(boxEdgeop,boxEdgeLeft + gl3),bip={'x':xcn,'y':ycn})
PL.add_node(10, patch='10',pwU='inside',half='them',subsp='outter')
#,zone='z2',poss=0, patch_org=(halfwayline,boxEdgeRight - gl3),patch_max=(boxEdgeop,boxEdgeRight),bip={'x':xcp,'y':ycp})
PL.add_node(11, patch='11',pwU='inside',half='them',subsp='outter')
#,zone='z2',poss=0, patch_org=(halfwayline,xmin),patch_max=(halfwayline + bl2op,boxEdgeLeft),bip={'x':xcq,'y':ycq})
PL.add_node(12, patch='12',pwU='inside',half='them',subsp='outter')
#,zone='z2',poss=0, patch_org=(halfwayline,boxEdgeRight),patch_max=(halfwayline + bl2op,ymax),bip={'x':xcr,'y':ycr})
PL.add_node(13, patch='13',pwU='inside',half='them',subsp='outter')
#,zone='z3',poss=0, patch_org=(halfwayline + bl2op,ymin),patch_max=(boxEdgeop,boxEdgeLeft),bip={'x':xcs, 'y':ycs})
           
PL.add_node(14, patch='14',pwU='inside',half='them',subsp='inner')
#,zone='z3',poss=0, patch_org=(halfwayline + bl2op,boxEdgeRight),patch_max=(boxEdgeop,ymax),bip={'x':xct,'y':yct})
PL.add_node(15, patch='15',pwU='inside',half='them',subsp='inner')
#,zone='z3',poss=0, patch_org=(boxEdgeop,ymin),patch_max=(xmax,boxEdgeLeft),bip={'x':xcv,'y':ycv})
PL.add_node(16, patch='16',pwU='inside',half='them',subsp='inner')
#,zone='z3',poss=0, patch_org=(boxEdgeop,boxEdgeRight),patch_max=(ymax,xmax),bip={'x':xcw,'y':ycw})

PL.add_node(17, patch='17',pwU='inside',half='them',subsp='core')
#, zone='z3',poss=0, patch_org=(boxEdgeop,boxEdgeLeft),patch_max=(xmax,boxEdgeLeft + gl3),bip={'x':xcx,'y':ycx})

#p = CircosPlot(PL, node_labels=True) #, node_color='pwU', node_grouping='pwU')
#p.draw()
#plt.savefig("../../APimages/aPLandscape_whole_aFootball")
#plt.show()
#collapse_hide
PL.add_edge(0,0)
PL.add_edge(0,1)
PL.add_edge(0,2)
PL.add_edge(0,5)

PL.add_edge(1,1)
PL.add_edge(1,0)
PL.add_edge(1,3)
PL.add_edge(1,5)
PL.add_edge(1,6)

PL.add_edge(2,2)
PL.add_edge(2,0)
PL.add_edge(2,4)
PL.add_edge(2,5)
PL.add_edge(2,7)

PL.add_edge(3,3)
PL.add_edge(3,1)
PL.add_edge(3,6)
PL.add_edge(3,13)

PL.add_edge(4,4)
PL.add_edge(4,2)
PL.add_edge(4,7)
PL.add_edge(4,12)

PL.add_edge(5,5)
PL.add_edge(5,0)
PL.add_edge(5,1)
PL.add_edge(5,2)
PL.add_edge(5,6)
PL.add_edge(5,7)
PL.add_edge(5,8)

PL.add_edge(6,6)
PL.add_edge(6,1)
PL.add_edge(6,3)
PL.add_edge(6,5)
PL.add_edge(6,8)
PL.add_edge(6,16)

PL.add_edge(7,7)
PL.add_edge(7,2)
PL.add_edge(7,4)
PL.add_edge(7,5)
PL.add_edge(7,8)
PL.add_edge(7,15)

PL.add_edge(8,8)
PL.add_edge(8,5)
PL.add_edge(8,6)
PL.add_edge(8,7)
PL.add_edge(8,17)

PL.add_edge(9,9)
PL.add_edge(9,10)
PL.add_edge(9,11)
PL.add_edge(9,14)

PL.add_edge(10,10)
PL.add_edge(10,9)
PL.add_edge(10,12)
PL.add_edge(10,14)
PL.add_edge(10,15)

PL.add_edge(11,11)
PL.add_edge(11,9)
PL.add_edge(11,13)
PL.add_edge(11,14)
PL.add_edge(11,16)

PL.add_edge(12,12)
PL.add_edge(12,4)
PL.add_edge(12,10)
PL.add_edge(12,15)

PL.add_edge(13,13)
PL.add_edge(13,3)
PL.add_edge(13,11)
PL.add_edge(13,16)

PL.add_edge(14,14)
PL.add_edge(14,9)
PL.add_edge(14,10)
PL.add_edge(14,11)
PL.add_edge(14,15)
PL.add_edge(14,16)
PL.add_edge(14,17)

PL.add_edge(15,15)
PL.add_edge(15,7)
PL.add_edge(15,10)
PL.add_edge(15,12)
PL.add_edge(15,14)
PL.add_edge(15,17)

PL.add_edge(16,16)
PL.add_edge(16,6)
PL.add_edge(16,11)
PL.add_edge(16,13)
PL.add_edge(16,14)
PL.add_edge(16,17)

PL.add_edge(17,17)
PL.add_edge(17,8)
PL.add_edge(17,14)
PL.add_edge(17,15)
PL.add_edge(17,16)

#collapse_hide
print("aPB-Football Universe: ")
print("      There is just the inside %d patches in the aPLandscape " % (PL.number_of_nodes()))
print("      and %d possible inter-patched zone interactions" % (PL.number_of_edges()))
print("      just the interior of aPLandscape with {core,inner,outter,box} 2D-subspaces")

p = CircosPlot(PL, node_labels=True, node_color='subsp')
p.draw()
#plt.savefig("../../APimages/Circos_aBlandscape_neighborhood")<jupyter_output>aPB-Football Universe: 
      There is just the inside 18 patches in the aPLandscape 
      and 55 possible inter-patched zone interactions
      just the interior of aPLandscape with {core,inner,outter,box} 2D-subspaces<jupyter_text>Figure 1.2.2. aFootball Interior Space in aPLandscape Graph  2.3. Affordance of Organismic aFootball: Core-Convex_Hull Subspaces Control The organization of space into meso subspaces sets reveals the existence of a terrain **hierarchy of affordances** in the aPLandscape that invites to respond with plays and tasks proper of an **organismic aFootball style and strategy**. One in which a **core-assemble** is a positional set up in order to create *intermediate plays* in the inner subspace and with a larger **membrane-assemble** positional set up where to execute *transport* tasks and *mantain* intermediate plays.An n-players, where 1<n<=11, team can be positioned in a kind of convex closure or a shape that contains all outter patches. It is the **convex hull**, a geometric concept that emerges from the space architecture as a kind of *complexity of the landscape*. An invitation to move and play the ball in this convex hull that currently separates inner and outter subspaces and, defines a subsumed core subspace.<jupyter_code>#collapse_hide
# Network Properties of PL graph 
# Football aPLandscape with 3 Lane Interconnections
r = dict(nx.degree(PL))
nx.draw(PL, nodelist=r.keys(), with_labels=True, node_color='skyblue', node_size=[v*50 for v in r.values()], cmap=plt.cm.Blues)

#plt.savefig("inaFootball aPLandscape's Ball Flow")
plt.show()<jupyter_output><empty_output><jupyter_text>Figure 1.2.3. Space Architecture of the Interior Subspace in aPLandscape  2.4. Network Properties of Space Architecture of aPLandscape<jupyter_code>#collapse_hide

# Tableau of Distances Between Patches in aPLandscape

pathlengths = []
#print("average shortest path length %s" % (sum(pathlengths) / len(pathlengths)))

print("source_pz (target_pz:length, )")
for z in PL.nodes():
    spl = dict(nx.single_source_shortest_path_length(PL, z))
    print('{} ({} '.format(z, spl))
    for p in spl:
        pathlengths.append(spl[p])
       
print("average shortest path length %s" % (sum(pathlengths)/len(pathlengths)))

#histogram of path legths
dist = {}
for p in pathlengths:
    if p in dist:
        dist[p] += 1
    else:
        dist[p] = 1

print("length #paths")
verts = dist.keys()
for d in sorted(verts):
    print('%s %d' % (d, dist[d]))


print("radius: %d" % nx.radius(PL))
print("diameter: %d" % nx.diameter(PL))
print("eccentricity: %s" % sorted(nx.eccentricity(PL)))
print("center: %s" % nx.center(PL))
print("periphery: %s" % nx.periphery(PL))
print("density: %s" % nx.density(PL))<jupyter_output>source_pz (target_pz:length, )
0 ({0: 0, 1: 1, 2: 1, 5: 1, 3: 2, 6: 2, 4: 2, 7: 2, 8: 2, 13: 3, 16: 3, 12: 3, 15: 3, 17: 3, 11: 4, 14: 4, 10: 4, 9: 5} 
1 ({1: 0, 0: 1, 3: 1, 5: 1, 6: 1, 2: 2, 13: 2, 7: 2, 8: 2, 16: 2, 4: 3, 11: 3, 15: 3, 17: 3, 14: 3, 12: 4, 9: 4, 10: 4} 
2 ({2: 0, 0: 1, 4: 1, 5: 1, 7: 1, 1: 2, 12: 2, 6: 2, 8: 2, 15: 2, 3: 3, 10: 3, 16: 3, 17: 3, 14: 3, 13: 4, 9: 4, 11: 4} 
3 ({3: 0, 1: 1, 6: 1, 13: 1, 0: 2, 5: 2, 8: 2, 16: 2, 11: 2, 2: 3, 7: 3, 17: 3, 14: 3, 9: 3, 4: 4, 15: 4, 10: 4, 12: 5} 
4 ({4: 0, 2: 1, 7: 1, 12: 1, 0: 2, 5: 2, 8: 2, 15: 2, 10: 2, 1: 3, 6: 3, 17: 3, 14: 3, 9: 3, 3: 4, 16: 4, 11: 4, 13: 5} 
5 ({5: 0, 0: 1, 1: 1, 2: 1, 6: 1, 7: 1, 8: 1, 3: 2, 4: 2, 16: 2, 15: 2, 17: 2, 13: 3, 12: 3, 11: 3, 14: 3, 10: 3, 9: 4} 
6 ({6: 0, 1: 1, 3: 1, 5: 1, 8: 1, 16: 1, 0: 2, 13: 2, 2: 2, 7: 2, 17: 2, 11: 2, 14: 2, 4: 3, 15: 3, 9: 3, 10: 3, 12: 4} 
7 ({7: 0, 2: 1, 4: 1, 5: 1, 8: 1, 15: 1, 0: 2, 12: 2, 1: 2, 6: 2, 17: 2, 10: 2, 14: 2, 3: 3, 16: 3, 9: 3, 11: 3, 13: 4} 
8[...]<jupyter_text>> Tip:d(u,v)-_ShortestPath_ If there are multiple paths connecting two nodes u,v, then the _shortest path_ is considered as the distance between the two nodes d(u,v) > Tip:apl(u,v) average shortest path length The mean shortest path length - geodesic distance of the graph  Table 1.2.1. Number of Paths of i-adjacency length in the interior of aPLandscape | length| paths||-------|------||   0   |  18  ||   1   |  74  ||   2   | 104  ||   3   |  86  ||   4   |  36  ||   5   |   6  |  Table 1.2.2. i-adjacency length of all possible single source patch-to-patch interactions in the interior of aPLandscape |pz |                                       (target_pz:length, )                                  |  Z ||---|---------------------------------------------------------------------------------------------|----||  0|({ 0:0, 1:1, 2:1, 5:1, 3:2, 6:2, 4:2, 7:2, 8:2,13:3,16:3,12:3,15:3,17:3,11:4,14:4,10:4, 9:5} | 45 ||  1|({ 1:0, 0:1, 3:1, 5:1, 6:1, 2:2,13:2, 7:2, 8:2,16:2, 4:3,11:3,15:3,17:3,14:3,12:4, 9:4,10:4} | 41 ||  2|({ 2:0, 0:1, 4:1, 5:1, 7:1, 1:2,12:2, 6:2, 8:2,15:2, 3:3,10:3,16:3,17:3,14:3,13:4, 9:4,11:4} | 41 ||  3|({ 3:0, 1:1, 6:1,13:1, 0:2, 5:2, 8:2,16:2,11:2, 2:3, 7:3,17:3,14:3, 9:3, 4:4,15:4,10:4,12:5} | 45 ||  4|({ 4:0, 2:1, 7:1,12:1, 0:2, 5:2, 8:2,15:2,10:2, 1:3, 6:3,17:3,14:3, 9:3, 3:4,16:4,11:4,13:5} | 45 ||  5|({ 5:0, 0:1, 1:1, 2:1, 6:1, 7:1, 8:1, 3:2, 4:2,16:2,15:2,17:2,13:3,12:3,11:3,14:3,10:3, 9:4} | 35 ||  6|({ 6:0, 1:1, 3:1, 5:1, 8:1,16:1, 0:2,13:2, 2:2, 7:2,17:2,11:2,14:2, 4:3,15:3, 9:3,10:3,12:4} | 35 ||  7|({ 7:0, 2:1, 4:1, 5:1, 8:1,15:1, 0:2,12:2, 1:2, 6:2,17:2,10:2,14:2, 3:3,16:3, 9:3,11:3,13:4} | 35 ||  8|({ 8:0, 5:1, 6:1, 7:1,17:1, 0:2, 1:2, 2:2, 3:2,16:2, 4:2,15:2,14:2,13:3,11:3,12:3,10:3, 9:3} | 35 ||  9|({ 9:0,10:1,11:1,14:1,12:2,15:2,13:2,16:2,17:2, 4:3, 7:3, 3:3, 6:3, 8:3, 2:4, 5:4, 1:4, 0:5} | 45 || 10|({10:0, 9:1,12:1,14:1,15:1,11:2, 4:2,16:2,17:2, 7:2,13:3, 2:3, 6:3, 8:3, 5:3, 3:4, 0:4, 1:4} | 41 || 11|({11:0, 9:1,13:1,14:1,16:1,10:2, 3:2,15:2,17:2, 6:2,12:3, 1:3, 7:3, 8:3, 5:3, 4:4, 0:4, 2:4} | 41 || 12|({12:0, 4:1,10:1,15:1, 2:2, 7:2, 9:2,14:2,17:2, 0:3, 5:3, 8:3,11:3,16:3, 1:4, 6:4,13:4, 3:5} | 45 || 13|({13:0, 3:1,11:1,16:1, 1:2, 6:2, 9:2,14:2,17:2, 0:3, 5:3, 8:3,10:3,15:3, 2:4, 7:4,12:4, 4:5} | 45 || 14|({14:0, 9:1,10:1,11:1,15:1,16:1,17:1,12:2,13:2, 7:2, 6:2, 8:2, 4:3, 3:3, 2:3, 5:3, 1:3, 0:4} | 35 || 15|({15:0, 7:1,10:1,12:1,14:1,17:1, 2:2, 4:2, 5:2, 8:2, 9:2,11:2,16:2, 0:3, 1:3, 6:3,13:3, 3:4} | 35 || 16|({16:0, 6:1,11:1,13:1,14:1,17:1, 1:2, 3:2, 5:2, 8:2, 9:2,10:2,15:2, 0:3, 2:3, 7:3,12:3, 4:4} | 35 || 17|({17:0, 8:1,14:1,15:1,16:1, 5:2, 6:2, 7:2, 9:2,10:2,11:2,12:2,13:2, 0:3, 1:3, 2:3, 3:3, 4:3} | 35 | > Tip:r(PL) Radius The minimum eccentricity from all the nodes > Tip:e(PL) Eccentricity The maximum distance between a node to all other nodes is considered as the eccentricity of node > Tip:d(PL) Diameter The maximum eccentricity from all the nodes or its longest shortest path length > Tip:Central Point If the eccentricity is equal to the radius of PL, then it is the central point of the graph > Tip:PL-center The set of all central points of PL > Tip:PL-circunsference The number of edges in the longest cycle of PL > Tip:PL-Density the number of possible or potential edges, over the number of actual edges or connections  Table 1.2.3. Set of Network Properties of PL Graph Model of the Interior of aPLandscape |   property   |                                                             ||--------------|-------------------------------------------------------------||av_path_length|    2.2037037                                                ||    radius    |    3                                                        | |    diameter  |    5                                                        || eccentricity|[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]||    center    |    [8, 17]                                                  ||   periphery  |    [0, 3, 4, 9, 12, 13]                                     ||    density   |    0.35947712418300654                                      | The network properties of PL graph, the relational model of the aPLandscape’s interior, shows 18 nodes representing patches and 324 interactions of i-adjacency length, where i in {0,1,2,3,4,5} range. The total length of those interactions is 714 and an average shortest path length 2.20 patches.Assume Mon, *a second man*, enters to the aPLandscape to constitute a *minimal AcEmFC team {Gon, Mon}*. Now on, there are 1132 possible Gon’s **possible moves|passes of the ball from the centroid of each patch to the centroid of other patch**, stasis included in the interior of the aPLandscape. To use these abundant set of affordances as opportunities to play; the minimal football team must adopt a **positional football** style.The PL graph has **small-world** network properties: a combination of high local clustering of connections between topologically neighboring patches (178-out-of-324) that is associated with *high topological efficiency of ball flow* and *short topological path lengths* between any pair of patches (apl = 2.20). This is the reason to play in the aPLandscape a **possessional football**. > Important:Organismic football has to exhibit positional and possessional football invariant style. The *high efficiency of ball flow* in the aPLandscape can be achieved by using the *relatively medium connection density* (~36% of maximum - diameter=5 - inter-patch connectivity) that means must **intermix local short ball translation with often global patch connectivity** offered by 4-length paths or once-in-a-while with 5-length passes. Therefore, this style for *trajectory creation* must remember the ideas of progress to the opponent goal patch and the use of contralateral traslations in the end-up subphase that ends in the omega-point. One point to re-mark about the aPLandscape is the variable decreasing value of the parallel cords when approaching a goal thing{% fn 2 %}. A network with a **rich club** property is identified if the set of nodes in the centre core [8,17] or inner [5,6,7,14,15,16] subspaces have high degree and are densely intra-connected. The set of nodes in the core-centre have low betwenness centrality in the same order of peripheral nodes. But, the set of nodes in the inner-centre have high betweenness centrality contribution and degrees (8,7,7) greater than of the set of nodes in the periphery of PL, as shown in Figure 1.2.4. Therefore, we claim the aPLandscape graph exhibit a **rich club property associated to its most important set of inner-centre patches**. This set of patches is the persistent objective of space-control during all the match duration. > Tip:PL-betweenness centrality is a value metric of a node that is relative to the number of shortest paths passing through the node. A high betweenness centrality means that the node is passed in many shortest paths and is therefore important for the flow in the network.  Table 1.2.4. Betweenness Centrality Contribution of each Patch | node| bc_contrib | degree| node | bc_contrib | degree| node | bc_contrib |degree||-----|------------|-------|------|------------|-------|------|------------|------| |  0  |  0.01425   |   5   |  1   |   0.05561  |   6   |   2  |   0.05561  |  6   ||  3  |  0.04527   |   5   |  4   |   0.04527  |   5   |   5  |   0.14973  |  8   ||  6  |  0.15762   |   7   |  7   |   0.15762  |   7   |   8  |   0.06900  |  6   ||  9  |  0.01425   |   5   | 10   |   0.05561  |   6   |  11  |   0.05561  |  6   || 12  |  0.04527   |   5   | 13   |   0.04527  |   5   |  14  |   0.14973  |  8   || 15  |  0.15762   |   7   | 16   |   0.15762  |   7   |  17  |   0.06900  |  6   |<jupyter_code>#collapse_hide

import collections

degree_sequence = sorted([z for n, z in PL.degree()], reverse=True)
# print "Degree sequence". degree_sequence
degreeCount = collections.Counter(degree_sequence)
deg, cnt = zip(*degreeCount.items())
fig, ax = plt.subplots(figsize=(8,8))

plt.bar(deg, cnt,width=0.80, color='skyblue')
plt.suptitle("Degree Histogram of Patches in aPLandscape")
plt.ylabel("Count")
plt.xlabel("Degree")
ax.set_xticks([d + 0.4 for d in deg])
ax.set_xticklabels(deg)

#draw graph in inset
plt.axes([0.4, 0.4, 0.5, 0.5])
PLcc = sorted(nx.connected_component_subgraphs(PL), key=len, reverse=True)[0]
pos = nx.spring_layout(PLcc)
plt.axis('on')
nx.draw_networkx_nodes(PLcc, pos, with_labels=True, node_size=30, node_color=range(18), cmap=plt.cm.Blues)
nx.draw_networkx_edges(PLcc, pos, alpha=0.5)
#plt.savefig("../../APimages/DegreeHistogramPatchesinaPLandscape")
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1573658497835326, 'fraction_numerical': 0.08007308257536641, 'mean_word_length': 4.428633031479086, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 39, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 30, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '450577', 'license': 'Apache-2.0', 'n_tokens_mistral': 10578, 'n_tokens_neox': 9293, 'n_words': 2790, 'path': '_notebooks/2020-02-17-InteriorSA1-2.ipynb', 'repo_name': 'chazzpm/aFICSCHASS', 'size': '25216'}