/python-chicago

Chicago meta info and other fun stuff

Primary LanguagePython

python-chicago

Information about Chicago and it's geographies. Inspired by python-us.

Because sometimes you just need to loop through a list of Chicago neighborhoods.

Installation

Install using pip:

pip install chicago

Usage

Iterate over community areas

>>> from chicago import COMMUNITY_AREAS
>>> for ca in COMMUNITY_AREAS:
...     print(ca.name, ca.number)
...
('Rogers Park', '1')
('West Ridge', '2')
('Uptown', '3')
('Lincoln Square', '4')
('North Center', '5')
('Lake View', '6')
('Lincoln Park', '7')
('Near North Side', '8')
('Edison Park', '9')

Get a community area by number

>>> COMMUNITY_AREAS.get_by_number(22)
CommunityArea(name='Logan Square', number='22')

Iterate over neighborhoods

>>> from chicago import NEIGHBORHOODS
>>> for n in NEIGHBORHOODS:
...     print(n)
Albany Park
Andersonville
Archer Heights
Armour Square
Ashburn
Auburn Gresham
Austin
Avalon Park
Avondale
Belmont Cragin

Iterate over census tracts

>>> from chicago import TRACTS
>>> for tract in TRACTS:
...     print(tract)
17031010100
17031010100
17031010100
17031010100
17031010201

Iterate over zip codes

>>> from chicago import ZIP_CODES
>>> for zip_code in ZIP_CODES:
...     print(zip_code)
60601
60602
60603
60604
60605
60606

Get the census tract that contains a Chicago precinct

>>> from chicago import PRECINCTS
>>> precinct = PRECINCTS[0]
>>> from chicago import get_tract_from_precinct_id
>>> tract = get_tract_from_precinct_id(precinct.full_name)
>>> print(tract)

Get the census tract that contains a suburban Cook county precinct

>>> from chicago.cook_suburbs import COOK_SUBURBAN_PRECINCTS, get_suburban_cook_tract_from_precinct_number
>>> precinct = COOK_SUBURBAN_PRECINCTS[0]
>>> tract = get_suburban_cook_tract_from_precinct_number(precinct.objectid)
>>> print(tract)
17031804202

Test that a zip code is in Chicago

>>> from chicago import ZIP_CODES
>>> ZIP_CODES.is_chicago('60651')
True
>>> ZIP_CODES.is_chicago('12345')
False

Data Sources

Community Areas

Boundaries - Community Areas (current))

Neighborhoods

Boundaries - Neighborhoods from the City of Chicago Data Portal

Building the data

This package uses Invoke to generate the data files that underly the Python API.

Cleaning up build files

invoke clean

Building the data files

This includes the precinct to census tract crosswalk CSVs.

invoke build