Yifang Zuo
Data Mining the City
12 min readDec 13, 2018

--

GENTRIFICATION DATA POOL

Kevin Sani, Zheng Xin, Yifang Zuo

Thesis:

We aim to provide a centralized platform it can create simulations that references the many indicators of gentrification that can benefit all kinds of users.

Problem:

Research on gentrification has largely focused on theoretical issues relating to causes and consequences of gentrification. Simulation to demonstrate gentrification can only offer an incomplete test — bed for the hypothesis that is not easily explored in the real world. Although simulation models allow for descriptive and explorative processes that enable to scale the dynamics of gentrification in a more micro and macro scale, some of the key issues that point to the inaccuracies of simulation model are that these models use factors that indicate gentrification, but lacking in incorporating micro-scale data in context of real urban conditions to validate and determine the appropriation of the simulation. Secondly, the microscale data exist in different platforms of mediums where each platform provides a vast amount of data across different times. These vast amounts of data become a big hurdle for researchers to sift through and use them as part of the simulation. This indicates a bigger problem in terms of the access of these data towards the users where the platforms can only be understood by researchers that have the means and knowledge to understand the data. Thus, there is an access gap for the people who are most directly affected by gentrification.

Background:

Gentrification refers to the transformation of property values from relatively low-value properties to higher value properties as a result of the influence of redevelopment, improvement, and influx of higher income residents. This process often results in spatial displacement of the original residents and changes the essential character of that community. Over the past several decades, there has been substantial gentrification and inner-city revitalization of hundreds of urban neighborhoods in America.

As gentrification normally has economic ramifications, consequently certain types of indicators are noticed when it is occurring or likely to occur in a specific area. We describe indicators as factors that provide measurements about past and current trends to assist planners and community leaders in making decisions that affect the outcomes. Social, environmental, and economic factors which work together to make changes in different scales, whether it is a community or region, are usually quantified and measured by these measurements. There are also less tangible indicators that are likely important but are incredibly difficult to model: social biases, cultural factors, etc. For the pool system, we decided to focus on indicators that can be more quantifiable by accessing data from different platforms. These include land use, zoning, ownership, density, land price, and income of inhabitants.

The study focuses on Meatpacking District, Manhattan, New York City. It is officially known as Gansevoort Market, the area just south of West 14th Street and from Hudson Street to the Hudson River, although it has extended to the north to West 16th Street and east beyond Hudson Street in recent years. By 1900, Gansevoort Market was home to 250 slaughterhouses and packing plants. Today, newly renovated loft buildings and unimproved structures provide a range of rents and tenants from artists to high-end advertising agencies, giving the area an appealing and vibrant diversity. Furthermore, it is one of the last surviving market neighborhoods in New York City, containing a rich array of 19th and early 20th century commercial and vernacular architecture.

Approach

The research tries to focus on urban characteristics that can point to gentrification indicators in the Meatpacking district. Looking at specific historical examples in terms of changing land uses in certain neighborhood to identify gentrification is less accurate because one can’t get complete data of uses in all the floors in each building. So through the help of geospatial tools, we can try to focus on looking at different angles, such as ownership changes and land use ( cluster of uses) among other factors, to detect, monitor, and map gentrification

Data Sources and Methodology

To use use the database that we collect from all the GeoSpatial tools to simulate a more accurate pattern of gentrification process.

Tools:

  • GIS : Land use changes. Major wave of gentrification washed through the area with a significant process of land use change from mainly meatpacking to a high standard fashionable business from the mid 1990s. Do similar land uses cluster to one another ? How do clusters of land uses promote changes in zoning in a particular block.
  • Zola : Zoning and ownership changes over time. How do changes in ownerships spark a change in zoning and therefore creating clustering of land uses. Zola also provides information on lot area / building footprints.
  • Eviction Lab : Data on eviction rates on certain blocks. Comparison between blocks or block to city to get a comparison in terms of scale. The datas on the eviction rate can help to map out the land use and ownership changes. This can help us in terms of which step of gentrification process come first, therefore creating a pattern.
  • Descartes Lab : To create comparison between similar qualities of density and possible building types between blocks or blocks to cities.

Agents

  • Spatial economics factors : Land use , zoning, ownership, density, price, and income. Time : 1900 , 1900–1938, 1993, 1994–2003, 2007, and today

When each category from spatial economics factors and time is selected, a pop up will show containing infos that combine time and the selected spatial economics factors. Therefore, the users can easily compare between each timeline.

Discussion

Evaluation on simulation of meatpacking and further research

Simulation of the gentrification of meatpacking is on the scope of inside neighborhood. Based on land use, zoning, ownership property, land price and median of personal income over time to demonstrate how gentrification occurred in meatpacking. Our final goal of the simulation is minimizing the negative influence of gentrification by balancing different land use from gentrification, therefore to balancing the population class and stabilized the land price. Another potential outcome of meatpacking’s simulation is to forecast gentrification in the future that based on information from past 100 years, from 1900 to 2018 to predict how each category, five categories mentioned above, of investigating will change in next 10 years. The simulation of balancing and forecast gentrification could influence the decision-making of expert on future policy and development.

The scope of our research focuses on meatpacking, a relatively small scales research that only involves one small-size neighborhood, but the scale of simulation of is not limited. A more complex scenario could be involved that provide more comprehensively study on the gentrification of a larger scale neighborhood with more indicators and agents to create a simulation as close to real-world as possible. Most crucially, the investigation does not limit to a single object that could involve multiple objects to demonstrate intra- and inter-relationship between several objects like the relationships between several neighborhoods, and city size investigation.

In the case of meatpacking for future research, comparing gentrification of meatpacking and surrounding neighborhood and gentrification of Manhattan are two possible research could be to continue processing. The study of comparing gentrification of meatpacking with the surrounding neighborhood that Chelsea and West Village will use geospatial data and personal data to compare meatpacking, a small-scale neighborhood with the surrounding large-scale neighborhood to illuminate the process of gentrification during the time within three neighborhoods. Also, research will identify the relationship between them to entail whether neighborhoods have an influence on each other on gentrification and what relationship they have for gentrification. For the second future research, gentrification of Manhattan, it is under a similar scenario with a larger range of object that 74 neighborhoods in Manhattan. The research will process in both macro- and micro-scale that from two directions to illuminate gentrification of Manhattan. Marco-scale investigates on the gentrification of Manhattan like how zoning and land use during time, and then move to a micro-scale that investigate on a region or particular neighborhood.

Evaluation of simulation in real world

An inevitable feature of the computer-based analysis is it could analysis a vast amount of data from demography to economic pattern to create a dynamic system in a short time with accuracy and precise results that is could not be done by human. From this prominent feature, the computer-based analysis could be dealing with larger amount and diversity of raw information and conduct various of analysis to solve some crucial and hard to solve problems. Then, related to urban planning, two advantages and benefits of simulation or computer-based analysis is forecast gentrification and provide more affordable housing.

As mentioned in the evaluation on simulation of meatpacking section, the simulation could help us forecast gentrification. Policy makers have the responsibility for balancing the equity and development of the city. Based on current data to predict future by computer calculation to forecast various of elements in the diversity of models. The result of forecast may be similar or controvert to what people predict. Simulation can demonstrate how the input of reinvestment flow across space and time and how to intervene in neighborhood activity to avoid the negative outcome of gentrification in the future. By results of forecast gentrification, we could balance the development in different scales to provide pleasant living space for all class of people. Another benefit of computer-based analysis is providing more affordable housing. From the data-based analysis, the high housing price could be reduced by modeling zoning that balancing the land use of residential and crucial commercial spaces to reducing function desert. Apart from planning, computer-based analyze could also solve environmental and economic problems that the top questions in the world. Algorithmic-based models reference the post-smart cities (Crichton, 2018).

Conclusion

Due to the limitation of our coding skill, our simulation is only focusing on illuminating the gentrification to all kind of user rather than actually predicting gentrification in the future. For the expert, using simulation to predicting gentrification in the future is not an impossible mission. But for our simulation task, provides direct and easy to understand simulation for all kinds of user is our main goal. This platform does not have a geographic limitation that range of research could from a single block to the whole country. The simulation helps the public to from a simple visualization to understand the complex process of gentrification that with a vast amount of data.

But, clearly, simulation is not equal to the real world. Apart from the geospatial dataset and personal data, there are various factors that will influence gentrification like the social critic, natural environment and political tendency. Simulation is trying to provide the information that as accurate as possible to minimize the gap between model and real-world. Simulation is theoretical tools that illuminate historical information and predict future assessment, and with longer research agenda simulation could be a complementary tool to assist decision-making of policy-makers, urban planners, developers, and residents.

Reference:

import spatialpixel.mapping.slippymapper as slippymapperdrawW = FalsedrawE = FalsedrawR = FalsedrawT = Falsedef setup():size(950, 1000)global meatpacking, img1990meatpacking = slippymapper.SlippyMapper(40.740402, -74.006347, 17, 'carto-light', 950, 1000)meatpacking.render()global avisiter, bvisiter, cvisiter, dvisiter, apopulationSize, bpopulationSize, cpopulationSize, dpopulationSizeapopulationSize = 50bpopulationSize = 50cpopulationSize = 50dpopulationSize = 50avisiter = []for x in xrange (apopulationSize):avisiter.append(AMover())bvisiter = []for x in xrange (bpopulationSize):bvisiter.append(BMover())cvisiter = []for x in xrange (cpopulationSize):cvisiter.append(CMover())dvisiter = []for x in xrange (dpopulationSize):dvisiter.append(DMover())def draw():background(255)meatpacking.draw()#legendlegend = loadImage("legend.png")image(legend,0,48)#boundarystroke(255,0,0)strokeWeight(3)line(175, 700, 355, 700)line(355, 700, 355, 675)line(355, 675, 470, 675)line(470, 675, 470, 670)line(470, 670, 495, 670)line(495, 670, 495, 685)line(495, 685, 553, 685)line(553, 685, 562, 620)line(562, 620, 525, 620)line(525, 620, 542, 585)line(542, 585, 500, 563)line(500, 563, 525, 520)line(525, 520, 572, 545)line(572, 545, 595, 450)line(595, 450, 625, 467)line(625, 467, 643, 438)line(643, 438, 635, 430)line(635, 430, 648, 395)line(648, 395, 612, 375)line(612, 375, 603, 385)line(603, 385, 442, 300)line(442, 300, 460, 268)line(460, 268, 435, 252)line(435, 252, 387, 330)line(387, 330, 370, 320)line(370, 320, 340, 370)line(340, 370, 390, 395)line(390, 395, 325, 510)line(325, 510, 315, 635)line(315, 635, 180, 635)line(180, 635, 175, 700)#iconrectMode(RADIUS)fill(169,169,169)noStroke()rect(360,100,25,15)rect(460,100,25,15)rect(560,100,25,15)rect(660,100,25,15)rect(760,100,25,15)rect(860,100,25,15)rectMode(CENTER)fill(0)rect(360,100,25,15)rect(460,100,25,15)rect(560,100,25,15)rect(660,100,25,15)rect(760,100,25,15)rect(860,100,25,15)rectMode(RADIUS)fill(169,169,169)noStroke()rect(360,160,25,15)rect(460,160,25,15)rect(560,160,25,15)rect(660,160,25,15)rect(760,160,25,15)rect(860,160,25,15)rectMode(CENTER)fill(0)rect(360,160,25,15)rect(460,160,25,15)rect(560,160,25,15)rect(660,160,25,15)rect(760,160,25,15)rect(860,160,25,15)textSize(10)text("1900", 335, 130)fill(0)text("1900 - 1938", 430, 130)text("1993", 530, 130)text("1994 - 2003", 630, 130)text("2007", 740, 130)text("Today", 840,130)textSize(10)text("Land Use", 335, 190)fill(0)text("Zoning", 430, 190)text("Owership", 530, 190)text("Density", 630, 190)text("Price", 735, 190)text("Income", 835,190)#titletextSize(24)fill(0)text ("Simulation of Changing Land Use in The Meatpacking District", 25, 50)#mapif 350<mouseX<370 and 95<mouseY<105:rectMode(RADIUS)fill(0)rect(360,100,25,15)rect(360,160,25,15)map1 = loadImage("1900.png")image(map1,118,180)elif 450<mouseX<470 and 95<mouseY<105:rectMode(RADIUS)fill(0)rect(460,100,25,15)rect(360,160,25,15)map2 = loadImage("1900-1938.png")image(map2,118,180)elif 550<mouseX<570 and 95<mouseY<105:rectMode(RADIUS)fill(0)rect(560,100,25,15)rect(360,160,25,15)map3 = loadImage("1993.png")image(map3,118,180)elif 650<mouseX<670 and 95<mouseY<105:rectMode(RADIUS)fill(0)rect(660,100,25,15)rect(360,160,25,15)map4 = loadImage("1994-2003.png")image(map4,118,180)elif 750<mouseX<770 and 95<mouseY<105:rectMode(RADIUS)fill(0)rect(760,100,25,15)rect(360,160,25,15)map5 = loadImage("2007.png")image(map5,118,180)if 450<mouseX<470 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(460,160,25,15)rect(860,100,25,15)zoning1 = loadImage("zoning.png")image(zoning1,155,240)elif 750<mouseX<770 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(760,160,25,15)rect(860,100,25,15)price = loadImage("Price.png")image(price,115,180)elif 550<mouseX<570 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(560,160,25,15)elif 650<mouseX<670 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(660,160,25,15)elif 750<mouseX<770 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(760,160,25,15)elif 850<mouseX<870 and 155<mouseY<165:rectMode(RADIUS)fill(0)rect(860,160,25,15)if 525<mouseX<577 and 357<mouseY<410:rectMode(RADIUS)fill(0)rect(860,100,25,15)rect(560,160,25,15)fill(255,0,0)quad(577,378,536,355,518,389,560,410)stroke(0)strokeWeight(1)line(545,383,542,550)line(542,550,580,550)line(580,480,900,480)line(900,480,900,730)line(900,730,580,730)line(580,730,580,480)Own1 = loadImage("Ownership1.png")image(Own1,600,500)elif 333<mouseX<360 and 530<mouseY<555:rectMode(RADIUS)fill(0)rect(860,100,25,15)rect(560,160,25,15)fill(255,0,0)quad(360,542,335,530,333,555,352,555)stroke(0)strokeWeight(1)line(345,545,345,550)line(345,550,580,550)line(580,480,900,480)line(900,480,900,730)line(900,730,580,730)line(580,730,580,480)Own2 = loadImage("Ownership2.png")image(Own2,600,500)elif 475<mouseX<505 and 635<mouseY<670:rectMode(RADIUS)fill(0)rect(860,100,25,15)rect(560,160,25,15)fill(255,0,0)quad(505,635,476,635,475,670,505,670)stroke(0)strokeWeight(1)line(485,650,580,650)line(580,480,900,480)line(900,480,900,730)line(900,730,580,730)line(580,730,580,480)Own3 = loadImage("Ownership3.png")image(Own3,600,500)if (drawW):for i in xrange(apopulationSize):noiseDetail(10, 0.5)avisiter[i].update()avisiter[i].checkEdges()avisiter[i].display()if (drawE):for i in xrange(bpopulationSize):noiseDetail(10, 0.5)bvisiter[i].update()bvisiter[i].checkEdges()bvisiter[i].display()if (drawR):for i in xrange(cpopulationSize):noiseDetail(10, 0.5)cvisiter[i].update()cvisiter[i].checkEdges()cvisiter[i].display()if (drawT):for i in xrange(dpopulationSize):noiseDetail(10, 0.5)dvisiter[i].update()dvisiter[i].checkEdges()dvisiter[i].display()class AMover(object):def __init__(self):self.location = PVector(random(400,420),random(450,600))self.velocity = PVector(0, 0)self.topspeed = 1def update(self):self.acceleration = PVector.random2D()self.acceleration.mult(random(2))self.velocity.add(self.acceleration)self.velocity.limit(self.topspeed)self.location.add(self.velocity)def display(self):stroke(0)strokeWeight(0)fill(0,255,255)ellipse(self.location.x, self.location.y, 2.5, 2.5)def checkEdges(self):if self.location.x > 650:self.location.x = 250elif self.location.x < 250:self.location.x = 650if self.location.y > 700:self.location.y = 250elif self.location.y < 250:self.location.y = 700class BMover(object):def __init__(self):self.location = PVector(random(400,450),random(450,550))self.velocity = PVector(0, 0)

--

--