Using the Cambridge (Massachusetts) GIS data, we can compute some interesting geospatial statistics.

## Subway stations

Using the address points (20844 points) and the subway stations data files, we can find out how many Cambridge addresses are in a certain radius of a Cambridge subway station. More particularly, we want to find the percentage of Cambridge addresses less than 1/8, 1/4 and 1/2 mile from a Cambridge subway station.

- Less than 1/8 of a mile: 3%
- Less than 1/4 of a mile: 14%
- Less than 1/2 of a mile: 57%

Note: You can have many people living at the same address point.

Note: This does not take into consideration subway stations outside Cambridge.

Note: Distance is a straight line between two points.

## Bus shelters

We can perform the same calculation as above but with bus shelters (55 in Cambridge).

- Less than 1/8 of a mile: 26%
- Less than 1/4 of a mile: 68%
- Less than 1/2 of a mile: 99%

Note: This does not take into consideration bus shelters outside Cambridge.

## Sports areas

We can find the percentage of Cambridge addresses less than 1/8, 1/4 and 1/2 mile from a sports area. In addition, we can do the same calculation for a specific sports area type:

### A sport area (265 in Cambridge)

- Less than 1/8 of a mile: 66.8%
- Less than 1/4 of a mile: 95.8%
- Less than 1/2 of a mile: 99.9%

### Basketball sport area (34 in Cambridge)

- Less than 1/8 of a mile: 31.3%
- Less than 1/4 of a mile: 75.3%
- Less than 1/2 of a mile: 99.3%

### Tennis sport area (18 in Cambridge)

- Less than 1/8 of a mile: 7%
- Less than 1/4 of a mile: 31%
- Less than 1/2 of a mile: 80%

### Park sport area (1 in Cambridge)

- Less than 1/8 of a mile: 0.02%
- Less than 1/4 of a mile: 1.48%
- Less than 1/2 of a mile: 10.17%

### Field sport area (24 in Cambridge)

- Less than 1/8 of a mile: 10%
- Less than 1/4 of a mile: 38%
- Less than 1/2 of a mile: 89%

### Baseball sport area (23 in Cambridge)

- Less than 1/8 of a mile: 14%
- Less than 1/4 of a mile: 48%
- Less than 1/2 of a mile: 92%

### Playground sport area (138)

- Less than 1/8 of a mile: 58%
- Less than 1/4 of a mile: 93%
- Less than 1/2 of a mile: 100%

Note: This does not take into consideration sports areas outside Cambridge.

## Neighborhoods

One data file lists the different neighborhoods, 13 in total:

- Area Four
- Neighborhood Nine
- Area 2/MIT
- Cambridgeport
- Riverside
- Mid-Cambridge
- Wellington-Harrington
- East Cambridge
- Agassiz
- Cambridge Highlands
- Strawberry Hill
- West Cambridge
- North Cambridge

## Single-Family assessed value

Using two data files, we can find out the average assessed value for a single-family house per neighborhood. Here are the results sorted from most expensive to least expensive:

- West Cambridge – $1507544
- Neighborhood Nine – $1451155
- Agassiz – $1075459
- Mid-Cambridge – $786673
- Riverside – $712027
- Strawberry Hill – $707192
- Area 2/MIT – $599264
- Cambridgeport – $592257
- North Cambridge – $534844
- Cambridge Highlands – $507051
- Area Four – $505535
- Wellington-Harrington – $456673
- East Cambridge – $407907

## Single-Family assessed value per sq. ft.

We can also perform a similar calculation per sq. ft. Here are the results sorted from most expensive to least expensive:

- West Cambridge – $318
- Neighborhood Nine – $318
- Agassiz – $287
- Mid-Cambridge – $261
- Riverside – $253
- Area 2/MIT – $225
- Cambridgeport – $223
- Cambridge Highlands – $222
- Wellington-Harrington – $208
- Strawberry Hill – $207
- North Cambridge – $204
- East Cambridge – $203
- Area Four – $200

## Condo assessed value

- Agassiz – $603000
- West Cambridge – $591502
- Neighborhood Nine – $581251
- Mid-Cambridge – $483449
- Riverside – $470751
- Cambridge Highlands – $449725
- Area 2/MIT – $431406
- Cambridgeport – $422049
- North Cambridge – $410023
- Strawberry Hill – $387065
- Area Four – $384520
- Wellington-Harrington – $366460
- East Cambridge – $357547

## Condo assessed value per sq. ft.

- West Cambridge – $395
- Neighborhood Nine – $387
- Agassiz – $382
- Mid-Cambridge – $376
- Riverside – $371
- Cambridge Highlands – $338
- Area 2/MIT – $334
- Cambridgeport – $334
- Wellington-Harrington – $335
- Area Four – $335
- East Cambridge – $335
- North Cambridge – $330
- Strawberry Hill – $313

## Vegetation

There is a data file listing areas with concentration of vegetation. Here is their definition: “Vegetation is a wooded area with a group or high density of trees.”

Each of those is a polygon. We can find which neighborhoods contain which vegetation polygons and calculate the total area of vegetation per neighborhood. Which neighborhood has the most vegetation? It is “Cambridge Highlands” thanks to the Fresh Pond vegetation. “Cambridge Highlands” contains 32% of the total vegetation in Cambridge followed by “North Cambridge” with 26%. Here is the full ranking:

- Cambridge Highlands – 31.7%
- North Cambridge – 25.7%
- West Cambridge – 22.1%
- Strawberry Hill – 7.5%
- Neighborhood Nine – 4.1%
- Agassiz – 3.1%
- Area 2/MIT – 2.3%
- East Cambridge – 1.6%
- Cambridgeport – 1.5%
- Riverside – 0.2%
- Mid-Cambridge – 0.1%
- Wellington-Harrington – 0%
- Area Four – 0%

## Fire Stations

There are eight fire stations in Cambridge:

- Fire Headquarters
- Fire Company 2
- Fire Company 3
- Fire Company 4
- Fire Company 5
- Fire Company 6
- Fire Company 8
- Fire Company 9

Going back to each of our neighborhood. We calculate the geometric center of each neighborhood and find out the closest fire station. Here are the results ranked by distance to the closest fire station.

- Neighborhood Nine center is 164 meters from Fire Company 8.
- East Cambridge center is 328 meters from Fire Company 3.
- Area Four center is 407 meters from Fire Company 2.
- Cambridgeport center is 492 meters from Fire Company 6.
- West Cambridge center is 534 meters from Fire Company 9.
- Riverside center is 559 meters from Fire Company 6.
- Agassiz center is 602 meters from Fire Headquarters.
- Mid-Cambridge center is 613 meters from Fire Headquarters.
- Wellington-Harrington center is 694 meters from Fire Company 5.
- Area 2/MIT center is 910 meters from Fire Company 6.
- Strawberry Hill center is 987 meters from Fire Company 9.
- North Cambridge center is 1271 meters from Fire Company 4.
- Cambridge Highlands center is 1340 meters from Fire Company 9.

Note: 1 meter ~= 1.1 yard.

## Emergency Shelters

We can do the same with emergency shelters. There are 15 in Cambridge. Here are the results ranked by distance to the closest shelter.

- Wellington-Harrington center is 68 meters from Frisoli Youth Center.
- Strawberry Hill center is 111 meters from Russell / West Cambridge Youth Ctr.
- Area Four center is 138 meters from Fletcher / Maynard Academy.
- Agassiz center is 212 meters from Baldwin School.
- Mid-Cambridge center is 223 meters from Cambridge Rindge and Latin.
- Neighborhood Nine center is 469 meters from Graham & Parks School.
- Cambridgeport center is 567 meters from Morse School.
- East Cambridge center is 634 meters from Kennedy / Longfellow School.
- North Cambridge center is 715 meters from Peabody School.
- Area 2/MIT center is 782 meters from CASPAR Shelter.
- Riverside center is 838 meters from Cambridge Rindge and Latin
- West Cambridge center is 917 meters from Tobin School.
- Cambridge Highlands center is 1038 meters from Tobin School.

## Intersections

One of the data file contains the streets/roads intersections. An interesting attribute is the intersecting street count. Here is the breakdown based on this attribute:

- 2 intersecting streets: 1392
- 3 intersecting streets: 109
- 4 intersecting streets: 2

The two “4 intersecting streets” intersections are the “Coolidge Hill Rd & Fresh Pond Pkwy & Gerrys Landing Rd & Mt Auburn St” intersection and the “Magazine St & Massachusetts Ave & Prospect St & Western Ave” intersection. After all, Cambridge is notorious for those type of intersections.

Note: There are 357 intersections without a number of intersecting streets so we dismissed those.

## Metered parking spaces

Based on one of the data file, Cambridge has 3094 metered parking spaces. A different data file lists streets segments. Using both data, we can find out the amount of street coverage when it comes to metered parking spaces. We found out that 13% of streets segments have metered parking spaces in Cambridge.

## Implementation

Python and the SnowFloat API are used here to compute those statistics. Here is how the subway stations 1/8 mile proximity statistics were calculated:

import snowfloat.client address_points_uuid = 'ecf03fb0e1f34773b53959a2c603e214' subway_stations_uuid = '32d771c0bc0641eb9fc5c2f04305ecb9' points = [] subway_stations = client.get_features(subway_stations_uuid) for subway_station in subway_stations: address_points = client.get_features(address_points_uuid, query='distance_lte', geometry=subway_station.geometry, distance=200) for address_point in address_points: for point in points: if address_point.uuid == point.uuid: break else: points.append(address_point) print len(points) / 20844.

I can publish more of the code used if needed.

## More data to analyze

Here is the full list of data files the city of Cambridge made public in the geojson format. Also listed are the fields for each data file. Let me know other statistics you would like to see added to this post.

**ADDRESS_AddressPoints**

- address_id
- ml
- stname
- stnm
- bldgid
- full_addr
- entry
- type
- editdate

**ADDRESS_MasterAddressBlocks**

- unq_id2
- unq_id
- nhood
- globalid

**ASSESSING_CommercialDistrictsFY2013**

- dist_name
- globalid
- district

**ASSESSING_CommercialDistrictsFY2014**

- dist_name
- district

**ASSESSING_EasementsFY2013**

- globalid

**ASSESSING_EasementsFY2014**

**ASSESSING_ParcelMapIndexFY2013**

- bsize_inch_to_foot
- dsize_map_scale
- globalid
- bsize_map_scale
- pcix_no
- rotation
- dsize_inch_to_foot

**ASSESSING_ParcelMapIndexFY2014**

- bsize_inch_to_foot
- dsize_map_scale
- bsize_map_scale
- pcix_no
- rotation
- dsize_inch_to_foot

**ASSESSING_ParcelsFY2013**

- map
- globalid
- ml
- fcode
- lot
- uyear
- editdate
- editor
- approved

**ASSESSING_ParcelsFY2014**

- map
- uyear
- loc_id
- lot
- ml
- editdate
- editor
- poly_type
- source
- plan_id

**ASSESSING_ResidentialDistrictFY2013**

- globalid
- district

**ASSESSING_SubParcelLinesFY2013**

- globalid

**ASSESSING_SubParcelLinesFY2014**

**BASEMAP_Bridges**

- type

**BASEMAP_Buildings**

- top_gl
- elev_sl
- top_sl
- base_elev
- type
- elev_gl
- bldgid
- editdate

**BASEMAP_Cemeteries**

- type
- name

**BASEMAP_Curbs**

- type

**BASEMAP_Decks**

- elev_sl
- base_elev
- top_gl
- elev_gl
- top_sl

**BASEMAP_Docks**

- type

**BASEMAP_Driveways**

- type

**BASEMAP_Fences**

- type

**BASEMAP_Firewalls**

- type

**BASEMAP_Headstones**

- type

**BASEMAP_MiscStructures**

- top_gl
- elev_sl
- top_sl
- base_elev
- type
- elev_gl

**BASEMAP_ParkingLots**

- type

**BASEMAP_Plazas**

- type

**BASEMAP_Porches**

- elev_sl
- base_elev
- top_gl
- elev_gl
- top_sl

**BASEMAP_PrivateWalkways**

- type

**BASEMAP_PublicFootpaths**

- type

**BASEMAP_Roads**

- type

**BASEMAP_RooftopMechanicals**

- top_gl
- elev_sl
- top_sl
- base_elev
- type
- elev_gl

**BASEMAP_RooftopSolarPanels**

- top_gl
- elev_sl
- top_sl
- base_elev
- type
- elev_gl

**BASEMAP_Sidewalks**

- type
- editdate

**BASEMAP_Stairs**

- top_gl
- stair_type
- elev_sl
- top_sl
- base_elev
- type
- elev_gl

**BASEMAP_SwimmingPools**

- top_gl
- elev_sl
- top_sl
- base_elev
- type
- elev_gl

**BASEMAP_Vegetation**

- type

**BASEMAP_Walls**

- type

**BOUNDARY_CDDNeighborhoods**

- webpage
- n_hood
- name
- globalid

**BOUNDARY_CityBoundary**

- globalid

**BOUNDARY_Zipcodes**

- globalid
- zip_code

**CDD_ZoningDistricts**

- zone_type
- zcode
- globalid
- pud_type_new
- pud_type

**CDD_ZoningOverlayDistricts**

- name
- overlap
- globalid
- type
- label
- ordnum
- editdate

**DEMOGRAPHICS_BlockGroups1990**

- blkgrpid
- globalid

**DEMOGRAPHICS_BlockGroups2000**

- blkgrps_id
- globalid
- tract
- group_
- fipsstco
- stfid

**DEMOGRAPHICS_BlockGroups2010**

- awater10
- tractce10
- aland10
- blkgrpce10
- funcstat10
- namelsad10
- countyfp10
- statefp10
- mtfcc10
- geoid10
- intptlat10
- intptlon10

**DEMOGRAPHICS_Blocks1990**

- pop100
- tractblk
- globalid

**DEMOGRAPHICS_Blocks2000**

- pop_lab
- fipsstco
- block_id
- globalid
- stfid

**DEMOGRAPHICS_Blocks2010**

- name10
- blockce10
- tractce10
- complete
- awater10
- aland10
- statefp10
- funcstat10
- countyfp10
- intptlat10
- mtfcc10
- geoid10
- intptlon10
- followup
- comments

**DEMOGRAPHICS_Tracts1990**

- globalid
- tract

**DEMOGRAPHICS_Tracts2000**

- fipsstco
- stfid
- tractid
- globalid
- trt2000

**DEMOGRAPHICS_Tracts2010**

- name10
- awater10
- tractce10
- aland10
- statefp10
- funcstat10
- namelsad10
- countyfp10
- intptlat10
- mtfcc10
- geoid10
- intptlon10

**DPW_LitterBarrels**

- globalid
- park_distr
- location
- owner
- id
- man
- type

**DPW_PedestrianRamps**

- ramp_line_
- f_puddle
- f_total
- f_slope
- globalid
- f_cond
- f_total06
- sw_width
- f_align
- lip
- location
- slope_comp
- total_ramp
- puddling
- material_t
- opening_wi
- condition
- f_open
- date
- contract

**DPW_StreetTrees**

- diameter
- trunks
- creator
- growspac
- location
- streetnumber
- species
- inspectr
- otherriskfactors
- riskrating
- globalid
- sitetype
- sidewalkobstruction
- treeid
- probabilityoffailure
- probabilityoftargetimpact
- overheadwires
- sizeodefectiveparts
- memtree
- created
- modified
- def_cult
- streetname
- notes
- ownership
- formersitetype
- removaldate
- treecondition
- cultivar
- treegrate
- plantdate
- sidewalkwidth
- treegrateactionreq
- adacompliant
- posd
- dw
- rt
- speciesshort
- d
- lean
- structuralissues
- cr

**ELECTIONS_CongressionalDistricts**

- editdate
- congressman
- name
- district
- party

**ELECTIONS_PollingLocations**

- w_p
- location_note
- location
- globalid
- address
- editdate

**ELECTIONS_StateRepDistricts**

- editdate
- party
- rep
- district

**ELECTIONS_StateSenateDistricts**

- senate
- editdate
- senator
- party

**ELECTIONS_WardsPrecincts**

- ward
- totalpop
- wardprecinct
- precinct

**HEALTH_HealthClinics**

- phone
- site_name
- globalid
- address
- editdate

**HEALTH_Hospitals**

- phone
- site_name
- globalid
- address

**HISTORICAL_HistoricDistricts**

- name
- globalid

**HISTORICAL_HistoricalCPA**

- dollaramnt
- globalid
- project
- printedmapid
- granttype
- buildingid
- fiscalyear
- grantid

**HISTORICAL_HistoricalMarkers**

- name
- neighborhood
- marker_type
- globalid
- address
- description

**HISTORICAL_LandmarksEasements**

- globalid
- ml
- property_t
- historic_n
- lot
- address
- block
- editdate

**HISTORICAL_NationalRegisterHistoricPlaces**

- globalid
- nrdis
- location
- labelname
- shape_leng
- histname
- street
- aka
- st_num
- nrind
- pres_restr
- nhl
- doe

**HISTORICAL_NhoodConservationDist**

- name
- globalid

**HYDRO_Floodplains**

- sfha_tf
- fld_ar_id
- percentage
- source_cit
- fld_zone
- floodway

**HYDRO_WaterBodies**

- type
- name

**HYDRO_Wetlands**

- complants1
- globalid
- wtdescript
- datasource
- wtsystem
- namelocati
- wtsubsyste
- wtlnd_id
- complants2

**INFRA_Billboards**

**INFRA_Drainage**

- type
- name

**INFRA_Hydrants**

- globalid
- subtype
- contractauthority
- lasteditdate
- enabled
- ancillaryrole
- hydrant_id
- lasteditor
- gate
- rotation
- lifecyclestatus
- hydrant_gpm
- installdate
- lastsource

**INFRA_OverheadSigns**

**INFRA_ParkBenches**

**INFRA_StreetLights2010Flyover**

- elev

**INFRA_StreetLightsNSTAR2005**

- point_subt
- npole_tag
- symbol
- lmp_type
- oldnode_ta
- ver_end
- oldpoint_t
- globalid
- str_des
- equip_locn
- phase__id
- object__id
- no_lamp
- ver_id
- lock__id
- str_name
- group_id
- pole_type_
- intersecti
- oid_
- lumens
- feature_st
- ntag
- point_tag
- point_type
- bracket_cd
- lmp_class_
- cntl_ty
- err_desc
- err_flag
- lamp_id

**INFRA_UtilityFacilities**

- type
- site_name
- globalid
- address

**INFRA_UtilityPoles**

- elev

**LANDMARK_DayCareFacilities**

- site_name
- globalid
- shel_cap
- phone
- publicpriv
- address
- owner
- shelter

**LANDMARK_ElderlyFacilities**

- owner
- publicpriv
- site_name
- globalid
- address

**LANDMARK_MemorialPoles**

- source
- type
- name
- globalid
- pole_id
- editdate

**LANDMARK_MunicipalBuildings**

- type
- site_name
- globalid
- address
- editdate

**LANDMARK_PlacesOfWorship**

- site_name
- globalid
- address

**LANDMARK_PrivateSchools**

- owner
- phone
- site_name
- globalid
- address

**LANDMARK_PublicLibraries**

- phone
- site_name
- globalid
- address

**LANDMARK_PublicSchools**

- site_name
- globalid
- shel_cap
- shelter
- phone
- address
- shel_food

**LANDMARK_YouthCenters**

- phone
- site_name
- globalid
- address

**PUBLICSAFETY_EmergencyShelters**

- capacity
- name
- globalid
- shel_cap
- shelter
- concateid
- zipcode
- phone
- med_fac
- address
- shel_food
- type
- editdate

**PUBLICSAFETY_FireStations**

- phone
- site_name
- globalid
- address

**PUBLICSAFETY_PoliceStation**

- phone
- site_name
- globalid
- address

**RECREATION_BikeFacilities**

- bike_fac
- globalid
- st_type
- pbike_fac
- length
- street
- comments
- editdate

**RECREATION_CommunityGardens**

- mapid
- park
- location
- globalid
- editdate

**RECREATION_OpenSpace**

- globalid
- fcode
- owner
- oscode
- rcode
- join_id
- name
- editdate

**RECREATION_Playgrounds**

- location
- globalid

**RECREATION_PublicPools**

- owner
- name

**RECREATION_SportsAreas**

- type

**RECREATION_Waterplay**

- status
- join_id
- park
- location
- size

**TRAFFIC_CommercialParking**

- globalid
- ml
- descriptio
- accessvia
- totalsp
- commspac
- address
- id
- structure
- owntype

**TRAFFIC_MeteredParkingSpaces**

- space_id
- src_date
- globalid
- editdate
- editor

**TRAFFIC_MunicipalParkingLots**

- sitename
- ml
- type
- globalid
- address

**TRAFFIC_PavementMarkings**

- type

b>TRANS_BusShelters

- elev_sl
- direction
- oid_
- globalid
- top_sl
- top_gl
- style
- xls_no
- x_street
- street
- elev_gl
- address
- base_elev
- stop_name
- stop_id
- quantity
- editdate

**TRANS_Centerlines**

- potential_r_to
- street_name
- tonode
- label
- street_id
- zip_right
- direction
- globalid
- fromnode
- roadways
- potential_l_from
- zip_left
- l_to
- r_from
- street_type
- l_from
- id
- majorroad
- restriction
- r_to
- street
- potential_r_from
- potential_l_to
- alias
- editdate

**TRANS_Intersections**

- nodenumber
- globalid
- p_x
- p_y
- intersection
- intersectingstreetcount
- editdate

**TRANS_MajorRoads**

- majorroad
- street
- st_name
- globalid
- st_type

**TRANS_Rail**

- type

**TRANS_SidewalkCenterlines**

- type

**TRANS_SubwayHeadhouses**

- elev_sl
- base_elev
- top_gl
- elev_gl
- top_sl

**TRANS_SubwayLines**

- grade
- source
- line
- globalid

**TRANS_SubwayStations**

- line
- station
- globalid