1. Working class
3. Creative Class (creative class diagram)
- Wicker Park (Creative-hipster subgroup)
- Pilsen (Working class neighborhood)
- Englewood (Service Class Neighborhood)
- Lakeview/Lincoln Park (Established Creative Class Neighborhood)
- Logan Square (Potential Creative Class Neighborhood)
Chicago Neighborhood Indicators (chicago neighborhood analysis)
- ethnic diversity
- education level (>bachelor)
Existing building fabric:
- rent cost
- house value
Transport and infrastructure:
- distance to public transportation
- traffic flow
- parking availability
- bicycle lane
- coffee shop
- grocery shop
- farmers market
- public school
- recreational park
- dog park
calculating bicycle lane percentage over neighborhood
–join the table, #of bike route in a neigh, total length of bike route in a neigh
count(s.f_street) as totalroutes,
sum(st_length(s.geom)) as length,
sum(n.shape_area) as neigh_area
from jur_neighborhoods as n
left join cty_bikeroutes as s
group by pri_neigh
–divide total lenght of bike route by neigh area
(r.length/r.neigh_area)*100 as percentage
from rawdata as r
group by percentage, pri_neigh
order by percentage
— 2. create topology
drop table street_vertices_pgr;
alter table street drop column source;
alter table street drop column target;
alter table street add column source integer;
alter table street add column target integer;
select pgr_createTopology(‘street’, 0.0001, ‘geom’, ‘id’); — function create table ‘street_vertices_pgr’
— 1.join building information
SELECT b.id, b.geom, b.bldg_id, b.shape_area, n.pri_neigh, st_centroid(b.geom) AS cen_pt, z.zone_type, b.shape_area*z.zone_type AS water FROM building AS b
LEFT JOIN neighboorhood AS n
ON st_within(b.geom, n.geom) — result table will be called ‘building_center’ or update ‘builidng’
LEFT JOIN zoning AS z
ON st_within(b.geom, z.geom)
— 3. finding nearest pt
SELECT DISTINCT ON(g1.id) g1.*,
g2.id ::INT4 As node_id,
FROM building_updated As g1, street_vertices_pgr As g2 — g1 = source table ; g2 = target table
WHERE g1.id <> g2.id
AND ST_DWithin(g1.geom, g2.the_geom, 1000)
ORDER BY g1.id, ST_Distance(g1.geom,g2.the_geom)
— 4. routing
SELECT seq,id1, id2 as node, id3 as gid, route.cost, street.geom FROM pgr_kdijkstraPath(‘
SELECT id as id,
st_length(geom) as cost
FROM street’, 001, array(SELECT “node_id” from building_final), false, false )
LEFT JOIN street
ON route.id3 = street.id
— 5. Join water usage to route
SELECT SUM(bf.water), r.gid, r.geom
FROM building_final AS bf
LEFT JOIN route AS r
ON bf.”node_id” = r.id1
GROUP by r.gid, r.geom;
Zoning Reference: http://secondcityzoning.org/
Here are some simple steps I used to map the Foursquare check-ins:
1) Doing simple Foursquare search using the venue explore API, I selected coffee shop check-ins, using coordinates for The Loop within a 5000 meter distance. These are the response results Apigee Snapshot: Foursquare The Loop Coffee Shop Check-Ins.
2) In order to geolocate these check-ins in QGIS, I had to import the JSON into Excel, filter and parse the information to show, name of coffee shop, latitude, and longitude.
3) Import the CSV file to QGIS
These maps are showing coffee shop check-ins in The Loop with purple dots.
What is a Smarter City?
Infrastructure. Operations. People.
What makes a city? The answer, of course, is all three. A city is an interconnected system of systems. A dynamic work in progress, with progress as its watchword. A tripod that relies on strong support for and among each of its pillars, to become a smarter city for all.
Smarter cities of the future will drive sustainable economic growth. Their leaders have the tools to analyze data for better decisions, anticipate problems to resolve them proactively and coordinate resources to operate effectively.
As demands grow and budgets tighten, solutions also have to be smarter, and address the city as a whole. By collecting and analyzing the extensive data generated every second of every day, tools such as the IBM Intelligent Operations Center coordinate and share data in a single view creating the big picture for the decision makers and responders who support the smarter city.
The launch point of our conversation regarding the prototype which is focused on tracking people and things, hovered around the idea of “dynamic transportation networks”. An interesting and ambitious idea to say the least, but perhaps the idea is more solution than design tool. To open up the proposition and get at some of the fundamentals that might drive the components of such a solution toward design tools, lets abstract back from bus’s + people.
At the very least one would have to know about the following things:
- where groups of people were at and where they wanted to go
- the state of the network (roads) on which the buses operated
- where buses are within the network and what the state of those buses are
To generate dynamic routes for the buses would then involve an algorithm which could find and evaluate paths within the network. This is not unlike systems currently in use by emergency management services to dispatch people and resources for things such as building fires.
To continue the abstraction we could say that the three things we need to be able to do are
- identify properties of agents which occupy the network in continuous and discontinuous ways. What or who is at or near a particular node or edge within the network and what properties are exposed to them.
- manage the nodes and edges of the network, what are their properties? how do we logically traverse the edges of the network?
- formulate singular paths or sub networks from within the network. Consider the way in which a single path through a collection of network nodes, is itself a network, if only a simple one
In this way, the underlying mechanisms that enable us to find say the fastest, or shortest route for a bus might be the same mechanisms that we would use to form ad-hoc networks through nearly any system which can be considered as a network. Perhaps the prototyped design tool might allow it’s user to generate or identify particular sub networks which a person or thing is connected to based on where they are at in space? Of course one of the more interesting conditions of this type of network thinking, still has to do with our “position” or “location” in a network, but perhaps those networks might be logical networks but not physical networks. For instance, where are you located with respect to the social or professional network that is the Architecture community of Chicago, or of the world. Through forming, collecting and analyzing these sub networks over time perhaps we can begin to understand not only where we are or what we are connected to, but how the super networks might be better organized. What kinds of feedback loops can be established here?
Ultimately this question of “Where Is Something”, physically, logically, semantically, is at the heart of what will see in the emerging paradigm of contextual computing.
The graph, a term for network from the area of mathematics referred to as graph theory, describes a collection of nodes and the edges which connect them. Graph theory is one of the most critical and fundamental aspects to computation and data. Much of the underlying data structures for modern software rely on graph representations of system components. Learning how to logically or computationally move or traverse through graphs is essential to searching, sorting, analyzing, and generating: algorithm’s such as Depth-first search, Breadth-first search, Dijkstra’s algorithm, Nearest neighbour algorithm. More specifically algorithm’s such as A* pathfinding algorithms, which underpin much of the artificial intelligence world from video games to data mining, enable goal or objective based navigation of complex networks.
Networks in Databases
To get started operating on data networks it is imperative that we properly store our networked data. While we will likely not be utilizing explicitly graph oriented databases, it is worth mentioning that databases organized around the premise of graph’s exist. In the studio and seminar we will be focusing on the utilization of the postgres/postgis relational database. Fortunately the prevalence of networks in geospatial thinking has lead to the development of some critical tools which aid in our analysis of networks using postgis data structures.
Advantages of the database routing approach are:
- Data and attributes can be modified by many clients, like Quantum GIS and uDigthrough JDBC, ODBC, or directly using Pl/pgSQL. The clients can either be PCs or mobile devices.
- Data changes can be reflected instantaneously through the routing engine. There is no need for precalculation.
- The “cost” parameter can be dynamically calculated through SQL and its value can come from multiple fields or tables.
In addition a series of tools for importing data such as street networks have been developed for pgRouting enabling aquisition from sources such as Open Street Map; OSM2PGSQL, and OSM2PGROUTING
Tutorials: beginners guide, workshop (extensive)
Startup technologies (first prototype)
Without presuming too much about the prototype, it’s safe to say that the system would take some kind of input (perhaps from the physical world i.e. sensor or maybe through an interactive interface), analysis or computation would be performed and some type of network oriented output produced.
Because of the immediacy to topics of transportation and logistics which spear headed the project, I would suggest that you simply begin with the transportation network data which we have access to through the data portal and OSM. A first pass tech prototype would therefore include:
- the process of importing this data into pgRouting friendly structures
- demonstrable querying and route formation using pgRouting SQL queries
- the representation of generated routes within qgis or google earth.
- Additional considerations might include the integration of CTA api data into our database. This would involve a simple app which could parse the XML data from the CTA’s system into table structures in our PostGres db for inclusion with base network data.
From this point, we can validate functionality and begin to think more laterally about the criteria used to create and/or interact with the data. We start with shape based networks (road center lines), developing an understanding of how pgRouting is working, then begin to explore other networks and forming networks on the fly rather than as shape file imports.