*Houston Community College - Spring Branch Campus [https://www.google.com/maps/place/Houston+Community+College+-+Spring+Branch+Campus/@29.7841191,-95.5631846,17z/data=!4m13!1m7!3m6!1s0x0:0x0!2zMjnCsDQ3JzA5LjYiTiA5NcKwMzMnNTAuNCJX!3b1!8m2!3d29.786!4d-95.564!3m4!1s0x8640c4b538cbade9:0x2919686cd5d7fac!8m2!3d29.78695!4d-95.5614142] at (-95.5631846,29.7841191)
*Westchase Neighborhood [https://www.google.com/maps/place/Westchase,+Houston,+TX/@29.72609,-95.5832518,14z/data=!3m1!4b1!4m5!3m4!1s0x8640dcd3d109acff:0xb304de945995b231!8m2!3d29.7277555!4d-95.5716617] at (-95.5832518,29.72609)
*Houston Community College Alief Hayes Campus [https://www.google.com/maps/place/Houston+Community+College+Alief+Hayes+Campus/@29.7336065,-95.5770254,17z/data=!3m1!4b1!4m5!3m4!1s0x8640dcc5c688660f:0x69d7c17f3bf0f546!8m2!3d29.7336019!4d-95.5748367] at (-95.5770254,29.7336065)
Visually, it is easy to layer the years, using opacity to build up an effect over time. In the data, it is more difficult. Each year could have thickness one and then we could count the number using ST_intersects while creating the new hulls using ST_Intersection (returns null when no interection). If there are more than one intersections with the highest intersects count, then we could take the largest one as the ultimate one. The centroid of the ultimate intersection would be the heart of a city's startup scene.
I also added the roads from the Tiger Line Shapefile for Harris County[https://catalog.data.gov/dataset/tiger-line-shapefile-2013-county-harris-county-tx-all-roads-county-based-shapefile]:
shp2pgsql -c -D -s 4269 -W "latin1" -I tl_2013_48201_roads.shp tlharris | psql -U researcher -d vcdb3 shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h HOST -d DATABASE -U USER
One problem with this method is that there are partial intersections. We could use ST_Difference to return the part that doesn't intersect... a bigger problem is that we are restricted to pairs of geometries. Using a cross product we could test all rows against all other rows. But then we'd need to aggregate the intersections... One method is to use a recursive CTE [https://gis.stackexchange.com/questions/269875/aggregate-version-of-st-intersection]. ST_Union is truly an aggregate function but not what we want in this context.