Sugar Hill / West Harlem

Ashley Louie
Data Mining the City
2 min readSep 12, 2018

Homework 01
9/12/2018

Neighborhood: Sugar Hill / West Harlem

Original Sketch

Rules:
1. The 2 main streets converge in a triangle, while most others are on an orthogonal grid
2. Buildings are regularly spaced in the residential blocks
3. Larger buildings are irregular in commercial blocks

Edgecombe Ave
def setup():
size(500,500)
background(240)

global block, blockLength, bldg, bldgX, bldgY, bldgQuantity, bldgLength, bldgWidth, drawBlock, img, x

blockLength = 300
bldgQuantity = 10
bldgWidth = 10
block = int(2 * blockLength)
blockLength = int(bldgQuantity * bldgWidth)

#image for background reference
#img = loadImage("GoogleMap.png")
#image(img, 0, 0)

def draw():
#image for background reference
#image(img, 0, 0, 500, 500)

#parks
noStroke()
fill(195, 255, 180)
rect(220, 0, 120, 35)
quad(0,500, 0,465, 160,465, 170,500)
triangle(285,465, 265,335, 305,335)

#major roads
stroke(255)
strokeWeight(12)
#145
line(0, 35, 500, 35)
#FredrickDouglass
line(470, 0, 470, 500)
#141
line(0, 465, 500, 465)
#StNicholas
line(100, 0, 100, 35)
line(100, 35, 170, 500)

#small streets
stroke(255)
strokeWeight(8)
#Edgecombe
line(220, 0, 220, 35)
line(220, 35, 285, 465)
#Bradhurst
line(340, 0, 340, 35)
line(340, 35, 285, 465)
line(285, 465, 285, 500)
#streets east
line(330, 150, 500, 150)
line(315, 255, 500, 255)
line(270, 360, 500, 360)
#HamiltonTerrace
line(0, 150, 20, 150)
line(20, 150, 20, 465)

#bldgs
noStroke()
fill(100)

def drawBlockV(blockX, blockY, offsetX, offsetY, bldgLength, bldgWidth, bldgQuantity):
y = -1
while y < bldgQuantity-1:
y += 1
rect(blockX+offsetX*y, blockY+(offsetY+bldgWidth)*y, bldgLength, bldgWidth)

drawBlockV(30, 155, 0, 2, 30, 10, 25)
drawBlockV(55, 48, 12, 5, 30, 75, 5)
drawBlockV(115, 48, 2.8, 2, 30, 15, 24)
drawBlockV(178, 48, 1.9, 2, 30, 10, 34)
drawBlockV(230, 48, 1.9, 3, 20, 10, 22)
drawBlockV(310, 48, -1.9, 3, 20, 10, 22)

def drawBlockH(blockX, blockY, offsetX, offsetY, bldgLength, bldgWidth, bldgQuantity):
x = -1
while x < bldgQuantity-1:
x += 1
rect(blockX+(offsetX+bldgLength)*x, blockY+offsetY*x, bldgLength, bldgWidth)

drawBlockH(0, 0, 4, 0, 15, 18, 5)
drawBlockH(120, 0, 11, 0, 20, 18, 3)
rect(350, 0, 100, 18)
rect(485, 0, 15, 18)

rect(350, 48, 100, 90)
rect(485, 48, 15, 90)

drawBlockV(330, 210, -1.9, 3, 30, 10, 3)
drawBlockH(335, 160, 2, 0, 15, 40, 7)
drawBlockH(365, 205, 3, 0, 25, 40, 3)

rect(350, 280, 100, 30)
drawBlockV(310, 370, -1.9, 3, 30, 10, 7)
drawBlockV(410, 375, 0, 2, 30, 10, 7)
rect(345, 370, 40, 30)
rect(360, 430, 40, 20)

drawBlockH(185, 480, 5, 0, 40, 20, 2)
rect(365, 480, 70, 20)

#my home
stroke(255, 103, 224)
strokeWeight(2)
noFill()
ellipse(250, 355, 20, 20)

--

--

Ashley Louie
Data Mining the City

With a background in architecture and urban design, I work with data and technology for social good.