本書では、特にコペンハーゲンやメルボルンを紹介しているが、私はこの本の中でもポートランドのPioneer Courthouse Squareやノルウェー・オスロのThe Norwegian National Opera & Balletが近年の事例として紹介されていることに驚いた。かなり現代の良事例であることに変わりはないが、都市に対する大規模な投資の事例をここで挙げることには一般性がないように感じられたためだ。
地域にそのまま生きてきた人々が、参加し、自己表現を行える都市空間を再生することの重要性は、まさに第3世界から先進国に発するメッセージだ。補注すれば、このことは第3世界において重要な命題なのではなく、世界的な新しい潮流となっているかもしれない。数々の制約の中での都市に対するアプローチの可能性を詳細に記述した、『タクティカル・アーバニズム』(Mike Lydon, Anthony Garcia, 2015)については、次に是非読み込みたいと考えている。
df = open('ward3.txt', 'r', encoding='shift_jis')
string = df.readlines()
a=[]
for x in string:
a.append(x.split('\t'))
print(a)
df2 = open('ward4.txt', 'r', encoding='shift_jis')
string2 = df2.readlines()
a2=[]
for x in string2:
a2.append(x.split('\t'))
print(a2)
for i in a2:
k = 0
for j in a:
if(i[0] == j[0]):
if(i[1] == j[1] or i[1] == j[2]):
i.append([j[3],j[4],j[5]])
k = 1
if(k == 0):
print("NO NAME")
print(i[2])
pprint.pprint(a2)
②複数の区をもつ市は、複数の経度緯度のデータを持つようになる。その場合、すべての区の重心を求めて代表点とする ward6 → List Object
df = open('ward6.txt', 'r', encoding='shift_jis')
string = df.readlines()
a=[]
for x in string:
a.append(x.split('\t'))
b = []
m = ''
n = ''
for i in a:
if(i[0]) == str('['):
c = 1
lng = float(i[5])
lat = float(i[6])
tdfk = i[1]
city = i[2]
popl = i[3]
if(i[0] == str('')):
c += 1
lng += float(i[5])
lat += float(i[6])
if(i[8] == str(']]\n')):
m = str(round(lng / c, 6))
n = str(round(lat / c, 6))
b.append([tdfk,city,popl,m,n])
pprint.pprint(b)
INTA = []
for i in b:
INTA.append([[i[0]+i[1],i[2],float(i[3]),float(i[4])]])
def DSfor(C):
x = 0.0
y = 0.0
c = 0.0
for i in C:
x = x + i[2]
y = y + i[3]
c = c + 1.0
xmean = x/c
ymean = y/c
Ax = 0.0
Ay = 0.0
for i in C:
Ax = Ax + (i[2] - xmean)**2.0
Ay = Ay + (i[3] - ymean)**2.0
return (56.25) *Ax + (126.5625) *Ay
def J(g,h,U):
C = U[g]+U[h]
RevS = []
DSRev = 0.0
d = 0
for i in U:
if(not (d == g or d == h)):
RevS.append(d)
DSRev = DSRev + DSfor(i)
d = d + 1
DSsum = DSRev + DSfor(C)
return DSsum
def updateU(U):
minDS = J(0,1,U)
ug1 = 0
ug2 = 1
for i in range(len(U)):
for j in range(len(U)):
if(not i == j):
if(J(i,j,U) < minDS):
minDS = J(i,j,U)
ug1 = i
ug2 = j
print(ug1,ug2,minDS)
V = []
for i2 in range(len(U)):
if(not (i2 == ug1 or i2 == ug2)):
V.append(U[i2])
V.append(U[ug1]+U[ug2])
return V
for i in range(519):
c = updateU(c)
pprint.pprint(c[-1])
def DSfor(C): x = 0.0 y = 0.0 c = 0.0 for i in C: x = x + i[2] y = y + i[3] c = c + 1.0 xmean = x/c ymean = y/c Ax = 0.0 Ay = 0.0 for i in C: Ax = Ax + (i[2] - xmean)**2.0 Ay = Ay + (i[3] - ymean)**2.0 return (Ax,Ay)
def J(g,h,U): C = U[g]+U[h] RevS = DSRevX = 0.0 DSRevY = 0.0 d = 0 for i in U: if(not (d == g or d == h)): RevS.append(d) DSRevX = DSRevX + DSfor(i)[0] DSRevY = DSRevY + DSfor(i)[1] d = d + 1 DSsumX = DSRevX + DSfor(C)[0] DSsumY = DSRevY + DSfor(C)[1] return (DSsumX,DSsumY)
inta = for i in a: inta.append([i[0],i[1],float(i[2]),float(i[3])]) print(inta)
・型がstrのままだったので、少数に直す。
INTA = for i in inta: INTA.append([i]) print(INTA)
・Jの定義に合わせて、一段階リストを深くする。
def updateU(U): minDS = J(0,1,U) ug1 = 0 ug2 = 1 for i in range(len(U)): for j in range(len(U)): if(not i == j): if(J(i,j,U) < minDS): minDS = J(i,j,U) ug1 = i ug2 = j print*2 print(minDS) V = [] for i2 in range(len(U)): if(not (i2 == ug1 or i2 == ug2)): V.append(U[i2]) V.append(U[ug1]+U[ug2]) return V
ここまでで実装。あとはデンドログラムを描くために何度もクラスターをまとめ上げていく。
import pprint b = INTA for i in range(46): b = updateU(b) pprint.pprint(b)