CategoryInformation

Is it possible for us to “greenline” neighborhoods?

(I don’t mean extending the Green Line to its original terminal, to provide more transportation options in Woodlawn.)

Maps have been used to devalue neighborhoods and to excuse disinvestment. There should be maps, and narratives, to “greenline” – raise up – Chicago neighborhoods.

The Home Owners’ Loan Corporation “residential lending security” maps marked areas based on prejudicial characteristics and some objective traits of neighborhoods to assess the home mortgage lending risk. (View the Cook County maps.) The red and yellow areas have suffered almost continuously since the 1930s, and it could be based on the marking of these neighborhoods as red or yellow (there is some debate about the maps’ real effects).

The Home Owners’ Loan Corporation and its local consultants (brokers and appraisers, mostly) outlined areas and labeled them according to objective and subjective & prejudicial criteria in the 1930s. Each area is accompanied by a data sheet and narrative description. The image is a screenshot of the maps as hosted and presented on Chicago Cityscape.

The idea of “greenlining”

I might be thinking myopically, but what would happen if we marked *every* neighborhood in green, and talked about their strengths, and any historical and current disinvestment – actions that contribute to people’s distressed conditions today?

One aspect of this is a form of affirmative marketing – advertising yourself, telling your own story, in a more positive way than others have heard about you in the past.

In 1940, one area on the Far West Side of Chicago, in the Austin community area, was described as “Definitely Declining”, a “C” grade, like this:

This area is bounded on the north by Lake St., on the south by Columbus Park, and on the west by the neighboring village of Oak Park. The terrain is flat and the area is about 100% built up. There is heavy traffic along Lake St., Washington Blvd. Madison St., Austin Ave. (the western boundary) and Central Ave. (the eastern boundary).

High schools, grammar schools, and churches are convenient. Residents shop at fine shopping center in Oak Park. There are also numerouss small stores along Lake St., and along Madison St. There are many large apartment buildings along the boulevards above mentioned, and these are largely occupied by Hebrew tenants. As a whole the area would probably be 20-25% Jewish.

Some of this migration is coming from Lawndale and from the southwest side of Chicago. Land values are quite high due to the fact that the area is zoned for apartment buildings. This penalizes single family occupancy because of high taxes based on exclusive land values, which are from $60-80 a front foot, altho one authority estimates them at $100 a front foot. An example of this is shown where HOLC had a house on Mason St. exposed for sale over a (over) period of two years at prices beginning at $6,000 and going down to $4,500. it was finally sold for $3,800. The land alone is taxed based on a valuation exceeding that amount. This area is favored by good transportation and by proximity to a good Catholic Church and parochial school.

There are a few scattered two flats in which units rent for about $55. Columbus Park on the south affords exceptional recreational advantages. The Hawthorne Building & Loan, Bell Savings Building & Loan, and Prairie State Bank have loaned in this area, without the FHA insurance provision. The amounts are stated to be up to 50% and in some cases 60%, of current appraisals.

Age, slow infiltration, and rather indifferent maintenance have been considered in grading this area “C”.

Infiltration is a coded reference to people of color, and Jews.

My questions about how to “greenline” a neighborhood

  1. How would you describe this part of Austin today to stand up for the neighborhood and its residents, the actions taken against them over decades, and work to repair these?
  2. How do you change the mindset of investors (both small and large, local and far) to see the advantages in every neighborhood rather than rely on money metrics?
  3. What other kinds of data can investors use in their pro formas to find the positive outlook?
  4. What would these areas look like today if they received the same level of investment (per square mile, per student, per resident, per road mile) as green and blue areas? How great was the level of disinvestment from 1940-2018?

In the midst of writing this, Paola Aguirre pointed me to another kind of greenlining that’s been proposed in St. Louis. A new anti-segregation report from For the Sake of All recommended a “Greenlining Fund” that would pay to cover the gap between what the bank is appraising a house for and what the sales price is for a house, so that more renters and Black families can buy a house in their neighborhoods.

That “greenlining” is a more direct response to the outcome of redlining: It was harder to get a mortgage in a red area. My idea of greenlining is to come up with ways to say to convince people who have a hard time believing there are qualities worth investing in that there they are people and places worth investing in.


The Digital Scholarship Lab at the University of Richmond digitized the HOLC maps and published them on their Mapping Inequality website as well as provided the GIS data under a Creative Commons license.

The genius of using ST_Subdivide to speed up PostGIS intersection comparisons

You should use ST_Subdivide to break up large shapes into smaller ones

This infographic visually compares the difference between running a PostGIS comparison query like ST_Intersects on a large shape versus a subdivided version of that large shape. Click to embiggen.

Hundreds of GIS intersection comparisons are completed every hour on Chicago Cityscape.*

People are looking at, say, a map of the South Shore community area. That “Place” page then grabs all of the building permits, building violations, business licenses, and other “feature layers” that are stored as points.

A classic “point in polygon” comparison is made using the ST_Intersects(place_geometry, permits_geometry) function.

This has worked very well for several years.

The problem

But as Chicago Cityscape handles larger shapes – they come from users drawing their own, large shapes, and from large shapes like the downtown Chicago area – this query doesn’t cut it.

Setting indexes on the geometry is imperative, but it’s not the end of the to optimize performance. That’s because the index of the geometry is a rectangular bounding box (which is also called an “envelope” in GIS) that contains the entire shape of the South Shore community area.

The downtown Chicago area, however, is not even the largest shape I have. That belongs to the new Place, “Neighborhood Opportunity Fund investment zones” (NOF). Combined, they cover 75 square miles of Chicago. Downtown is only 7.7 square miles.

After I added the NOF map and tested its Place page, it “crashed” my server, metaphorically speaking. The query to just count the number of building permits in the area would take about five minutes.

There had to be a better way; in the meantime, however, I divided the NOF map into the West and South sections. This hardly improved the counting time.

The solution

Thankfully, today, I saw a tweet from Paul Ramsey linking to his blog that linked to his slides from a recent presentation about the use of PostgreSQL to store and manipulate GIS data.

In it he explained how the ST_Subdividefunction worked. I’m going to demonstrate it using graphics from my own maps.

A normal intersection comparison, using ST_Intersects(place_geometry, permits_geometry) in a query creates a bounding box (envelope) around each geometry and quickly determines whether the two envelopes overlap. If they do, then it checks again to see if the actual geometries overlap. If they do, that data is returned as a response to your query.

When your two datasets are massive, like the NOF zones, which collectively cover 1/3rd of Chicago, and the building permits, which are found across the entire city…well, that led to the five minutes counting time.

Enter ST_Subdivide. To use it properly you would run it against your existing geometry and store the much smaller shapes, derived from the big shape, in a new table. I applied the function to all the 22,203 maps that Chicago Cityscape has and stored their unique IDs and subdivided geometries in a new “lookup” table.

Now, any time I want to compare the building permits against the NOF, the building permits are instead compared to the small shapes that were subdivided.

The query

Chicago Cityscape uses a single table (created as a materialized view) to combine all 22,203 maps. Each map is stored in a source table (for example, there’s a table to hold the 77 community areas) and the materialized view runs once a day to combine all of the maps in the source tables. This ensures our data is managed well: different source tables can hold different information, and the single table holds only the name, type, and geometry of the source tables, for faster comparison. Each entry in the single table also has a “slug”, its unique identifier.

Thus, the materialized view of the subdivided maps is created from the aforementioned single table, using this query:

create materialized view view_places_subdivided as
select gid || '_' || random() as gid, slug, st_subdivide(geom) as geom
from view_places;

The “gid” is designed to create a new unique ID field, as the slug field will be repeated for every subdivided of each map. A unique ID field is necessary if you want to refresh the materialized view concurrently (to allow for other queries to access the materialized view while it’s being refreshed).

* The results are cached for a few hours, because the feature layers change 1-2 times per day and at different times each day, so the limited duration cache accommodates that. Ideally I would code a way to invalidate the cache when the feature layer data is updated.

Upzone the 606

Map of the single family-only zoning around the Bloomingdale Trail

The area in green only allows single-family houses to be built.

Something’s gotta give.

This is all of the land area within two blocks of the Bloomingdale Trail that allows only single-family housing to be built (view full map). This isn’t to say that multi-family housing doesn’t exist here; it definitely does, and there’s probably a handful of two-flats on a majority of the blogs.

All of the five parks of the 606 are within this two block radius, and 49.6 percent of the land allows only single-family housing to be built.

But why build a transportation corridor, a park, a new, expensive, public amenity, and not change the kind of housing – which often determines the kind of family and makeup of a household – that can afford to buy a home near here.

It’s already been shown that detached single-family housing prices have grown intensely the closer you get to the trail. That price growth has meant displacement for some, and “no chance to buy or build a house here” for many others.

There are still plenty of vacant lots within the mapped area; lots that should have a 2-4 unit building built on them, but where only a 1-unit building is allowed.

This map was made possible by the new Zoning Assessment tool on Chicago Cityscape. Read about it or use it now.

How much of the land within walking distance of a CTA station is zoned to allow multi-family housing?

I recently created the Zoning Assessment tool on Chicago Cityscape, which shows a map of aggregated zoning districts in a given community area, ward, or near a CTA or Metra station. Per Paul Angelone’s suggestion, you can now show the walk shed – the area within walking distance to the station, following the streets.

The maps in this post show where one can build apartments (including a simple and common two-flat) within a 15 minute walk to the Logan Square Blue Line station, which has 24-hour service. Try it yourself.

Thirty-one percent of the walk shed allows multi-family housing.

In a second version of the same map, I’ve marked in red the gaps in the zoning map. These are areas that are zoned to allow only single-family housing. That doesn’t make sense: The land near rapid transit stations should be much denser than the land away from the stations.

Sixty-four percent of the walk shed allows only single-family housing. The remaining five percent are planned developments (at least the Mega Mall is going to have a couple hundred dwelling units), manufacturing, and parks.

And if most of the block is already zoned to allow multi-family housing, why are these parcels skipped?

This is the same map as the one above, but with areas that allow only single-family housing marked in red (however, I skipped some areas to save myself time).

How it works
The walk shed boundaries are generated by Mapzen’s isochrone service. The Zoning Assessment map asks Mapzen for the polygon of a specified walk shed (walk or bike, 10 or 15 minutes), receives the polygon and sends that polygon to a custom API on the Cityscape server, which compares that to the server’s copy of Chicago’s latest zoning map. The comparison is then returned to the browser and replaces the default Zoning Assessment map.

How to download data from ArcGIS MapServers using your computer’s command line

A lot of geospatial data (GIS) is stored on ArcGIS MapServers, which is part of the Esri “stack” of products that municipalities use to manage and publish GIS data. And a lot of people want that data. If you have ArcGIS software on your Windows computer, then it can be pretty easy to plug in the map server URL and manipulate and extract the data.

For the rest of us who don’t have an extremely expensive license to that software, you can use a “command line” tool (written in Python) on any computer to download any layer of GIS data hosted on the ArcGIS MapServer and automatically convert it to GeoJSON.

You’ll need to install the Python package pyesridump, from the OpenAddresses GitHub repository, created by Ian Dees and other contributors.

Installing pyesridump is easy if you have pip installed, using the command pip install esridump.

The next thing you’ll need is the URL to a layer in a MapServer, and these are not easy to find.

Finding data to download

I can guarantee the county where you live has one. Before you continue, check to see if your county (or other jurisdiction) has the “open data portal” add-on to their ArcGIS stack.

Here are links to the open data portals enabled by Esri for Lake County, Illinois, and Broomfield County, Colorado). This is much easier to browse and find data to download (in shapefile and other formats) and you can skip this tutorial.

I don’t have a good recommendation to find the MapServer URL, though. A reader suggested looking for MapServers for jurisdictions around the world by looking through Esri’s portal of open data called ArcGIS Hub. Once you locate a dataset you want, you can find the MapServer URL under About>Data Source on the right side of the page.

I normally find them by looking at the HTML source code of a MapServer I already know about.

For this example I’ll use one of the GIS layers in the Cook County, Illinois, election service MapServer – here’s the layer for the Cook County commissioners districts.

Fetch the data

Once you have the URL the command is simple:

esri2geojson http://cookviewer1.cookcountyil.gov/ArcGIS/rest/services/cookElectnSrvc/MapServer/11 cookcounty_commissioners.geojson

  • The first term, esri2geojson tells your computer which program to load.
  • The second term is the URL of the MapServer URL.
  • The third term is the filename and location where you want to store the file. I prefer running the command “inside” the folder where I want the file to be stored. You can also specify a full path of the file. On a Mac this would look like ~/Users/username/Documents/GIS/projectname/cookcounty_commissioners.geojson

After you enter the command into your computer’s terminal, press enter. esri2geojson will report back once, after it finds and understands the MapServer URL you gave it. When it’s done, the command will “close” and your computer’s terminal will wait for the next command.

Do you have questions, or need some help? Leave a comment below.

Fun with stats: Building permits by street name and number edition

John Hancock Center

The John Hancock Center. Photo by Kevin Dickert.

 

On which street are the most building permits issued?

Michigan Avenue!

But where on Michigan Avenue are the most building permits issued?

Take a guess!

First, can you answer: Are most building permits issued to North Michigan Avenue (between Madison Street, 0 north/south, and Oak Street, 1000 north), or South Michigan Avenue (between Madison Street, 0 north/south, and um, somewhere south of 130th Street, 13000 south)?

Here’s the answer…

Even though South Michigan Avenue is at least 13x longer than North Michigan Avenue, South Michigan Avenue has 39 percent fewer building permits!

From 2006 to yesterday (Saturday), there were 7,828 building permits issued to projects on North Michigan Avenue and 4,714 building permits issued on South Michigan Avenue.

The most common address on North Michigan Avenue to receive building permits was 875 N Michigan Avenue. It’s also the most common address to receive building permits on all Chicago streets.

What’s there? The John Hancock Center (tower)!

The average building address number on North Michigan Avenue is 540.6. That means that building permits on North Michigan Avenue concentrate around Grand Avenue, which is near the city’s biggest Marriott hotel, and is where the Under Armor flagship store is.

The next most common street – after South Michigan Avenue – is North Clark Street, which extends from Madison Street (0 north/south) to the northern edge of the city at Howard Street, which is 7600 north, about 7.6 times longer than North Michigan Avenue.

S. Clark Street Signs

Businesses in the 400 block of South Clark Street, as of when the photo was taken in November 2008. I believe the hotel is still there. This is the busiest block of South Clark Street, for building permits. Photo by Bruce Laker.

South Clark Street doesn’t register in the top 10 or even the top 100. It comes it at number 162, with 772 building permits. This is surprising to me because South Clark Street runs from Madison Street (0 north/south) in downtown and goes to 2200 south, and has a lot of downtown office buildings.

South LaSalle Street (3,613 building permits), South Wabash Avenue (2,916), and South Dearborn (1,611) are all in the top 50. The data could be wrong somehow.

It’s impossible to track the many investment programs in disinvested Chicago neighborhoods

An article in the Chicago Tribune that announces Chase bank’s increase in the amount of grants it is offering in Chicago goes on to detail myriad existing grant, loan, and donation programs from public and private sources for neighborhoods that have few jobs, few resources, no privilege, and lots of quality of life problems.

But not all of the programs. There are more, but I don’t even know how many more, nor do I know all of their names. I just know that I’ve read about them before.

The article is where I learned that Benefit Chicago – a $100 million investment fund  operated by the Chicago Community Trust, MacArthur Foundation, and Calvert Foundation, but hasn’t finished raising all the money – has started giving out loans and grants to Chicago recipients, including Garfield Produce Company.

Calvert Foundation has a brokerage (I think that’s the best name for it) through which regular Chicagoans can invest $20 minimum and earn 1.0% interest on that investment after 1 year. Longer periods net higher returns.

Anyway, back to my point…

If I were a business owner in Chicago, and I wanted financial assistance to expand my business – say, buy more kitchen equipment to be able to produce more food – where would I start looking?

Is there a list somewhere? Will my alder know? Is there a group in my neighborhood that can help me track down a funder? Is this more complicated than getting a VC to fund a “Bodega killer“?

One of the things I’ve tried to do with the tens of thousands of maps on Chicago Cityscape is highlight when a business or property owner could be eligible for financial assistance based purely on their geography.

Map of areas where you, as a business or property owner, can get funding assistance from publicly-funded programs.

These geographers where government funding is available are marked with a green icon of a dollar bill that links to a Resources page I adapted from a pamphlet the city’s planning department used to produce. These include:

  • TIF (tax increment financing) districts, including whether the district participates in the Small Business Improvement Fund
  • MMRP (micro market recovery program)
  • Enterprise Zone (a state of Illinois program)
  • Industrial Growth Zone (expedited approval processes + environmental remediation money)
  • Special Service Area (SSA; business improvement district)
  • Chicago landmark and National Register of Historic Places districts
  • Planned Manufacturing Districts (PMD), although I forget what assistance is available here
  • Neighborhood Opportunity Fund zones (an interesting policy that charges developers for additional density and grants that money to small business owners on the South and West Sides)

Not every area within the above categories is in a disinvested neighborhood because not every program was designed for that. 

Green dollar bill signs on Chicago Cityscape

Once you know this, I guess you can target your research. But there’s still a lot more to do. To start: Where the heck is Chase investing? Where the heck is Benefit Chicago investing? They don’t publish maps, as far as I can tell.

Actually, thinking about this more, as I reach nearly 400 words in this blog post, I’ve got another idea: Show up at Rahm’s new Small Business Center at City Hall and ask them.

A map of maps

The map of maps.

Over on my website Chicago Cityscape I’ve assembled a map of maps: There are 20,432 maps in 36 layers. You might say there are 36 maps, and each of those maps has an arbitrary number of boundaries within. I say there are 20,000+ maps because there’s a unique webpage for each of them that can tell you even more information about that map.

This post is to throw out some analysis of these maps, in addition to the simple counts above.

The data comes from the City of Chicago, Cook County, and the U.S. Census Bureau. Some layers have come from bespoke sources, including the entrances of CTA and Metra stations drawn by Yonah Freemark and me for Transit Explorer. The sections of the Chicago River were divided and sliced by the Metropolitan Planning Council. The neighborhood and business organizations layers were drawn by me, by interpreting textual descriptions of the organizations’ boundaries, or by visually copying an organization’s own map.

There are 6,879 unique words longer than 2 characters, in the metadata of this map of maps. The most common word is “annexation”, which makes sense, given that the layer with the most maps shows the 10,668 Cook County annexation actions since 1830 – the first known plat was incorporated in the City of Chicago.

The GeoJSON file, an open source, human readable GIS format, comes out to 30 MB, and it make break your browser when you try to display this layer.

The next group of words are also generic, like “planned” and “development”, related to the Planned Development kind of zoning process in Chicago – called Planned Unit Development in other jurisdictions.

After that, some names of municipalities that traded back and forth between unincorporated Cook County and incorporated municipalities are on the list.

Working down the list, however, it gets really boring and I’m going to stop. I bet if you’re a smarter data science person you can find more interesting patterns in the words, but I’ve also increased the number of generic words (like planned development) by adding these as keywords to each map’s “full text search” index, to ensure that they would respond to a variety of search phrases from users.

Inclusionary zoning calculator will tell you how many units a developer can afford to make “affordable”

An “inclusionary zoning” calculator can help you determine how much affordable housing your town should require that developers build in their new construction residential buildings.

I learned about Grounded Solutions Network’s Inclusionary Housing Calculator at the second-ever YIMBYtown conference in Oakland, California, two weeks ago.

YIMBY (yes in my back yard) is a movement to reduce barriers to building more housing in order to be able to house everyone at a level they can afford. It’s a movement for other things, and it means a lot of different things to a lot of different people but the end result is that more housing needs to be built.

An interested person inputs a lot of values relevant to their local housing market into the IHC and it will calculate the cost of construction per unit and the rental income from those units, and then will figure the profit margin for the developer. What makes this “inclusionary” is that one also needs to enter the desired portion of units that are set aside as “affordable” (to people making a certain income) and subsidized by the developer’s rental income.

I put the IHC through a real world exercise by inputting as much data as I knew about a rejected proposal in Pilsen.

The first proposal from Property Markets Group had 500 units, and 16 percent of them were set aside (news on this and their subsequent proposals) [I cannot find the source of the “16 percent on-site” factor]. Chicago’s Affordable Requirements Ordinance, or ARO, requires that 10 percent of the units are affordable, and that 25 percent of those 10 percent must be built on site. The other 75 percent can be built on site, or the developer can pay an in-lieu fee per unit.

Needless to say, 16 percent on-site is much, much higher than 25 percent of 10 percent. A neighborhood organization, the Pilsen Land Use Committee, however, requires 21 percent in the area, and the city council member, Danny Solis, 25th Ward, adheres to.

PMG said they couldn’t go that high, and that’s what I wanted to test.

According to this Inclusionary Housing Calculator, could the developer make enough profit (considered as 10 percent) if the building had 21 percent of units as affordable?

In this exercise, the answer was “no, PMG could not make a profit if they had to set aside 21 percent of the units as affordable.”

But the calculator showed that they could earn a 12 percent profit if 16 percent of the units were affordable. 

Some of the inputs are actual, like the sale price of the land (found in the Illinois Department of Revenue’s transactions database), but I had to make up some inputs, including the apartments’ bedroom mix, and the future rental prices of those apartments.

Further reading

  • It’s tough for people to move into one of these set-aside apartments in Chicago (DNAinfo Chicago, July 28, 2017)
  • Inclusionary zoning cannot create enough affordable units (City Observatory, February 11, 2016)
  • Other housing cost calculators like this one (City Observatory, July 26, 2016)

360° spherical photos of Chicago from 300 feet in the air

This rad app called Hangar 360 captures a spherical photo from 300 feet in the air. If you look at them on your phone the picture takes advantage of your phone’s sensors and the image moves as your phone moves.

Click on the linked location to view the spherical photo.

Plazas at 150 N Riverside and River Point (444 W Lake St)

Wolf Point – this launch site can no longer be used because it became an active construction site for the second of three skyscrapers a couple of days ago.

Providence St. Mel and downtown Chicago

Garfield Park – one of the city’s grand parks and part of the boulevard system, or “Emerald Necklace” that connects the Northwest Side boulevards to the West Side parks of Humboldt Park and Garfield Park to the South Side parks of Douglas Park, Washington Park, and Jackson Park.

Former Ickes housing site and its relation to downtown

Ickes redevelopment site and National Teachers Academy – this site used to have over 1,000 residences owned by the Chicago Housing Authority and is going to be redeveloped into just under 1,000 units for a mixed-income community.

Smokestacks at a former incinerator in Humboldt Park

West Side incinerator – these two smokestacks remain from one of the city’s four trash incinerators, and are the subject of an upcoming story from City Bureau.

© 2018 Steven Can Plan

Theme by Anders NorénUp ↑