diff --git a/.gitignore b/.gitignore index 9e04edf..79558c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,489 @@ -.DS_Store +../data/outdata + +# Created by https://www.toptal.com/developers/gitignore/api/python,r,stata,jupyternotebooks,visualstudiocode,windows,macos,pycharm,sublimetext +# Edit at https://www.toptal.com/developers/gitignore?templates=python,r,stata,jupyternotebooks,visualstudiocode,windows,macos,pycharm,sublimetext + +### JupyterNotebooks ### +# gitignore template for Jupyter Notebooks +# website: http://jupyter.org/ .ipynb_checkpoints -*/outdata +*/.ipynb_checkpoints/* + +# IPython +profile_default/ +ipython_config.py + +# Remove previous ipynb_checkpoints +# git rm -r .ipynb_checkpoints/ + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### PyCharm ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### PyCharm Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +# https://plugins.jetbrains.com/plugin/7973-sonarlint +.idea/**/sonarlint/ + +# SonarQube Plugin +# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +# CodeStream plugin +# https://plugins.jetbrains.com/plugin/12206-codestream +.idea/codestream.xml + +# Azure Toolkit for IntelliJ plugin +# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij +.idea/**/azureSettings.xml + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook + +# IPython + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### R ### +# History files +.Rhistory +.Rapp.history + +# Session Data files +.RData +.RDataTmp + +# User-specific files +.Ruserdata + +# Example code in package build process +*-Ex.R + +# Output files from R CMD build +/*.tar.gz + +# Output files from R CMD check +/*.Rcheck/ + +# RStudio files +.Rproj.user/ + +# produced vignettes +vignettes/*.html +vignettes/*.pdf + +# OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 +.httr-oauth + +# knitr and R markdown default cache directories +*_cache/ +/cache/ + +# Temporary files created by R markdown +*.utf8.md +*.knit.md + +# R Environment Variables +.Renviron + +# pkgdown site +docs/ + +# translation temp files +po/*~ + +# RStudio Connect folder +rsconnect/ + +### R.Bookdown Stack ### +# R package: bookdown caching files +/*_files/ + +### Stata ### +# .gitignore file for git projects containing Stata files +# Commercial statistical software: http://www.stata.com + +# Stata dataset and output files +*.dta +*.gph +*.smcl +*.stpr +*.stsem + +# Graphic export files from Stata +# Stata command graph export: http://www.stata.com/manuals14/g-2graphexport.pdf +# +# You may add graphic export files to your .gitignore. However you should be +# aware that this will exclude all image files from this main directory +# and subdirectories. +# *.ps +# *.eps +# *.wmf +# *.emf +# *.pdf +# *.png +# *.tif + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json +sftp-config-alt*.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# Support for Project snippet scope +.vscode/*.code-snippets + +# Ignore code-workspaces +*.code-workspace + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/python,r,stata,jupyternotebooks,visualstudiocode,windows,macos,pycharm,sublimetext diff --git a/01_Overview_Geospatial_Data.pdf b/01_Overview_Geospatial_Data.pdf deleted file mode 100644 index 83f298c..0000000 Binary files a/01_Overview_Geospatial_Data.pdf and /dev/null differ diff --git a/03_CRS_Map_Projections.ipynb b/03_CRS_Map_Projections.ipynb deleted file mode 100644 index cbcf2fd..0000000 --- a/03_CRS_Map_Projections.ipynb +++ /dev/null @@ -1,853 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Lesson 3. Coordinate Reference Systems (CRS) & Map Projections\n", - "\n", - "Building off of what we learned in the previous notebook, we'll get to understand an integral aspect of geospatial data: Coordinate Reference Systems.\n", - "\n", - "- 3.1 California County Shapefile\n", - "- 3.2 USA State Shapefile\n", - "- 3.3 Plot the Two Together\n", - "- 3.4 Coordinate Reference System (CRS)\n", - "- 3.5 Getting the CRS\n", - "- 3.6 Setting the CRS\n", - "- 3.7 Transforming or Reprojecting the CRS\n", - "- 3.8 Plotting States and Counties Togther\n", - "- 3.9 Recap\n", - "- **Exercise**: CRS Management\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - ‘notebook_data/california_counties/CaliforniaCounties.shp’\n", - " - ‘notebook_data/us_states/us_states.shp’\n", - " - ‘notebook_data/census/Places/cb_2018_06_place_500k.zip’\n", - "\n", - "- Expected time to complete\n", - " - Lecture + Questions: 45 minutes\n", - " - Exercises: 10 minutes\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Import Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.1 California County shapefile\n", - "Let's go ahead and bring back in our California County shapefile. As before, we can read the file in using `gpd.read_file` and plot it straight away." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties = gpd.read_file('notebook_data/california_counties/CaliforniaCounties.shp')\n", - "counties.plot(color='darkgreen')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Even if we have an awesome map like this, sometimes we want to have more geographical context, or we just want additional information. We're going to try **overlaying** our counties GeoDataFrame on our USA states shapefile." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.2 USA State shapefile\n", - "\n", - "We're going to bring in our states geodataframe, and let's do the usual operations to start exploring our data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Read in states shapefile\n", - "states = gpd.read_file('notebook_data/us_states/us_states.shp')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Look at the first few rows\n", - "states.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Count how many rows and columns we have\n", - "states.shape" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Plot our states data\n", - "states.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You might have noticed that our plot extends beyond the 50 states (which we also saw when we executed the `shape` method). Let's double check what states we have included in our data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "states['STATE'].values" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Beyond the 50 states we seem to have American Samoa, Puerto Rico, Guam, Commonwealth of the Northern Mariana Islands, and United States Virgin Islands included in this geodataframe. To make our map cleaner, let's limit the states to the contiguous states (so we'll also exclude Alaska and Hawaii)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Define list of non-contiguous states\n", - "non_contiguous_us = [ 'American Samoa','Puerto Rico','Guam',\n", - " 'Commonwealth of the Northern Mariana Islands',\n", - " 'United States Virgin Islands', 'Alaska','Hawaii']\n", - "# Limit data according to above list\n", - "states_limited = states.loc[~states['STATE'].isin(non_contiguous_us)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Plot it\n", - "states_limited.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To prepare for our mapping overlay, let's make our states a nice, light grey color." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "states_limited.plot(color='lightgrey', figsize=(10,10))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.3 Plot the two together\n", - "\n", - "Now that we have both geodataframes in our environment, we can plot both in the same figure.\n", - "\n", - "**NOTE**: To do this, note that we're getting a Matplotlib Axes object (`ax`), then explicitly adding each our layers to it\n", - "by providing the `ax=ax` argument to the `plot` method." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "counties.plot(color='darkgreen',ax=ax)\n", - "states_limited.plot(color='lightgrey', ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Oh no, what happened here?\n", - "\n", - " **Question** Without looking ahead, what do you think happened?\n", - "\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "
\n", - "If you look at the numbers we have on the x and y axes in our two plots, you'll see that the county data has much larger numbers than our states data. It's represented in some different type of unit other than decimal degrees! \n", - "\n", - "In fact, that means if we zoom in really close into our plot we'll probably see the states data plotted. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "fig, ax = plt.subplots(figsize=(10,10))\n", - "counties.plot(color='darkgreen',ax=ax)\n", - "states_limited.plot(color='lightgrey', ax=ax)\n", - "ax.set_xlim(-140,-50)\n", - "ax.set_ylim(20,50)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is a key issue that you'll have to resolve time and time again when working with geospatial data!\n", - "\n", - "It all revolves around **coordinate reference systems** and **projections**." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----------------------------\n", - "\n", - "## 3.4 Coordinate Reference Systems (CRS)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " **Question** Do you have experience with Coordinate Reference Systems?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "

As a refresher, a CRS describes how the coordinates in a geospatial dataset relate to locations on the surface of the earth. \n", - "\n", - "A `geographic CRS` consists of: \n", - "- a 3D model of the shape of the earth (a **datum**), approximated as a sphere or spheroid (aka ellipsoid)\n", - "- the **units** of the coordinate system (e.g, decimal degrees, meters, feet) and \n", - "- the **origin** (i.e. the 0,0 location), specified as the meeting of the **equator** and the **prime meridian**( \n", - "\n", - "A `projected CRS` consists of\n", - "- a geographic CRS\n", - "- a **map projection** and related parameters used to transform the geographic coordinates to `2D` space.\n", - " - a map projection is a mathematical model used to transform coordinate data\n", - "\n", - "### A Geographic vs Projected CRS\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### There are many, many CRSs\n", - "\n", - "Theoretically the number of CRSs is unlimited!\n", - "\n", - "Why? Primariy, because there are many different definitions of the shape of the earth, multiplied by many different ways to cast its surface into 2 dimensions. Our understanding of the earth's shape and our ability to measure it has changed greatly over time.\n", - "\n", - "#### Why are CRSs Important?\n", - "\n", - "- You need to know the data about your data (or `metadata`) to use it appropriately.\n", - "\n", - "\n", - "- All projected CRSs introduce distortion in shape, area, and/or distance. So understanding what CRS best maintains the characteristics you need for your area of interest and your analysis is important.\n", - "\n", - "\n", - "- Some analysis methods expect geospatial data to be in a projected CRS\n", - " - For example, `geopandas` expects a geodataframe to be in a projected CRS for area or distance based analyses.\n", - "\n", - "\n", - "- Some Python libraries, but not all, implement dynamic reprojection from the input CRS to the required CRS and assume a specific CRS (WGS84) when a CRS is not explicitly defined.\n", - "\n", - "\n", - "- Most Python spatial libraries, including Geopandas, require geospatial data to be in the same CRS if they are being analysed together.\n", - "\n", - "#### What you need to know when working with CRSs\n", - "\n", - "- What CRSs used in your study area and their main characteristics\n", - "- How to identify, or `get`, the CRS of a geodataframe\n", - "- How to `set` the CRS of geodataframe (i.e. define the projection)\n", - "- Hot to `transform` the CRS of a geodataframe (i.e. reproject the data)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Codes for CRSs commonly used with CA data\n", - "\n", - "CRSs are typically referenced by an [EPSG code](http://wiki.gis.com/wiki/index.php/European_Petroleum_Survey_Group). \n", - "\n", - "It's important to know the commonly used CRSs and their EPSG codes for your geographic area of interest. \n", - "\n", - "For example, below is a list of commonly used CRSs for California geospatial data along with their EPSG codes.\n", - "\n", - "##### Geographic CRSs\n", - "-`4326: WGS84` (units decimal degrees) - the most commonly used geographic CRS\n", - "\n", - "-`4269: NAD83` (units decimal degrees) - the geographic CRS customized to best fit the USA. This is used by all Census geographic data.\n", - "\n", - "> `NAD83 (epsg:4269)` are approximately the same as `WGS84(epsg:4326)` although locations can differ by up to 1 meter in the continental USA and elsewhere up to 3m. That is not a big issue with census tract data as these data are only accurate within +/-7meters.\n", - "##### Projected CRSs\n", - "\n", - "-`5070: CONUS NAD83` (units meters) projected CRS for mapping the entire contiguous USA (CONUS)\n", - "\n", - "-`3857: Web Mercator` (units meters) conformal (shape preserving) CRS used as the default in web mapping\n", - "\n", - "-`3310: CA Albers Equal Area, NAD83` (units meters) projected CRS for CA statewide mapping and spatial analysis\n", - "\n", - "-`26910: UTM Zone 10N, NAD83` (units meters) projected CRS for northern CA mapping & analysis\n", - "\n", - "-`26911: UTM Zone 11N, NAD83` (units meters) projected CRS for Southern CA mapping & analysis\n", - "\n", - "-`102641 to 102646: CA State Plane zones 1-6, NAD83` (units feet) projected CRS used for local analysis.\n", - "\n", - "You can find the full CRS details on the website https://www.spatialreference.org" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.5 Getting the CRS\n", - "\n", - "### Getting the CRS of a gdf\n", - "\n", - "GeoPandas GeoDataFrames have a `crs` attribute that returns the CRS of the data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.crs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "states_limited.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we can clearly see from those two printouts (even if we don't understand all the content!),\n", - "the CRSs of our two datasets are different! **This explains why we couldn't overlay them correctly!**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-----------------------------------------\n", - "The above CRS definition specifies \n", - "- the name of the CRS (`WGS84`), \n", - "- the axis units (`degree`)\n", - "- the shape (`datum`),\n", - "- and the origin (`Prime Meridian`, and the equator)\n", - "- and the area for which it is best suited (`World`)\n", - "\n", - "> Notes:\n", - "> - `geocentric` latitude and longitude assume a spherical (round) model of the shape of the earth\n", - "> - `geodetic` latitude and longitude assume a spheriodal (ellipsoidal) model, which is closer to the true shape.\n", - "> - `geodesy` is the study of the shape of the earth." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NOTE**: If you print a `crs` call, Python will just display the EPSG code used to initiate the CRS object. Depending on your versions of Geopandas and its dependencies, this may or may not look different from what we just saw above." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "print(states_limited.crs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.6 Setting the CRS\n", - "\n", - "You can also set the CRS of a gdf using the `crs` attribute. You would set the CRS if is not defined or if you think it is incorrectly defined.\n", - "\n", - "> In desktop GIS terminology setting the CRS is called **defining the CRS**\n", - "\n", - "As an example, let's set the CRS of our data to `None`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# first set the CRS to None\n", - "states_limited.crs = None" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Check it again\n", - "states_limited.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "...hummm...\n", - "\n", - "If a variable has a null value (None) then displaying it without printing it won't display anything!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Check it again\n", - "print(states_limited.crs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we'll set it back to its correct CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Set it to 4326\n", - "states_limited.crs = \"epsg:4326\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Show it\n", - "states_limited.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**NOTE**: You can set the CRS to anything you like, but **that doesn't make it correct**! This is because setting the CRS does not change the coordinate data; it just tells the software how to interpret it." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.7 Transforming or Reprojecting the CRS\n", - "You can transform the CRS of a geodataframe with the `to_crs` method.\n", - "\n", - "\n", - "> In desktop GIS terminology transforming the CRS is called **projecting the data** (or **reprojecting the data**)\n", - "\n", - "When you do this you want to save the output to a new GeoDataFrame." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "states_limited_utm10 = states_limited.to_crs( \"epsg:26910\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now take a look at the CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "states_limited_utm10.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can see the result immediately by plotting the data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "# plot geographic gdf\n", - "states_limited.plot();\n", - "plt.axis('square');\n", - "\n", - "# plot utm gdf\n", - "states_limited_utm10.plot();\n", - "plt.axis('square')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Your thoughts here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. What two key differences do you see between the two plots above?\n", - "1. Do either of these plotted USA maps look good?\n", - "1. Try looking at the common CRS EPSG codes above and see if any of them look better for the whole country than what we have now. Then try transforming the states data to the CRS that you think would be best and plotting it. (Use the code cell two cells below.)" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Double-click to see solution!**\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.8 Plotting states and counties together\n", - "\n", - "Now that we know what a CRS is and how we can set them, let's convert our counties GeoDataFrame to match up with out states' crs." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Convert counties data to NAD83 \n", - "counties_utm10 = counties.to_crs(\"epsg:26910\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties_utm10.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Plot it together!\n", - "fig, ax = plt.subplots(figsize=(10,10))\n", - "states_limited_utm10.plot(color='lightgrey', ax=ax)\n", - "counties_utm10.plot(color='darkgreen',ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since we know that the best CRS to plot the contiguous US from the above question is 5070, let's also transform and plot everything in that CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties_conus = counties.to_crs(\"epsg:5070\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "states_limited_conus.plot(color='lightgrey', ax=ax)\n", - "counties_conus.plot(color='darkgreen',ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3.9 Recap\n", - "\n", - "In this lesson we learned about...\n", - "- Coordinate Reference Systems \n", - "- Getting the CRS of a geodataframe\n", - " - `crs`\n", - "- Transforming/repojecting CRS\n", - " - `to_crs`\n", - "- Overlaying maps" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise: CRS Management\n", - "\n", - "Now it's time to take a crack and managing the CRS of a new dataset. In the code cell below, write code to:\n", - "\n", - "1. Bring in the CA places data (`notebook_data/census/Places/cb_2018_06_place_500k.zip`)\n", - "2. Check if the CRS is EPSG code 26910. If not, transform the CRS\n", - "3. Plot the California counties and places together.\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# YOUR CODE HERE\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/04_More_Data_More_Maps.ipynb b/04_More_Data_More_Maps.ipynb deleted file mode 100644 index 95c48aa..0000000 --- a/04_More_Data_More_Maps.ipynb +++ /dev/null @@ -1,650 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Lesson 4. More Data, More Maps!\n", - "\n", - "Now that we know how to pull in data, check and transform Coordinate Reference Systems (CRS), and plot GeoDataFrames together - let's practice doing the same thing with other geometry types. In this notebook we'll be bringing in bike boulevards and schools, which will get us primed to think about spatial relationship questions.\n", - "\n", - "- 4.1 Berkeley Bike Boulevards\n", - "- 4.2 Alameda County Schools\n", - "- **Exercise**: Even More Data!\n", - "- 4.3 Map Overlays with Matplotlib\n", - "- 4.4 Recap\n", - "- **Exercise**: Overlay Mapping\n", - "- 4.5 Teaser for Day 2\n", - "\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'notebook_data/transportation/BerkeleyBikeBlvds.geojson'\n", - " - 'notebook_data/alco_schools.csv'\n", - " - 'notebook_data/parcels/parcel_pts_rand30pct.geojson'\n", - " - ‘notebook_data/berkeley/BerkeleyCityLimits.shp’\n", - "\n", - "- Expected time to complete\n", - " - Lecture + Questions: 30 minutes\n", - " - Exercises: 20 minutes\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Import Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.1 Berkeley Bike Boulevards\n", - "\n", - "We're going to bring in data bike boulevards in Berkeley. Note two things that are different from our previous data:\n", - "- We're bringing in a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) this time and not a shapefile\n", - "- We have a **line** geometry GeoDataFrame (our county and states data had **polygon** geometries)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds = gpd.read_file('notebook_data/transportation/BerkeleyBikeBlvds.geojson')\n", - "bike_blvds.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As usual, we'll want to do our usual data exploration..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds.shape" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our bike boulevard data includes the following information:\n", - " - `BB_STRNAM` - bike boulevard Streetname\n", - " - `BB_STRID` - bike boulevard Street ID\n", - " - `BB_FRO` - bike boulevard origin street\n", - " - `BB_TO` - bike boulevard end street\n", - " - `BB_SECID`- bike boulevard section id\n", - " - `DIR_` - cardinal directions the bike boulevard runs\n", - " - `Status` - status on whether the bike boulevard exists\n", - " - `ALT_bikeCA` - ? \n", - " - `Shape_len` - length of the boulevard in meters \n", - " - `len_km` - length of the boulevard in kilometers\n", - " - `geometry`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "Why are there 211 features when we only have 8 bike boulevards?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your reponse here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig,ax = plt.subplots(figsize=(10,10))\n", - "bike_blvds.plot(ax=ax)\n", - "bike_blvds.head(1).plot(color='orange',ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And now take a look at our CRS..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's tranform our CRS to UTM Zone 10N, NAD83 that we used in the last lesson." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10 = bike_blvds.to_crs( \"epsg:26910\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.2 Alameda County Schools\n", - "\n", - "Alright! Now that we have our bike boulevard data squared away, we're going to bring in our Alameda County school data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_df = pd.read_csv('notebook_data/alco_schools.csv')\n", - "schools_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_df.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " **Questions** \n", - "\n", - "Without looking ahead:\n", - "\n", - "1. Is this a geodataframe? \n", - "2. How do you know?\n", - "\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your reponse here:\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "
\n", - "This is not a GeoDataFrame! A couple of clues to figure that out are..\n", - "\n", - "1. We're pulling in a Comma Separated Value (CSV) file, which is not a geospatial data format\n", - "2. There is no geometry column (although we do have latitude and longitude values)\n", - "\n", - "\n", - "-------------------------------\n", - "\n", - "Although our school data is not starting off as a GeoDataFrame, we actually have the tools and information to make it one. Using the `gpd.GeoDataFrame` constructor, we can transform our plain DataFrame into a GeoDataFrame (specifying the geometry information and then the CRS)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf = gpd.GeoDataFrame(schools_df, \n", - " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(schools_gdf.crs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.crs = \"epsg:4326\"\n", - "schools_gdf.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You'll notice that the shape is the same from what we had as a dataframe, just with the added `geometry` column." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "schools_gdf.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And with it being a GeoDataFrame, we can plot it as we did for our other data sets.\n", - "Notice that we have our first **point** geometry GeoDataFrame." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "But of course we'll want to transform the CRS, so that we can later plot it with our bike boulevard data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf_utm10 = schools_gdf.to_crs( \"epsg:26910\")\n", - "schools_gdf_utm10.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*In Lesson 2 we discussed that you can save out GeoDataFrames in multiple file formats. You could opt for a GeoJSON, a shapefile, etc... for point data sets it is also an option to save it out as a CSV since the geometry isn't complicated*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise: Even More Data!\n", - "Let's play around with another point GeoDataFrame.\n", - "\n", - "In the code cell provided below, compose code to:\n", - "\n", - "1. Read in the parcel points data (`notebook_data/parcels/parcel_pts_rand30pct.geojson`)\n", - "2. Transform the CRS to 26910\n", - "3. Plot and customize as desired!\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "\n", - "\n", - "-------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.3 Map Overlays with Matplotlib\n", - "\n", - "No matter the geometry type we have for our GeoDataFrame, we can create overlay plots.\n", - "\n", - "Since we've already done the legwork of transforming our CRS, we can go ahead and plot them together." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "bike_blvds_utm10.plot(ax=ax, color='red')\n", - "schools_gdf_utm10.plot(ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we want to answer questions like *\"What schools are close to bike boulevards in Berkeley?\"*, the above plot isn't super helpful, since the extent covers all of Alameda county.\n", - "\n", - "Luckily, GeoDataFrames have an easy method to extract the minimium and maximum values for both x and y, so we can use that information to set the bounds for our plot." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "minx, miny, maxx, maxy = bike_blvds.total_bounds\n", - "print(minx, miny, maxx, maxy)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using `xlim` and `ylim` we can zoom in to see if there are schools proximal to the bike boulevards." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "bike_blvds_utm10.plot(ax=ax, color='red')\n", - "schools_gdf_utm10 .plot(ax=ax)\n", - "plt.xlim(minx, maxx)\n", - "plt.ylim(miny, maxy)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.4 Recap\n", - "\n", - "In this lesson we learned a several new skills:\n", - "- Transformed an a-spatial dataframe into a geospatial one\n", - " - `gpd.GeoDataFrame`\n", - "- Worked with point and line GeoDataFrames\n", - "- Overlayed point and line GeoDataFrames\n", - "- Limited the extent of a map\n", - " - `total_bounds`\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise: Overlay Mapping\n", - "\n", - "Let's take some time to practice reading in and reconciling new datasets, then mapping them together.\n", - "\n", - "In the code cell provided below, write code to:\n", - "\n", - "1. Bring in your Berkeley places shapefile (and don't forget to check/transform the crs!) (`notebook_data/berkeley/BerkeleyCityLimits.shp`)\n", - "1. Overlay the parcel points on top of the bike boulevards\n", - "1. Create the same plot but limit it to the extent of Berkeley city limits\n", - "\n", - "***BONUS***: *Add the Berkeley outline to your last plot!*\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click the see the solution!\n", - "\n", - "\n", - "\n", - "-----------------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4.5 Teaser for Day 2...\n", - "\n", - "You may be wondering if and how we could make our maps more interesting and informative than this.\n", - "\n", - "To give you a tantalizing taste of Day 2, the answer is: Yes, we can! And here's how!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = schools_gdf_utm10.plot(column='Org', cmap='winter', \n", - " markersize=35, edgecolor='black',\n", - " linewidth=0.5, alpha=1, figsize=[9, 9],\n", - " legend=True)\n", - "ax.set_title('Public and Private Schools, Alameda County')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/05_Data-Driven_Mapping.ipynb b/05_Data-Driven_Mapping.ipynb deleted file mode 100644 index 37cfca7..0000000 --- a/05_Data-Driven_Mapping.ipynb +++ /dev/null @@ -1,887 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Lesson 5. Data-driven Mapping\n", - "\n", - "*Data-driven mapping* refers to the process of using data values to determine the symbology of mapped features. Color, shape, and size are the three most common symbology types used in data-driven mapping.\n", - "Data-driven maps are often refered to as thematic maps.\n", - "\n", - "\n", - "- 5.1 Choropleth Maps\n", - "- 5.2 Issues with Visualization\n", - "- 5.3 Classification Schemes\n", - "- 5.4 Point Maps\n", - "- 5.5 Mapping Categorical Data\n", - "- 5.6 Recap\n", - "- **Exercise**: Data-Driven Mapping\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'notebook_data/california_counties/CaliforniaCounties.shp'\n", - " - 'notebook_data/alco_schools.csv'\n", - " - 'notebook_data/transportation/BerkeleyBikeBlvds.geojson'\n", - "- Expected time to complete\n", - " - Lecture + Questions: 30 minutes\n", - " - Exercises: 15 minutes\n", - "\n", - "\n", - "\n", - "### Types of Thematic Maps\n", - "\n", - "There are two primary types of maps used to convey data values:\n", - "\n", - "- `Choropleth maps`: set the color of areas (polygons) by data value\n", - "- `Point symbol maps`: set the color or size of points by data value\n", - "\n", - "We will discuss both of these types of maps in more detail in this lesson. But let's take a quick look at choropleth maps. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5.1 Choropleth Maps\n", - "Choropleth maps are the most common type of thematic map.\n", - "\n", - "Let's take a look at how we can use a geodataframe to make a choropleth map.\n", - "\n", - "We'll start by reloading our counties dataset from Day 1." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties = gpd.read_file('notebook_data/california_counties/CaliforniaCounties.shp')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here's a plain map of our polygons." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, for comparison, let's create a choropleth map by setting the color of the county based on the values in the population per square mile (`POP12_SQMI`) column." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.plot(column='POP12_SQMI', figsize=(10,10))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That's really the heart of it. To set the color of the features based on the values in a column, set the `column` argument to the column name in the gdf.\n", - "> **Protip:** \n", - "- You can quickly right-click on the plot and save to a file or open in a new browser window." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "By default map colors are linearly scaled to data values. This is called a `proportional color map`.\n", - "\n", - "- The great thing about `proportional color maps` is that you can visualize the full range of data values.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also add a legend, and even tweak its display." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.plot(column='POP12_SQMI', figsize=(10,10), legend=True)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.plot(column='POP12_SQMI', figsize=(10,10), legend=True,\n", - " legend_kwds={'label': \"Population Density per mile$^2$\",\n", - " 'orientation': \"horizontal\"},)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "Why are we plotting `POP12_SQMI` instead of `POP2012`?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Note: Types of Color Maps\n", - "\n", - "There are a few different types of color maps (or color palettes), each of which has a different purpose:\n", - "- *diverging* - a \"diverging\" set of colors are used so emphasize mid-range values as well as extremes.\n", - "- *sequential* - usually with a single color hue to emphasize changes in magnitude, where darker colors typically mean higher values\n", - "- *qualitative* - a diverse set of colors to identify categories and avoid implying quantitative significance.\n", - "\n", - "\n", - "\n", - "> **Pro-tip**: You can actually see all your color map options if you misspell what you put in `cmap` and try to run-in. Try it out!\n", - "\n", - "> **Pro-tip**: Sites like [ColorBrewer](https://colorbrewer2.org/#type=sequential&scheme=Blues&n=3) let's you play around with different types of color maps. If you want to create your own, [The Python Graph Gallery](https://python-graph-gallery.com/python-colors/) is a way to see what your Python color options are.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5.2 Issues with Visualization\n", - "\n", - "### Types of choropleth data\n", - "\n", - "There are several types of quantitative data variables that can be used to create a choropleth map. Let's consider these in terms of our ACS data.\n", - "\n", - "- **Count**\n", - " - counts, aggregated by feature\n", - " - *e.g. population within a census tract*\n", - "\n", - "- **Density**\n", - " - count, aggregated by feature, normalized by feature area\n", - " - *e.g. population per square mile within a census tract*\n", - "\n", - "- **Proportions / Percentages**\n", - " - value in a specific category divided by total value across in all categories\n", - " - *e.g. proportion of the tract population that is white compared to the total tract population*\n", - "\n", - "- **Rates / Ratios**\n", - " - value in one category divided by value in another category\n", - " - *e.g. homeowner-to-renter ratio would be calculated as the number of homeowners (c_owners/ c_renters)*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Interpretability of plotted data\n", - "The goal of a choropleth map is to use color to visualize the spatial distribution of a quantitative variable.\n", - "\n", - "Brighter or richer colors are typically used to signify higher values.\n", - "\n", - "A big problem with choropleth maps is that our eyes are drawn to the color of larger areas, even if the values being mapped in one or more smaller areas are more important.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We see just this sort of problem in our population-density map. \n", - "\n", - "***Why does our map not look that interesting?*** Take a look at the histogram below, then consider the following question." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.hist(counties['POP12_SQMI'],bins=40)\n", - "plt.title('Population Density per mile$^2$')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "What county does that outlier represent? What problem does that pose?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5.3 Classification schemes\n", - "\n", - "Let's try to make our map more interpretable!\n", - "\n", - "The common alternative to a proportionial color map is to use a **classification scheme** to create a **graduated color map**. This is the standard way to create a **choropleth map**.\n", - "\n", - "A **classification scheme** is a method for binning continuous data values into 4-7 classes (the default is 5) and map those classes to a color palette. \n", - "\n", - "### The commonly used classifications schemes:\n", - "\n", - "- **Equal intervals**\n", - " - equal-size data ranges (e.g., values within 0-10, 10-20, 20-30, etc.)\n", - " - pros:\n", - " - best for data spread across entire range of values\n", - " - easily understood by map readers\n", - " - cons:\n", - " - but avoid if you have highly skewed data or a few big outliers\n", - " \n", - " \n", - "- **Quantiles**\n", - " - equal number of observations in each bin\n", - " - pros:\n", - " - looks nice, becuase it best spreads colors across full set of data values\n", - " - thus, it's often the default scheme for mapping software\n", - " - cons:\n", - " - bin ranges based on the number of observations, not on the data values\n", - " - thus, different classes can have very similar or very different values.\n", - " \n", - " \n", - "- **Natural breaks**\n", - " - minimize within-class variance and maximize between-class differences\n", - " - e.g. 'fisher-jenks'\n", - " - pros:\n", - " - great for exploratory data analysis, because it can identify natural groupings\n", - " - cons:\n", - " - class breaks are best fit to one dataset, so the same bins can't always be used for multiple years\n", - " \n", - " \n", - "- **Manual** \n", - " - classifications are user-defined\n", - " - pros: \n", - " - especially useful if you want to slightly change the breaks produced by another scheme\n", - " - can be used as a fixed set of breaks to compare data over time\n", - " - cons:\n", - " - more work involved" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Classification schemes and GeoDataFrames\n", - "\n", - "Classification schemes can be implemented using the geodataframe `plot` method by setting a value for the **scheme** argument. This requires the [pysal](https://pysal.org/) and [mapclassify](https://pysal.org/mapclassify) libraries to be installed in your Python environment. \n", - "\n", - "Here is a list of the `classification schemes` names that we will use:\n", - "- `equalinterval`, `quantiles`,`fisherjenks`,`naturalbreaks`, and `userdefined`.\n", - "\n", - "For more information about these classification schemes see the [pysal mapclassifiers web page](https://pysal.org/mapclassify/api.html) or check out the help docs." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "--------------------------\n", - "\n", - "### Classification schemes in action\n", - "\n", - "Let's redo the last map using the `quantile` classification scheme.\n", - "\n", - "- What is different about the code? About the output map?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "# Plot population density - mile^2\n", - "fig, ax = plt.subplots(figsize = (10,5)) \n", - "counties.plot(column='POP12_SQMI', \n", - " scheme=\"quantiles\",\n", - " legend=True,\n", - " ax=ax\n", - " )\n", - "ax.set_title(\"Population Density per Sq Mile\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note: For interval notation\n", - "- A square bracket is *inclusive*\n", - "- A parentheses is *exclusive*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### User Defined Classification Schemes\n", - "\n", - "You may get pretty close to your final map without being completely satisfied. In this case you can manually define a classification scheme.\n", - "\n", - "Let's customize our map with a `user-defined` classification scheme where we manually set the breaks for the bins using the `classification_kwds` argument." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize = (14,8)) \n", - "counties.plot(column='POP12_SQMI',\n", - " legend=True, \n", - " cmap=\"RdYlGn\", \n", - " scheme='user_defined', \n", - " classification_kwds={'bins':[50,100,200,300,400]},\n", - " ax=ax)\n", - "ax.set_title(\"Population Density per Sq Mile\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since we are customizing our plot, we can also edit our legend to specify and format the text so that it's easier to read.\n", - "\n", - "- We'll use `legend_labels_list` to customize the labels for group in the legend." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize = (14,8)) \n", - "counties.plot(column='POP12_SQMI',\n", - " legend=True, \n", - " cmap=\"RdYlGn\", \n", - " scheme='user_defined', \n", - " classification_kwds={'bins':[50,100,200,300,400]},\n", - " ax=ax)\n", - "\n", - "# Create the labels for the legend\n", - "legend_labels_list = ['<50','50 to 100','100 to 200','200 to 300','300 to 400','>400']\n", - "\n", - "# Apply the labels to the plot\n", - "for j in range(0,len(ax.get_legend().get_texts())):\n", - " ax.get_legend().get_texts()[j].set_text(legend_labels_list[j])\n", - "\n", - "ax.set_title(\"Population Density per Sq Mile\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's plot a ratio\n", - "\n", - "If we look at the columns in our dataset, we see we have a number of variables\n", - "from which we can calculate proportions, rates, and the like.\n", - "\n", - "Let's try that out:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counties.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize = (15,6)) \n", - "\n", - "# Plot percent hispanic as choropleth\n", - "counties.plot(column=(counties['HISPANIC']/counties['POP2012'] * 100), \n", - " legend=True, \n", - " cmap=\"Blues\", \n", - " scheme='user_defined', \n", - " classification_kwds={'bins':[20,40,60,80]},\n", - " edgecolor=\"grey\",\n", - " linewidth=0.5,\n", - " ax=ax)\n", - "\n", - "legend_labels_list = ['<20%','20% - 40%','40% - 60%','60% - 80%','80% - 100%']\n", - "for j in range(0,len(ax.get_legend().get_texts())):\n", - " ax.get_legend().get_texts()[j].set_text(legend_labels_list[j])\n", - "\n", - "ax.set_title(\"Percent Hispanic Population\")\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. What new options and operations have we added to our code?\n", - "1. Based on our code, what title would you give this plot to describe what it displays?\n", - "1. How many bins do we specify in the `legend_labels_list` object, and how many bins are in the map legend? Why?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5.4 Point maps" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Choropleth maps are great, but mapping using point symbols enables us to visualize our spatial data in another way. \n", - "\n", - "If you know both mapping methods you can expand how much information you can show in one map. \n", - "\n", - "For example, point maps are a great way to map `counts` because the varying sizes of areas are deemphasized.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-----------------------\n", - "Let's read in some point data on Alameda County schools." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_df = pd.read_csv('notebook_data/alco_schools.csv')\n", - "schools_df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We got it from a plain CSV file, let's coerce it to a GeoDataFrame." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf = gpd.GeoDataFrame(schools_df, \n", - " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", - "schools_gdf.crs = \"epsg:4326\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Then we can map it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.plot()\n", - "plt.title('Alameda County Schools')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Proportional Color Maps\n", - "**Proportional color maps** linearly scale the `color` of a point symbol by the data values.\n", - "\n", - "Let's try this by creating a map of `API`. API stands for *Academic Performance Index*, which is a measurement system that looks at the performance of an individual school." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.plot(column=\"API\", cmap=\"gist_heat\", \n", - " edgecolor=\"grey\", figsize=(10,8), legend=True)\n", - "plt.title(\"Alameda County, School API scores\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When you see that continuous color bar in the legend you know that the mapping of data values to colors is not classified.\n", - "\n", - "\n", - "### Graduated Color Maps\n", - "\n", - "We can also create **graduated color maps** by binning data values before associating them with colors. These are just like choropleth maps, except that the term \"choropleth\" is only used with polygon data. \n", - "\n", - "Graduated color maps use the same syntax as the choropleth maps above - you create them by setting a value for `scheme`. \n", - "\n", - "Below, we copy the code we used above to create a choropleth, but we change the name of the geodataframe to use the point gdf. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize = (15,6)) \n", - "\n", - "# Plot percent non-white with graduated colors\n", - "schools_gdf.plot(column='API', \n", - " legend=True, \n", - " cmap=\"Blues\",\n", - " scheme='user_defined', \n", - " classification_kwds={'bins':[0,200,400,600,800]},\n", - " edgecolor=\"grey\",\n", - " linewidth=0.5,\n", - " #markersize=60,\n", - " ax=ax)\n", - "\n", - "# Create a custom legend\n", - "legend_labels_list = ['0','< 200','< 400','< 600','< 800','>= 800']\n", - "\n", - "# Apply the legend to the map\n", - "for j in range(0,len(ax.get_legend().get_texts())):\n", - " ax.get_legend().get_texts()[j].set_text(legend_labels_list[j])\n", - "\n", - "# Create the plot\n", - "plt.tight_layout()\n", - "plt.title(\"Alameda County, School API scores\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf['API'].describe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As you can see, the syntax for a choropleth and graduated color map is the same,\n", - "although some options only apply to one or the other.\n", - "\n", - "For example, uncomment the `markersize` parameter above to see how you can further customize a graduated color map." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Graduated symbol maps\n", - "\n", - "`Graduated symbol maps` are also a great method for mapping points. These are just like graduated color maps but instead of associating symbol color with data values they associate point size. Similarly,graduated symbol maps use `classification schemes` to set the size of point symbols. \n", - "\n", - "> We demonstrate how to make graduated symbol maps along with some other mapping techniques in the `Optional Mapping notebook` which we encourage you to explore on your own. (***Coming Soon***)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5.5 Mapping Categorical Data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Mapping categorical data, also called qualitative data, is a bit more straightforward. There is no need to scale or classify data values. The goal of the color map is to provide a contrasting set of colors so as to clearly delineate different categories. Here's a point-based example:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.plot(column='Org', categorical=True, legend=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5.6 Recap\n", - "We learned about important data driven mapping strategies and mapping concepts and can leverage what many of us know about `matplotlib`\n", - "- Choropleth Maps\n", - "- Point maps\n", - "- Color schemes \n", - "- Classifications" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise: Data-Driven Mapping\n", - "\n", - "Point and polygons are not the only geometry-types that we can use in data-driven mapping!\n", - "\n", - "Run the next cell to load a dataset containing Berkeley's bicycle boulevards (which we'll be using more in the following notebook).\n", - "\n", - "Then in the following cell, write your own code to:\n", - "1. plot the bike boulevards;\n", - "2. color them by status (find the correct column in the head of the dataframe, displayed below);\n", - "3. color them using a fitting, good-looking qualitative colormap that you choose from [The Matplotlib Colormap Reference](https://matplotlib.org/3.1.1/gallery/color/colormap_reference.html);\n", - "4. set the line width to 5 (check the plot method's documentation to find the right argument for this!);\n", - "4. add the argument `figsize=[20,20]`, to make your map nice and big and visible!\n", - " \n", - "Then answer the questions posed in the last cell.\n", - "\n", - "
\n", - "\n", - "\n", - "To see the solution, double-click the Markdown cell below.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds = gpd.read_file('notebook_data/transportation/BerkeleyBikeBlvds.geojson')\n", - "bike_blvds.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "\n", - "\n", - "-------------------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. What does that map indicate about the status of the Berkeley bike boulevards?\n", - "1. What does that map indicate about the status of your Berkeley bike-boulevard *dataset*?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/06_Spatial_Queries.ipynb b/06_Spatial_Queries.ipynb deleted file mode 100644 index 210a7ca..0000000 --- a/06_Spatial_Queries.ipynb +++ /dev/null @@ -1,1058 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Lesson 6. Spatial Queries\n", - "\n", - "In spatial analysis, our goal is not just to make nice maps,\n", - "but to actually run analyses that leverage the explicitly spatial\n", - "nature of our data. The process of doing this is known as \n", - "**spatial analysis**.\n", - "\n", - "To construct spatial analyses, we string together series of spatial\n", - "operations in such a way that the end result answers our question of interest.\n", - "There are many such spatial operations. These are known as **spatial queries**.\n", - "\n", - "\n", - "- 6.0 Load and prep some data\n", - "- 6.1 Measurement Queries\n", - "- 6.2 Relationship Queries\n", - "- **Exercise**: Spatial Relationship Query\n", - "- 6.3 Proximity Analysis\n", - "- **Exercise**: Proximity Analysis\n", - "- 6.4 Recap\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'notebook_data/census/Tracts/cb_2013_06_tract_500k.zip'\n", - " - 'notebook_data/protected_areas/CPAD_2020a_Units.shp'\n", - " - 'notebook_data/berkeley/BerkeleyCityLimits.shp'\n", - " - 'notebook_data/alco_schools.csv'\n", - " - 'notebook_data/transportation/BerkeleyBikeBlvds.geojson'\n", - " - 'notebook_data/transportation/bart.csv'\n", - "\n", - "- Expected time to complete\n", - " - Lecture + Questions: 45 minutes\n", - " - Exercises: 20 minutes\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-------------------\n", - "\n", - "We will start by reviewing the most\n", - "fundamental set, which we'll refer to as **spatial queries**.\n", - "These can be divided into:\n", - "\n", - "- Measurement queries\n", - " - What is feature A's **length**?\n", - " - What is feature A's **area**?\n", - " - What is feature A's **perimeter**?\n", - " - What is feature A's **distance** from feature B?\n", - " - etc.\n", - "- Relationship queries\n", - " - Is feature A **within** feature B?\n", - " - Does feature A **intersect** with feature B?\n", - " - Does feature A **cross** feature B?\n", - " - etc.\n", - " \n", - "We'll work through examples of each of those types of queries.\n", - "\n", - "Then we'll see an example of a very common spatial analysis that \n", - "is a conceptual amalgam of those two types: **proximity analysis**." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 6.0 Load and prep some data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's read in our census tracts data again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts = gpd.read_file(\"zip://notebook_data/census/Tracts/cb_2013_06_tract_500k.zip\")\n", - "census_tracts.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "census_tracts.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Then we'll grab just the Alameda Country tracts." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac = census_tracts.loc[census_tracts['COUNTYFP']=='001'].reset_index(drop=True)\n", - "census_tracts_ac.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 6.1 Measurement Queries" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll start off with some simple measurement queries.\n", - "\n", - "For example, here's how we can get the areas of each of our census tracts." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac.area" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Okay! \n", - "\n", - "We got... \n", - "\n", - "numbers!\n", - "\n", - "...?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. What do those numbers mean?\n", - "1. What are our units?\n", - "1. And if we're not sure, how might be find out?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's take a look at our CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Ah-hah! We're working in an unprojected CRS, with units of decimal degrees.\n", - "\n", - "**When doing spatial analysis, we will almost always want to work in a projected CRS\n", - "that has natural distance units, such as meters!**\n", - "\n", - "Time to project!\n", - "\n", - "(As previously, we'll use UTM Zone 10N with a NAD83 data.\n", - "This is a good choice for our region of interest.)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10 = census_tracts_ac.to_crs( \"epsg:26910\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's try our area calculation again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.area" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That looks much more reasonable!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "What are our units now?\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - " \n", - " \n", - " \n", - " \n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You may have noticed that our census tracts already have an area column in them.\n", - "\n", - "Let's do a sanity check on our results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# calculate the area for the 0th feature\n", - "census_tracts_ac_utm10.area[0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# get the area for the 0th feature according to its 'ALAND' attribute\n", - "census_tracts['ALAND'][0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# check equivalence of the calculated areas and the 'ALAND' column\n", - "census_tracts_ac_utm10['ALAND'].values == census_tracts_ac_utm10.area" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "What explains this disagreement? Are the calculated areas incorrect?\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also sum the area for Alameda county by adding `.sum()` to the end of our area calculation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.area.sum()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can actually look up how large Alameda County is to check our work.The county is 739 miles2, which is around 1,914,001,213 meters2. I'd say we're pretty close!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As it turns out, we can similarly use another attribute\n", - "to get the features' lengths.\n", - "\n", - "**NOTE**: In this case, given we're\n", - "dealing with polygons, this is equivalent to getting the features' perimeters." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.length" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 6.2 Relationship Queries" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "GBP2Co-TutCH" - }, - "source": [ - "\n", - "[Spatial relationship queries](https://en.wikipedia.org/wiki/Spatial_relation) consider how two geometries or sets of geometries relate to one another in space. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "jgUkeehpCqnS" - }, - "source": [ - "Here is a list of the most commonly used GeoPandas methods to test spatial relationships.\n", - "\n", - "- [within](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.within)\n", - "- [contains](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.contains) (the inverse of `within`)\n", - "- [intersects](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.intersects)\n", - "\n", - "
\n", - "There several other GeoPandas spatial relationship predicates but they are more complex to properly employ. For example the following two operations only work with geometries that are completely aligned.\n", - "\n", - "- [touches](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.touches)\n", - "- [equals](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.equals)\n", - "\n", - "\n", - "All of these methods takes the form:\n", - "\n", - " Geoseries.(geometry)\n", - " \n", - "For example:\n", - "\n", - " Geoseries.contains(geometry)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "--------------------------------\n", - "\n", - "Let's load a new dataset to demonstrate these queries.\n", - "\n", - "This is a dataset containing all the protected areas (parks and the like) in California." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas = gpd.read_file('./notebook_data/protected_areas/CPAD_2020a_Units.shp')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Does this need to be reprojected too?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas.crs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Yes it does!\n", - "\n", - "Let's reproject it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas_utm10 = pas.to_crs(\"epsg:26910\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One common use for spatial queries is for spatial subsetting of data.\n", - "\n", - "In our case, lets use **intersects** to\n", - "find all of the parks that have land in Alameda County.\n", - "\n", - "But before we do that, let's take another look at our geometries." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.geometry.type.unique()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Because we nave census tracts, each of these rows is either a Polygon or a MultiPolygon. For our relationship query we can actually simplify our geometry to be one polygon by using `unary_union`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "census_tracts_ac_utm10.geometry.unary_union" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(census_tracts_ac_utm10.geometry.unary_union)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can go ahead and conduct our operation `intersects`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas_in_ac = pas_utm10.intersects(census_tracts_ac_utm10.geometry.unary_union)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we scroll the resulting GeoDataFrame to the right we'll see that \n", - "the `COUNTY` column of our resulting subset gives us a good sanity check on our results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas_in_ac" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "pas_utm10[pas_in_ac].head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So does this overlay plot!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = census_tracts_ac_utm10.plot(color='gray', figsize=[12,16])\n", - "pas_utm10[pas_in_ac].plot(ax=ax, column='ACRES', cmap='summer', legend=True,\n", - " edgecolor='black', linewidth=0.4, alpha=0.8,\n", - " legend_kwds={'label': \"acres\",\n", - " 'orientation': \"horizontal\"})\n", - "ax.set_title('Protected areas in Alameda County, colored by area', size=18);" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# color by county?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise: Spatial Relationship Query\n", - "\n", - "Let's use a spatial relationship query to create a new dataset containing Berkeley schools!\n", - "\n", - "Run the next two cells to load datasets containing Berkeley's city boundary and Alameda County's\n", - "schools and to reproject them to EPSG: 26910.\n", - "\n", - "Then in the following cell, write your own code to:\n", - "1. subset the schools for only those `within` Berkeley\n", - "2. plot the Berkeley boundary and then the schools as an overlay map\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# load the Berkeley boundary\n", - "berkeley = gpd.read_file(\"notebook_data/berkeley/BerkeleyCityLimits.shp\")\n", - "\n", - "# transform to EPSG:26910\n", - "berkeley_utm10 = berkeley.to_crs(\"epsg:26910\")\n", - "\n", - "# display\n", - "berkeley_utm10.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# load the Alameda County schools CSV\n", - "schools_df = pd.read_csv('notebook_data/alco_schools.csv')\n", - "\n", - "# coerce it to a GeoDataFrame\n", - "schools_gdf = gpd.GeoDataFrame(schools_df, \n", - " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", - "# define its unprojected (EPSG:4326) CRS\n", - "schools_gdf.crs = \"epsg:4326\"\n", - "\n", - "# transform to EPSG:26910\n", - "schools_gdf_utm10 = schools_gdf.to_crs( \"epsg:26910\")\n", - "\n", - "# display\n", - "schools_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "\n", - "\n", - "-------------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 6.3 Proximity Analysis\n", - "\n", - "Now that we've seen the basic idea of spatial measurement and relationship queries,\n", - "let's take a look at a common analysis that combines those concepts: **promximity analysis**.\n", - "\n", - "Proximity analysis seeks to identify all features in a focal feature set\n", - "that are within some maximum distance of features in a reference feature set.\n", - "\n", - "A common workflow for this analysis is:\n", - "\n", - "1. Buffer (i.e. add a margin around) the reference dataset, out to the maximum distance.\n", - "1. Run a spatial relationship query to find all focal features that intersect (or are within) the buffer.\n", - "\n", - "---------------------------------\n", - "\n", - "Let's read in our bike boulevard data again.\n", - "\n", - "Then we'll find out which of our Berkeley schools are within a block's distance (200 m) of the boulevards." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds = gpd.read_file('notebook_data/transportation/BerkeleyBikeBlvds.geojson')\n", - "bike_blvds.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, we need to reproject the boulevards to our projected CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10 = bike_blvds.to_crs( \"epsg:26910\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can create our 200 meter bike boulevard buffers." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10.crs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_buf = bike_blvds_utm10.buffer(distance=200)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_utm10.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "bike_blvds_buf.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's overlay everything." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", - "bike_blvds_buf.plot(color='pink', ax=ax, alpha=0.5)\n", - "bike_blvds_utm10.plot(ax=ax)\n", - "berkeley_schools.plot(color='purple',ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Great! Looks like we're all ready to run our intersection to complete the proximity analysis.\n", - "\n", - "\n", - "**NOTE**: In order to subset with our buffers we need to call the `unary_union` attribute of the buffer object.\n", - "This gives us a single unified polygon, rather than a series of multipolygons representing buffers around each of the points in our multilines." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_near_blvds = berkeley_schools.within(bike_blvds_buf.unary_union)\n", - "blvd_schools = berkeley_schools[schools_near_blvds]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's overlay again, to see if the schools we subsetted make sense." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(10,10))\n", - "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", - "bike_blvds_buf.plot(color='pink', ax=ax, alpha=0.5)\n", - "bike_blvds_utm10.plot(ax=ax)\n", - "berkeley_schools.plot(color='purple',ax=ax)\n", - "blvd_schools.plot(color='yellow', markersize=50, ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we want to find the shortest distance from one school to the bike boulevards, we can use the `distance` function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "berkeley_schools.distance(bike_blvds_utm10.unary_union)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise: Proximity Analysis\n", - "\n", - "Now it's your turn to try out a proximity analysis!\n", - "\n", - "Run the next cell to load our BART-system data, reproject it to EPSG: 26910, and subset it to Berkeley.\n", - "\n", - "Then in the following cell, write your own code to find all schools within walking distance (1 km) of a BART station.\n", - "\n", - "As a reminder, let's break this into steps:\n", - "1. buffer your Berkeley BART stations to 1 km (**HINT**: remember your units!)\n", - "2. use the schools' `within` attribute to check whether or not they're within the buffers (**HINT**: don't forget the `unary_union`!)\n", - "3. subset the Berkeley schools using the object returned by your spatial relationship query\n", - "\n", - "4. as always, plot your results for a good visual check!\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# load the BART stations from CSV\n", - "bart_stations = pd.read_csv('notebook_data/transportation/bart.csv')\n", - "# coerce to a GeoDataFrame\n", - "bart_stations_gdf = gpd.GeoDataFrame(bart_stations, \n", - " geometry=gpd.points_from_xy(bart_stations.lon, bart_stations.lat))\n", - "# define its unprojected (EPSG:4326) CRS\n", - "bart_stations_gdf.crs = \"epsg:4326\"\n", - "# transform to UTM Zone 10 N (EPSG:26910)\n", - "bart_stations_gdf_utm10 = bart_stations_gdf.to_crs( \"epsg:26910\")\n", - "# subset to Berkeley\n", - "berkeley_bart = bart_stations_gdf_utm10[bart_stations_gdf_utm10.within(berkeley_utm10.unary_union)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "\n", - "\n", - "----------------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 6.4 Recap\n", - "Leveraging what we've learned in our earlier lessons, we got to work with map overlays and start answering questions related to proximity. Key concepts include:\n", - "- Measuring area and length\n", - "\t- `.area`, \n", - "\t- `.length`\n", - "- Relationship Queries\n", - "\t- `.intersects()`\n", - "\t- `.within()`\n", - "- Buffer analysis\n", - "\t- `.buffer()`\n", - "\t- `.distance()`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "geo_env2", - "language": "python", - "name": "geo_env2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.2" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/07_Joins_and_Aggregation.ipynb b/07_Joins_and_Aggregation.ipynb deleted file mode 100644 index 756970b..0000000 --- a/07_Joins_and_Aggregation.ipynb +++ /dev/null @@ -1,1180 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Lesson 7. Attribute and Spatial Joins\n", - "\n", - "Now that we understand the logic of spatial relationship queries,\n", - "let's take a look at another fundamental spatial operation that relies on them.\n", - "\n", - "This operation, called a **spatial join**, is the process by which we can\n", - "leverage the spatial relationships between distinct datasets to merge\n", - "their information into a new, synthetic dataset.\n", - "\n", - "This operation can be thought as the spatial equivalent of an\n", - "**attribute join**, in which multiple tabular datasets can be merged by\n", - "aligning matching values in a common column that they both contain.\n", - "Thus, we'll start by developing an understanding of this operation first!\n", - "\n", - "- 7.0 Data Input and Prep\n", - "- 7.1 Attribute Joins\n", - "- **Exercise**: Choropleth Map\n", - "- 7.2 Spatial Joins\n", - "- 7.3 Aggregation\n", - "- **Exercise**: Aggregation\n", - "- 7.4 Recap\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'notebook_data/census/ACS5yr/census_variables_CA.csv'\n", - " - 'notebook_data/census/Tracts/cb_2013_06_tract_500k.zip'\n", - " - 'notebook_data/alco_schools.csv'\n", - " \n", - "- Expected time to complete\n", - " - Lecture + Questions: 45 minutes\n", - " - Exercises: 20 minutes\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 7.0 Data Input and Prep" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's read in a table of data from the US Census' 5-year American Community Survey (ACS5)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Read in the ACS5 data for CA into a pandas DataFrame.\n", - "# Note: We force the FIPS_11_digit to be read in as a string to preserve any leading zeroes.\n", - "acs5_df = pd.read_csv(\"notebook_data/census/ACS5yr/census_variables_CA.csv\", dtype={'FIPS_11_digit':str})\n", - "acs5_df.head()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Brief summary of the data**:\n", - "\n", - "Below is a table of the variables in this table. They were combined from \n", - "different ACS 5 year tables.\n", - "\n", - "NOTE:\n", - "- variables that start with `c_` are counts\n", - "- variables that start with `med_` are medians\n", - "- variables that end in `_moe` are margin of error estimates\n", - "- variables that start with `_p` are proportions calcuated from the counts divided by the table denominator (the total count for whom that variable was assessed)\n", - "\n", - "\n", - "| Variable | Description |\n", - "|-----------------|-------------------------------------------------|\n", - "|`c_race` |Total population \n", - "|`c_white` |Total white non-Latinx\n", - "| `c_black` | Total black and African American non-Latinx\n", - "| `c_asian` | Total Asian non-Latinx\n", - "| `c_latinx` | Total Latinx\n", - "| `state_fips` | State level FIPS code\n", - "| `county_fips` | County level FIPS code\n", - "| `tract_fips` |Tracts level FIPS code\n", - "| `med_rent` |Median rent\n", - "| `med_hhinc` |Median household income\n", - "| `c_tenants` |Total tenants\n", - "| `c_owners` |Total owners\n", - "| `c_renters` |Total renters\n", - "| `c_movers` |Total number of people who moved\n", - "| `c_stay` |Total number of people who stayed\n", - "| `c_movelocal` |Number of people who moved locally\n", - "| `c_movecounty` |Number of people who moved counties\n", - "| `c_movestate` | Number of people who moved states\n", - "| `c_moveabroad` |Number of people who moved abroad\n", - "| `c_commute` |Total number of commuters\n", - "| `c_car` | Number of commuters who use a car\n", - "| `c_carpool` | Number of commuters who carpool\n", - "| `c_transit` |Number of commuters who use public transit\n", - "| `c_bike` |Number of commuters who bike\n", - "| `c_walk` |Number of commuters who bike\n", - "| `year` | ACS data year\n", - "| `FIPS_11_digit` | 11-digit FIPS code\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We're going to drop all of our `moe` columns by identifying all of those that end with `_moe`. We can do that in two steps, first by using `filter` to identify columns that contain the string `_moe`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "moe_cols = acs5_df.filter(like='_moe',axis=1).columns\n", - "moe_cols" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "acs5_df.drop(moe_cols, axis=1, inplace=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And lastly, let's grab only the rows for year 2018 and county FIPS code 1 (i.e. Alameda County)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "acs5_df_ac = acs5_df[(acs5_df['year']==2018) & (acs5_df['county_fips']==1)]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---------------------------------\n", - "Now let's also read in our census tracts again!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_gdf = gpd.read_file(\"zip://notebook_data/census/Tracts/cb_2013_06_tract_500k.zip\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_gdf.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_gdf_ac = tracts_gdf[tracts_gdf['COUNTYFP']=='001']\n", - "tracts_gdf_ac.plot()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 7.1 Attribute Joins\n", - "\n", - "**Attribute Joins between Geodataframes and Dataframes**\n", - "\n", - "*We just mapped the census tracts. But what makes a map powerful is when you map the data associated with the locations.*\n", - "\n", - "- `tracts_gdf_ac`: These are polygon data in a GeoDataFrame. However, as we saw in the `head` of that dataset, they no attributes of interest!\n", - "\n", - "- `acs5_df_ac`: These are 2018 ACS data from a CSV file ('census_variables_CA.csv'), imported and read in as a `pandas` DataFrame. However, they have no geometries!\n", - "\n", - "In order to map the ACS data we need to associate it with the tracts. Let's do that now, by joining the columns from `acs5_df_ac` to the columns of `tracts_gdf_ac` using a common column as the key for matching rows. This process is called an **attribute join**.\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "--------------------------\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "The image above gives us a nice conceptual summary of the types of joins we could run.\n", - "\n", - "1. In general, why might we choose one type of join over another?\n", - "1. In our case, do we want an inner, left, right, or outer (AKA 'full') join? \n", - "\n", - "(**NOTE**: You can read more about merging in `geopandas` [here](http://geopandas.org/mergingdata.html#attribute-joins).)" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Okay, here we go!\n", - "\n", - "Let's take a look at the common column in both our DataFrames.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_gdf_ac['GEOID'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "acs5_df_ac['FIPS_11_digit'].head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "Note that they are **not named the same thing**. \n", - " \n", - " That's okay! We just need to know that they contain the same information.\n", - "\n", - "Also note that they are **not in the same order**. \n", - " \n", - " That's not only okay... That's the point! (If they were in the same order already then we could just join them side by side, without having Python find and line up the matching rows from each!)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-------------------------------\n", - "\n", - "Let's do a `left` join to keep all of the census tracts in Alameda County and only the ACS data for those tracts.\n", - "\n", - "**NOTE**: To figure out how to do this we could always take a peek at the documentation by calling\n", - "`?tracts_gdf_ac.merge`, or `help(tracts_gdf_ac)`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Left join keeps all tracts and the acs data for those tracts\n", - "tracts_acs_gdf_ac = tracts_gdf_ac.merge(acs5_df_ac, left_on='GEOID',\n", - " right_on=\"FIPS_11_digit\", how='left')\n", - "tracts_acs_gdf_ac.head(2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check that we have all the variables we have in our dataset now." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "list(tracts_acs_gdf_ac.columns)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Question\n", - "
\n", - "\n", - "It's always important to run sanity checks on our results, at each step of the way!\n", - "\n", - "In this case, how many rows and columns should we have?\n" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your response here:\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(\"Rows and columns in the Alameda County Census tract gdf:\\n\\t\", tracts_gdf_ac.shape)\n", - "print(\"Row and columns in the ACS5 2018 data:\\n\\t\", acs5_df_ac.shape)\n", - "print(\"Rows and columns in the Alameda County Census tract gdf joined to the ACS data:\\n\\t\", tracts_acs_gdf_ac.shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's save out our merged data so we can use it in the final notebook." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_acs_gdf_ac.to_file('outdata/tracts_acs_gdf_ac.json', driver='GeoJSON')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise: Choropleth Map\n", - "We can now make choropleth maps using our attribute joined geodataframe. Go ahead and pick one variable to color the map, then map it. You can go back to lesson 5 if you need a refresher on how to make this!\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-------------------\n", - "# 7.2 Spatial Joins" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Great! We've wrapped our heads around the concept of an attribute join.\n", - "\n", - "Now let's extend that concept to its spatially explicit equivalent: the **spatial join**!\n", - "\n", - "\n", - "
\n", - "\n", - "To start, we'll read in some other data: The Alameda County schools data.\n", - "\n", - "Then we'll work with that data and our `tracts_acs_gdf_ac` data together." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_df = pd.read_csv('notebook_data/alco_schools.csv')\n", - "schools_gdf = gpd.GeoDataFrame(schools_df, \n", - " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", - "schools_gdf.crs = \"epsg:4326\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's check if we have to transform the schools to match the`tracts_acs_gdf_ac`'s CRS." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('schools_gdf CRS:', schools_gdf.crs)\n", - "print('tracts_acs_gdf_ac CRS:', tracts_acs_gdf_ac.crs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Yes we do! Let's do that.\n", - "\n", - "**NOTE**: Explicit syntax aiming at that dataset's CRS leaves less room for human error!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf = schools_gdf.to_crs(tracts_acs_gdf_ac.crs)\n", - "\n", - "print('schools_gdf CRS:', schools_gdf.crs)\n", - "print('tracts_acs_gdf_ac CRS:', tracts_acs_gdf_ac.crs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we're ready to combine the datasets in an analysis.\n", - "\n", - "**In this case, we want to get data from the census tract within which each school is located.**\n", - "\n", - "But how can we do that? The two datasets don't share a common column to use for a join." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_acs_gdf_ac.columns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "However, they do have a shared relationship by way of space! \n", - "\n", - "So, we'll use a spatial relationship query to figure out the census tract that\n", - "each school is in, then associate the tract's data with that school (as additional data in the school's row).\n", - "This is a **spatial join**!\n", - "\n", - "---------------------------------\n", - "\n", - "### Census Tract Data Associated with Each School\n", - "\n", - "In this case, let's say we're interested in the relationship between the median household income\n", - "in a census tract (`tracts_acs_gdf_ac['med_hhinc']`) and a school's Academic Performance Index\n", - "(`schools_gdf['API']`).\n", - "\n", - "To start, let's take a look at the distributions of our two variables of interest." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_acs_gdf_ac.hist('med_hhinc')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf.hist('API')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Oh, right! Those pesky schools with no reported APIs (i.e. API == 0)! Let's drop those." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf_api = schools_gdf.loc[schools_gdf['API'] > 0, ]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_gdf_api.hist('API')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Much better!\n", - "\n", - "Now, maybe we think there ought to be some correlation between the two variables?\n", - "As a first pass at this possibility, let's overlay the two datasets, coloring each one by\n", - "its variable of interest. This should give us a sense of whether or not similar values co-occur." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = tracts_acs_gdf_ac.plot(column='med_hhinc', cmap='cividis', figsize=[18,18],\n", - " legend=True, legend_kwds={'label': \"median household income ($)\",\n", - " 'orientation': \"horizontal\"})\n", - "schools_gdf_api.plot(column='API', cmap='cividis', edgecolor='black', alpha=1, ax=ax,\n", - " legend=True, legend_kwds={'label': \"API\", 'orientation': \"horizontal\"})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Spatially Joining our Schools and Census Tracts\n", - "\n", - "Though it's hard to say for sure, it certainly looks possible.\n", - "It would be ideal to scatterplot the variables! But in order to do that, \n", - "we need to know the median household income in each school's tract, which\n", - "means we definitely need our **spatial join**!\n", - "\n", - "We'll first take a look at the documentation for the spatial join function, `gpd.sjoin`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "help(gpd.sjoin)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Looks like the key arguments to consider are:\n", - "- the two GeoDataFrames (**`left_df`** and **`right_df`**)\n", - "- the type of join to run (**`how`**), which can take the values `left`, `right`, or `inner`\n", - "- the spatial relationship query to use (**`op`**)\n", - "\n", - "**NOTE**:\n", - "- By default `sjoin` is an inner join. It keeps the data from both geodataframes only where the locations spatially intersect.\n", - "\n", - "- By default `sjoin` maintains the geometry of first geodataframe input to the operation. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. Which GeoDataFrame are we joining onto which (i.e. which one is getting the other one's data added to it)?\n", - "1. What happened to 'outer' as a join type?\n", - "1. Thus, in our operation, which GeoDataFrame should be the `left_df`, which should be the `right_df`, and `how` do we want our join to run?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Alright! Let's run our join!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_jointracts = gpd.sjoin(schools_gdf_api, tracts_acs_gdf_ac, how='left')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_jointracts.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Checking Our Output\n", - "\n", - "
\n", - "\n", - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "As always, we want to sanity-check our intermediate result before we rush ahead.\n", - "\n", - "One way to do that is to introspect the structure of the result object a bit.\n", - "\n", - "1. What type of object should that have given us?\n", - "1. What should the dimensions of that object be, and why?\n", - "1. If we wanted a visual check of our results (i.e. a plot or map), what could we do?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "Your responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(schools_jointracts.shape)\n", - "print(schools_gdf.shape)\n", - "print(tracts_acs_gdf_ac.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_jointracts.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Confirmed! The output of the our `sjoin` operation is a GeoDataFrame (`schools_jointracts`) with:\n", - "- a row for each school that is located inside a census tract (all of them are)\n", - "- the **point geometry** of that school\n", - "- all of the attribute data columns (non-geometry columns) from both input GeoDataFrames\n", - "\n", - "----------------------------\n", - "\n", - "Let's also take a look at an overlay map of the schools on the tracts.\n", - "If we color the schools categorically by their tracts IDs, then we should see\n", - "that all schools within a given tract polygon are the same color." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = tracts_acs_gdf_ac.plot(color='white', edgecolor='black', figsize=[18,18])\n", - "schools_jointracts.plot(column='GEOID', ax=ax)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Assessing the Relationship between Median Household Income and API\n", - "\n", - "Fantastic! That looks right!\n", - "\n", - "Now we can create that scatterplot we were thinking about!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(6,6))\n", - "ax.scatter(schools_jointracts.med_hhinc, schools_jointracts.API)\n", - "ax.set_xlabel('median household income ($)')\n", - "ax.set_ylabel('API')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Wow! Just as we suspected based on our overlay map,\n", - "there's a pretty obvious, strong, and positive correlation\n", - "between median household income in a school's tract\n", - "and the school's API." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 7.3: Aggregation\n", - "\n", - "We just saw that a spatial join in one way to leverage the spatial relationship\n", - "between two datasets in order to create a new, synthetic dataset.\n", - "\n", - "An **aggregation** is another way we can generate new data from this relationship.\n", - "In this case, for each feature in one dataset we find all the features in another\n", - "dataset that satisfy our chosen spatial relationship query with it (e.g. within, intersects),\n", - "then aggregate them using some summary function (e.g. count, mean).\n", - "\n", - "------------------------------------\n", - "\n", - "### Getting the Aggregated School Counts\n", - "\n", - "Let's take this for a spin with our data. We'll count all the schools within each census tract.\n", - "\n", - "Note that we've already done the first step of spatially joining the data from the aggregating features\n", - "(the tracts) onto the data to be aggregated (our schools).\n", - "\n", - "The next step is to group our GeoDataFrame by census tract, and then summarize our data by group.\n", - "We do this using the DataFrame method `groupy`.\n", - "\n", - "To get the correct count, lets rejoin our schools on our tracts, this time keeping all schools\n", - "(not just those with APIs > 0, as before)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_jointracts = gpd.sjoin(schools_gdf, tracts_acs_gdf_ac, how='left')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now for the `groupy` operation.\n", - "\n", - "**NOTE**: We could really use any column, since we're just taking a count. For now we'll just use the school names ('Site')." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "schools_countsbytract = schools_jointracts[['GEOID','Site']].groupby('GEOID', as_index=False).count()\n", - "print(\"Counts, rows and columns:\", schools_countsbytract.shape)\n", - "print(\"Tracts, rows and columns:\", tracts_acs_gdf_ac.shape)\n", - "\n", - "# take a look at the data\n", - "schools_countsbytract.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Getting Tract Polygons with School Counts\n", - "\n", - "The above `groupby` and `count` operations give us the counts we wanted.\n", - "- We have the 263 (of 361) census tracts that have at least one school\n", - "- We have the number of schools within each of those tracts\n", - "\n", - "But the output of `groupby` is a plain DataFrame not a GeoDataFrame.\n", - "\n", - "If we want a GeoDataFrame then we have two options:\n", - "1. We could join the `groupby` output to `tracts_acs_gdf_ac` by the attribute `GEOID`\n", - "or\n", - "2. We could start over, using the GeoDataFrame `dissolve` method, which we can think of as a spatial `groupby`. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---------------------------\n", - "\n", - "Since we already know how to do an attribute join, we'll do the `dissolve`!\n", - "\n", - "First, let's run a new spatial join." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_joinschools = gpd.sjoin(schools_gdf, tracts_acs_gdf_ac, how='right')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_joinschools.geometry" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let's run our dissolve!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tracts_schoolcounts = tracts_joinschools[['GEOID', 'Site', 'geometry']].dissolve(by='GEOID', aggfunc='count')\n", - "print(\"Counts, rows and columns:\", tracts_schoolcounts.shape)\n", - "\n", - "# take a look\n", - "tracts_schoolcounts.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Nice! Let's break that down.\n", - "\n", - "- The `dissolve` operation requires a geometry column and a grouping column (in our case, 'GEOID'). Any geometries within the **same group** will be dissolved if they have the same geometry or nested geometries. \n", - " \n", - "- The `aggfunc`, or aggregation function, of the dissolve operation will be applied to all numeric columns in the input geodataframe (unless the function is `count` in which case it will count rows.) \n", - "\n", - "Check out the Geopandas documentation on [dissolve](https://geopandas.org/aggregation_with_dissolve.html?highlight=dissolve) for more information.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "
\n", - "
\n", - "\n", - "#### Questions\n", - "
\n", - "\n", - "1. Above we selected three columns from the input GeoDataFrame to create a subset as input to the dissolve operation. Why?\n", - "1. Why did we run a new spatial join? What would have happened if we had used the `schools_jointracts` object instead?\n", - "1. What explains the dimensions of the new object (361, 2)?" - ] - }, - { - "cell_type": "raw", - "metadata": {}, - "source": [ - "You responses here:\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Mapping our Spatial Join Output" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Also, because our `sjoin` plus `dissolve` pipeline outputs a GeoDataFrame, we can now easily map the school count by census tract!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize = (14,8)) \n", - "\n", - "# Display the output of our spatial join\n", - "tracts_schoolcounts.plot(ax=ax,column='Site', \n", - " scheme=\"user_defined\",\n", - " classification_kwds={'bins':[*range(9)]},\n", - " cmap=\"PuRd_r\",\n", - " edgecolor=\"grey\",\n", - " legend=True, \n", - " legend_kwds={'title':'Number of schools'})\n", - "schools_gdf.plot(ax=ax, color='black', markersize=2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---------------------\n", - "\n", - "# Exercise: Aggregation\n", - "\n", - "#### What is the mean API of each census tract?\n", - "\n", - "As we mentioned, the spatial aggregation workflow that we just put together above\n", - "could have been used not to generate a new count variable, but also\n", - "to generate any other new variable the results from calling an aggregation function\n", - "on an attribute column.\n", - "\n", - "In this case, we want to calculate and map the mean API of the schools in each census tract.\n", - "\n", - "Copy and paste code from above where useful, then tweak and/or add to that code such that your new code:\n", - "1. joins the schools onto the tracts (**HINT**: make sure to decide whether or not you want to include schools with API = 0!)\n", - "1. dissolves that joined object by the tract IDs, giving you a new GeoDataFrame with each tract's mean API (**HINT**: because this is now a different calculation, different problems may arise and need handling!)\n", - "1. plots the tracts, colored by API scores (**HINT**: overlay the schools points again, visualizing them in a way that will help you visually check your results!)\n", - "\n", - "To see the solution, double-click the Markdown cell below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# YOUR CODE HERE:\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "\n", - "\n", - "----------------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 7.4 Recap\n", - "We discussed how we can combine datasets to enhance any geospatial data analyses you could do. Key concepts include:\n", - "- Attribute joins\n", - "\t- `.merge()`\n", - "- Spatial joins (order matters!)\n", - "\t- `gpd.sjoin()`\n", - "- Aggregation\n", - "\t-`.groupby()`\n", - "\t- `.dissolve()` (preserves geometry)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "geo_env2", - "language": "python", - "name": "geo_env2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.2" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/08_Pulling_It_All_Together.ipynb b/08_Pulling_It_All_Together.ipynb deleted file mode 100644 index 931970b..0000000 --- a/08_Pulling_It_All_Together.ipynb +++ /dev/null @@ -1,449 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 08. Pulling it all Together\n", - "\n", - "For this last lesson, we'll practice going through a full workflow!! We'll answer the question:\n", - "## What is the total grocery-store sales volume of each census tract?\n", - "\n", - "\n", - "### WORKFLOW:\n", - "\n", - "
\n", - "Here's a set of steps that we will implement in the labeled cells below:\n", - "\n", - " 8.1 Read in and Prep Data\n", - "- read in tracts acs joined data\n", - "- read our grocery-data CSV into a Pandas DataFrame (it lives at `'notebook_data/other/ca_grocery_stores_2019_wgs84.csv`)\n", - "- coerce it to a GeoDataFrame\n", - "- define its CRS (EPSG:4326)\n", - "- transform it to match the CRS of `tracts_acs_gdf_ac`\n", - "- take a peek\n", - "\n", - "8.2 Spatial Join and Dissolve\n", - "- join the two datasets in such a way that you can then...\n", - "- group by tract and calculate the total grocery-store sales volume\n", - "- don't forget to check the dimensions, contents, and any other relevant aspects of your results\n", - "\n", - "8.3 Plot and Review\n", - "- plot the tracts, coloring them by total grocery-store sales volume\n", - "- plot the grocery stores on top\n", - "- bonus points for devising a nice visualization scheme that helps you heuristically check your results!\n", - "\n", - "\n", - "\n", - "### INSTRUCTIONS:\n", - "**We've written out some of the code for you, but you'll need to replace the ellipses with the correct\n", - "content.**\n", - "\n", - "*You can check your answers by double-clicking on the Markdown cells where indicated.*\n", - "\n", - "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'outdata/tracts_acs_gdf_ac.json'\n", - " - 'notebook_data/other/ca_grocery_stores_2019_wgs84.csv'\n", - "\n", - "- Expected time to complete\n", - " - Lecture + Questions: N/A\n", - " - Exercises: 30 minutes\n", - "\n", - "\n", - "\n", - "\n", - "-----------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "---------------------------------------\n", - "\n", - "\n", - "### Install Packages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", - "\n", - "# To display plots, maps, charts etc in the notebook\n", - "%matplotlib inline " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "------------------\n", - "\n", - "## 8.1 Read in the Prep Data\n", - "\n", - "We first need to prepare our data by loading both our tracts/acs and grocery data, and conduct our usual steps to make there they have the same CRS.\n", - "\n", - "- read in our tracts acs joined data \n", - "- read our grocery-data CSV into a Pandas DataFrame (it lives at `'notebook_data/other/ca_grocery_stores_2019_wgs84.csv`)\n", - "- coerce it to a GeoDataFrame\n", - "- define its CRS (EPSG:4326)\n", - "- transform it to match the CRS of `tracts_acs_gdf_ac`\n", - "- take a peek\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# read in tracts acs data\n", - "\n", - "tracts_acs_gdf_ac = gpd.read_file(..)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# read our grocery-data CSV into a Pandas DataFrame\n", - "\n", - "grocery_pts_df = pd.read_csv(...)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# coerce it to a GeoDataFrame\n", - "\n", - "grocery_pts_gdf = gpd.GeoDataFrame(grocery_pts_df, \n", - " geometry=gpd.points_from_xy(...,...))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# define its CRS (NOTE: Use EPSG:4326)\n", - "\n", - "grocery_pts_gdf.crs = ..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# transform it to match the CRS of tracts_acs_gdf_ac\n", - "\n", - "grocery_pts_gdf.to_crs(..., inplace=...)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "grocery_pts_gdf.crs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# take a peek\n", - "\n", - "print(grocery_pts_gdf.head())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click here to see solution!\n", - "\n", - "\n", - "\n", - "-----------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 8.2 Spatial Join and Dissolve\n", - "\n", - "Now that we have our data and they're in the same projection, we're going to conduct an *attribute join* to bring together the two datasets. From there we'll be able to actually *aggregate* our data to count the total sales volume.\n", - "\n", - "- join the two datasets in such a way that you can then...\n", - "- group by tract and calculate the total grocery-store sales volume\n", - "- don't forget to check the dimensions, contents, and any other relevant aspects of your results" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# join the two datasets in such a way that you can then...\n", - "\n", - "tracts_joingrocery = gpd.sjoin(..., ..., how= ...)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# group by tract and calculate the total grocery-store sales volume\n", - "\n", - "tracts_totsalesvol = tracts_joingrocery[['GEOID','geometry','SALESVOL']].dissolve(by= ...,\n", - " aggfunc=..., as_index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# don't forget to check the dimensions, contents, and any other relevant aspects of your results\n", - "\n", - "# check the dimensions\n", - "print('Dimensions of result:', ...)\n", - "print('Dimesions of census tracts:', ...)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# check the result\n", - "print(tracts_totsalesvol.head())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click here to see solution!\n", - "\n", - "\n", - "\n", - "----------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 8.3 Plot and Review\n", - "\n", - "With any time of geospatial analysis you do, it's always nice to plot and visualize your results to check your work and start to understand the full story of your analysis.\n", - "\n", - "- Plot the tracts, coloring them by total grocery-store sales volume\n", - "- Plot the grocery stores on top\n", - "- Bonus points for devising a nice visualization scheme that helps you heuristically check your results!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# create the figure and axes\n", - "\n", - "fig, ax = plt.subplots(figsize = (20,20)) \n", - "\n", - "# plot the tracts, coloring by total SALESVOL\n", - "\n", - "tracts_totsalesvol.plot(ax=ax, column= ..., scheme=\"quantiles\", cmap=\"autumn\", edgecolor=\"grey\",\n", - " legend=True, legend_kwds={'title':...})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# subset the stores for only those within our tracts, to keep map within region of interest\n", - "\n", - "grocery_pts_gdf_ac = grocery_pts_gdf.loc[..., ]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# add the grocery stores, coloring by SALESVOL, for a visual check\n", - "\n", - "grocery_pts_gdf_ac.plot(ax=ax, column= ... , cmap= ..., linewidth= ..., markersize= ...,\n", - " legend=True, legend_kwds={'label': ... , 'orientation': \"horizontal\"})" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "scrolled": false - }, - "source": [ - "## Double-click here to see solution!\n", - "\n", - "\n", - "\n", - "-------------------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "\n", - "***\n", - "\n", - "# Congrats!! Thanks for Joining Us for Geospatial Fundamentals!!\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/LICENSE b/LICENSE index 5950235..d4eae3c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,88 @@ -MIT License - -Copyright (c) 2018 dlab-geo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Creative Commons Attribution-NonCommercial 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + +Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. +Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. +Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. +Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. +Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. +Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. +Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. +Licensor means the individual(s) or entity(ies) granting rights under this Public License. +NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange. +Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. +Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. +You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. +Section 2 – Scope. + +License grant. +Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: +reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and +produce, reproduce, and Share Adapted Material for NonCommercial purposes only. +Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. +Term. The term of this Public License is specified in Section 6(a). +Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. +Downstream recipients. +Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. +No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. +No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). +Other rights. + +Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. +Patent and trademark rights are not licensed under this Public License. +To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes. +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + +Attribution. + +If You Share the Licensed Material (including in modified form), You must: + +retain the following if it is supplied by the Licensor with the Licensed Material: +identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); +a copyright notice; +a notice that refers to this Public License; +a notice that refers to the disclaimer of warranties; +a URI or hyperlink to the Licensed Material to the extent reasonably practicable; +indicate if You modified the Licensed Material and retain an indication of any previous modifications; and +indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. +You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. +If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. +If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + +for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only; +if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and +You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. +Section 5 – Disclaimer of Warranties and Limitation of Liability. + +Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. +To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. +The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. +Section 6 – Term and Termination. + +This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. +Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + +automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or +upon express reinstatement by the Licensor. +For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. +For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. +Sections 1, 5, 6, 7, and 8 survive termination of this Public License. +Section 7 – Other Terms and Conditions. + +The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. +Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. +Section 8 – Interpretation. + +For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. +To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. +No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. +Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. diff --git a/README.md b/README.md index dc1c8c9..c6f81d0 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,135 @@ -# Geospatial Data and Mapping in Python +# D-Lab Python Geospatial Fundamentals Workshop -## Overview +[![Datahub](https://img.shields.io/badge/open-slides-blueviolet)](https://docs.google.com/presentation/d/1vDWfqAVKhOMVBC6U-uussHo6Nk7Q33PQ5uQ9iTG2S8I/edit?usp=share_link) [![Datahub](https://img.shields.io/badge/launch-datahub-blue)](https://dlab.datahub.berkeley.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fdlab-berkeley%2FPython-Geospatial-Fundamentals&urlpath=tree%2FPython-Geospatial-Fundamentals%2F&branch=main) [![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/dlab-berkeley/Python-Geospatial-Fundamentals/HEAD) -Geospatial data are an important component of data visualization and analysis in the social sciences, humanities, and elsewhere. The Python programming language is a great platform for exploring these data and integrating them into your research. -### Geospatial Data and Mapping in Python, Part 1: Getting started with spatial dataframes +This repository contains the materials for D-Lab's Python Text Analysis. Prior +experience with Python Fundamentals and Python Data Wrangling is assumed. +## Workshop Goals -Part one of this two-part workshop series will introduce basic methods for working with geospatial data in Python using the [GeoPandas library](https://geopandas.org). Participants will learn how to import and export spatial data and store them as GeoPandas GeoDataFrames (or spatial dataframes). We will explore and compare several methods for mapping the data including the GeoPandas plot function and the matplotlib library. We will review coordinate reference systems and methods for reading, defining and transforming these. Note, this workshop focuses on vector spatial data. +Geospatial data are an important component of data visualization and analysis in +the social sciences, humanities, and elsewhere. The Python programming language +is a great platform for exploring these data and integrating them into your +research. -### Geospatial Data and Mapping in Python, Part 2: Geoprocessing and analysis +This workshop is divided in two parts: -Part two of this two-part workshop series will dive deeper into data driven mapping in Python, using color palettes and data classification to communicate information with maps. We will also introduce basic methods for processing spatial data, which are the building blocks of common spatial analysis workflows. Note, this workshop focuses on vector spatial data. +* **Part 1: Getting started with spatial dataframes.** Part one of this two-part + workshop series will introduce basic methods for working with geospatial data + in Python using the [GeoPandas library](https://geopandas.org). Participants + will learn how to import and export spatial data and store them as GeoPandas + GeoDataFrames (or spatial dataframes). We will explore and compare several + methods for mapping the data including the GeoPandas plot function and the + matplotlib library. We will review coordinate reference systems and methods + for reading, defining and transforming these. Note that this workshop focuses + on vector spatial data. +* **Part 2: Geoprocessing and analysis.** In Part 2, we dive deeper into data + driven mapping in Python, using color palettes and data classification to + communicate information with maps. We will also introduce basic methods for + processing spatial data, which are the building blocks of common spatial + analysis workflows. +## Installation Instructions -### Pre-requisites +Anaconda is a useful package management software that allows you to run Python +and Jupyter notebooks very easily. Installing Anaconda is the easiest way to +make sure you have all the necessary software to run the materials for this +workshop. Complete the following steps: -#### Knowledge Requirements -You'll probably get the most out of this workshop if you have a basic foundation in Python and Pandas, similar to what you would have from taking the D-Lab Python Fundamentals workshop series. Here are a couple of suggestions for materials to check-out prior to the workshop. +1. [Download and install Anaconda (Python 3.8 + distribution)](https://www.anaconda.com/products/individual). Click + "Download" and then click 64-bit "Graphical Installer" for your current + operating system. -`D-Lab Workshops`: - - [Python Fundamentals](https://github.com/dlab-berkeley/python-fundamentals) - - [Pandas](https://github.com/dlab-berkeley/introduction-to-pandas) +2. Download the [Python-Geospatial-Fundamentals workshop + materials](https://github.com/dlab-berkeley/Python-Geospatial-Fundamentals): -`Other`: - - [Learn Python on Kaggle](https://www.kaggle.com/learn/python) - - [Programming in Python - Software Carpentry](http://swcarpentry.github.io/python-novice-inflammation/) - - [Learn Pandas on Kaggle](https://www.kaggle.com/learn/pandas) - - [Plotting in Python - Software Carpentry](http://swcarpentry.github.io/python-novice-gapminder/) -: Basic knowledge of geospatial data is expected. R experience equivalent to the D-Lab R Fundamentals workshop series is required to follow along with the tutorial. Knowledge of ggplot helpful. +* Click the green "Code" button in the top right of the repository information. +* Click "Download Zip". +* Extract this file to a folder on your computer where you can easily access it + (we recommend Desktop). -#### Technology Requirements: +3. Optional: if you're familiar with `git`, you can instead clone this + repository by opening a terminal and entering `git clone + git@github.com:dlab-berkeley/Python-Geospatial-Fundamentals.git`. -Bring a laptop with Python and the following packages installed: pandas, geopandas, matplotlib, descartes and dependencies. More details are provided on the workshop github page https://github.com/dlab-berkeley/Geospatial-Fundamentals-in-Python). +## Run the code +Now that you have all the required software and materials, you need to run the +code: -## 1.0 Python and Jupyter Notebook installation +1. Open the Anaconda Navigator application. You should see the green snake logo + appear on your screen. Note that this can take a few minutes to load up the + first time. -There are many ways to install python and python libraries, distributed as packages, on your computer. Here is one way that we recommend. +2. Click the "Launch" button under "Jupyter Notebooks" and navigate through your + file system to the `Python-Geospatial-Fundamentals` folder you downloaded + above. +3. Go to the `lessons` folder and find the notebook corresponding to the + workshop you are attending. -* Anaconda installs IDEs and several important packages like NumPy, Pandas, and so on, and this is a really convenient package which can be downloaded and installed. +4. Press Shift + Enter (or Ctrl + Enter) to run a cell. -Anaconda is a free and open-source distribution of Python. Anaconda installs IDEs (integrated development environments, aka where you can write and run code) and several important packages like NumPy and Pandas, making it a really convenient package to use. +5. You will need to install additional packages depending on which workshop you + are attending. -### 1.1 Download Anaconda: +Note that all of the above steps can be run from the terminal, if you're +familiar with how to interact with Anaconda in that fashion. However, using +Anaconda Navigator is the easiest way to get started if this is your first time +working with Anaconda. -Follow this link to download Anaconda: https://www.anaconda.com/distribution. The same link can be used for Mac, Windows, and Linux. +## Is Python not working on your laptop? +If you do not have Anaconda installed and the materials loaded on your workshop +by the time it starts, we *strongly* recommend using the UC Berkeley Datahub to +run the materials for these lessons. You can access the DataHub by clicking the +following button: -We recommend downloading the latest version, which will be Python 3. - - -Open the .exe file that was downloaded and follow the instructions in the installation wizard prompt. +[![Datahub](https://img.shields.io/badge/launch-datahub-blue)](https://dlab.datahub.berkeley.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fdlab-berkeley%2FPython-Geospatial-Fundamentals&urlpath=tree%2FPython-Geospatial-Fundamentals%2F&branch=main) -### 1.2 Launch Anaconda and open a Jupyter Notebook +The DataHub downloads this repository, along with any necessary packages, and +allows you to run the materials in a Jupyter notebook that is stored on UC +Berkeley's servers. No installation is necessary from your end - you only need +an internet browser and a CalNet ID to log in. By using the DataHub, you can +save your work and come back to it at any time. When you want to return to your +saved work, just go straight to [DataHub](https://datahub.berkeley.edu), sign +in, and you click on the `Python-Geospatial-Fundamentals` folder. -Once installation is complete open Anaconda Navigator and launch Jupyter Notebook. +If you don't have a Berkeley CalNet ID, you can still run these lessons in the +cloud, by clicking this button: -> +[![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/dlab-berkeley/Python-Geospatial-Fundamentals/HEAD) -Jupyter Notebook will open in your web browser (it does not require internet to work). In Jupyter, navigate to the folder where you saved the code file you plan to use and open the .ipynb file (the extension for Jupyter Notebook files written in Python) to view it in the Notebook. +By using this button, however, you cannot save your work. -## 2.0 Installing Geopandas +# About the UC Berkeley D-Lab -- From within Anaconda Navigator click on the `Environments` selection in the left sidebar menu +D-Lab works with Berkeley faculty, research staff, and students to advance data-intensive social science and humanities research. Our goal at D-Lab is to provide practical training, staff support, resources, and space to enable you to use R for your own research applications. Our services cater to all skill levels and no programming, statistical, or computer science backgrounds are necessary. We offer these services in the form of workshops, one-to-one consulting, and working groups that cover a variety of research topics, digital tools, and programming languages. -> +Visit the [D-Lab homepage](https://dlab.berkeley.edu/) to learn more about us. You can view our [calendar](https://dlab.berkeley.edu/events/calendar) for upcoming events, learn about how to utilize our [consulting](https://dlab.berkeley.edu/consulting) and [data](https://dlab.berkeley.edu/data) services, and check out upcoming [workshops](https://dlab.berkeley.edu/events/workshops). -- Click on the arrow to the right of your `base (root)` environment and select **Open Terminal** +# Other D-Lab Python Workshops -> +Here are other Python workshops offered by the D-Lab: -- This will give you access to the command line interface (CLI) on your computer in a window that looks like this: +## Introductory Workshops -> +* [Python Fundamentals](https://github.com/dlab-berkeley/Python-Fundamentals) +* [Python Data Wrangling](https://github.com/dlab-berkeley/Python-Data-Wrangling) +* [Python Data Visualization](https://github.com/dlab-berkeley/Python-Data-Visualization) -- Install some needed software by entering the following commands, one at a time: +## Advanced Workshops -``` -conda install python=3 geopandas -conda install juypter -conda install matplotlib -conda install descartes -conda install mapclassify -conda install contextily -``` -Once you have those libraries all installed you will be able to go to Anaconda Navigator, launch a `Jupyter Notebook`, navigate to the workshop files and run all of the notebooks. +* [Python Web Scraping and APIs](https://github.com/dlab-berkeley/Python-Web-Scraping) +* [Python Machine Learning](https://github.com/dlab-berkeley/Python-Machine-Learning) +* [Python Text Analysis](https://github.com/dlab-berkeley/Python-Text-Analysis) +* [Python Deep Learning](https://github.com/dlab-berkeley/Python-Deep-Learning) +# Contributors -*Optionally you can create a virtual environment In the terminal window, type the **conda** commands shown on the [GeoPandas website](https://geopandas.org/install.html#creating-a-new-environment) for installing Geopandas in a virtual environment. These are:* - -```` -conda create -n geo_env -conda activate geo_env -conda config --env --add channels conda-forge -conda config --env --set channel_priority strict -conda install python=3 geopandas -```` - -*After creating your virtual environment, you can process and install the rest of your packages listed above. You will be able to select your `geo_env` in Anaconda Navigator.* - - - ---- -
- - -
- -
-
 D-Lab @ University of California - Berkeley
-
 Team Geo
-
- +* [Hikari Murayama](https://github.com/hikari-murayama) +* [Patty Fronteira](https://github.com/pattyf) +* [Drew Terasaki Hart](https://github.com/erthward) +* [Pratik Sachdeva](https://github.com/pssachdeva) diff --git a/notebook_data/README.md b/data/README.md similarity index 100% rename from notebook_data/README.md rename to data/README.md diff --git a/notebook_data/ac_voting_locations.csv b/data/ac_voting_locations.csv similarity index 100% rename from notebook_data/ac_voting_locations.csv rename to data/ac_voting_locations.csv diff --git a/notebook_data/alco_schools.csv b/data/alco_schools.csv similarity index 100% rename from notebook_data/alco_schools.csv rename to data/alco_schools.csv diff --git a/notebook_data/bartmap_example.html b/data/bartmap_example.html similarity index 100% rename from notebook_data/bartmap_example.html rename to data/bartmap_example.html diff --git a/notebook_data/berkeley/BerkeleyCityLimits.cpg b/data/berkeley/BerkeleyCityLimits.cpg similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.cpg rename to data/berkeley/BerkeleyCityLimits.cpg diff --git a/notebook_data/berkeley/BerkeleyCityLimits.dbf b/data/berkeley/BerkeleyCityLimits.dbf similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.dbf rename to data/berkeley/BerkeleyCityLimits.dbf diff --git a/notebook_data/berkeley/BerkeleyCityLimits.prj b/data/berkeley/BerkeleyCityLimits.prj similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.prj rename to data/berkeley/BerkeleyCityLimits.prj diff --git a/notebook_data/berkeley/BerkeleyCityLimits.sbn b/data/berkeley/BerkeleyCityLimits.sbn similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.sbn rename to data/berkeley/BerkeleyCityLimits.sbn diff --git a/notebook_data/berkeley/BerkeleyCityLimits.sbx b/data/berkeley/BerkeleyCityLimits.sbx similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.sbx rename to data/berkeley/BerkeleyCityLimits.sbx diff --git a/notebook_data/berkeley/BerkeleyCityLimits.shp b/data/berkeley/BerkeleyCityLimits.shp similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.shp rename to data/berkeley/BerkeleyCityLimits.shp diff --git a/notebook_data/berkeley/BerkeleyCityLimits.shp.xml b/data/berkeley/BerkeleyCityLimits.shp.xml similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.shp.xml rename to data/berkeley/BerkeleyCityLimits.shp.xml diff --git a/notebook_data/berkeley/BerkeleyCityLimits.shx b/data/berkeley/BerkeleyCityLimits.shx similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.shx rename to data/berkeley/BerkeleyCityLimits.shx diff --git a/notebook_data/berkeley/BerkeleyCityLimits.zip b/data/berkeley/BerkeleyCityLimits.zip similarity index 100% rename from notebook_data/berkeley/BerkeleyCityLimits.zip rename to data/berkeley/BerkeleyCityLimits.zip diff --git a/notebook_data/california_counties/CaliforniaCounties.dbf b/data/california_counties/CaliforniaCounties.dbf similarity index 100% rename from notebook_data/california_counties/CaliforniaCounties.dbf rename to data/california_counties/CaliforniaCounties.dbf diff --git a/notebook_data/california_counties/CaliforniaCounties.prj b/data/california_counties/CaliforniaCounties.prj similarity index 100% rename from notebook_data/california_counties/CaliforniaCounties.prj rename to data/california_counties/CaliforniaCounties.prj diff --git a/notebook_data/california_counties/CaliforniaCounties.shp b/data/california_counties/CaliforniaCounties.shp similarity index 100% rename from notebook_data/california_counties/CaliforniaCounties.shp rename to data/california_counties/CaliforniaCounties.shp diff --git a/notebook_data/california_counties/CaliforniaCounties.shp.xml b/data/california_counties/CaliforniaCounties.shp.xml similarity index 100% rename from notebook_data/california_counties/CaliforniaCounties.shp.xml rename to data/california_counties/CaliforniaCounties.shp.xml diff --git a/notebook_data/california_counties/CaliforniaCounties.shx b/data/california_counties/CaliforniaCounties.shx similarity index 100% rename from notebook_data/california_counties/CaliforniaCounties.shx rename to data/california_counties/CaliforniaCounties.shx diff --git a/notebook_data/census/ACS5yr/census_income_CA_2018.csv b/data/census/ACS5yr/census_income_CA_2018.csv similarity index 100% rename from notebook_data/census/ACS5yr/census_income_CA_2018.csv rename to data/census/ACS5yr/census_income_CA_2018.csv diff --git a/notebook_data/census/ACS5yr/census_mhhinc_CA_county_2018.csv b/data/census/ACS5yr/census_mhhinc_CA_county_2018.csv similarity index 100% rename from notebook_data/census/ACS5yr/census_mhhinc_CA_county_2018.csv rename to data/census/ACS5yr/census_mhhinc_CA_county_2018.csv diff --git a/notebook_data/census/ACS5yr/census_tracts_CA_2018.zip b/data/census/ACS5yr/census_tracts_CA_2018.zip similarity index 100% rename from notebook_data/census/ACS5yr/census_tracts_CA_2018.zip rename to data/census/ACS5yr/census_tracts_CA_2018.zip diff --git a/notebook_data/census/ACS5yr/census_variables_CA.csv b/data/census/ACS5yr/census_variables_CA.csv similarity index 100% rename from notebook_data/census/ACS5yr/census_variables_CA.csv rename to data/census/ACS5yr/census_variables_CA.csv diff --git a/notebook_data/census/ACS5yr/census_variables_CA_2013.csv b/data/census/ACS5yr/census_variables_CA_2013.csv similarity index 100% rename from notebook_data/census/ACS5yr/census_variables_CA_2013.csv rename to data/census/ACS5yr/census_variables_CA_2013.csv diff --git a/notebook_data/census/ACS5yr/census_variables_CA_2013.zip b/data/census/ACS5yr/census_variables_CA_2013.zip similarity index 100% rename from notebook_data/census/ACS5yr/census_variables_CA_2013.zip rename to data/census/ACS5yr/census_variables_CA_2013.zip diff --git a/notebook_data/census/ACS5yr/census_variables_CA_2018.csv b/data/census/ACS5yr/census_variables_CA_2018.csv similarity index 100% rename from notebook_data/census/ACS5yr/census_variables_CA_2018.csv rename to data/census/ACS5yr/census_variables_CA_2018.csv diff --git a/notebook_data/census/ACS5yr/census_variables_CA_2018.zip b/data/census/ACS5yr/census_variables_CA_2018.zip similarity index 100% rename from notebook_data/census/ACS5yr/census_variables_CA_2018.zip rename to data/census/ACS5yr/census_variables_CA_2018.zip diff --git a/notebook_data/census/ACS5yr/s4_cenvars_CA.csv b/data/census/ACS5yr/s4_cenvars_CA.csv similarity index 100% rename from notebook_data/census/ACS5yr/s4_cenvars_CA.csv rename to data/census/ACS5yr/s4_cenvars_CA.csv diff --git a/notebook_data/census/ACS5yr/s4_cenvars_CA_2018.csv b/data/census/ACS5yr/s4_cenvars_CA_2018.csv similarity index 100% rename from notebook_data/census/ACS5yr/s4_cenvars_CA_2018.csv rename to data/census/ACS5yr/s4_cenvars_CA_2018.csv diff --git a/notebook_data/census/Places/CA_Incorporated_Places_TIGER2016.zip b/data/census/Places/CA_Incorporated_Places_TIGER2016.zip similarity index 100% rename from notebook_data/census/Places/CA_Incorporated_Places_TIGER2016.zip rename to data/census/Places/CA_Incorporated_Places_TIGER2016.zip diff --git a/notebook_data/census/Places/cb_2017_06_place_500k.zip b/data/census/Places/cb_2017_06_place_500k.zip similarity index 100% rename from notebook_data/census/Places/cb_2017_06_place_500k.zip rename to data/census/Places/cb_2017_06_place_500k.zip diff --git a/notebook_data/census/Places/cb_2018_06_place_500k.zip b/data/census/Places/cb_2018_06_place_500k.zip similarity index 100% rename from notebook_data/census/Places/cb_2018_06_place_500k.zip rename to data/census/Places/cb_2018_06_place_500k.zip diff --git a/notebook_data/census/Tracts/cb_2013_06_tract_500k.zip b/data/census/Tracts/cb_2013_06_tract_500k.zip similarity index 100% rename from notebook_data/census/Tracts/cb_2013_06_tract_500k.zip rename to data/census/Tracts/cb_2013_06_tract_500k.zip diff --git a/notebook_data/census/Tracts/cb_2017_06_tract_500k.zip b/data/census/Tracts/cb_2017_06_tract_500k.zip similarity index 100% rename from notebook_data/census/Tracts/cb_2017_06_tract_500k.zip rename to data/census/Tracts/cb_2017_06_tract_500k.zip diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.cpg b/data/census/Tracts/cb_2018_06_tract_500k.cpg similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.cpg rename to data/census/Tracts/cb_2018_06_tract_500k.cpg diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.dbf b/data/census/Tracts/cb_2018_06_tract_500k.dbf similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.dbf rename to data/census/Tracts/cb_2018_06_tract_500k.dbf diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.prj b/data/census/Tracts/cb_2018_06_tract_500k.prj similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.prj rename to data/census/Tracts/cb_2018_06_tract_500k.prj diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.shp b/data/census/Tracts/cb_2018_06_tract_500k.shp similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.shp rename to data/census/Tracts/cb_2018_06_tract_500k.shp diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.shp.ea.iso.xml b/data/census/Tracts/cb_2018_06_tract_500k.shp.ea.iso.xml similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.shp.ea.iso.xml rename to data/census/Tracts/cb_2018_06_tract_500k.shp.ea.iso.xml diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.shp.iso.xml b/data/census/Tracts/cb_2018_06_tract_500k.shp.iso.xml similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.shp.iso.xml rename to data/census/Tracts/cb_2018_06_tract_500k.shp.iso.xml diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.shx b/data/census/Tracts/cb_2018_06_tract_500k.shx similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.shx rename to data/census/Tracts/cb_2018_06_tract_500k.shx diff --git a/notebook_data/census/Tracts/cb_2018_06_tract_500k.zip b/data/census/Tracts/cb_2018_06_tract_500k.zip similarity index 100% rename from notebook_data/census/Tracts/cb_2018_06_tract_500k.zip rename to data/census/Tracts/cb_2018_06_tract_500k.zip diff --git a/notebook_data/census/Tracts/oakland_tracts_2018.zip b/data/census/Tracts/oakland_tracts_2018.zip similarity index 100% rename from notebook_data/census/Tracts/oakland_tracts_2018.zip rename to data/census/Tracts/oakland_tracts_2018.zip diff --git a/notebook_data/other/ca_grocery_stores_2019_wgs84.csv b/data/other/ca_grocery_stores_2019_wgs84.csv similarity index 100% rename from notebook_data/other/ca_grocery_stores_2019_wgs84.csv rename to data/other/ca_grocery_stores_2019_wgs84.csv diff --git a/notebook_data/other/ca_grocery_stores_2019_wgs84.zip b/data/other/ca_grocery_stores_2019_wgs84.zip similarity index 100% rename from notebook_data/other/ca_grocery_stores_2019_wgs84.zip rename to data/other/ca_grocery_stores_2019_wgs84.zip diff --git a/data/outdata/tracts_acs_gdf_ac.json b/data/outdata/tracts_acs_gdf_ac.json new file mode 100644 index 0000000..2ef014a --- /dev/null +++ b/data/outdata/tracts_acs_gdf_ac.json @@ -0,0 +1,367 @@ +{ +"type": "FeatureCollection", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::4269" } }, +"features": [ +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400300", "AFFGEOID": "1400000US06001400300", "GEOID": "06001400300", "NAME_x": "4003", "LSAD": "CT", "ALAND": 1105329, "AWATER": 0, "NAME_y": "Census Tract 4003, Alameda County, California", "c_race": 5000, "c_white": 3458, "c_black": 380, "c_asian": 535, "c_latinx": 364, "state_fips": 6, "county_fips": 1, "tract_fips": 400300, "med_rent": 1481.0, "med_hhinc": 94732.0, "c_tenants": 2441, "c_owners": 1057, "c_renters": 1384, "c_movers": 4948, "c_stay": 4159, "c_movelocal": 223, "c_movecounty": 289, "c_movestate": 156, "c_moveabroad": 121, "c_commute": 2975, "c_car": 1252, "c_carpool": 177, "c_transit": 835, "c_bike": 202, "c_walk": 171, "year": 2018, "FIPS_11_digit": "06001400300", "p_white": 0.6916, "p_black": 0.076, "p_asian": 0.107, "p_latinx": 0.0728, "p_owners": 0.4330192544039328, "p_renters": 0.56698074559606715, "p_stay": 0.84054163298302342, "p_movelocal": 0.0450687146321746, "p_movecounty": 0.058407437348423602, "p_movestate": 0.031527890056588501, "p_moveabroad": 0.024454324979789801, "p_car": 0.42084033613445371, "p_carpool": 0.059495798319327699, "p_transit": 0.28067226890756303, "p_bike": 0.067899159663865505, "p_walk": 0.0574789915966386 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.264164, 37.839997 ], [ -122.26186, 37.841353 ], [ -122.257923, 37.842606 ], [ -122.254366, 37.843773 ], [ -122.251857, 37.844746 ], [ -122.247313, 37.846563 ], [ -122.243716, 37.848513 ], [ -122.244188, 37.847913 ], [ -122.245396, 37.845798 ], [ -122.24813, 37.841392 ], [ -122.25081, 37.837135 ], [ -122.25241, 37.834543 ], [ -122.256971, 37.836493 ], [ -122.259902, 37.836994 ], [ -122.262361, 37.837314 ], [ -122.262305, 37.837859 ], [ -122.263234, 37.837903 ], [ -122.265631, 37.837636 ], [ -122.264164, 37.839997 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400900", "AFFGEOID": "1400000US06001400900", "GEOID": "06001400900", "NAME_x": "4009", "LSAD": "CT", "ALAND": 420877, "AWATER": 0, "NAME_y": "Census Tract 4009, Alameda County, California", "c_race": 2471, "c_white": 1036, "c_black": 750, "c_asian": 140, "c_latinx": 319, "state_fips": 6, "county_fips": 1, "tract_fips": 400900, "med_rent": 1668.0, "med_hhinc": 72632.0, "c_tenants": 1044, "c_owners": 305, "c_renters": 739, "c_movers": 2451, "c_stay": 2221, "c_movelocal": 161, "c_movecounty": 14, "c_movestate": 55, "c_moveabroad": 0, "c_commute": 1364, "c_car": 758, "c_carpool": 94, "c_transit": 291, "c_bike": 83, "c_walk": 61, "year": 2018, "FIPS_11_digit": "06001400900", "p_white": 0.41926345609065158, "p_black": 0.30352084176446781, "p_asian": 0.056657223796033898, "p_latinx": 0.12909753136382029, "p_owners": 0.29214559386973182, "p_renters": 0.70785440613026818, "p_stay": 0.90616075071399438, "p_movelocal": 0.065687474500203999, "p_movecounty": 0.0057119543043654998, "p_movestate": 0.022439820481436099, "p_moveabroad": 0.0, "p_car": 0.55571847507331373, "p_carpool": 0.0689149560117302, "p_transit": 0.2133431085043988, "p_bike": 0.0608504398826979, "p_walk": 0.044721407624633398 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.285576, 37.839778 ], [ -122.283186, 37.840978 ], [ -122.27701, 37.84359 ], [ -122.27658, 37.840676 ], [ -122.276311, 37.839266 ], [ -122.275718, 37.83816 ], [ -122.27622, 37.836818 ], [ -122.281649, 37.836692 ], [ -122.281963, 37.837181 ], [ -122.284494, 37.83672 ], [ -122.285576, 37.839778 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402200", "AFFGEOID": "1400000US06001402200", "GEOID": "06001402200", "NAME_x": "4022", "LSAD": "CT", "ALAND": 712082, "AWATER": 0, "NAME_y": "Census Tract 4022, Alameda County, California", "c_race": 2527, "c_white": 672, "c_black": 706, "c_asian": 483, "c_latinx": 548, "state_fips": 6, "county_fips": 1, "tract_fips": 402200, "med_rent": 1340.0, "med_hhinc": 56615.0, "c_tenants": 855, "c_owners": 306, "c_renters": 549, "c_movers": 2506, "c_stay": 2174, "c_movelocal": 169, "c_movecounty": 134, "c_movestate": 20, "c_moveabroad": 9, "c_commute": 1401, "c_car": 534, "c_carpool": 160, "c_transit": 520, "c_bike": 70, "c_walk": 43, "year": 2018, "FIPS_11_digit": "06001402200", "p_white": 0.26592797783933519, "p_black": 0.27938266719430149, "p_asian": 0.19113573407202211, "p_latinx": 0.21685793430945779, "p_owners": 0.35789473684210521, "p_renters": 0.64210526315789473, "p_stay": 0.86751795690343181, "p_movelocal": 0.067438148443734997, "p_movecounty": 0.053471667996807602, "p_movestate": 0.0079808459696727001, "p_moveabroad": 0.0035913806863526999, "p_car": 0.38115631691648821, "p_carpool": 0.11420413990007131, "p_transit": 0.37116345467523199, "p_bike": 0.049964311206281198, "p_walk": 0.030692362598144101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.304026, 37.807388 ], [ -122.302386, 37.807123 ], [ -122.301847, 37.806939 ], [ -122.298257, 37.806089 ], [ -122.296666, 37.808092 ], [ -122.2964, 37.808446 ], [ -122.293994, 37.811415 ], [ -122.289669, 37.816835 ], [ -122.289802, 37.816155 ], [ -122.292315, 37.809156 ], [ -122.29369, 37.805079 ], [ -122.290608, 37.803784 ], [ -122.291101, 37.802526 ], [ -122.296858, 37.801922 ], [ -122.300389, 37.802657 ], [ -122.303339, 37.804684 ], [ -122.304866, 37.807896 ], [ -122.304026, 37.807388 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402800", "AFFGEOID": "1400000US06001402800", "GEOID": "06001402800", "NAME_x": "4028", "LSAD": "CT", "ALAND": 398311, "AWATER": 0, "NAME_y": "Census Tract 4028, Alameda County, California", "c_race": 4639, "c_white": 1478, "c_black": 1714, "c_asian": 829, "c_latinx": 383, "state_fips": 6, "county_fips": 1, "tract_fips": 402800, "med_rent": 1016.0, "med_hhinc": 45547.0, "c_tenants": 2607, "c_owners": 166, "c_renters": 2441, "c_movers": 4605, "c_stay": 2904, "c_movelocal": 805, "c_movecounty": 668, "c_movestate": 216, "c_moveabroad": 12, "c_commute": 2620, "c_car": 665, "c_carpool": 67, "c_transit": 1235, "c_bike": 25, "c_walk": 354, "year": 2018, "FIPS_11_digit": "06001402800", "p_white": 0.31860314723000649, "p_black": 0.36947618021125239, "p_asian": 0.17870230653158009, "p_latinx": 0.082560896744988094, "p_owners": 0.063674721902569995, "p_renters": 0.93632527809743005, "p_stay": 0.63061889250814329, "p_movelocal": 0.17480998914223669, "p_movecounty": 0.14505971769815409, "p_movestate": 0.046905537459283303, "p_moveabroad": 0.0026058631921824001, "p_car": 0.25381679389312978, "p_carpool": 0.025572519083969399, "p_transit": 0.4713740458015267, "p_bike": 0.0095419847328244, "p_walk": 0.1351145038167938 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.275979, 37.806222 ], [ -122.273353, 37.810465 ], [ -122.273662, 37.811471 ], [ -122.272737, 37.812613 ], [ -122.269058, 37.811959 ], [ -122.266771, 37.811553 ], [ -122.271274, 37.804361 ], [ -122.273605, 37.805295 ], [ -122.275979, 37.806222 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404800", "AFFGEOID": "1400000US06001404800", "GEOID": "06001404800", "NAME_x": "4048", "LSAD": "CT", "ALAND": 628405, "AWATER": 0, "NAME_y": "Census Tract 4048, Alameda County, California", "c_race": 2707, "c_white": 1332, "c_black": 321, "c_asian": 381, "c_latinx": 368, "state_fips": 6, "county_fips": 1, "tract_fips": 404800, "med_rent": 1339.0, "med_hhinc": 84129.0, "c_tenants": 1203, "c_owners": 574, "c_renters": 629, "c_movers": 2678, "c_stay": 2448, "c_movelocal": 176, "c_movecounty": 54, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1454, "c_car": 763, "c_carpool": 246, "c_transit": 251, "c_bike": 28, "c_walk": 7, "year": 2018, "FIPS_11_digit": "06001404800", "p_white": 0.49205762837089029, "p_black": 0.1185814554857776, "p_asian": 0.1407462135205024, "p_latinx": 0.13594384927964531, "p_owners": 0.4771404821280133, "p_renters": 0.5228595178719867, "p_stay": 0.9141150112023898, "p_movelocal": 0.0657206870799103, "p_movecounty": 0.020164301717699701, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.52475928473177447, "p_carpool": 0.1691884456671251, "p_transit": 0.17262723521320489, "p_bike": 0.019257221458046699, "p_walk": 0.0048143053645116002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.218248, 37.800859 ], [ -122.21582, 37.805392 ], [ -122.215177, 37.809854 ], [ -122.213383, 37.812182 ], [ -122.21091, 37.81061 ], [ -122.21206, 37.809955 ], [ -122.209615, 37.807805 ], [ -122.209605, 37.806913 ], [ -122.208875, 37.807015 ], [ -122.207372, 37.806409 ], [ -122.210328, 37.803515 ], [ -122.211014, 37.80286 ], [ -122.214117, 37.799805 ], [ -122.216221, 37.800294 ], [ -122.218248, 37.800859 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406100", "AFFGEOID": "1400000US06001406100", "GEOID": "06001406100", "NAME_x": "4061", "LSAD": "CT", "ALAND": 1843685, "AWATER": 74875, "NAME_y": "Census Tract 4061, Alameda County, California", "c_race": 4659, "c_white": 635, "c_black": 467, "c_asian": 753, "c_latinx": 2696, "state_fips": 6, "county_fips": 1, "tract_fips": 406100, "med_rent": 1392.0, "med_hhinc": 47560.0, "c_tenants": 1455, "c_owners": 475, "c_renters": 980, "c_movers": 4631, "c_stay": 3989, "c_movelocal": 453, "c_movecounty": 114, "c_movestate": 64, "c_moveabroad": 11, "c_commute": 2112, "c_car": 1295, "c_carpool": 202, "c_transit": 317, "c_bike": 9, "c_walk": 130, "year": 2018, "FIPS_11_digit": "06001406100", "p_white": 0.13629534234814339, "p_black": 0.1002361021678471, "p_asian": 0.1616226658081133, "p_latinx": 0.57866494955999137, "p_owners": 0.32646048109965631, "p_renters": 0.67353951890034369, "p_stay": 0.86136903476570936, "p_movelocal": 0.097819045562513501, "p_movecounty": 0.0246167134528179, "p_movestate": 0.0138199093068451, "p_moveabroad": 0.002375296912114, "p_car": 0.61316287878787878, "p_carpool": 0.095643939393939295, "p_transit": 0.15009469696969691, "p_bike": 0.0042613636363635996, "p_walk": 0.061553030303030297 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.238723, 37.783516 ], [ -122.2359, 37.78341 ], [ -122.231481, 37.780769 ], [ -122.229093, 37.779343 ], [ -122.227853, 37.778614 ], [ -122.225803, 37.777643 ], [ -122.220855, 37.77526 ], [ -122.218938, 37.774348 ], [ -122.214794, 37.772376 ], [ -122.21714, 37.770585 ], [ -122.223756, 37.765579 ], [ -122.224904, 37.764563 ], [ -122.226583, 37.766934 ], [ -122.230205, 37.768977 ], [ -122.236488, 37.771696 ], [ -122.236566, 37.771731 ], [ -122.235862, 37.772645 ], [ -122.236318, 37.776643 ], [ -122.238723, 37.783516 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407101", "AFFGEOID": "1400000US06001407101", "GEOID": "06001407101", "NAME_x": "4071.01", "LSAD": "CT", "ALAND": 370838, "AWATER": 0, "NAME_y": "Census Tract 4071.01, Alameda County, California", "c_race": 3737, "c_white": 274, "c_black": 640, "c_asian": 914, "c_latinx": 1844, "state_fips": 6, "county_fips": 1, "tract_fips": 407101, "med_rent": 1262.0, "med_hhinc": 49529.0, "c_tenants": 1035, "c_owners": 337, "c_renters": 698, "c_movers": 3676, "c_stay": 3185, "c_movelocal": 425, "c_movecounty": 24, "c_movestate": 21, "c_moveabroad": 21, "c_commute": 1810, "c_car": 963, "c_carpool": 252, "c_transit": 401, "c_bike": 42, "c_walk": 146, "year": 2018, "FIPS_11_digit": "06001407101", "p_white": 0.073320845598073295, "p_black": 0.17126036928017119, "p_asian": 0.2445812148782445, "p_latinx": 0.49344393898849342, "p_owners": 0.32560386473429948, "p_renters": 0.67439613526570052, "p_stay": 0.86643090315560389, "p_movelocal": 0.1156147986942328, "p_movecounty": 0.0065288356909683999, "p_movestate": 0.0057127312295972999, "p_moveabroad": 0.0057127312295972999, "p_car": 0.53204419889502763, "p_carpool": 0.13922651933701649, "p_transit": 0.2215469613259668, "p_bike": 0.023204419889502701, "p_walk": 0.080662983425414295 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.2191, 37.7822 ], [ -122.217565, 37.783713 ], [ -122.215271, 37.785099 ], [ -122.214028, 37.785834 ], [ -122.211978, 37.78704 ], [ -122.209049, 37.784397 ], [ -122.210697, 37.783221 ], [ -122.212927, 37.781652 ], [ -122.216665, 37.779038 ], [ -122.218004, 37.780207 ], [ -122.218657, 37.780838 ], [ -122.2191, 37.7822 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409100", "AFFGEOID": "1400000US06001409100", "GEOID": "06001409100", "NAME_x": "4091", "LSAD": "CT", "ALAND": 487141, "AWATER": 0, "NAME_y": "Census Tract 4091, Alameda County, California", "c_race": 2327, "c_white": 34, "c_black": 788, "c_asian": 80, "c_latinx": 1282, "state_fips": 6, "county_fips": 1, "tract_fips": 409100, "med_rent": 1472.0, "med_hhinc": 49583.0, "c_tenants": 671, "c_owners": 405, "c_renters": 266, "c_movers": 2269, "c_stay": 2141, "c_movelocal": 73, "c_movecounty": 33, "c_movestate": 22, "c_moveabroad": 0, "c_commute": 915, "c_car": 615, "c_carpool": 131, "c_transit": 96, "c_bike": 0, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001409100", "p_white": 0.014611087236785499, "p_black": 0.33863343360550058, "p_asian": 0.034379028792436601, "p_latinx": 0.55092393639879678, "p_owners": 0.60357675111773468, "p_renters": 0.39642324888226521, "p_stay": 0.94358748347289556, "p_movelocal": 0.032172763331864203, "p_movecounty": 0.0145438519171441, "p_movestate": 0.0096959012780959992, "p_moveabroad": 0.0, "p_car": 0.67213114754098358, "p_carpool": 0.14316939890710381, "p_transit": 0.1049180327868852, "p_bike": 0.0, "p_walk": 0.0207650273224043 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.186936, 37.732769 ], [ -122.186815, 37.732855 ], [ -122.185717, 37.73366 ], [ -122.184545, 37.734246 ], [ -122.183945, 37.734649 ], [ -122.183593, 37.735921 ], [ -122.18335, 37.736426 ], [ -122.181561, 37.737835 ], [ -122.179782, 37.736267 ], [ -122.179316, 37.73413 ], [ -122.184167, 37.726529 ], [ -122.188784, 37.731729 ], [ -122.186936, 37.732769 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410200", "AFFGEOID": "1400000US06001410200", "GEOID": "06001410200", "NAME_x": "4102", "LSAD": "CT", "ALAND": 585845, "AWATER": 0, "NAME_y": "Census Tract 4102, Alameda County, California", "c_race": 3399, "c_white": 160, "c_black": 1803, "c_asian": 133, "c_latinx": 1132, "state_fips": 6, "county_fips": 1, "tract_fips": 410200, "med_rent": 1130.0, "med_hhinc": 44594.0, "c_tenants": 1151, "c_owners": 567, "c_renters": 584, "c_movers": 3292, "c_stay": 2797, "c_movelocal": 235, "c_movecounty": 189, "c_movestate": 71, "c_moveabroad": 0, "c_commute": 1407, "c_car": 814, "c_carpool": 77, "c_transit": 312, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001410200", "p_white": 0.047072668431891701, "p_black": 0.53045013239187999, "p_asian": 0.039129155634010003, "p_latinx": 0.33303912915563399, "p_owners": 0.49261511728931362, "p_renters": 0.50738488271068638, "p_stay": 0.84963547995139732, "p_movelocal": 0.071385176184690105, "p_movecounty": 0.057411907654920998, "p_movestate": 0.021567436208991399, "p_moveabroad": 0.0, "p_car": 0.57853589196872779, "p_carpool": 0.054726368159203898, "p_transit": 0.22174840085287839, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.1604, 37.752903 ], [ -122.159831, 37.751335 ], [ -122.157234, 37.747374 ], [ -122.156174, 37.745897 ], [ -122.153625, 37.744069 ], [ -122.152496, 37.742923 ], [ -122.151526, 37.742214 ], [ -122.148837, 37.740907 ], [ -122.148725, 37.740859 ], [ -122.150187, 37.740439 ], [ -122.155119, 37.739082 ], [ -122.156962, 37.741506 ], [ -122.159506, 37.745049 ], [ -122.160307, 37.746125 ], [ -122.164044, 37.75119 ], [ -122.1604, 37.752903 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421900", "AFFGEOID": "1400000US06001421900", "GEOID": "06001421900", "NAME_x": "4219", "LSAD": "CT", "ALAND": 855115, "AWATER": 0, "NAME_y": "Census Tract 4219, Alameda County, California", "c_race": 4020, "c_white": 2320, "c_black": 262, "c_asian": 681, "c_latinx": 362, "state_fips": 6, "county_fips": 1, "tract_fips": 421900, "med_rent": 1786.0, "med_hhinc": 107469.0, "c_tenants": 1665, "c_owners": 951, "c_renters": 714, "c_movers": 3994, "c_stay": 3381, "c_movelocal": 117, "c_movecounty": 349, "c_movestate": 54, "c_moveabroad": 93, "c_commute": 2131, "c_car": 938, "c_carpool": 137, "c_transit": 478, "c_bike": 264, "c_walk": 98, "year": 2018, "FIPS_11_digit": "06001421900", "p_white": 0.57711442786069655, "p_black": 0.065174129353233801, "p_asian": 0.16940298507462681, "p_latinx": 0.090049751243781007, "p_owners": 0.57117117117117122, "p_renters": 0.42882882882882878, "p_stay": 0.8465197796695042, "p_movelocal": 0.029293940911367, "p_movecounty": 0.087381071607411098, "p_movestate": 0.013520280420630901, "p_moveabroad": 0.023284927391086601, "p_car": 0.44016893477240732, "p_carpool": 0.064289066166119194, "p_transit": 0.2243078366963866, "p_bike": 0.12388549976536831, "p_walk": 0.045987799155326102 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.296891, 37.883498 ], [ -122.294373, 37.882752 ], [ -122.290831, 37.883311 ], [ -122.29028, 37.883025 ], [ -122.288512, 37.883048 ], [ -122.286742, 37.882448 ], [ -122.28279, 37.882502 ], [ -122.282678, 37.881249 ], [ -122.283273, 37.880926 ], [ -122.282793, 37.87666 ], [ -122.294223, 37.875168 ], [ -122.295353, 37.878685 ], [ -122.296891, 37.883498 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423200", "AFFGEOID": "1400000US06001423200", "GEOID": "06001423200", "NAME_x": "4232", "LSAD": "CT", "ALAND": 456778, "AWATER": 0, "NAME_y": "Census Tract 4232, Alameda County, California", "c_race": 3004, "c_white": 896, "c_black": 634, "c_asian": 181, "c_latinx": 949, "state_fips": 6, "county_fips": 1, "tract_fips": 423200, "med_rent": 1321.0, "med_hhinc": 46971.0, "c_tenants": 1112, "c_owners": 273, "c_renters": 839, "c_movers": 2996, "c_stay": 2374, "c_movelocal": 463, "c_movecounty": 83, "c_movestate": 47, "c_moveabroad": 29, "c_commute": 1594, "c_car": 654, "c_carpool": 81, "c_transit": 345, "c_bike": 220, "c_walk": 127, "year": 2018, "FIPS_11_digit": "06001423200", "p_white": 0.29826897470039948, "p_black": 0.21105193075898801, "p_asian": 0.060252996005326201, "p_latinx": 0.31591211717709722, "p_owners": 0.2455035971223021, "p_renters": 0.75449640287769781, "p_stay": 0.79238985313751664, "p_movelocal": 0.154539385847797, "p_movecounty": 0.027703604806408499, "p_movestate": 0.015687583444592701, "p_moveabroad": 0.0096795727636848992, "p_car": 0.41028858218318698, "p_carpool": 0.050815558343789202, "p_transit": 0.21643663739021329, "p_bike": 0.13801756587201999, "p_walk": 0.079673776662484305 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.297751, 37.867937 ], [ -122.292226, 37.869042 ], [ -122.291346, 37.866392 ], [ -122.290776, 37.864633 ], [ -122.290205, 37.862863 ], [ -122.289651, 37.861104 ], [ -122.293719, 37.860243 ], [ -122.295163, 37.860002 ], [ -122.296853, 37.865282 ], [ -122.297751, 37.867937 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427100", "AFFGEOID": "1400000US06001427100", "GEOID": "06001427100", "NAME_x": "4271", "LSAD": "CT", "ALAND": 1025446, "AWATER": 168187, "NAME_y": "Census Tract 4271, Alameda County, California", "c_race": 3768, "c_white": 2446, "c_black": 67, "c_asian": 574, "c_latinx": 457, "state_fips": 6, "county_fips": 1, "tract_fips": 427100, "med_rent": 1767.0, "med_hhinc": 135833.0, "c_tenants": 1420, "c_owners": 1040, "c_renters": 380, "c_movers": 3724, "c_stay": 3498, "c_movelocal": 121, "c_movecounty": 86, "c_movestate": 0, "c_moveabroad": 19, "c_commute": 1755, "c_car": 986, "c_carpool": 136, "c_transit": 303, "c_bike": 33, "c_walk": 64, "year": 2018, "FIPS_11_digit": "06001427100", "p_white": 0.64915074309978771, "p_black": 0.017781316348195301, "p_asian": 0.1523354564755838, "p_latinx": 0.1212845010615711, "p_owners": 0.73239436619718312, "p_renters": 0.26760563380281688, "p_stay": 0.93931256713211597, "p_movelocal": 0.0324919441460794, "p_movecounty": 0.023093447905477901, "p_movestate": 0.0, "p_moveabroad": 0.0051020408163264998, "p_car": 0.56182336182336179, "p_carpool": 0.077492877492877393, "p_transit": 0.17264957264957259, "p_bike": 0.018803418803418799, "p_walk": 0.036467236467236402 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.238101, 37.769779 ], [ -122.236741, 37.771405 ], [ -122.236488, 37.771696 ], [ -122.230205, 37.768977 ], [ -122.226583, 37.766934 ], [ -122.224904, 37.764563 ], [ -122.224213, 37.762813 ], [ -122.223481, 37.754702 ], [ -122.223779, 37.754428 ], [ -122.225918, 37.757134 ], [ -122.229935, 37.760063 ], [ -122.229686, 37.7603 ], [ -122.232626, 37.762353 ], [ -122.233597, 37.762836 ], [ -122.2349, 37.763508 ], [ -122.235888, 37.76403 ], [ -122.240792, 37.766583 ], [ -122.238101, 37.769779 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430400", "AFFGEOID": "1400000US06001430400", "GEOID": "06001430400", "NAME_x": "4304", "LSAD": "CT", "ALAND": 2345936, "AWATER": 437341, "NAME_y": "Census Tract 4304, Alameda County, California", "c_race": 2167, "c_white": 1242, "c_black": 19, "c_asian": 424, "c_latinx": 365, "state_fips": 6, "county_fips": 1, "tract_fips": 430400, "med_rent": 3125.0, "med_hhinc": 136875.0, "c_tenants": 728, "c_owners": 685, "c_renters": 43, "c_movers": 2157, "c_stay": 2048, "c_movelocal": 65, "c_movecounty": 29, "c_movestate": 8, "c_moveabroad": 7, "c_commute": 1094, "c_car": 839, "c_carpool": 102, "c_transit": 103, "c_bike": 5, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001430400", "p_white": 0.57314259344716201, "p_black": 0.0087678818643284993, "p_asian": 0.19566220581449009, "p_latinx": 0.1684356252884171, "p_owners": 0.94093406593406603, "p_renters": 0.059065934065934002, "p_stay": 0.94946685210941117, "p_movelocal": 0.030134445989800598, "p_movecounty": 0.013444598980064899, "p_movestate": 0.0037088548910522998, "p_moveabroad": 0.0032452480296708002, "p_car": 0.76691042047531988, "p_carpool": 0.093235831809871994, "p_transit": 0.094149908592321696, "p_bike": 0.0045703839122486004, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.127423, 37.72977 ], [ -122.124462, 37.728588 ], [ -122.122213, 37.729795 ], [ -122.122228, 37.729933 ], [ -122.121082, 37.731899 ], [ -122.119964, 37.732042 ], [ -122.118082, 37.727685 ], [ -122.117234, 37.726862 ], [ -122.107333, 37.721465 ], [ -122.100944, 37.727828 ], [ -122.097793, 37.726724 ], [ -122.094574, 37.728129 ], [ -122.093974, 37.727229 ], [ -122.0904, 37.721562 ], [ -122.089168, 37.712636 ], [ -122.088763, 37.710251 ], [ -122.091612, 37.710176 ], [ -122.092589, 37.70985 ], [ -122.098626, 37.713195 ], [ -122.103364, 37.714755 ], [ -122.104695, 37.714756 ], [ -122.112402, 37.72048 ], [ -122.117537, 37.725313 ], [ -122.118667, 37.728025 ], [ -122.120163, 37.728886 ], [ -122.122274, 37.727313 ], [ -122.123229, 37.727038 ], [ -122.126647, 37.727609 ], [ -122.127423, 37.72977 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433000", "AFFGEOID": "1400000US06001433000", "GEOID": "06001433000", "NAME_x": "4330", "LSAD": "CT", "ALAND": 1323541, "AWATER": 0, "NAME_y": "Census Tract 4330, Alameda County, California", "c_race": 3661, "c_white": 993, "c_black": 243, "c_asian": 1459, "c_latinx": 797, "state_fips": 6, "county_fips": 1, "tract_fips": 433000, "med_rent": 1735.0, "med_hhinc": 80613.0, "c_tenants": 1361, "c_owners": 1006, "c_renters": 355, "c_movers": 3642, "c_stay": 3381, "c_movelocal": 124, "c_movecounty": 125, "c_movestate": 0, "c_moveabroad": 12, "c_commute": 1730, "c_car": 1028, "c_carpool": 242, "c_transit": 355, "c_bike": 22, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001433000", "p_white": 0.27123736683966132, "p_black": 0.066375307293089297, "p_asian": 0.39852499317126461, "p_latinx": 0.21770008194482379, "p_owners": 0.73916238060249817, "p_renters": 0.26083761939750177, "p_stay": 0.92833607907742999, "p_movelocal": 0.034047226798462303, "p_movecounty": 0.034321801208127403, "p_movestate": 0.0, "p_moveabroad": 0.0032948929159801999, "p_car": 0.59421965317919079, "p_carpool": 0.1398843930635838, "p_transit": 0.2052023121387283, "p_bike": 0.012716763005780301, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.145496, 37.72167 ], [ -122.141297, 37.722847 ], [ -122.13751, 37.723876 ], [ -122.135579, 37.722284 ], [ -122.135103, 37.72166 ], [ -122.133543, 37.719392 ], [ -122.131843, 37.716062 ], [ -122.130973, 37.714486 ], [ -122.130063, 37.713434 ], [ -122.128994, 37.712531 ], [ -122.128515, 37.712214 ], [ -122.127469, 37.71162 ], [ -122.125605, 37.710688 ], [ -122.124259, 37.709833 ], [ -122.124802, 37.709334 ], [ -122.129285, 37.705855 ], [ -122.130084, 37.705351 ], [ -122.130093, 37.706408 ], [ -122.13015, 37.707594 ], [ -122.130737, 37.708653 ], [ -122.132205, 37.709768 ], [ -122.137254, 37.71329 ], [ -122.138601, 37.714242 ], [ -122.14106, 37.716024 ], [ -122.143934, 37.718154 ], [ -122.14508, 37.720682 ], [ -122.145496, 37.72167 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433500", "AFFGEOID": "1400000US06001433500", "GEOID": "06001433500", "NAME_x": "4335", "LSAD": "CT", "ALAND": 1234825, "AWATER": 0, "NAME_y": "Census Tract 4335, Alameda County, California", "c_race": 4723, "c_white": 1181, "c_black": 198, "c_asian": 1920, "c_latinx": 1356, "state_fips": 6, "county_fips": 1, "tract_fips": 433500, "med_rent": 2032.0, "med_hhinc": 94659.0, "c_tenants": 1410, "c_owners": 1162, "c_renters": 248, "c_movers": 4676, "c_stay": 4406, "c_movelocal": 207, "c_movecounty": 47, "c_movestate": 16, "c_moveabroad": 0, "c_commute": 2313, "c_car": 1574, "c_carpool": 333, "c_transit": 284, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001433500", "p_white": 0.25005293245818339, "p_black": 0.041922506881219498, "p_asian": 0.40652127884818973, "p_latinx": 0.28710565318653392, "p_owners": 0.82411347517730493, "p_renters": 0.17588652482269501, "p_stay": 0.94225834046193324, "p_movelocal": 0.044268605645851097, "p_movecounty": 0.0100513259195893, "p_movestate": 0.0034217279726261002, "p_moveabroad": 0.0, "p_car": 0.68050151318633811, "p_carpool": 0.1439688715953307, "p_transit": 0.1227842628620838, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.162859, 37.690917 ], [ -122.155812, 37.691151 ], [ -122.151809, 37.691273 ], [ -122.151227, 37.689861 ], [ -122.151112, 37.685448 ], [ -122.151268, 37.684293 ], [ -122.150324, 37.68138 ], [ -122.149849, 37.67801 ], [ -122.150992, 37.676863 ], [ -122.154555, 37.675241 ], [ -122.154719, 37.675163 ], [ -122.15842, 37.679108 ], [ -122.155885, 37.679822 ], [ -122.160467, 37.685895 ], [ -122.162095, 37.6883 ], [ -122.162374, 37.689172 ], [ -122.162859, 37.690917 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433900", "AFFGEOID": "1400000US06001433900", "GEOID": "06001433900", "NAME_x": "4339", "LSAD": "CT", "ALAND": 816477, "AWATER": 0, "NAME_y": "Census Tract 4339, Alameda County, California", "c_race": 7440, "c_white": 689, "c_black": 2110, "c_asian": 1102, "c_latinx": 3146, "state_fips": 6, "county_fips": 1, "tract_fips": 433900, "med_rent": 1535.0, "med_hhinc": 46467.0, "c_tenants": 2419, "c_owners": 425, "c_renters": 1994, "c_movers": 7392, "c_stay": 6676, "c_movelocal": 538, "c_movecounty": 0, "c_movestate": 0, "c_moveabroad": 178, "c_commute": 2984, "c_car": 2261, "c_carpool": 246, "c_transit": 215, "c_bike": 47, "c_walk": 31, "year": 2018, "FIPS_11_digit": "06001433900", "p_white": 0.092607526881720401, "p_black": 0.28360215053763438, "p_asian": 0.1481182795698924, "p_latinx": 0.4228494623655914, "p_owners": 0.17569243489045061, "p_renters": 0.82430756510954939, "p_stay": 0.90313852813852802, "p_movelocal": 0.072781385281385197, "p_movecounty": 0.0, "p_movestate": 0.0, "p_moveabroad": 0.0240800865800865, "p_car": 0.75770777479892759, "p_carpool": 0.082439678284182305, "p_transit": 0.072050938337801601, "p_bike": 0.015750670241286801, "p_walk": 0.0103887399463806 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.120913, 37.699979 ], [ -122.117229, 37.703559 ], [ -122.116647, 37.705303 ], [ -122.109474, 37.700945 ], [ -122.108362, 37.70009 ], [ -122.106223, 37.697824 ], [ -122.106813, 37.697286 ], [ -122.111869, 37.693622 ], [ -122.113593, 37.694839 ], [ -122.115354, 37.696075 ], [ -122.117085, 37.697287 ], [ -122.118868, 37.698542 ], [ -122.120913, 37.699979 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435601", "AFFGEOID": "1400000US06001435601", "GEOID": "06001435601", "NAME_x": "4356.01", "LSAD": "CT", "ALAND": 945540, "AWATER": 0, "NAME_y": "Census Tract 4356.01, Alameda County, California", "c_race": 5718, "c_white": 630, "c_black": 756, "c_asian": 634, "c_latinx": 3395, "state_fips": 6, "county_fips": 1, "tract_fips": 435601, "med_rent": 1620.0, "med_hhinc": 65673.0, "c_tenants": 1650, "c_owners": 460, "c_renters": 1190, "c_movers": 5621, "c_stay": 4948, "c_movelocal": 471, "c_movecounty": 132, "c_movestate": 23, "c_moveabroad": 47, "c_commute": 2542, "c_car": 1905, "c_carpool": 457, "c_transit": 30, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001435601", "p_white": 0.1101783840503672, "p_black": 0.13221406086044071, "p_asian": 0.11087792934592509, "p_latinx": 0.59373906960475686, "p_owners": 0.27878787878787881, "p_renters": 0.72121212121212119, "p_stay": 0.88027041451698984, "p_movelocal": 0.083792919409357694, "p_movecounty": 0.0234833659491193, "p_movestate": 0.0040917986123464997, "p_moveabroad": 0.0083615015121863995, "p_car": 0.74940991345397323, "p_carpool": 0.1797797010228166, "p_transit": 0.011801730920535001, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.109728, 37.676414 ], [ -122.104438, 37.678156 ], [ -122.100976, 37.679284 ], [ -122.097618, 37.6804 ], [ -122.096645, 37.681094 ], [ -122.094768, 37.679545 ], [ -122.099064, 37.677957 ], [ -122.09727, 37.676723 ], [ -122.095011, 37.675179 ], [ -122.099839, 37.673222 ], [ -122.098255, 37.670759 ], [ -122.101682, 37.669365 ], [ -122.098951, 37.667001 ], [ -122.100231, 37.666572 ], [ -122.103865, 37.669756 ], [ -122.107193, 37.672659 ], [ -122.110726, 37.675744 ], [ -122.109728, 37.676414 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436602", "AFFGEOID": "1400000US06001436602", "GEOID": "06001436602", "NAME_x": "4366.02", "LSAD": "CT", "ALAND": 891679, "AWATER": 0, "NAME_y": "Census Tract 4366.02, Alameda County, California", "c_race": 5256, "c_white": 539, "c_black": 938, "c_asian": 1058, "c_latinx": 2394, "state_fips": 6, "county_fips": 1, "tract_fips": 436602, "med_rent": 1468.0, "med_hhinc": 56792.0, "c_tenants": 1705, "c_owners": 317, "c_renters": 1388, "c_movers": 5122, "c_stay": 4815, "c_movelocal": 192, "c_movecounty": 61, "c_movestate": 41, "c_moveabroad": 13, "c_commute": 2024, "c_car": 1241, "c_carpool": 388, "c_transit": 182, "c_bike": 0, "c_walk": 71, "year": 2018, "FIPS_11_digit": "06001436602", "p_white": 0.1025494672754946, "p_black": 0.1784627092846271, "p_asian": 0.2012937595129376, "p_latinx": 0.45547945205479451, "p_owners": 0.18592375366568911, "p_renters": 0.81407624633431086, "p_stay": 0.9400624755954704, "p_movelocal": 0.037485357282311497, "p_movecounty": 0.0119094103865677, "p_movestate": 0.0080046856696601998, "p_moveabroad": 0.0025380710659897998, "p_car": 0.61314229249011853, "p_carpool": 0.19169960474308301, "p_transit": 0.089920948616600702, "p_bike": 0.0, "p_walk": 0.035079051383399201 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091829, 37.648688 ], [ -122.091467, 37.649537 ], [ -122.087972, 37.655904 ], [ -122.086718, 37.658182 ], [ -122.083272, 37.656907 ], [ -122.082473, 37.655991 ], [ -122.080061, 37.653092 ], [ -122.076872, 37.649415 ], [ -122.079978, 37.648911 ], [ -122.081976, 37.648688 ], [ -122.083491, 37.648448 ], [ -122.084583, 37.648285 ], [ -122.089599, 37.647238 ], [ -122.092375, 37.647174 ], [ -122.091829, 37.648688 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438300", "AFFGEOID": "1400000US06001438300", "GEOID": "06001438300", "NAME_x": "4383", "LSAD": "CT", "ALAND": 855995, "AWATER": 0, "NAME_y": "Census Tract 4383, Alameda County, California", "c_race": 3887, "c_white": 187, "c_black": 412, "c_asian": 1568, "c_latinx": 1337, "state_fips": 6, "county_fips": 1, "tract_fips": 438300, "med_rent": 2130.0, "med_hhinc": 80781.0, "c_tenants": 862, "c_owners": 584, "c_renters": 278, "c_movers": 3840, "c_stay": 3609, "c_movelocal": 75, "c_movecounty": 55, "c_movestate": 7, "c_moveabroad": 94, "c_commute": 1816, "c_car": 1153, "c_carpool": 219, "c_transit": 282, "c_bike": 11, "c_walk": 3, "year": 2018, "FIPS_11_digit": "06001438300", "p_white": 0.048109081553897599, "p_black": 0.10599434010805241, "p_asian": 0.40339593516851041, "p_latinx": 0.34396706971957808, "p_owners": 0.6774941995359629, "p_renters": 0.3225058004640371, "p_stay": 0.93984375, "p_movelocal": 0.01953125, "p_movecounty": 0.0143229166666666, "p_movestate": 0.0018229166666665999, "p_moveabroad": 0.024479166666666601, "p_car": 0.63491189427312777, "p_carpool": 0.1205947136563876, "p_transit": 0.15528634361233479, "p_bike": 0.0060572687224668999, "p_walk": 0.0016519823788546 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.094591, 37.631708 ], [ -122.093821, 37.63175 ], [ -122.089817, 37.631721 ], [ -122.084513, 37.631558 ], [ -122.079674, 37.624745 ], [ -122.080321, 37.624651 ], [ -122.082654, 37.624732 ], [ -122.088173, 37.624525 ], [ -122.089062, 37.625949 ], [ -122.091349, 37.62507 ], [ -122.092858, 37.62448 ], [ -122.094311, 37.626862 ], [ -122.096801, 37.630905 ], [ -122.094591, 37.631708 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440336", "AFFGEOID": "1400000US06001440336", "GEOID": "06001440336", "NAME_x": "4403.36", "LSAD": "CT", "ALAND": 1141554, "AWATER": 0, "NAME_y": "Census Tract 4403.36, Alameda County, California", "c_race": 4529, "c_white": 722, "c_black": 448, "c_asian": 2213, "c_latinx": 905, "state_fips": 6, "county_fips": 1, "tract_fips": 440336, "med_rent": 2221.0, "med_hhinc": 100403.0, "c_tenants": 1391, "c_owners": 767, "c_renters": 624, "c_movers": 4480, "c_stay": 4034, "c_movelocal": 278, "c_movecounty": 67, "c_movestate": 0, "c_moveabroad": 101, "c_commute": 1457, "c_car": 1003, "c_carpool": 87, "c_transit": 228, "c_bike": 12, "c_walk": 41, "year": 2018, "FIPS_11_digit": "06001440336", "p_white": 0.15941708986531239, "p_black": 0.098918083462132905, "p_asian": 0.48862883638772359, "p_latinx": 0.19982336056524619, "p_owners": 0.55140186915887845, "p_renters": 0.44859813084112149, "p_stay": 0.90044642857142854, "p_movelocal": 0.062053571428571402, "p_movecounty": 0.0149553571428571, "p_movestate": 0.0, "p_moveabroad": 0.022544642857142801, "p_car": 0.68840082361015786, "p_carpool": 0.059711736444749398, "p_transit": 0.15648592999313651, "p_bike": 0.0082361015785861, "p_walk": 0.028140013726835899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.02536, 37.578493 ], [ -122.024319, 37.579654 ], [ -122.023741, 37.580764 ], [ -122.023494, 37.581454 ], [ -122.021514, 37.587181 ], [ -122.017502, 37.586023 ], [ -122.007772, 37.582879 ], [ -122.006515, 37.582662 ], [ -122.008099, 37.579693 ], [ -122.010621, 37.581416 ], [ -122.013355, 37.580965 ], [ -122.01831, 37.574432 ], [ -122.023839, 37.577032 ], [ -122.025167, 37.578299 ], [ -122.02536, 37.578493 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441923", "AFFGEOID": "1400000US06001441923", "GEOID": "06001441923", "NAME_x": "4419.23", "LSAD": "CT", "ALAND": 1506727, "AWATER": 0, "NAME_y": "Census Tract 4419.23, Alameda County, California", "c_race": 6465, "c_white": 1393, "c_black": 26, "c_asian": 4290, "c_latinx": 545, "state_fips": 6, "county_fips": 1, "tract_fips": 441923, "med_rent": 1966.0, "med_hhinc": 93162.0, "c_tenants": 2386, "c_owners": 221, "c_renters": 2165, "c_movers": 6319, "c_stay": 5008, "c_movelocal": 726, "c_movecounty": 120, "c_movestate": 94, "c_moveabroad": 371, "c_commute": 1649, "c_car": 960, "c_carpool": 65, "c_transit": 452, "c_bike": 0, "c_walk": 92, "year": 2018, "FIPS_11_digit": "06001441923", "p_white": 0.21546790409899449, "p_black": 0.0040216550657385004, "p_asian": 0.66357308584686769, "p_latinx": 0.084300077339520496, "p_owners": 0.092623637887678106, "p_renters": 0.90737636211232198, "p_stay": 0.79253046368096214, "p_movelocal": 0.114891596771641, "p_movecounty": 0.018990346573824899, "p_movestate": 0.0148757714828295, "p_moveabroad": 0.058711821490742201, "p_car": 0.58217101273499094, "p_carpool": 0.039417828987265001, "p_transit": 0.27410551849605819, "p_bike": 0.0, "p_walk": 0.055791388720436597 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.993373, 37.546882 ], [ -121.990833, 37.549815 ], [ -121.992532, 37.550662 ], [ -121.988494, 37.555415 ], [ -121.987216, 37.556789 ], [ -121.982475, 37.559728 ], [ -121.980294, 37.558635 ], [ -121.981652, 37.557002 ], [ -121.976036, 37.554114 ], [ -121.977734, 37.55192 ], [ -121.982594, 37.54556 ], [ -121.984225, 37.54406 ], [ -121.985194, 37.542626 ], [ -121.985519, 37.542647 ], [ -121.991011, 37.545522 ], [ -121.993373, 37.546882 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442301", "AFFGEOID": "1400000US06001442301", "GEOID": "06001442301", "NAME_x": "4423.01", "LSAD": "CT", "ALAND": 1429039, "AWATER": 0, "NAME_y": "Census Tract 4423.01, Alameda County, California", "c_race": 5148, "c_white": 970, "c_black": 189, "c_asian": 2804, "c_latinx": 903, "state_fips": 6, "county_fips": 1, "tract_fips": 442301, "med_rent": 1930.0, "med_hhinc": 98482.0, "c_tenants": 1561, "c_owners": 818, "c_renters": 743, "c_movers": 5107, "c_stay": 4713, "c_movelocal": 265, "c_movecounty": 81, "c_movestate": 11, "c_moveabroad": 37, "c_commute": 1730, "c_car": 1208, "c_carpool": 236, "c_transit": 103, "c_bike": 34, "c_walk": 57, "year": 2018, "FIPS_11_digit": "06001442301", "p_white": 0.18842268842268839, "p_black": 0.036713286713286698, "p_asian": 0.5446775446775447, "p_latinx": 0.17540792540792541, "p_owners": 0.52402306213965411, "p_renters": 0.47597693786034589, "p_stay": 0.92285098883884864, "p_movelocal": 0.0518895633444292, "p_movecounty": 0.015860583512825498, "p_movestate": 0.0021539064029763, "p_moveabroad": 0.0072449579009203, "p_car": 0.69826589595375721, "p_carpool": 0.1364161849710982, "p_transit": 0.059537572254335203, "p_bike": 0.019653179190751401, "p_walk": 0.0329479768786127 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.970102, 37.53047 ], [ -121.968944, 37.532073 ], [ -121.966472, 37.530763 ], [ -121.963589, 37.532982 ], [ -121.959109, 37.532872 ], [ -121.957909, 37.532632 ], [ -121.954694, 37.533007 ], [ -121.953968, 37.529575 ], [ -121.951627, 37.524905 ], [ -121.952959, 37.524418 ], [ -121.957596, 37.523925 ], [ -121.969001, 37.522484 ], [ -121.969816, 37.527881 ], [ -121.970102, 37.53047 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443104", "AFFGEOID": "1400000US06001443104", "GEOID": "06001443104", "NAME_x": "4431.04", "LSAD": "CT", "ALAND": 1847035, "AWATER": 0, "NAME_y": "Census Tract 4431.04, Alameda County, California", "c_race": 5620, "c_white": 955, "c_black": 41, "c_asian": 4199, "c_latinx": 193, "state_fips": 6, "county_fips": 1, "tract_fips": 443104, "med_rent": 2140.0, "med_hhinc": 155242.0, "c_tenants": 1782, "c_owners": 1208, "c_renters": 574, "c_movers": 5603, "c_stay": 4792, "c_movelocal": 314, "c_movecounty": 180, "c_movestate": 177, "c_moveabroad": 140, "c_commute": 2021, "c_car": 1528, "c_carpool": 197, "c_transit": 123, "c_bike": 20, "c_walk": 47, "year": 2018, "FIPS_11_digit": "06001443104", "p_white": 0.16992882562277581, "p_black": 0.0072953736654803999, "p_asian": 0.74715302491103208, "p_latinx": 0.0343416370106761, "p_owners": 0.67789001122334458, "p_renters": 0.32210998877665542, "p_stay": 0.85525611279671609, "p_movelocal": 0.056041406389434202, "p_movecounty": 0.032125646974834901, "p_movestate": 0.031590219525254301, "p_moveabroad": 0.0249866143137604, "p_car": 0.75606135576447309, "p_carpool": 0.097476496783770405, "p_transit": 0.060860959920831202, "p_bike": 0.0098960910440375992, "p_walk": 0.023255813953488299 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.941488, 37.53099 ], [ -121.936813, 37.533467 ], [ -121.933437, 37.535248 ], [ -121.926438, 37.53897 ], [ -121.924387, 37.540631 ], [ -121.920646, 37.535488 ], [ -121.920035, 37.533423 ], [ -121.917953, 37.526126 ], [ -121.92051, 37.525635 ], [ -121.923917, 37.523089 ], [ -121.928419, 37.523587 ], [ -121.929016, 37.525724 ], [ -121.934052, 37.53166 ], [ -121.940188, 37.530944 ], [ -121.941488, 37.53099 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450606", "AFFGEOID": "1400000US06001450606", "GEOID": "06001450606", "NAME_x": "4506.06", "LSAD": "CT", "ALAND": 2021109, "AWATER": 0, "NAME_y": "Census Tract 4506.06, Alameda County, California", "c_race": 6303, "c_white": 3710, "c_black": 38, "c_asian": 1513, "c_latinx": 471, "state_fips": 6, "county_fips": 1, "tract_fips": 450606, "med_rent": 2643.0, "med_hhinc": 188864.0, "c_tenants": 2110, "c_owners": 1809, "c_renters": 301, "c_movers": 6270, "c_stay": 5657, "c_movelocal": 83, "c_movecounty": 344, "c_movestate": 98, "c_moveabroad": 88, "c_commute": 3152, "c_car": 2271, "c_carpool": 256, "c_transit": 374, "c_bike": 26, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450606", "p_white": 0.58860859907980323, "p_black": 0.0060288751388227002, "p_asian": 0.24004442329049649, "p_latinx": 0.074726320799619203, "p_owners": 0.85734597156398107, "p_renters": 0.1426540284360189, "p_stay": 0.90223285486443383, "p_movelocal": 0.013237639553429, "p_movecounty": 0.054864433811802199, "p_movestate": 0.015629984051036602, "p_moveabroad": 0.014035087719298201, "p_car": 0.72049492385786806, "p_carpool": 0.081218274111675107, "p_transit": 0.11865482233502531, "p_bike": 0.0082487309644670003, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.91101, 37.671534 ], [ -121.910225, 37.671945 ], [ -121.898383, 37.676847 ], [ -121.897046, 37.676009 ], [ -121.890373, 37.671861 ], [ -121.889368, 37.67093 ], [ -121.885472, 37.668757 ], [ -121.884242, 37.667948 ], [ -121.883752, 37.66746 ], [ -121.885754, 37.666882 ], [ -121.891317, 37.667714 ], [ -121.895326, 37.6657 ], [ -121.897115, 37.665173 ], [ -121.906326, 37.661758 ], [ -121.908162, 37.664567 ], [ -121.909695, 37.668166 ], [ -121.909748, 37.668303 ], [ -121.91054, 37.670322 ], [ -121.91101, 37.671534 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451601", "AFFGEOID": "1400000US06001451601", "GEOID": "06001451601", "NAME_x": "4516.01", "LSAD": "CT", "ALAND": 3936358, "AWATER": 0, "NAME_y": "Census Tract 4516.01, Alameda County, California", "c_race": 5806, "c_white": 4287, "c_black": 56, "c_asian": 802, "c_latinx": 450, "state_fips": 6, "county_fips": 1, "tract_fips": 451601, "med_rent": 1803.0, "med_hhinc": 156250.0, "c_tenants": 2057, "c_owners": 1602, "c_renters": 455, "c_movers": 5785, "c_stay": 5212, "c_movelocal": 398, "c_movecounty": 99, "c_movestate": 38, "c_moveabroad": 38, "c_commute": 3156, "c_car": 2418, "c_carpool": 210, "c_transit": 212, "c_bike": 62, "c_walk": 14, "year": 2018, "FIPS_11_digit": "06001451601", "p_white": 0.73837409576300383, "p_black": 0.0096451946262486998, "p_asian": 0.1381329658973475, "p_latinx": 0.077506028246641406, "p_owners": 0.77880408361691789, "p_renters": 0.22119591638308209, "p_stay": 0.90095073465859998, "p_movelocal": 0.068798617113223798, "p_movecounty": 0.0171132238547968, "p_movestate": 0.0065687121866897001, "p_moveabroad": 0.0065687121866897001, "p_car": 0.76615969581749055, "p_carpool": 0.066539923954372596, "p_transit": 0.067173637515842793, "p_bike": 0.019645120405576599, "p_walk": 0.0044359949302914996 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.772433, 37.683644 ], [ -121.764867, 37.685891 ], [ -121.762427, 37.68618 ], [ -121.765623, 37.684062 ], [ -121.761236, 37.684325 ], [ -121.765453, 37.680189 ], [ -121.765258, 37.679975 ], [ -121.756982, 37.674645 ], [ -121.753915, 37.672695 ], [ -121.749722, 37.670019 ], [ -121.749703, 37.661988 ], [ -121.749937, 37.656592 ], [ -121.761169, 37.656617 ], [ -121.768068, 37.65663 ], [ -121.76806, 37.657523 ], [ -121.768049, 37.659146 ], [ -121.768084, 37.665636 ], [ -121.768082, 37.665713 ], [ -121.768084, 37.667795 ], [ -121.768256, 37.671953 ], [ -121.768637, 37.67257 ], [ -121.76872, 37.674435 ], [ -121.768739, 37.675598 ], [ -121.770212, 37.678725 ], [ -121.772433, 37.683644 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401800", "AFFGEOID": "1400000US06001401800", "GEOID": "06001401800", "NAME_x": "4018", "LSAD": "CT", "ALAND": 298634, "AWATER": 0, "NAME_y": "Census Tract 4018, Alameda County, California", "c_race": 1794, "c_white": 585, "c_black": 666, "c_asian": 73, "c_latinx": 351, "state_fips": 6, "county_fips": 1, "tract_fips": 401800, "med_rent": 920.0, "med_hhinc": 60671.0, "c_tenants": 712, "c_owners": 164, "c_renters": 548, "c_movers": 1783, "c_stay": 1418, "c_movelocal": 215, "c_movecounty": 51, "c_movestate": 99, "c_moveabroad": 0, "c_commute": 1001, "c_car": 348, "c_carpool": 84, "c_transit": 294, "c_bike": 54, "c_walk": 56, "year": 2018, "FIPS_11_digit": "06001401800", "p_white": 0.32608695652173908, "p_black": 0.37123745819397991, "p_asian": 0.040691192865105898, "p_latinx": 0.19565217391304349, "p_owners": 0.2303370786516854, "p_renters": 0.7696629213483146, "p_stay": 0.79528883903533376, "p_movelocal": 0.1205832865956253, "p_movecounty": 0.0286034772854739, "p_movestate": 0.055524397083566997, "p_moveabroad": 0.0, "p_car": 0.34765234765234759, "p_carpool": 0.083916083916083906, "p_transit": 0.2937062937062937, "p_bike": 0.053946053946053903, "p_walk": 0.055944055944055902 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.302012, 37.808058 ], [ -122.300212, 37.810339 ], [ -122.297754, 37.813283 ], [ -122.293994, 37.811415 ], [ -122.2964, 37.808446 ], [ -122.296666, 37.808092 ], [ -122.298257, 37.806089 ], [ -122.301847, 37.806939 ], [ -122.302386, 37.807123 ], [ -122.302012, 37.808058 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402400", "AFFGEOID": "1400000US06001402400", "GEOID": "06001402400", "NAME_x": "4024", "LSAD": "CT", "ALAND": 337079, "AWATER": 0, "NAME_y": "Census Tract 4024, Alameda County, California", "c_race": 2787, "c_white": 587, "c_black": 1513, "c_asian": 273, "c_latinx": 277, "state_fips": 6, "county_fips": 1, "tract_fips": 402400, "med_rent": 1065.0, "med_hhinc": 40208.0, "c_tenants": 1209, "c_owners": 303, "c_renters": 906, "c_movers": 2771, "c_stay": 2399, "c_movelocal": 168, "c_movecounty": 155, "c_movestate": 49, "c_moveabroad": 0, "c_commute": 1567, "c_car": 765, "c_carpool": 39, "c_transit": 440, "c_bike": 107, "c_walk": 66, "year": 2018, "FIPS_11_digit": "06001402400", "p_white": 0.2106207391460351, "p_black": 0.54287764621456769, "p_asian": 0.097954790096878297, "p_latinx": 0.099390025116612796, "p_owners": 0.25062034739454092, "p_renters": 0.74937965260545902, "p_stay": 0.86575243594370266, "p_movelocal": 0.060627932154456797, "p_movecounty": 0.055936485023457203, "p_movestate": 0.0176831468783832, "p_moveabroad": 0.0, "p_car": 0.48819400127632417, "p_carpool": 0.0248883216336949, "p_transit": 0.28079132099553289, "p_bike": 0.068283343969368193, "p_walk": 0.042118698149329899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.284024, 37.815622 ], [ -122.280237, 37.814777 ], [ -122.278681, 37.814574 ], [ -122.279921, 37.811183 ], [ -122.280965, 37.808301 ], [ -122.281485, 37.808568 ], [ -122.284009, 37.809106 ], [ -122.286208, 37.809606 ], [ -122.284024, 37.815622 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403100", "AFFGEOID": "1400000US06001403100", "GEOID": "06001403100", "NAME_x": "4031", "LSAD": "CT", "ALAND": 346852, "AWATER": 0, "NAME_y": "Census Tract 4031, Alameda County, California", "c_race": 1668, "c_white": 376, "c_black": 303, "c_asian": 677, "c_latinx": 262, "state_fips": 6, "county_fips": 1, "tract_fips": 403100, "med_rent": 950.0, "med_hhinc": 66000.0, "c_tenants": 638, "c_owners": 197, "c_renters": 441, "c_movers": 1642, "c_stay": 1173, "c_movelocal": 275, "c_movecounty": 117, "c_movestate": 58, "c_moveabroad": 19, "c_commute": 726, "c_car": 261, "c_carpool": 33, "c_transit": 282, "c_bike": 6, "c_walk": 98, "year": 2018, "FIPS_11_digit": "06001403100", "p_white": 0.22541966426858509, "p_black": 0.18165467625899279, "p_asian": 0.40587529976019182, "p_latinx": 0.1570743405275779, "p_owners": 0.30877742946708459, "p_renters": 0.69122257053291536, "p_stay": 0.7143727161997564, "p_movelocal": 0.1674786845310596, "p_movecounty": 0.071254567600487206, "p_movestate": 0.035322777101096201, "p_moveabroad": 0.0115712545676004, "p_car": 0.35950413223140498, "p_carpool": 0.0454545454545454, "p_transit": 0.38842975206611569, "p_bike": 0.0082644628099173001, "p_walk": 0.13498622589531681 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.279564, 37.800449 ], [ -122.275979, 37.806222 ], [ -122.273605, 37.805295 ], [ -122.271274, 37.804361 ], [ -122.274757, 37.798833 ], [ -122.275061, 37.798321 ], [ -122.278536, 37.799654 ], [ -122.279564, 37.800449 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403502", "AFFGEOID": "1400000US06001403502", "GEOID": "06001403502", "NAME_x": "4035.02", "LSAD": "CT", "ALAND": 182496, "AWATER": 0, "NAME_y": "Census Tract 4035.02, Alameda County, California", "c_race": 2035, "c_white": 946, "c_black": 473, "c_asian": 247, "c_latinx": 245, "state_fips": 6, "county_fips": 1, "tract_fips": 403502, "med_rent": 1570.0, "med_hhinc": 70526.0, "c_tenants": 1152, "c_owners": 253, "c_renters": 899, "c_movers": 2035, "c_stay": 1599, "c_movelocal": 205, "c_movecounty": 113, "c_movestate": 108, "c_moveabroad": 10, "c_commute": 1420, "c_car": 527, "c_carpool": 72, "c_transit": 556, "c_bike": 45, "c_walk": 154, "year": 2018, "FIPS_11_digit": "06001403502", "p_white": 0.46486486486486489, "p_black": 0.23243243243243239, "p_asian": 0.12137592137592131, "p_latinx": 0.12039312039312031, "p_owners": 0.2196180555555555, "p_renters": 0.78038194444444442, "p_stay": 0.7857493857493858, "p_movelocal": 0.1007371007371007, "p_movecounty": 0.0555282555282555, "p_movestate": 0.053071253071253002, "p_moveabroad": 0.0049140049140049, "p_car": 0.37112676056338029, "p_carpool": 0.050704225352112602, "p_transit": 0.39154929577464781, "p_bike": 0.031690140845070401, "p_walk": 0.10845070422535209 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.261495, 37.813034 ], [ -122.260034, 37.814521 ], [ -122.259039, 37.815321 ], [ -122.258656, 37.816092 ], [ -122.255131, 37.819012 ], [ -122.254, 37.818764 ], [ -122.252807, 37.817194 ], [ -122.253389, 37.81689 ], [ -122.256049, 37.815327 ], [ -122.258086, 37.814175 ], [ -122.258893, 37.813547 ], [ -122.260867, 37.812406 ], [ -122.261495, 37.813034 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403900", "AFFGEOID": "1400000US06001403900", "GEOID": "06001403900", "NAME_x": "4039", "LSAD": "CT", "ALAND": 492834, "AWATER": 0, "NAME_y": "Census Tract 4039, Alameda County, California", "c_race": 4020, "c_white": 2210, "c_black": 614, "c_asian": 701, "c_latinx": 229, "state_fips": 6, "county_fips": 1, "tract_fips": 403900, "med_rent": 1474.0, "med_hhinc": 89982.0, "c_tenants": 2143, "c_owners": 739, "c_renters": 1404, "c_movers": 3998, "c_stay": 3172, "c_movelocal": 486, "c_movecounty": 263, "c_movestate": 55, "c_moveabroad": 22, "c_commute": 2603, "c_car": 1298, "c_carpool": 289, "c_transit": 632, "c_bike": 45, "c_walk": 169, "year": 2018, "FIPS_11_digit": "06001403900", "p_white": 0.54975124378109452, "p_black": 0.1527363184079602, "p_asian": 0.1743781094527363, "p_latinx": 0.056965174129353202, "p_owners": 0.34484367708819408, "p_renters": 0.65515632291180592, "p_stay": 0.79339669834917459, "p_movelocal": 0.12156078039019499, "p_movecounty": 0.065782891445722802, "p_movestate": 0.0137568784392196, "p_moveabroad": 0.0055027513756877996, "p_car": 0.49865539761813288, "p_carpool": 0.11102573953130999, "p_transit": 0.24279677295428351, "p_bike": 0.017287744909719498, "p_walk": 0.064925086438724494 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.252476, 37.819886 ], [ -122.251931, 37.820247 ], [ -122.247573, 37.821569 ], [ -122.245205, 37.819394 ], [ -122.244722, 37.819119 ], [ -122.245077, 37.818002 ], [ -122.246324, 37.814303 ], [ -122.246643, 37.813776 ], [ -122.248008, 37.811513 ], [ -122.250419, 37.813277 ], [ -122.253679, 37.819001 ], [ -122.252476, 37.819886 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404900", "AFFGEOID": "1400000US06001404900", "GEOID": "06001404900", "NAME_x": "4049", "LSAD": "CT", "ALAND": 1011184, "AWATER": 0, "NAME_y": "Census Tract 4049, Alameda County, California", "c_race": 3973, "c_white": 2383, "c_black": 394, "c_asian": 442, "c_latinx": 337, "state_fips": 6, "county_fips": 1, "tract_fips": 404900, "med_rent": 1446.0, "med_hhinc": 111846.0, "c_tenants": 1874, "c_owners": 1095, "c_renters": 779, "c_movers": 3939, "c_stay": 3647, "c_movelocal": 123, "c_movecounty": 100, "c_movestate": 34, "c_moveabroad": 35, "c_commute": 2211, "c_car": 1030, "c_carpool": 303, "c_transit": 522, "c_bike": 48, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001404900", "p_white": 0.59979864082557266, "p_black": 0.099169393405487, "p_asian": 0.1112509438711301, "p_latinx": 0.084822552227535805, "p_owners": 0.58431163287086441, "p_renters": 0.41568836712913548, "p_stay": 0.92586951002792583, "p_movelocal": 0.031226199543031199, "p_movecounty": 0.025387154100025299, "p_movestate": 0.0086316323940086002, "p_moveabroad": 0.0088855039350088007, "p_car": 0.4658525554047942, "p_carpool": 0.1370420624151967, "p_transit": 0.23609226594301219, "p_bike": 0.0217096336499321, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.230803, 37.802906 ], [ -122.228892, 37.804571 ], [ -122.224827, 37.806307 ], [ -122.22174, 37.807758 ], [ -122.218192, 37.809146 ], [ -122.217092, 37.810192 ], [ -122.215582, 37.811513 ], [ -122.215174, 37.812276 ], [ -122.214677, 37.812688 ], [ -122.213383, 37.812182 ], [ -122.215177, 37.809854 ], [ -122.21582, 37.805392 ], [ -122.218248, 37.800859 ], [ -122.216221, 37.800294 ], [ -122.216974, 37.798404 ], [ -122.218581, 37.798803 ], [ -122.220981, 37.799362 ], [ -122.22417, 37.799977 ], [ -122.228499, 37.80097 ], [ -122.23117, 37.802605 ], [ -122.230803, 37.802906 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405401", "AFFGEOID": "1400000US06001405401", "GEOID": "06001405401", "NAME_x": "4054.01", "LSAD": "CT", "ALAND": 313930, "AWATER": 0, "NAME_y": "Census Tract 4054.01, Alameda County, California", "c_race": 3890, "c_white": 676, "c_black": 901, "c_asian": 1418, "c_latinx": 678, "state_fips": 6, "county_fips": 1, "tract_fips": 405401, "med_rent": 1160.0, "med_hhinc": 51434.0, "c_tenants": 1730, "c_owners": 254, "c_renters": 1476, "c_movers": 3878, "c_stay": 3461, "c_movelocal": 232, "c_movecounty": 58, "c_movestate": 34, "c_moveabroad": 93, "c_commute": 2201, "c_car": 894, "c_carpool": 345, "c_transit": 621, "c_bike": 178, "c_walk": 121, "year": 2018, "FIPS_11_digit": "06001405401", "p_white": 0.1737789203084833, "p_black": 0.23161953727506421, "p_asian": 0.36452442159383031, "p_latinx": 0.17429305912596399, "p_owners": 0.1468208092485549, "p_renters": 0.8531791907514451, "p_stay": 0.89247034553893756, "p_movelocal": 0.0598246518824136, "p_movecounty": 0.0149561629706034, "p_movestate": 0.0087674058793191997, "p_moveabroad": 0.0239814337287261, "p_car": 0.40617900954111769, "p_carpool": 0.1567469332121762, "p_transit": 0.28214447978191731, "p_bike": 0.080872330758746003, "p_walk": 0.054975011358473401 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.252043, 37.797093 ], [ -122.250162, 37.798427 ], [ -122.251017, 37.79918 ], [ -122.250539, 37.800137 ], [ -122.248984, 37.800323 ], [ -122.24665, 37.79828 ], [ -122.245002, 37.796765 ], [ -122.246824, 37.795476 ], [ -122.248697, 37.794132 ], [ -122.250515, 37.792834 ], [ -122.251356, 37.793563 ], [ -122.253855, 37.795785 ], [ -122.252043, 37.797093 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406201", "AFFGEOID": "1400000US06001406201", "GEOID": "06001406201", "NAME_x": "4062.01", "LSAD": "CT", "ALAND": 408074, "AWATER": 0, "NAME_y": "Census Tract 4062.01, Alameda County, California", "c_race": 4858, "c_white": 351, "c_black": 818, "c_asian": 1231, "c_latinx": 2045, "state_fips": 6, "county_fips": 1, "tract_fips": 406201, "med_rent": 1032.0, "med_hhinc": 41404.0, "c_tenants": 1493, "c_owners": 294, "c_renters": 1199, "c_movers": 4759, "c_stay": 3926, "c_movelocal": 436, "c_movecounty": 216, "c_movestate": 56, "c_moveabroad": 125, "c_commute": 2271, "c_car": 1052, "c_carpool": 364, "c_transit": 602, "c_bike": 19, "c_walk": 88, "year": 2018, "FIPS_11_digit": "06001406201", "p_white": 0.072251955537258106, "p_black": 0.1683820502264306, "p_asian": 0.25339645944833261, "p_latinx": 0.4209551255660765, "p_owners": 0.1969189551239115, "p_renters": 0.80308104487608845, "p_stay": 0.82496322756881701, "p_movelocal": 0.091615885690271001, "p_movecounty": 0.0453876864887581, "p_movestate": 0.0117671779785669, "p_moveabroad": 0.026266022273586799, "p_car": 0.46323205636283571, "p_carpool": 0.16028181417877579, "p_transit": 0.26508146191105242, "p_bike": 0.0083663584324085993, "p_walk": 0.038749449581681999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.234293, 37.784972 ], [ -122.234113, 37.785138 ], [ -122.234054, 37.785193 ], [ -122.232503, 37.786558 ], [ -122.232013, 37.78758 ], [ -122.23196, 37.788044 ], [ -122.230914, 37.789441 ], [ -122.228901, 37.788213 ], [ -122.225307, 37.786098 ], [ -122.226792, 37.784511 ], [ -122.227537, 37.78495 ], [ -122.229935, 37.782402 ], [ -122.231481, 37.780769 ], [ -122.2359, 37.78341 ], [ -122.234293, 37.784972 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407000", "AFFGEOID": "1400000US06001407000", "GEOID": "06001407000", "NAME_x": "4070", "LSAD": "CT", "ALAND": 862936, "AWATER": 0, "NAME_y": "Census Tract 4070, Alameda County, California", "c_race": 5924, "c_white": 916, "c_black": 1024, "c_asian": 1587, "c_latinx": 1918, "state_fips": 6, "county_fips": 1, "tract_fips": 407000, "med_rent": 1344.0, "med_hhinc": 58214.0, "c_tenants": 1946, "c_owners": 812, "c_renters": 1134, "c_movers": 5912, "c_stay": 4859, "c_movelocal": 170, "c_movecounty": 489, "c_movestate": 242, "c_moveabroad": 152, "c_commute": 2782, "c_car": 1794, "c_carpool": 459, "c_transit": 361, "c_bike": 0, "c_walk": 47, "year": 2018, "FIPS_11_digit": "06001407000", "p_white": 0.15462525320729231, "p_black": 0.17285617825793381, "p_asian": 0.2678933153274814, "p_latinx": 0.32376772451046593, "p_owners": 0.41726618705035973, "p_renters": 0.58273381294964033, "p_stay": 0.82188768606224627, "p_movelocal": 0.0287550744248985, "p_movecounty": 0.082713125845737395, "p_movestate": 0.0409336941813261, "p_moveabroad": 0.0257104194857916, "p_car": 0.64485981308411211, "p_carpool": 0.16498921639108549, "p_transit": 0.12976276060388209, "p_bike": 0.0, "p_walk": 0.0168943206326383 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.209819, 37.788303 ], [ -122.2068, 37.790069 ], [ -122.204783, 37.791252 ], [ -122.203203, 37.792197 ], [ -122.200653, 37.793713 ], [ -122.198304, 37.791118 ], [ -122.194846, 37.787285 ], [ -122.195775, 37.786829 ], [ -122.196226, 37.786591 ], [ -122.200124, 37.784571 ], [ -122.200715, 37.784273 ], [ -122.20414, 37.782517 ], [ -122.207444, 37.785373 ], [ -122.210377, 37.787975 ], [ -122.209819, 37.788303 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407900", "AFFGEOID": "1400000US06001407900", "GEOID": "06001407900", "NAME_x": "4079", "LSAD": "CT", "ALAND": 1099268, "AWATER": 0, "NAME_y": "Census Tract 4079, Alameda County, California", "c_race": 3074, "c_white": 1388, "c_black": 500, "c_asian": 530, "c_latinx": 336, "state_fips": 6, "county_fips": 1, "tract_fips": 407900, "med_rent": 1495.0, "med_hhinc": 111757.0, "c_tenants": 1136, "c_owners": 861, "c_renters": 275, "c_movers": 3018, "c_stay": 2612, "c_movelocal": 242, "c_movecounty": 148, "c_movestate": 16, "c_moveabroad": 0, "c_commute": 1833, "c_car": 1175, "c_carpool": 317, "c_transit": 152, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001407900", "p_white": 0.45152895250487962, "p_black": 0.16265452179570589, "p_asian": 0.17241379310344829, "p_latinx": 0.10930383864671429, "p_owners": 0.75792253521126762, "p_renters": 0.2420774647887324, "p_stay": 0.86547382372432069, "p_movelocal": 0.080185553346587099, "p_movecounty": 0.049039098740888, "p_movestate": 0.0053015241882041, "p_moveabroad": 0.0, "p_car": 0.64102564102564108, "p_carpool": 0.17294053464266229, "p_transit": 0.082924168030550999, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.194846, 37.787285 ], [ -122.190123, 37.789692 ], [ -122.188276, 37.790636 ], [ -122.185984, 37.789802 ], [ -122.184278, 37.791537 ], [ -122.185612, 37.793182 ], [ -122.18569, 37.79589 ], [ -122.184387, 37.797244 ], [ -122.181569, 37.794211 ], [ -122.177195, 37.787633 ], [ -122.178321, 37.784669 ], [ -122.178401, 37.783822 ], [ -122.179451, 37.784019 ], [ -122.180845, 37.784075 ], [ -122.187784, 37.784355 ], [ -122.188586, 37.784446 ], [ -122.192183, 37.785265 ], [ -122.195775, 37.786829 ], [ -122.194846, 37.787285 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408800", "AFFGEOID": "1400000US06001408800", "GEOID": "06001408800", "NAME_x": "4088", "LSAD": "CT", "ALAND": 1204353, "AWATER": 0, "NAME_y": "Census Tract 4088, Alameda County, California", "c_race": 7054, "c_white": 359, "c_black": 2397, "c_asian": 241, "c_latinx": 3724, "state_fips": 6, "county_fips": 1, "tract_fips": 408800, "med_rent": 881.0, "med_hhinc": 24406.0, "c_tenants": 2081, "c_owners": 494, "c_renters": 1587, "c_movers": 6952, "c_stay": 6351, "c_movelocal": 341, "c_movecounty": 204, "c_movestate": 0, "c_moveabroad": 56, "c_commute": 2163, "c_car": 1351, "c_carpool": 267, "c_transit": 218, "c_bike": 156, "c_walk": 90, "year": 2018, "FIPS_11_digit": "06001408800", "p_white": 0.050893110292032799, "p_black": 0.33980720158775157, "p_asian": 0.034165012758718402, "p_latinx": 0.52792741706833002, "p_owners": 0.23738587217683799, "p_renters": 0.76261412782316196, "p_stay": 0.91355005753739915, "p_movelocal": 0.049050632911392403, "p_movecounty": 0.029344073647871099, "p_movestate": 0.0, "p_moveabroad": 0.0080552359033371004, "p_car": 0.62459546925566345, "p_carpool": 0.1234396671289875, "p_transit": 0.1007859454461396, "p_bike": 0.072122052704576903, "p_walk": 0.041608876560332797 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.205584, 37.760863 ], [ -122.199502, 37.765149 ], [ -122.195455, 37.763258 ], [ -122.19433, 37.762714 ], [ -122.19283, 37.761996 ], [ -122.190299, 37.760786 ], [ -122.187862, 37.759708 ], [ -122.187054, 37.759264 ], [ -122.192564, 37.755743 ], [ -122.192464, 37.754769 ], [ -122.195412, 37.752097 ], [ -122.196675, 37.75311 ], [ -122.198076, 37.752214 ], [ -122.201102, 37.754884 ], [ -122.202509, 37.756077 ], [ -122.200822, 37.756782 ], [ -122.205584, 37.760863 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409500", "AFFGEOID": "1400000US06001409500", "GEOID": "06001409500", "NAME_x": "4095", "LSAD": "CT", "ALAND": 836612, "AWATER": 0, "NAME_y": "Census Tract 4095, Alameda County, California", "c_race": 4272, "c_white": 195, "c_black": 1175, "c_asian": 31, "c_latinx": 2704, "state_fips": 6, "county_fips": 1, "tract_fips": 409500, "med_rent": 1338.0, "med_hhinc": 38973.0, "c_tenants": 1147, "c_owners": 331, "c_renters": 816, "c_movers": 4173, "c_stay": 3664, "c_movelocal": 361, "c_movecounty": 62, "c_movestate": 74, "c_moveabroad": 12, "c_commute": 1661, "c_car": 1005, "c_carpool": 246, "c_transit": 262, "c_bike": 33, "c_walk": 80, "year": 2018, "FIPS_11_digit": "06001409500", "p_white": 0.045646067415730303, "p_black": 0.27504681647940071, "p_asian": 0.0072565543071161, "p_latinx": 0.63295880149812733, "p_owners": 0.28857890148212728, "p_renters": 0.71142109851787272, "p_stay": 0.87802540138988738, "p_movelocal": 0.086508507069254698, "p_movecounty": 0.0148574167265756, "p_movestate": 0.017733045770428901, "p_moveabroad": 0.0028756290438533001, "p_car": 0.60505719446116801, "p_carpool": 0.148103552077062, "p_transit": 0.15773630343166761, "p_bike": 0.0198675496688741, "p_walk": 0.048163756773028199 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.192424, 37.749734 ], [ -122.18501, 37.753295 ], [ -122.184565, 37.752782 ], [ -122.18375, 37.753142 ], [ -122.179302, 37.755303 ], [ -122.179117, 37.755471 ], [ -122.178484, 37.755174 ], [ -122.176303, 37.752351 ], [ -122.175823, 37.751696 ], [ -122.174969, 37.750546 ], [ -122.180062, 37.748161 ], [ -122.183321, 37.746462 ], [ -122.185952, 37.748986 ], [ -122.190731, 37.745815 ], [ -122.193624, 37.748322 ], [ -122.192424, 37.749734 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410300", "AFFGEOID": "1400000US06001410300", "GEOID": "06001410300", "NAME_x": "4103", "LSAD": "CT", "ALAND": 578329, "AWATER": 0, "NAME_y": "Census Tract 4103, Alameda County, California", "c_race": 3851, "c_white": 79, "c_black": 856, "c_asian": 73, "c_latinx": 2661, "state_fips": 6, "county_fips": 1, "tract_fips": 410300, "med_rent": 1385.0, "med_hhinc": 51554.0, "c_tenants": 998, "c_owners": 388, "c_renters": 610, "c_movers": 3791, "c_stay": 3433, "c_movelocal": 304, "c_movecounty": 25, "c_movestate": 0, "c_moveabroad": 29, "c_commute": 1755, "c_car": 1137, "c_carpool": 399, "c_transit": 135, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001410300", "p_white": 0.0205141521682679, "p_black": 0.2222799272916125, "p_asian": 0.018956115294728602, "p_latinx": 0.69098935341469747, "p_owners": 0.38877755511022039, "p_renters": 0.6112224448897795, "p_stay": 0.905565813769454, "p_movelocal": 0.0801899235030335, "p_movecounty": 0.006594566077552, "p_movestate": 0.0, "p_moveabroad": 0.0076496966499603998, "p_car": 0.64786324786324789, "p_carpool": 0.22735042735042729, "p_transit": 0.0769230769230769, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.172521, 37.747223 ], [ -122.170375, 37.748217 ], [ -122.169303, 37.748714 ], [ -122.167145, 37.749709 ], [ -122.164044, 37.75119 ], [ -122.160307, 37.746125 ], [ -122.159506, 37.745049 ], [ -122.160431, 37.745069 ], [ -122.163205, 37.744343 ], [ -122.165619, 37.743715 ], [ -122.169212, 37.742763 ], [ -122.170489, 37.744471 ], [ -122.172521, 37.747223 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420600", "AFFGEOID": "1400000US06001420600", "GEOID": "06001420600", "NAME_x": "4206", "LSAD": "CT", "ALAND": 789430, "AWATER": 0, "NAME_y": "Census Tract 4206, Alameda County, California", "c_race": 3439, "c_white": 2310, "c_black": 12, "c_asian": 524, "c_latinx": 381, "state_fips": 6, "county_fips": 1, "tract_fips": 420600, "med_rent": 2014.0, "med_hhinc": 156250.0, "c_tenants": 1200, "c_owners": 918, "c_renters": 282, "c_movers": 3401, "c_stay": 3280, "c_movelocal": 80, "c_movecounty": 28, "c_movestate": 2, "c_moveabroad": 11, "c_commute": 1645, "c_car": 695, "c_carpool": 115, "c_transit": 326, "c_bike": 131, "c_walk": 95, "year": 2018, "FIPS_11_digit": "06001420600", "p_white": 0.67170689153823782, "p_black": 0.0034893864495492001, "p_asian": 0.1523698749636522, "p_latinx": 0.11078801977318981, "p_owners": 0.765, "p_renters": 0.235, "p_stay": 0.96442222875624817, "p_movelocal": 0.023522493384298699, "p_movecounty": 0.0082328726845045004, "p_movestate": 0.00058806233460740004, "p_moveabroad": 0.0032343428403410002, "p_car": 0.42249240121580539, "p_carpool": 0.069908814589665594, "p_transit": 0.198176291793313, "p_bike": 0.0796352583586626, "p_walk": 0.057750759878419398 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.293738, 37.890555 ], [ -122.292894, 37.890601 ], [ -122.291921, 37.890645 ], [ -122.288847, 37.890809 ], [ -122.287172, 37.890912 ], [ -122.285701, 37.891006 ], [ -122.282409, 37.891171 ], [ -122.281658, 37.888661 ], [ -122.283156, 37.885355 ], [ -122.283262, 37.884772 ], [ -122.282579, 37.884994 ], [ -122.282281, 37.885046 ], [ -122.28196, 37.885043 ], [ -122.282009, 37.884176 ], [ -122.28279, 37.882502 ], [ -122.286742, 37.882448 ], [ -122.288512, 37.883048 ], [ -122.29028, 37.883025 ], [ -122.290831, 37.883311 ], [ -122.291677, 37.885275 ], [ -122.29245, 37.887705 ], [ -122.293128, 37.889812 ], [ -122.293738, 37.890555 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421700", "AFFGEOID": "1400000US06001421700", "GEOID": "06001421700", "NAME_x": "4217", "LSAD": "CT", "ALAND": 573822, "AWATER": 0, "NAME_y": "Census Tract 4217, Alameda County, California", "c_race": 3564, "c_white": 2390, "c_black": 18, "c_asian": 641, "c_latinx": 351, "state_fips": 6, "county_fips": 1, "tract_fips": 421700, "med_rent": 1760.0, "med_hhinc": 86140.0, "c_tenants": 1563, "c_owners": 700, "c_renters": 863, "c_movers": 3501, "c_stay": 2681, "c_movelocal": 319, "c_movecounty": 137, "c_movestate": 120, "c_moveabroad": 244, "c_commute": 1801, "c_car": 496, "c_carpool": 63, "c_transit": 535, "c_bike": 200, "c_walk": 317, "year": 2018, "FIPS_11_digit": "06001421700", "p_white": 0.67059483726150393, "p_black": 0.0050505050505049998, "p_asian": 0.17985409652076309, "p_latinx": 0.098484848484848397, "p_owners": 0.44785668586052457, "p_renters": 0.55214331413947537, "p_stay": 0.76578120536989436, "p_movelocal": 0.091116823764638602, "p_movecounty": 0.039131676663810303, "p_movestate": 0.0342759211653813, "p_moveabroad": 0.069694373036275306, "p_car": 0.2754025541365907, "p_carpool": 0.0349805663520266, "p_transit": 0.2970571904497501, "p_bike": 0.1110494169905608, "p_walk": 0.17601332593003879 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.274543, 37.884895 ], [ -122.272876, 37.885655 ], [ -122.269978, 37.885603 ], [ -122.266609, 37.886035 ], [ -122.266153, 37.882423 ], [ -122.265978, 37.880606 ], [ -122.265752, 37.878806 ], [ -122.269178, 37.878377 ], [ -122.273746, 37.877788 ], [ -122.273944, 37.879587 ], [ -122.27414, 37.881413 ], [ -122.274543, 37.884895 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422200", "AFFGEOID": "1400000US06001422200", "GEOID": "06001422200", "NAME_x": "4222", "LSAD": "CT", "ALAND": 675011, "AWATER": 0, "NAME_y": "Census Tract 4222, Alameda County, California", "c_race": 3347, "c_white": 1945, "c_black": 178, "c_asian": 417, "c_latinx": 530, "state_fips": 6, "county_fips": 1, "tract_fips": 422200, "med_rent": 1406.0, "med_hhinc": 96154.0, "c_tenants": 1530, "c_owners": 710, "c_renters": 820, "c_movers": 3318, "c_stay": 2838, "c_movelocal": 228, "c_movecounty": 155, "c_movestate": 81, "c_moveabroad": 16, "c_commute": 2053, "c_car": 679, "c_carpool": 214, "c_transit": 618, "c_bike": 153, "c_walk": 145, "year": 2018, "FIPS_11_digit": "06001422200", "p_white": 0.58111741858380639, "p_black": 0.053181953988646502, "p_asian": 0.12458918434418879, "p_latinx": 0.15835076187630709, "p_owners": 0.46405228758169931, "p_renters": 0.53594771241830064, "p_stay": 0.8553345388788427, "p_movelocal": 0.068716094032549704, "p_movecounty": 0.0467148884870403, "p_movestate": 0.024412296564195201, "p_moveabroad": 0.0048221820373719002, "p_car": 0.33073550901120308, "p_carpool": 0.10423770092547489, "p_transit": 0.30102289332683879, "p_bike": 0.074525085241110497, "p_walk": 0.070628348757915196 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.294223, 37.875168 ], [ -122.282793, 37.87666 ], [ -122.282565, 37.874862 ], [ -122.282356, 37.873018 ], [ -122.282256, 37.872132 ], [ -122.28204, 37.870353 ], [ -122.288052, 37.869592 ], [ -122.292226, 37.869042 ], [ -122.293645, 37.873449 ], [ -122.294223, 37.875168 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423000", "AFFGEOID": "1400000US06001423000", "GEOID": "06001423000", "NAME_x": "4230", "LSAD": "CT", "ALAND": 730084, "AWATER": 0, "NAME_y": "Census Tract 4230, Alameda County, California", "c_race": 4991, "c_white": 2641, "c_black": 220, "c_asian": 1326, "c_latinx": 472, "state_fips": 6, "county_fips": 1, "tract_fips": 423000, "med_rent": 2204.0, "med_hhinc": 77409.0, "c_tenants": 2062, "c_owners": 909, "c_renters": 1153, "c_movers": 4937, "c_stay": 3743, "c_movelocal": 462, "c_movecounty": 267, "c_movestate": 200, "c_moveabroad": 265, "c_commute": 2911, "c_car": 787, "c_carpool": 174, "c_transit": 858, "c_bike": 419, "c_walk": 332, "year": 2018, "FIPS_11_digit": "06001423000", "p_white": 0.52915247445401725, "p_black": 0.044079342817070703, "p_asian": 0.2656782207974353, "p_latinx": 0.0945702264075335, "p_owners": 0.44083414161008722, "p_renters": 0.55916585838991273, "p_stay": 0.75815272432651404, "p_movelocal": 0.093579096617378899, "p_movecounty": 0.0540814259671865, "p_movestate": 0.040510431436094702, "p_moveabroad": 0.053676321652825598, "p_car": 0.27035383029886639, "p_carpool": 0.059773273789075897, "p_transit": 0.29474407420130538, "p_bike": 0.1439367914805908, "p_walk": 0.1140501545860529 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.28204, 37.870353 ], [ -122.273067, 37.871512 ], [ -122.272763, 37.868784 ], [ -122.272161, 37.863352 ], [ -122.276574, 37.862791 ], [ -122.281226, 37.862205 ], [ -122.281438, 37.864011 ], [ -122.28162, 37.865817 ], [ -122.281783, 37.867382 ], [ -122.28204, 37.870353 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423300", "AFFGEOID": "1400000US06001423300", "GEOID": "06001423300", "NAME_x": "4233", "LSAD": "CT", "ALAND": 726625, "AWATER": 0, "NAME_y": "Census Tract 4233, Alameda County, California", "c_race": 3764, "c_white": 1565, "c_black": 1136, "c_asian": 299, "c_latinx": 472, "state_fips": 6, "county_fips": 1, "tract_fips": 423300, "med_rent": 1214.0, "med_hhinc": 78750.0, "c_tenants": 1644, "c_owners": 888, "c_renters": 756, "c_movers": 3740, "c_stay": 3185, "c_movelocal": 184, "c_movecounty": 256, "c_movestate": 96, "c_moveabroad": 19, "c_commute": 1589, "c_car": 713, "c_carpool": 70, "c_transit": 474, "c_bike": 160, "c_walk": 74, "year": 2018, "FIPS_11_digit": "06001423300", "p_white": 0.4157810839532412, "p_black": 0.3018065887353879, "p_asian": 0.079436769394261406, "p_latinx": 0.1253985122210414, "p_owners": 0.54014598540145986, "p_renters": 0.45985401459854008, "p_stay": 0.85160427807486627, "p_movelocal": 0.0491978609625668, "p_movecounty": 0.068449197860962499, "p_movestate": 0.025668449197860901, "p_moveabroad": 0.0050802139037432999, "p_car": 0.44870988042794208, "p_carpool": 0.044052863436123302, "p_transit": 0.29830081812460668, "p_bike": 0.1006922592825676, "p_walk": 0.0465701699181875 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.289651, 37.861104 ], [ -122.281226, 37.862205 ], [ -122.280631, 37.860486 ], [ -122.280448, 37.859606 ], [ -122.28027, 37.858729 ], [ -122.279698, 37.856035 ], [ -122.279121, 37.853287 ], [ -122.281433, 37.85319 ], [ -122.286794, 37.852178 ], [ -122.288257, 37.856849 ], [ -122.288793, 37.858508 ], [ -122.289651, 37.861104 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423901", "AFFGEOID": "1400000US06001423901", "GEOID": "06001423901", "NAME_x": "4239.01", "LSAD": "CT", "ALAND": 395614, "AWATER": 0, "NAME_y": "Census Tract 4239.01, Alameda County, California", "c_race": 1954, "c_white": 1218, "c_black": 214, "c_asian": 215, "c_latinx": 236, "state_fips": 6, "county_fips": 1, "tract_fips": 423901, "med_rent": 1655.0, "med_hhinc": 89620.0, "c_tenants": 853, "c_owners": 332, "c_renters": 521, "c_movers": 1942, "c_stay": 1551, "c_movelocal": 138, "c_movecounty": 93, "c_movestate": 88, "c_moveabroad": 72, "c_commute": 1238, "c_car": 403, "c_carpool": 84, "c_transit": 371, "c_bike": 121, "c_walk": 82, "year": 2018, "FIPS_11_digit": "06001423901", "p_white": 0.62333674513817805, "p_black": 0.1095189355168884, "p_asian": 0.1100307062436028, "p_latinx": 0.1207778915046059, "p_owners": 0.38921453692848768, "p_renters": 0.61078546307151227, "p_stay": 0.7986611740473738, "p_movelocal": 0.071060762100926794, "p_movecounty": 0.047888774459320202, "p_movestate": 0.0453141091658084, "p_moveabroad": 0.037075180226570498, "p_car": 0.32552504038772212, "p_carpool": 0.067851373182552494, "p_transit": 0.29967689822294019, "p_bike": 0.097738287560581505, "p_walk": 0.066235864297253602 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.271852, 37.847251 ], [ -122.27117, 37.849701 ], [ -122.270814, 37.850667 ], [ -122.270961, 37.852484 ], [ -122.271161, 37.854268 ], [ -122.268513, 37.855029 ], [ -122.266598, 37.855289 ], [ -122.263515, 37.855732 ], [ -122.262407, 37.855865 ], [ -122.261829, 37.85258 ], [ -122.26225, 37.852696 ], [ -122.266128, 37.852009 ], [ -122.268909, 37.851652 ], [ -122.269409, 37.848107 ], [ -122.269226, 37.847201 ], [ -122.269144, 37.84674 ], [ -122.271236, 37.846465 ], [ -122.271852, 37.847251 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427600", "AFFGEOID": "1400000US06001427600", "GEOID": "06001427600", "NAME_x": "4276", "LSAD": "CT", "ALAND": 582861, "AWATER": 0, "NAME_y": "Census Tract 4276, Alameda County, California", "c_race": 5559, "c_white": 1322, "c_black": 1191, "c_asian": 1827, "c_latinx": 756, "state_fips": 6, "county_fips": 1, "tract_fips": 427600, "med_rent": 1902.0, "med_hhinc": 56373.0, "c_tenants": 1848, "c_owners": 277, "c_renters": 1571, "c_movers": 5491, "c_stay": 4403, "c_movelocal": 443, "c_movecounty": 422, "c_movestate": 75, "c_moveabroad": 148, "c_commute": 2415, "c_car": 1450, "c_carpool": 244, "c_transit": 396, "c_bike": 30, "c_walk": 150, "year": 2018, "FIPS_11_digit": "06001427600", "p_white": 0.2378125562151466, "p_black": 0.2142471667566109, "p_asian": 0.328656233135456, "p_latinx": 0.13599568267674039, "p_owners": 0.1498917748917748, "p_renters": 0.85010822510822515, "p_stay": 0.80185758513931893, "p_movelocal": 0.080677472227281, "p_movecounty": 0.076853032234565605, "p_movestate": 0.013658714259697601, "p_moveabroad": 0.026953196139136701, "p_car": 0.60041407867494823, "p_carpool": 0.1010351966873706, "p_transit": 0.1639751552795031, "p_bike": 0.012422360248447201, "p_walk": 0.062111801242236003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.291396, 37.779987 ], [ -122.28787, 37.779976 ], [ -122.284478, 37.780002 ], [ -122.277182, 37.779665 ], [ -122.276628, 37.779684 ], [ -122.27671, 37.777192 ], [ -122.276796, 37.775134 ], [ -122.28085, 37.775248 ], [ -122.282318, 37.775316 ], [ -122.285206, 37.776285 ], [ -122.288061, 37.776382 ], [ -122.289033, 37.776411 ], [ -122.291088, 37.776478 ], [ -122.291395, 37.776848 ], [ -122.291396, 37.779987 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427900", "AFFGEOID": "1400000US06001427900", "GEOID": "06001427900", "NAME_x": "4279", "LSAD": "CT", "ALAND": 825214, "AWATER": 0, "NAME_y": "Census Tract 4279, Alameda County, California", "c_race": 5031, "c_white": 2554, "c_black": 228, "c_asian": 1407, "c_latinx": 563, "state_fips": 6, "county_fips": 1, "tract_fips": 427900, "med_rent": 1712.0, "med_hhinc": 102077.0, "c_tenants": 2030, "c_owners": 734, "c_renters": 1296, "c_movers": 4971, "c_stay": 4470, "c_movelocal": 108, "c_movecounty": 244, "c_movestate": 130, "c_moveabroad": 19, "c_commute": 3102, "c_car": 1705, "c_carpool": 380, "c_transit": 624, "c_bike": 41, "c_walk": 52, "year": 2018, "FIPS_11_digit": "06001427900", "p_white": 0.50765255416418209, "p_black": 0.045319022063208099, "p_asian": 0.2796660703637448, "p_latinx": 0.1119061816736235, "p_owners": 0.36157635467980298, "p_renters": 0.63842364532019702, "p_stay": 0.89921544960772481, "p_movelocal": 0.0217260108630054, "p_movecounty": 0.049084691209012203, "p_movestate": 0.026151679742506501, "p_moveabroad": 0.0038221685777509, "p_car": 0.54964539007092195, "p_carpool": 0.1225016118633139, "p_transit": 0.20116054158607349, "p_bike": 0.013217279174725901, "p_walk": 0.016763378465506101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.263533, 37.769242 ], [ -122.263472, 37.770948 ], [ -122.263307, 37.774715 ], [ -122.260328, 37.774645 ], [ -122.258965, 37.77427 ], [ -122.255338, 37.77269 ], [ -122.253667, 37.771954 ], [ -122.251144, 37.77086 ], [ -122.253994, 37.766746 ], [ -122.255755, 37.764173 ], [ -122.263596, 37.767431 ], [ -122.263533, 37.769242 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430600", "AFFGEOID": "1400000US06001430600", "GEOID": "06001430600", "NAME_x": "4306", "LSAD": "CT", "ALAND": 2260553, "AWATER": 0, "NAME_y": "Census Tract 4306, Alameda County, California", "c_race": 6624, "c_white": 2918, "c_black": 510, "c_asian": 1972, "c_latinx": 791, "state_fips": 6, "county_fips": 1, "tract_fips": 430600, "med_rent": 1931.0, "med_hhinc": 110452.0, "c_tenants": 2191, "c_owners": 1870, "c_renters": 321, "c_movers": 6594, "c_stay": 6042, "c_movelocal": 311, "c_movecounty": 178, "c_movestate": 63, "c_moveabroad": 0, "c_commute": 3255, "c_car": 2315, "c_carpool": 242, "c_transit": 392, "c_bike": 0, "c_walk": 25, "year": 2018, "FIPS_11_digit": "06001430600", "p_white": 0.4405193236714976, "p_black": 0.076992753623188401, "p_asian": 0.29770531400966183, "p_latinx": 0.1194142512077294, "p_owners": 0.85349155636695573, "p_renters": 0.14650844363304419, "p_stay": 0.91628753412192898, "p_movelocal": 0.047164088565362403, "p_movecounty": 0.026994237185319899, "p_movestate": 0.0095541401273885, "p_moveabroad": 0.0, "p_car": 0.71121351766513052, "p_carpool": 0.074347158218125903, "p_transit": 0.1204301075268817, "p_bike": 0.0, "p_walk": 0.0076804915514591997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.106285, 37.709765 ], [ -122.104997, 37.714445 ], [ -122.103364, 37.714755 ], [ -122.098626, 37.713195 ], [ -122.092589, 37.70985 ], [ -122.091033, 37.708917 ], [ -122.090479, 37.707822 ], [ -122.090067, 37.706525 ], [ -122.088837, 37.702687 ], [ -122.088165, 37.701141 ], [ -122.091887, 37.700444 ], [ -122.089691, 37.692899 ], [ -122.091819, 37.691834 ], [ -122.093352, 37.69109 ], [ -122.096752, 37.695533 ], [ -122.097813, 37.695507 ], [ -122.098965, 37.697659 ], [ -122.100159, 37.699928 ], [ -122.100757, 37.699993 ], [ -122.102302, 37.701319 ], [ -122.101788, 37.702543 ], [ -122.103494, 37.704007 ], [ -122.106733, 37.708827 ], [ -122.106285, 37.709765 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430900", "AFFGEOID": "1400000US06001430900", "GEOID": "06001430900", "NAME_x": "4309", "LSAD": "CT", "ALAND": 1096552, "AWATER": 0, "NAME_y": "Census Tract 4309, Alameda County, California", "c_race": 5359, "c_white": 2177, "c_black": 619, "c_asian": 867, "c_latinx": 1254, "state_fips": 6, "county_fips": 1, "tract_fips": 430900, "med_rent": 1633.0, "med_hhinc": 64786.0, "c_tenants": 1870, "c_owners": 391, "c_renters": 1479, "c_movers": 5252, "c_stay": 4342, "c_movelocal": 510, "c_movecounty": 149, "c_movestate": 184, "c_moveabroad": 67, "c_commute": 2412, "c_car": 1699, "c_carpool": 174, "c_transit": 304, "c_bike": 9, "c_walk": 119, "year": 2018, "FIPS_11_digit": "06001430900", "p_white": 0.40623250606456429, "p_black": 0.1155066243702183, "p_asian": 0.16178391490949801, "p_latinx": 0.2339988803881321, "p_owners": 0.20909090909090899, "p_renters": 0.79090909090909089, "p_stay": 0.82673267326732669, "p_movelocal": 0.097105864432597097, "p_movecounty": 0.028370144706778299, "p_movestate": 0.035034272658035, "p_moveabroad": 0.012757044935262699, "p_car": 0.70439469320066339, "p_carpool": 0.072139303482587, "p_transit": 0.1260364842454394, "p_bike": 0.0037313432835820001, "p_walk": 0.049336650082918702 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091887, 37.700444 ], [ -122.088165, 37.701141 ], [ -122.085292, 37.701673 ], [ -122.083835, 37.701711 ], [ -122.082239, 37.701737 ], [ -122.075461, 37.701853 ], [ -122.074064, 37.701822 ], [ -122.074064, 37.70131 ], [ -122.073974, 37.695616 ], [ -122.074671, 37.69566 ], [ -122.077186, 37.695659 ], [ -122.080958, 37.69563 ], [ -122.082996, 37.695366 ], [ -122.086335, 37.694423 ], [ -122.089691, 37.692899 ], [ -122.091887, 37.700444 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435500", "AFFGEOID": "1400000US06001435500", "GEOID": "06001435500", "NAME_x": "4355", "LSAD": "CT", "ALAND": 1012330, "AWATER": 0, "NAME_y": "Census Tract 4355, Alameda County, California", "c_race": 4102, "c_white": 1169, "c_black": 364, "c_asian": 418, "c_latinx": 1869, "state_fips": 6, "county_fips": 1, "tract_fips": 435500, "med_rent": 1579.0, "med_hhinc": 57000.0, "c_tenants": 1506, "c_owners": 451, "c_renters": 1055, "c_movers": 4102, "c_stay": 3663, "c_movelocal": 244, "c_movecounty": 141, "c_movestate": 10, "c_moveabroad": 44, "c_commute": 1598, "c_car": 1153, "c_carpool": 170, "c_transit": 164, "c_bike": 11, "c_walk": 46, "year": 2018, "FIPS_11_digit": "06001435500", "p_white": 0.28498293515358358, "p_black": 0.088737201365187701, "p_asian": 0.1019015114578254, "p_latinx": 0.45563139931740609, "p_owners": 0.29946879150066402, "p_renters": 0.70053120849933603, "p_stay": 0.89297903461725991, "p_movelocal": 0.059483178937103802, "p_movecounty": 0.034373476352998499, "p_movestate": 0.0024378352023403001, "p_moveabroad": 0.0107264748902974, "p_car": 0.72152690863579472, "p_carpool": 0.1063829787234042, "p_transit": 0.1026282853566958, "p_bike": 0.0068836045056319996, "p_walk": 0.028785982478097601 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.100633, 37.685717 ], [ -122.09769, 37.68675 ], [ -122.096288, 37.68804 ], [ -122.092933, 37.685583 ], [ -122.092159, 37.685027 ], [ -122.090246, 37.683647 ], [ -122.085341, 37.680022 ], [ -122.087642, 37.678068 ], [ -122.089088, 37.676436 ], [ -122.09036, 37.675664 ], [ -122.093231, 37.674809 ], [ -122.093896, 37.674538 ], [ -122.09398, 37.674467 ], [ -122.095011, 37.675179 ], [ -122.09727, 37.676723 ], [ -122.099064, 37.677957 ], [ -122.094768, 37.679545 ], [ -122.096645, 37.681094 ], [ -122.098822, 37.682829 ], [ -122.099046, 37.683002 ], [ -122.099202, 37.684572 ], [ -122.100633, 37.685717 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436200", "AFFGEOID": "1400000US06001436200", "GEOID": "06001436200", "NAME_x": "4362", "LSAD": "CT", "ALAND": 644502, "AWATER": 0, "NAME_y": "Census Tract 4362, Alameda County, California", "c_race": 4360, "c_white": 513, "c_black": 693, "c_asian": 418, "c_latinx": 2632, "state_fips": 6, "county_fips": 1, "tract_fips": 436200, "med_rent": 1495.0, "med_hhinc": 49903.0, "c_tenants": 1263, "c_owners": 159, "c_renters": 1104, "c_movers": 4322, "c_stay": 3962, "c_movelocal": 158, "c_movecounty": 202, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1529, "c_car": 1120, "c_carpool": 248, "c_transit": 52, "c_bike": 0, "c_walk": 18, "year": 2018, "FIPS_11_digit": "06001436200", "p_white": 0.1176605504587156, "p_black": 0.15894495412844031, "p_asian": 0.095871559633027501, "p_latinx": 0.60366972477064218, "p_owners": 0.1258907363420427, "p_renters": 0.87410926365795727, "p_stay": 0.91670522906062002, "p_movelocal": 0.036557149467838897, "p_movecounty": 0.046737621471540897, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.73250490516677569, "p_carpool": 0.16219751471550031, "p_transit": 0.034009156311314501, "p_bike": 0.0, "p_walk": 0.011772400261608799 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.120098, 37.668712 ], [ -122.111599, 37.672032 ], [ -122.110254, 37.672604 ], [ -122.108272, 37.670907 ], [ -122.105603, 37.668581 ], [ -122.103594, 37.666856 ], [ -122.103427, 37.666655 ], [ -122.103352, 37.666519 ], [ -122.104008, 37.666502 ], [ -122.106786, 37.666439 ], [ -122.107778, 37.666352 ], [ -122.109488, 37.66625 ], [ -122.110789, 37.666178 ], [ -122.117588, 37.665804 ], [ -122.118141, 37.665596 ], [ -122.120098, 37.668712 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437000", "AFFGEOID": "1400000US06001437000", "GEOID": "06001437000", "NAME_x": "4370", "LSAD": "CT", "ALAND": 1597255, "AWATER": 0, "NAME_y": "Census Tract 4370, Alameda County, California", "c_race": 3497, "c_white": 685, "c_black": 223, "c_asian": 706, "c_latinx": 1518, "state_fips": 6, "county_fips": 1, "tract_fips": 437000, "med_rent": 1788.0, "med_hhinc": 82396.0, "c_tenants": 1259, "c_owners": 1046, "c_renters": 213, "c_movers": 3476, "c_stay": 3280, "c_movelocal": 131, "c_movecounty": 65, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1676, "c_car": 1332, "c_carpool": 161, "c_transit": 78, "c_bike": 28, "c_walk": 24, "year": 2018, "FIPS_11_digit": "06001437000", "p_white": 0.19588218472976829, "p_black": 0.063768944809836997, "p_asian": 0.20188733199885611, "p_latinx": 0.43408635973691728, "p_owners": 0.83081810961080227, "p_renters": 0.16918189038919779, "p_stay": 0.94361334867663982, "p_movelocal": 0.037686996547756001, "p_movecounty": 0.018699654775604101, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.79474940334128874, "p_carpool": 0.0960620525059665, "p_transit": 0.046539379474940301, "p_bike": 0.0167064439140811, "p_walk": 0.014319809069212401 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.107319, 37.654253 ], [ -122.105261, 37.655035 ], [ -122.10161, 37.656422 ], [ -122.09389, 37.644795 ], [ -122.097001, 37.639318 ], [ -122.098212, 37.637618 ], [ -122.100093, 37.636331 ], [ -122.102066, 37.639492 ], [ -122.107285, 37.647997 ], [ -122.110413, 37.653156 ], [ -122.107319, 37.654253 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437500", "AFFGEOID": "1400000US06001437500", "GEOID": "06001437500", "NAME_x": "4375", "LSAD": "CT", "ALAND": 633478, "AWATER": 0, "NAME_y": "Census Tract 4375, Alameda County, California", "c_race": 4586, "c_white": 588, "c_black": 236, "c_asian": 690, "c_latinx": 3030, "state_fips": 6, "county_fips": 1, "tract_fips": 437500, "med_rent": 1670.0, "med_hhinc": 60745.0, "c_tenants": 1189, "c_owners": 250, "c_renters": 939, "c_movers": 4466, "c_stay": 4143, "c_movelocal": 163, "c_movecounty": 140, "c_movestate": 16, "c_moveabroad": 4, "c_commute": 1676, "c_car": 1215, "c_carpool": 268, "c_transit": 88, "c_bike": 0, "c_walk": 13, "year": 2018, "FIPS_11_digit": "06001437500", "p_white": 0.12821631051024859, "p_black": 0.0514609681639773, "p_asian": 0.1504579153946794, "p_latinx": 0.66070649803750547, "p_owners": 0.21026072329688811, "p_renters": 0.78973927670311184, "p_stay": 0.92767577250335875, "p_movelocal": 0.036497984773846803, "p_movecounty": 0.031347962382445103, "p_movestate": 0.0035826242722793999, "p_moveabroad": 0.0008956560680698, "p_car": 0.72494033412887826, "p_carpool": 0.15990453460620521, "p_transit": 0.052505966587112103, "p_bike": 0.0, "p_walk": 0.0077565632458233003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.083491, 37.648448 ], [ -122.081976, 37.648688 ], [ -122.079978, 37.648911 ], [ -122.072298, 37.642174 ], [ -122.072466, 37.642087 ], [ -122.073967, 37.641109 ], [ -122.07847, 37.640942 ], [ -122.081274, 37.640832 ], [ -122.081222, 37.639636 ], [ -122.083513, 37.639593 ], [ -122.083491, 37.648448 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438100", "AFFGEOID": "1400000US06001438100", "GEOID": "06001438100", "NAME_x": "4381", "LSAD": "CT", "ALAND": 2007041, "AWATER": 0, "NAME_y": "Census Tract 4381, Alameda County, California", "c_race": 8080, "c_white": 1529, "c_black": 594, "c_asian": 2374, "c_latinx": 3084, "state_fips": 6, "county_fips": 1, "tract_fips": 438100, "med_rent": 2366.0, "med_hhinc": 97500.0, "c_tenants": 2158, "c_owners": 1514, "c_renters": 644, "c_movers": 7945, "c_stay": 7476, "c_movelocal": 265, "c_movecounty": 170, "c_movestate": 0, "c_moveabroad": 34, "c_commute": 2819, "c_car": 2123, "c_carpool": 239, "c_transit": 226, "c_bike": 46, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001438100", "p_white": 0.18923267326732671, "p_black": 0.073514851485148497, "p_asian": 0.2938118811881188, "p_latinx": 0.38168316831683169, "p_owners": 0.70157553290083408, "p_renters": 0.29842446709916581, "p_stay": 0.94096916299559485, "p_movelocal": 0.033354310887350497, "p_movecounty": 0.0213971050975456, "p_movestate": 0.0, "p_moveabroad": 0.0042794210195091003, "p_car": 0.75310393756651295, "p_carpool": 0.084781837531039295, "p_transit": 0.080170273146505794, "p_bike": 0.0163178432068109, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.05168, 37.625745 ], [ -122.046934, 37.629598 ], [ -122.046779, 37.629678 ], [ -122.044644, 37.627777 ], [ -122.038298, 37.622279 ], [ -122.036627, 37.620803 ], [ -122.034275, 37.618756 ], [ -122.03422, 37.618708 ], [ -122.029599, 37.614671 ], [ -122.028079, 37.613329 ], [ -122.02324, 37.609048 ], [ -122.031063, 37.608957 ], [ -122.034387, 37.608962 ], [ -122.039459, 37.613404 ], [ -122.040967, 37.614734 ], [ -122.050317, 37.622973 ], [ -122.05168, 37.625745 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440200", "AFFGEOID": "1400000US06001440200", "GEOID": "06001440200", "NAME_x": "4402", "LSAD": "CT", "ALAND": 1160012, "AWATER": 0, "NAME_y": "Census Tract 4402, Alameda County, California", "c_race": 6261, "c_white": 292, "c_black": 394, "c_asian": 1168, "c_latinx": 4302, "state_fips": 6, "county_fips": 1, "tract_fips": 440200, "med_rent": 1772.0, "med_hhinc": 74833.0, "c_tenants": 1516, "c_owners": 708, "c_renters": 808, "c_movers": 6197, "c_stay": 5701, "c_movelocal": 276, "c_movecounty": 121, "c_movestate": 26, "c_moveabroad": 73, "c_commute": 1849, "c_car": 1422, "c_carpool": 216, "c_transit": 99, "c_bike": 14, "c_walk": 25, "year": 2018, "FIPS_11_digit": "06001440200", "p_white": 0.046637917265612498, "p_black": 0.062929244529627795, "p_asian": 0.18655166906244999, "p_latinx": 0.68711068519405849, "p_owners": 0.46701846965699201, "p_renters": 0.53298153034300788, "p_stay": 0.91996127158302399, "p_movelocal": 0.044537679522349501, "p_movecounty": 0.0195255768920445, "p_movestate": 0.0041955785057285, "p_moveabroad": 0.011779893496853299, "p_car": 0.76906435911303406, "p_carpool": 0.1168199026500811, "p_transit": 0.053542455381287102, "p_bike": 0.0075716603569496999, "p_walk": 0.0135208220659816 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.028333, 37.60513 ], [ -122.026204, 37.605945 ], [ -122.020977, 37.605895 ], [ -122.020037, 37.606243 ], [ -122.01735, 37.603848 ], [ -122.015637, 37.602313 ], [ -122.016057, 37.601974 ], [ -122.018634, 37.595312 ], [ -122.019652, 37.592547 ], [ -122.020991, 37.593752 ], [ -122.026398, 37.595455 ], [ -122.027409, 37.596419 ], [ -122.025389, 37.597919 ], [ -122.026375, 37.598772 ], [ -122.029415, 37.601381 ], [ -122.028333, 37.60513 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440333", "AFFGEOID": "1400000US06001440333", "GEOID": "06001440333", "NAME_x": "4403.33", "LSAD": "CT", "ALAND": 2512248, "AWATER": 0, "NAME_y": "Census Tract 4403.33, Alameda County, California", "c_race": 3186, "c_white": 529, "c_black": 183, "c_asian": 2083, "c_latinx": 161, "state_fips": 6, "county_fips": 1, "tract_fips": 440333, "med_rent": 2833.0, "med_hhinc": 128750.0, "c_tenants": 839, "c_owners": 707, "c_renters": 132, "c_movers": 3153, "c_stay": 2892, "c_movelocal": 179, "c_movecounty": 26, "c_movestate": 0, "c_moveabroad": 56, "c_commute": 1029, "c_car": 763, "c_carpool": 120, "c_transit": 63, "c_bike": 0, "c_walk": 12, "year": 2018, "FIPS_11_digit": "06001440333", "p_white": 0.1660389202762084, "p_black": 0.057438794726930302, "p_asian": 0.65379786566227249, "p_latinx": 0.050533584431889503, "p_owners": 0.84266984505363529, "p_renters": 0.15733015494636471, "p_stay": 0.91722169362511896, "p_movelocal": 0.056771328893117597, "p_movecounty": 0.0082461148112908007, "p_movestate": 0.0, "p_moveabroad": 0.017760862670472499, "p_car": 0.74149659863945583, "p_carpool": 0.1166180758017492, "p_transit": 0.061224489795918297, "p_bike": 0.0, "p_walk": 0.011661807580174899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.085956, 37.609107 ], [ -122.083905, 37.609872 ], [ -122.080259, 37.611531 ], [ -122.077932, 37.613476 ], [ -122.072282, 37.613309 ], [ -122.07145, 37.613278 ], [ -122.066607, 37.613143 ], [ -122.066516, 37.612853 ], [ -122.068539, 37.605683 ], [ -122.066125, 37.605181 ], [ -122.065495, 37.604911 ], [ -122.061052, 37.598688 ], [ -122.067005, 37.598014 ], [ -122.07097, 37.596948 ], [ -122.073757, 37.596433 ], [ -122.074482, 37.596914 ], [ -122.082241, 37.603713 ], [ -122.087429, 37.608193 ], [ -122.085956, 37.609107 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441200", "AFFGEOID": "1400000US06001441200", "GEOID": "06001441200", "NAME_x": "4412", "LSAD": "CT", "ALAND": 3241557, "AWATER": 11692, "NAME_y": "Census Tract 4412, Alameda County, California", "c_race": 7473, "c_white": 2617, "c_black": 294, "c_asian": 2555, "c_latinx": 1477, "state_fips": 6, "county_fips": 1, "tract_fips": 441200, "med_rent": 1978.0, "med_hhinc": 109423.0, "c_tenants": 2492, "c_owners": 1419, "c_renters": 1073, "c_movers": 7398, "c_stay": 6732, "c_movelocal": 247, "c_movecounty": 167, "c_movestate": 190, "c_moveabroad": 62, "c_commute": 3025, "c_car": 2214, "c_carpool": 219, "c_transit": 403, "c_bike": 0, "c_walk": 41, "year": 2018, "FIPS_11_digit": "06001441200", "p_white": 0.35019403184798609, "p_black": 0.039341629867523001, "p_asian": 0.34189749765823629, "p_latinx": 0.19764485481065161, "p_owners": 0.569422150882825, "p_renters": 0.43057784911717489, "p_stay": 0.9099756690997568, "p_movelocal": 0.033387402000540599, "p_movecounty": 0.02257366855907, "p_movestate": 0.025682616923492801, "p_moveabroad": 0.0083806434171396996, "p_car": 0.73190082644628096, "p_carpool": 0.072396694214876003, "p_transit": 0.1332231404958677, "p_bike": 0.0, "p_walk": 0.0135537190082644 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.005866, 37.586484 ], [ -122.001372, 37.589602 ], [ -121.991186, 37.581193 ], [ -121.990327, 37.580687 ], [ -121.986573, 37.579594 ], [ -121.97775, 37.578874 ], [ -121.974777, 37.578287 ], [ -121.971528, 37.57658 ], [ -121.968904, 37.573771 ], [ -121.970304, 37.572794 ], [ -121.984122, 37.568 ], [ -121.987062, 37.568033 ], [ -121.98837, 37.568829 ], [ -121.997443, 37.575796 ], [ -122.006518, 37.582799 ], [ -122.005866, 37.586484 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441522", "AFFGEOID": "1400000US06001441522", "GEOID": "06001441522", "NAME_x": "4415.22", "LSAD": "CT", "ALAND": 1307698, "AWATER": 0, "NAME_y": "Census Tract 4415.22, Alameda County, California", "c_race": 5373, "c_white": 624, "c_black": 292, "c_asian": 3460, "c_latinx": 811, "state_fips": 6, "county_fips": 1, "tract_fips": 441522, "med_rent": 2345.0, "med_hhinc": 129141.0, "c_tenants": 1473, "c_owners": 1194, "c_renters": 279, "c_movers": 5335, "c_stay": 5014, "c_movelocal": 192, "c_movecounty": 96, "c_movestate": 7, "c_moveabroad": 26, "c_commute": 2105, "c_car": 1520, "c_carpool": 288, "c_transit": 175, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441522", "p_white": 0.1161362367392518, "p_black": 0.054345803089521597, "p_asian": 0.64396054345803089, "p_latinx": 0.1509398846082263, "p_owners": 0.81059063136456211, "p_renters": 0.18940936863543789, "p_stay": 0.93983130271790061, "p_movelocal": 0.035988753514526697, "p_movecounty": 0.0179943767572633, "p_movestate": 0.0013120899718837, "p_moveabroad": 0.0048734770384254002, "p_car": 0.7220902612826603, "p_carpool": 0.13681710213776721, "p_transit": 0.083135391923990498, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.064317, 37.586748 ], [ -122.060209, 37.591767 ], [ -122.056609, 37.592457 ], [ -122.055099, 37.590335 ], [ -122.050346, 37.583491 ], [ -122.049204, 37.58105 ], [ -122.048354, 37.578599 ], [ -122.050647, 37.579702 ], [ -122.052073, 37.580335 ], [ -122.054663, 37.581737 ], [ -122.05502, 37.581152 ], [ -122.060428, 37.574893 ], [ -122.062107, 37.582901 ], [ -122.062894, 37.5849 ], [ -122.062509, 37.585696 ], [ -122.064317, 37.586748 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441924", "AFFGEOID": "1400000US06001441924", "GEOID": "06001441924", "NAME_x": "4419.24", "LSAD": "CT", "ALAND": 2184640, "AWATER": 0, "NAME_y": "Census Tract 4419.24, Alameda County, California", "c_race": 7625, "c_white": 1702, "c_black": 195, "c_asian": 4472, "c_latinx": 920, "state_fips": 6, "county_fips": 1, "tract_fips": 441924, "med_rent": 2300.0, "med_hhinc": 132224.0, "c_tenants": 2647, "c_owners": 1666, "c_renters": 981, "c_movers": 7527, "c_stay": 6476, "c_movelocal": 396, "c_movecounty": 159, "c_movestate": 241, "c_moveabroad": 255, "c_commute": 3555, "c_car": 2296, "c_carpool": 249, "c_transit": 826, "c_bike": 17, "c_walk": 41, "year": 2018, "FIPS_11_digit": "06001441924", "p_white": 0.2232131147540983, "p_black": 0.025573770491803201, "p_asian": 0.58649180327868855, "p_latinx": 0.120655737704918, "p_owners": 0.62939176426142807, "p_renters": 0.37060823573857199, "p_stay": 0.8603693370532749, "p_movelocal": 0.052610601833399703, "p_movecounty": 0.021123953766440801, "p_movestate": 0.0320180682874983, "p_moveabroad": 0.033878039059386203, "p_car": 0.64585091420534457, "p_carpool": 0.070042194092826998, "p_transit": 0.23234880450070319, "p_bike": 0.0047819971870603998, "p_walk": 0.011533052039381099 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.984122, 37.568 ], [ -121.970304, 37.572794 ], [ -121.968904, 37.573771 ], [ -121.967952, 37.572756 ], [ -121.961473, 37.565571 ], [ -121.96222, 37.565012 ], [ -121.966533, 37.562069 ], [ -121.967861, 37.561283 ], [ -121.971102, 37.559296 ], [ -121.972862, 37.558069 ], [ -121.976036, 37.554114 ], [ -121.981652, 37.557002 ], [ -121.980294, 37.558635 ], [ -121.97944, 37.559662 ], [ -121.978597, 37.560997 ], [ -121.978911, 37.562793 ], [ -121.979231, 37.564014 ], [ -121.982641, 37.563769 ], [ -121.983531, 37.566463 ], [ -121.984122, 37.568 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442400", "AFFGEOID": "1400000US06001442400", "GEOID": "06001442400", "NAME_x": "4424", "LSAD": "CT", "ALAND": 1582847, "AWATER": 0, "NAME_y": "Census Tract 4424, Alameda County, California", "c_race": 6647, "c_white": 1498, "c_black": 202, "c_asian": 3244, "c_latinx": 1586, "state_fips": 6, "county_fips": 1, "tract_fips": 442400, "med_rent": 2301.0, "med_hhinc": 112742.0, "c_tenants": 2016, "c_owners": 1336, "c_renters": 680, "c_movers": 6595, "c_stay": 5951, "c_movelocal": 400, "c_movecounty": 91, "c_movestate": 8, "c_moveabroad": 145, "c_commute": 2856, "c_car": 2043, "c_carpool": 399, "c_transit": 159, "c_bike": 0, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001442400", "p_white": 0.22536482623740031, "p_black": 0.030389649465924401, "p_asian": 0.4880397171656386, "p_latinx": 0.2386038814502783, "p_owners": 0.66269841269841268, "p_renters": 0.33730158730158732, "p_stay": 0.90235026535253982, "p_movelocal": 0.060652009097801302, "p_movecounty": 0.0137983320697498, "p_movestate": 0.001213040181956, "p_moveabroad": 0.021986353297952899, "p_car": 0.71533613445378152, "p_carpool": 0.1397058823529411, "p_transit": 0.055672268907563001, "p_bike": 0.0, "p_walk": 0.0031512605042016001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.979179, 37.533257 ], [ -121.97596, 37.537218 ], [ -121.973146, 37.540693 ], [ -121.970699, 37.539351 ], [ -121.966362, 37.536888 ], [ -121.965459, 37.536376 ], [ -121.968944, 37.532073 ], [ -121.970102, 37.53047 ], [ -121.969816, 37.527881 ], [ -121.969001, 37.522484 ], [ -121.97119, 37.522437 ], [ -121.97905, 37.52639 ], [ -121.983044, 37.528437 ], [ -121.979179, 37.533257 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443105", "AFFGEOID": "1400000US06001443105", "GEOID": "06001443105", "NAME_x": "4431.05", "LSAD": "CT", "ALAND": 3289424, "AWATER": 0, "NAME_y": "Census Tract 4431.05, Alameda County, California", "c_race": 4588, "c_white": 553, "c_black": 84, "c_asian": 3637, "c_latinx": 119, "state_fips": 6, "county_fips": 1, "tract_fips": 443105, "med_rent": 3500.0, "med_hhinc": 170352.0, "c_tenants": 1505, "c_owners": 1406, "c_renters": 99, "c_movers": 4545, "c_stay": 4340, "c_movelocal": 96, "c_movecounty": 68, "c_movestate": 15, "c_moveabroad": 26, "c_commute": 2022, "c_car": 1617, "c_carpool": 117, "c_transit": 182, "c_bike": 0, "c_walk": 13, "year": 2018, "FIPS_11_digit": "06001443105", "p_white": 0.1205318221447253, "p_black": 0.018308631211857, "p_asian": 0.79272013949433306, "p_latinx": 0.025937227550130702, "p_owners": 0.93421926910299002, "p_renters": 0.065780730897009906, "p_stay": 0.95489548954895476, "p_movelocal": 0.021122112211221102, "p_movecounty": 0.0149614961496149, "p_movestate": 0.0033003300330032999, "p_moveabroad": 0.0057205720572057004, "p_car": 0.79970326409495551, "p_carpool": 0.057863501483679497, "p_transit": 0.090009891196834793, "p_bike": 0.0, "p_walk": 0.0064292779426309999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.945932, 37.526241 ], [ -121.944741, 37.528651 ], [ -121.941488, 37.53099 ], [ -121.940188, 37.530944 ], [ -121.934052, 37.53166 ], [ -121.929016, 37.525724 ], [ -121.928419, 37.523587 ], [ -121.923917, 37.523089 ], [ -121.92051, 37.525635 ], [ -121.917953, 37.526126 ], [ -121.9178, 37.525029 ], [ -121.917794, 37.520775 ], [ -121.917942, 37.517937 ], [ -121.919252, 37.513607 ], [ -121.92616, 37.515087 ], [ -121.931146, 37.514323 ], [ -121.933753, 37.513908 ], [ -121.938228, 37.51507 ], [ -121.939515, 37.514759 ], [ -121.945615, 37.524122 ], [ -121.945932, 37.526241 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444200", "AFFGEOID": "1400000US06001444200", "GEOID": "06001444200", "NAME_x": "4442", "LSAD": "CT", "ALAND": 2069728, "AWATER": 0, "NAME_y": "Census Tract 4442, Alameda County, California", "c_race": 7028, "c_white": 1549, "c_black": 344, "c_asian": 2269, "c_latinx": 2398, "state_fips": 6, "county_fips": 1, "tract_fips": 444200, "med_rent": 2315.0, "med_hhinc": 121208.0, "c_tenants": 1887, "c_owners": 1545, "c_renters": 342, "c_movers": 7002, "c_stay": 6390, "c_movelocal": 392, "c_movecounty": 158, "c_movestate": 47, "c_moveabroad": 15, "c_commute": 2832, "c_car": 2089, "c_carpool": 201, "c_transit": 55, "c_bike": 19, "c_walk": 300, "year": 2018, "FIPS_11_digit": "06001444200", "p_white": 0.2204040978941377, "p_black": 0.048947068867387498, "p_asian": 0.32285145133750709, "p_latinx": 0.34120660216277748, "p_owners": 0.81875993640699518, "p_renters": 0.18124006359300471, "p_stay": 0.91259640102827755, "p_movelocal": 0.0559840045701228, "p_movecounty": 0.022564981433875999, "p_movestate": 0.0067123678948870997, "p_moveabroad": 0.0021422450728363, "p_car": 0.73764124293785316, "p_carpool": 0.070974576271186404, "p_transit": 0.019420903954802199, "p_bike": 0.0067090395480224998, "p_walk": 0.1059322033898305 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.05518, 37.549454 ], [ -122.05208, 37.551742 ], [ -122.043128, 37.547301 ], [ -122.040858, 37.545809 ], [ -122.0363, 37.543747 ], [ -122.034038, 37.540445 ], [ -122.033659, 37.539735 ], [ -122.034932, 37.539829 ], [ -122.04028, 37.536316 ], [ -122.044662, 37.533296 ], [ -122.052755, 37.540059 ], [ -122.053514, 37.541471 ], [ -122.054192, 37.544693 ], [ -122.05518, 37.549454 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450501", "AFFGEOID": "1400000US06001450501", "GEOID": "06001450501", "NAME_x": "4505.01", "LSAD": "CT", "ALAND": 1163206, "AWATER": 0, "NAME_y": "Census Tract 4505.01, Alameda County, California", "c_race": 3130, "c_white": 1970, "c_black": 83, "c_asian": 672, "c_latinx": 215, "state_fips": 6, "county_fips": 1, "tract_fips": 450501, "med_rent": 2356.0, "med_hhinc": 132235.0, "c_tenants": 1227, "c_owners": 887, "c_renters": 340, "c_movers": 3076, "c_stay": 2568, "c_movelocal": 215, "c_movecounty": 274, "c_movestate": 19, "c_moveabroad": 0, "c_commute": 1639, "c_car": 1208, "c_carpool": 85, "c_transit": 237, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450501", "p_white": 0.62939297124600635, "p_black": 0.026517571884983999, "p_asian": 0.2146964856230032, "p_latinx": 0.068690095846645302, "p_owners": 0.72290138549307248, "p_renters": 0.27709861450692741, "p_stay": 0.83485045513654099, "p_movelocal": 0.069895968790637197, "p_movecounty": 0.089076723016905002, "p_movestate": 0.0061768530559166996, "p_moveabroad": 0.0, "p_car": 0.73703477730323363, "p_carpool": 0.051860890787065198, "p_transit": 0.1446003660768761, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.948112, 37.710493 ], [ -121.945489, 37.712558 ], [ -121.945255, 37.713227 ], [ -121.94476, 37.713119 ], [ -121.942935, 37.713605 ], [ -121.939488, 37.713904 ], [ -121.937038, 37.707581 ], [ -121.935788, 37.70209 ], [ -121.944004, 37.699785 ], [ -121.944553, 37.700265 ], [ -121.945739, 37.702277 ], [ -121.945971, 37.703563 ], [ -121.94609, 37.70459 ], [ -121.948112, 37.710493 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450741", "AFFGEOID": "1400000US06001450741", "GEOID": "06001450741", "NAME_x": "4507.41", "LSAD": "CT", "ALAND": 2097555, "AWATER": 0, "NAME_y": "Census Tract 4507.41, Alameda County, California", "c_race": 5575, "c_white": 3031, "c_black": 90, "c_asian": 1075, "c_latinx": 1121, "state_fips": 6, "county_fips": 1, "tract_fips": 450741, "med_rent": 2113.0, "med_hhinc": 131319.0, "c_tenants": 2032, "c_owners": 1155, "c_renters": 877, "c_movers": 5553, "c_stay": 4878, "c_movelocal": 286, "c_movecounty": 224, "c_movestate": 87, "c_moveabroad": 78, "c_commute": 3085, "c_car": 2363, "c_carpool": 195, "c_transit": 172, "c_bike": 13, "c_walk": 62, "year": 2018, "FIPS_11_digit": "06001450741", "p_white": 0.54367713004484308, "p_black": 0.0161434977578475, "p_asian": 0.19282511210762329, "p_latinx": 0.20107623318385651, "p_owners": 0.56840551181102361, "p_renters": 0.43159448818897639, "p_stay": 0.87844408427876819, "p_movelocal": 0.0515036916981811, "p_movecounty": 0.040338555735638298, "p_movestate": 0.015667206915180899, "p_moveabroad": 0.0140464613722312, "p_car": 0.7659643435980551, "p_carpool": 0.063209076175040499, "p_transit": 0.055753646677471597, "p_bike": 0.0042139384116692997, "p_walk": 0.020097244732576899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.877598, 37.656324 ], [ -121.875687, 37.657944 ], [ -121.873964, 37.656713 ], [ -121.872076, 37.658479 ], [ -121.873007, 37.659151 ], [ -121.86999, 37.663137 ], [ -121.868081, 37.664936 ], [ -121.864956, 37.66782 ], [ -121.857871, 37.670438 ], [ -121.856027, 37.665289 ], [ -121.856064, 37.664343 ], [ -121.856078, 37.664308 ], [ -121.856732, 37.662793 ], [ -121.859189, 37.656278 ], [ -121.859951, 37.654809 ], [ -121.862637, 37.653258 ], [ -121.863984, 37.651975 ], [ -121.864569, 37.65178 ], [ -121.869173, 37.652354 ], [ -121.876834, 37.655796 ], [ -121.877598, 37.656324 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451201", "AFFGEOID": "1400000US06001451201", "GEOID": "06001451201", "NAME_x": "4512.01", "LSAD": "CT", "ALAND": 3662205, "AWATER": 9862, "NAME_y": "Census Tract 4512.01, Alameda County, California", "c_race": 7557, "c_white": 4349, "c_black": 112, "c_asian": 897, "c_latinx": 1786, "state_fips": 6, "county_fips": 1, "tract_fips": 451201, "med_rent": 1911.0, "med_hhinc": 93264.0, "c_tenants": 2757, "c_owners": 2001, "c_renters": 756, "c_movers": 7455, "c_stay": 6567, "c_movelocal": 574, "c_movecounty": 270, "c_movestate": 36, "c_moveabroad": 8, "c_commute": 4046, "c_car": 3418, "c_carpool": 275, "c_transit": 171, "c_bike": 13, "c_walk": 58, "year": 2018, "FIPS_11_digit": "06001451201", "p_white": 0.57549292047108636, "p_black": 0.0148206960434034, "p_asian": 0.1186978959904724, "p_latinx": 0.2363371708349874, "p_owners": 0.72578890097932536, "p_renters": 0.27421109902067459, "p_stay": 0.88088531187122732, "p_movelocal": 0.076995305164319197, "p_movecounty": 0.036217303822937599, "p_movestate": 0.0048289738430582997, "p_moveabroad": 0.0010731052984574, "p_car": 0.84478497281265452, "p_carpool": 0.067968363816114596, "p_transit": 0.0422639644092931, "p_bike": 0.0032130499258525998, "p_walk": 0.014335145823035 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.759438, 37.704173 ], [ -121.75698, 37.705071 ], [ -121.756491, 37.705413 ], [ -121.755267, 37.705671 ], [ -121.754396, 37.705978 ], [ -121.753779, 37.70656 ], [ -121.753724, 37.707005 ], [ -121.753212, 37.708201 ], [ -121.75292, 37.708598 ], [ -121.75285, 37.709614 ], [ -121.753928, 37.71101 ], [ -121.753872, 37.71129 ], [ -121.752793, 37.712295 ], [ -121.752211, 37.713042 ], [ -121.751962, 37.713793 ], [ -121.750505, 37.71585 ], [ -121.747982, 37.716454 ], [ -121.74317, 37.718453 ], [ -121.741125, 37.716486 ], [ -121.738794, 37.717051 ], [ -121.733994, 37.717036 ], [ -121.732561, 37.717034 ], [ -121.724279, 37.71701 ], [ -121.72436, 37.710601 ], [ -121.723874, 37.709128 ], [ -121.737435, 37.703447 ], [ -121.740284, 37.702728 ], [ -121.743137, 37.702458 ], [ -121.749899, 37.702699 ], [ -121.755503, 37.702936 ], [ -121.759362, 37.703015 ], [ -121.759438, 37.704173 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451504", "AFFGEOID": "1400000US06001451504", "GEOID": "06001451504", "NAME_x": "4515.04", "LSAD": "CT", "ALAND": 3247421, "AWATER": 0, "NAME_y": "Census Tract 4515.04, Alameda County, California", "c_race": 1724, "c_white": 1122, "c_black": 29, "c_asian": 268, "c_latinx": 263, "state_fips": 6, "county_fips": 1, "tract_fips": 451504, "med_rent": 2343.0, "med_hhinc": 123750.0, "c_tenants": 644, "c_owners": 434, "c_renters": 210, "c_movers": 1685, "c_stay": 1375, "c_movelocal": 169, "c_movecounty": 56, "c_movestate": 75, "c_moveabroad": 10, "c_commute": 931, "c_car": 688, "c_carpool": 33, "c_transit": 33, "c_bike": 58, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001451504", "p_white": 0.65081206496519717, "p_black": 0.016821345707656601, "p_asian": 0.1554524361948956, "p_latinx": 0.15255220417633411, "p_owners": 0.67391304347826086, "p_renters": 0.32608695652173908, "p_stay": 0.81602373887240354, "p_movelocal": 0.1002967359050445, "p_movecounty": 0.033234421364985098, "p_movestate": 0.044510385756676499, "p_moveabroad": 0.0059347181008902001, "p_car": 0.73899033297529537, "p_carpool": 0.035445757250268502, "p_transit": 0.035445757250268502, "p_bike": 0.062298603651987097, "p_walk": 0.0064446831364124001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.747159, 37.694529 ], [ -121.744358, 37.69653 ], [ -121.740284, 37.702728 ], [ -121.737435, 37.703447 ], [ -121.723874, 37.709128 ], [ -121.718795, 37.700207 ], [ -121.71807, 37.696943 ], [ -121.718592, 37.694423 ], [ -121.720279, 37.694452 ], [ -121.721612, 37.694737 ], [ -121.723426, 37.695183 ], [ -121.725725, 37.69528 ], [ -121.732158, 37.69381 ], [ -121.732318, 37.687839 ], [ -121.736705, 37.688073 ], [ -121.738164, 37.687417 ], [ -121.743669, 37.690089 ], [ -121.746547, 37.693933 ], [ -121.747159, 37.694529 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451704", "AFFGEOID": "1400000US06001451704", "GEOID": "06001451704", "NAME_x": "4517.04", "LSAD": "CT", "ALAND": 2005360, "AWATER": 0, "NAME_y": "Census Tract 4517.04, Alameda County, California", "c_race": 4446, "c_white": 3184, "c_black": 71, "c_asian": 374, "c_latinx": 583, "state_fips": 6, "county_fips": 1, "tract_fips": 451704, "med_rent": 1856.0, "med_hhinc": 126853.0, "c_tenants": 1670, "c_owners": 1231, "c_renters": 439, "c_movers": 4367, "c_stay": 4038, "c_movelocal": 184, "c_movecounty": 78, "c_movestate": 0, "c_moveabroad": 67, "c_commute": 2293, "c_car": 1914, "c_carpool": 64, "c_transit": 120, "c_bike": 29, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001451704", "p_white": 0.71614934772829508, "p_black": 0.015969410706252799, "p_asian": 0.084120557804768306, "p_latinx": 0.1311291048133153, "p_owners": 0.73712574850299406, "p_renters": 0.262874251497006, "p_stay": 0.92466223952370041, "p_movelocal": 0.042134188229906097, "p_movecounty": 0.017861231967025399, "p_movestate": 0.0, "p_moveabroad": 0.0153423402793679, "p_car": 0.83471434801569999, "p_carpool": 0.027911033580462201, "p_transit": 0.052333187963366702, "p_bike": 0.0126471870911469, "p_walk": 0.0039249890972524997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.798487, 37.660713 ], [ -121.798214, 37.66806 ], [ -121.798438, 37.668664 ], [ -121.794977, 37.668836 ], [ -121.793341, 37.669514 ], [ -121.788897, 37.667201 ], [ -121.785114, 37.667088 ], [ -121.780391, 37.667105 ], [ -121.78035, 37.666568 ], [ -121.780358, 37.660768 ], [ -121.782848, 37.658529 ], [ -121.782983, 37.655998 ], [ -121.798518, 37.655984 ], [ -121.798487, 37.660713 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400400", "AFFGEOID": "1400000US06001400400", "GEOID": "06001400400", "NAME_x": "4004", "LSAD": "CT", "ALAND": 714729, "AWATER": 0, "NAME_y": "Census Tract 4004, Alameda County, California", "c_race": 3843, "c_white": 2551, "c_black": 229, "c_asian": 373, "c_latinx": 420, "state_fips": 6, "county_fips": 1, "tract_fips": 400400, "med_rent": 1624.0, "med_hhinc": 113036.0, "c_tenants": 1750, "c_owners": 653, "c_renters": 1097, "c_movers": 3754, "c_stay": 3440, "c_movelocal": 113, "c_movecounty": 133, "c_movestate": 46, "c_moveabroad": 22, "c_commute": 2293, "c_car": 933, "c_carpool": 240, "c_transit": 588, "c_bike": 188, "c_walk": 92, "year": 2018, "FIPS_11_digit": "06001400400", "p_white": 0.66380431954202446, "p_black": 0.059588862867551301, "p_asian": 0.097059588862867502, "p_latinx": 0.10928961748633879, "p_owners": 0.37314285714285711, "p_renters": 0.62685714285714289, "p_stay": 0.91635588705380921, "p_movelocal": 0.030101225359616401, "p_movecounty": 0.035428875865743198, "p_movestate": 0.0122535961640916, "p_moveabroad": 0.0058604155567394001, "p_car": 0.40689053641517658, "p_carpool": 0.1046663759267335, "p_transit": 0.25643262102049719, "p_bike": 0.081988661142607902, "p_walk": 0.0401221107719145 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.261805, 37.84179 ], [ -122.261296, 37.845027 ], [ -122.261019, 37.847233 ], [ -122.260223, 37.852793 ], [ -122.258367, 37.853196 ], [ -122.257251, 37.853176 ], [ -122.256197, 37.853449 ], [ -122.253346, 37.85383 ], [ -122.252503, 37.850826 ], [ -122.25245, 37.849386 ], [ -122.255084, 37.846069 ], [ -122.256205, 37.844686 ], [ -122.257418, 37.843096 ], [ -122.257923, 37.842606 ], [ -122.26186, 37.841353 ], [ -122.261805, 37.84179 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401200", "AFFGEOID": "1400000US06001401200", "GEOID": "06001401200", "NAME_x": "4012", "LSAD": "CT", "ALAND": 667006, "AWATER": 0, "NAME_y": "Census Tract 4012, Alameda County, California", "c_race": 2577, "c_white": 1528, "c_black": 344, "c_asian": 243, "c_latinx": 381, "state_fips": 6, "county_fips": 1, "tract_fips": 401200, "med_rent": 1657.0, "med_hhinc": 106250.0, "c_tenants": 1230, "c_owners": 446, "c_renters": 784, "c_movers": 2568, "c_stay": 2168, "c_movelocal": 231, "c_movecounty": 87, "c_movestate": 82, "c_moveabroad": 0, "c_commute": 1794, "c_car": 768, "c_carpool": 80, "c_transit": 512, "c_bike": 105, "c_walk": 106, "year": 2018, "FIPS_11_digit": "06001401200", "p_white": 0.59293752425300739, "p_black": 0.13348855258051989, "p_asian": 0.094295692665890496, "p_latinx": 0.14784633294528521, "p_owners": 0.36260162601626011, "p_renters": 0.63739837398373989, "p_stay": 0.84423676012461057, "p_movelocal": 0.089953271028037296, "p_movecounty": 0.033878504672897103, "p_movestate": 0.031931464174454798, "p_moveabroad": 0.0, "p_car": 0.42809364548494983, "p_carpool": 0.044593088071348902, "p_transit": 0.28539576365663322, "p_bike": 0.058528428093645397, "p_walk": 0.059085841694537303 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.2621, 37.823536 ], [ -122.261375, 37.826659 ], [ -122.260841, 37.828634 ], [ -122.260204, 37.831016 ], [ -122.259988, 37.831871 ], [ -122.259531, 37.836825 ], [ -122.259902, 37.836994 ], [ -122.256971, 37.836493 ], [ -122.25241, 37.834543 ], [ -122.254455, 37.831252 ], [ -122.256203, 37.828483 ], [ -122.256742, 37.827628 ], [ -122.25868, 37.824515 ], [ -122.260006, 37.822421 ], [ -122.261969, 37.822966 ], [ -122.2621, 37.823536 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403702", "AFFGEOID": "1400000US06001403702", "GEOID": "06001403702", "NAME_x": "4037.02", "LSAD": "CT", "ALAND": 200814, "AWATER": 0, "NAME_y": "Census Tract 4037.02, Alameda County, California", "c_race": 1898, "c_white": 994, "c_black": 269, "c_asian": 330, "c_latinx": 192, "state_fips": 6, "county_fips": 1, "tract_fips": 403702, "med_rent": 1713.0, "med_hhinc": 85821.0, "c_tenants": 1091, "c_owners": 227, "c_renters": 864, "c_movers": 1887, "c_stay": 1752, "c_movelocal": 0, "c_movecounty": 74, "c_movestate": 43, "c_moveabroad": 18, "c_commute": 1390, "c_car": 477, "c_carpool": 125, "c_transit": 416, "c_bike": 56, "c_walk": 117, "year": 2018, "FIPS_11_digit": "06001403702", "p_white": 0.52370916754478403, "p_black": 0.1417281348788198, "p_asian": 0.1738672286617492, "p_latinx": 0.10115911485774499, "p_owners": 0.20806599450045829, "p_renters": 0.79193400549954174, "p_stay": 0.92845786963434018, "p_movelocal": 0.0, "p_movecounty": 0.039215686274509803, "p_movestate": 0.0227874933757286, "p_moveabroad": 0.0095389507154212995, "p_car": 0.34316546762589928, "p_carpool": 0.089928057553956803, "p_transit": 0.29928057553956833, "p_bike": 0.040287769784172603, "p_walk": 0.084172661870503596 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.256158, 37.809012 ], [ -122.255389, 37.810661 ], [ -122.253026, 37.810491 ], [ -122.252558, 37.81058 ], [ -122.251462, 37.810841 ], [ -122.249438, 37.810536 ], [ -122.248598, 37.810505 ], [ -122.246504, 37.809841 ], [ -122.246702, 37.809703 ], [ -122.249148, 37.808391 ], [ -122.250469, 37.808882 ], [ -122.252774, 37.808747 ], [ -122.256001, 37.807463 ], [ -122.256158, 37.809012 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406202", "AFFGEOID": "1400000US06001406202", "GEOID": "06001406202", "NAME_x": "4062.02", "LSAD": "CT", "ALAND": 392183, "AWATER": 0, "NAME_y": "Census Tract 4062.02, Alameda County, California", "c_race": 4751, "c_white": 482, "c_black": 612, "c_asian": 556, "c_latinx": 2880, "state_fips": 6, "county_fips": 1, "tract_fips": 406202, "med_rent": 1159.0, "med_hhinc": 38636.0, "c_tenants": 1326, "c_owners": 128, "c_renters": 1198, "c_movers": 4656, "c_stay": 3918, "c_movelocal": 472, "c_movecounty": 132, "c_movestate": 28, "c_moveabroad": 106, "c_commute": 2094, "c_car": 1018, "c_carpool": 244, "c_transit": 546, "c_bike": 33, "c_walk": 187, "year": 2018, "FIPS_11_digit": "06001406202", "p_white": 0.1014523258261418, "p_black": 0.12881498631866969, "p_asian": 0.1170279941065039, "p_latinx": 0.6061881709113871, "p_owners": 0.096530920060331801, "p_renters": 0.90346907993966818, "p_stay": 0.84149484536082475, "p_movelocal": 0.1013745704467354, "p_movecounty": 0.028350515463917501, "p_movestate": 0.0060137457044672996, "p_moveabroad": 0.022766323024054898, "p_car": 0.48615090735434568, "p_carpool": 0.11652340019102191, "p_transit": 0.26074498567335241, "p_bike": 0.015759312320916902, "p_walk": 0.089302769818529096 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.229935, 37.782402 ], [ -122.227537, 37.78495 ], [ -122.226792, 37.784511 ], [ -122.225307, 37.786098 ], [ -122.224369, 37.785646 ], [ -122.222249, 37.784938 ], [ -122.222729, 37.783749 ], [ -122.2239, 37.781409 ], [ -122.224719, 37.779772 ], [ -122.225803, 37.777643 ], [ -122.227853, 37.778614 ], [ -122.229093, 37.779343 ], [ -122.231481, 37.780769 ], [ -122.229935, 37.782402 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407500", "AFFGEOID": "1400000US06001407500", "GEOID": "06001407500", "NAME_x": "4075", "LSAD": "CT", "ALAND": 494510, "AWATER": 0, "NAME_y": "Census Tract 4075, Alameda County, California", "c_race": 4560, "c_white": 280, "c_black": 1235, "c_asian": 280, "c_latinx": 2510, "state_fips": 6, "county_fips": 1, "tract_fips": 407500, "med_rent": 1132.0, "med_hhinc": 32145.0, "c_tenants": 1327, "c_owners": 291, "c_renters": 1036, "c_movers": 4497, "c_stay": 4144, "c_movelocal": 206, "c_movecounty": 137, "c_movestate": 0, "c_moveabroad": 10, "c_commute": 1647, "c_car": 1173, "c_carpool": 139, "c_transit": 214, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001407500", "p_white": 0.0614035087719298, "p_black": 0.27083333333333331, "p_asian": 0.0614035087719298, "p_latinx": 0.55043859649122806, "p_owners": 0.21929163526752071, "p_renters": 0.78070836473247929, "p_stay": 0.92150322437180343, "p_movelocal": 0.045808316655548097, "p_movecounty": 0.030464754280631501, "p_movestate": 0.0, "p_moveabroad": 0.0022237046920168999, "p_car": 0.71220400728597455, "p_carpool": 0.084395871281117099, "p_transit": 0.12993321190042501, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.20084, 37.76913 ], [ -122.200809, 37.770067 ], [ -122.200805, 37.772661 ], [ -122.19592, 37.772639 ], [ -122.190319, 37.771571 ], [ -122.190432, 37.771522 ], [ -122.192194, 37.770292 ], [ -122.194984, 37.768322 ], [ -122.195729, 37.767804 ], [ -122.199502, 37.765149 ], [ -122.20368, 37.767126 ], [ -122.20084, 37.76913 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408900", "AFFGEOID": "1400000US06001408900", "GEOID": "06001408900", "NAME_x": "4089", "LSAD": "CT", "ALAND": 802407, "AWATER": 0, "NAME_y": "Census Tract 4089, Alameda County, California", "c_race": 3115, "c_white": 113, "c_black": 894, "c_asian": 136, "c_latinx": 1847, "state_fips": 6, "county_fips": 1, "tract_fips": 408900, "med_rent": 1128.0, "med_hhinc": 35714.0, "c_tenants": 948, "c_owners": 300, "c_renters": 648, "c_movers": 3056, "c_stay": 2543, "c_movelocal": 318, "c_movecounty": 109, "c_movestate": 68, "c_moveabroad": 18, "c_commute": 1180, "c_car": 699, "c_carpool": 115, "c_transit": 166, "c_bike": 18, "c_walk": 61, "year": 2018, "FIPS_11_digit": "06001408900", "p_white": 0.036276083467094697, "p_black": 0.28699839486356338, "p_asian": 0.0436597110754414, "p_latinx": 0.59293739967897274, "p_owners": 0.31645569620253161, "p_renters": 0.68354430379746833, "p_stay": 0.83213350785340312, "p_movelocal": 0.1040575916230366, "p_movecounty": 0.035667539267015699, "p_movestate": 0.0222513089005235, "p_moveabroad": 0.0058900523560209, "p_car": 0.59237288135593225, "p_carpool": 0.097457627118644002, "p_transit": 0.14067796610169489, "p_bike": 0.0152542372881355, "p_walk": 0.051694915254237202 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.196675, 37.75311 ], [ -122.195412, 37.752097 ], [ -122.192464, 37.754769 ], [ -122.192564, 37.755743 ], [ -122.187054, 37.759264 ], [ -122.184368, 37.757975 ], [ -122.18268, 37.757174 ], [ -122.182446, 37.757065 ], [ -122.179475, 37.755647 ], [ -122.179117, 37.755471 ], [ -122.179302, 37.755303 ], [ -122.18375, 37.753142 ], [ -122.184565, 37.752782 ], [ -122.18501, 37.753295 ], [ -122.192424, 37.749734 ], [ -122.193624, 37.748322 ], [ -122.196548, 37.750857 ], [ -122.198076, 37.752214 ], [ -122.196675, 37.75311 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420200", "AFFGEOID": "1400000US06001420200", "GEOID": "06001420200", "NAME_x": "4202", "LSAD": "CT", "ALAND": 463184, "AWATER": 0, "NAME_y": "Census Tract 4202, Alameda County, California", "c_race": 3300, "c_white": 1368, "c_black": 203, "c_asian": 1115, "c_latinx": 351, "state_fips": 6, "county_fips": 1, "tract_fips": 420200, "med_rent": 2066.0, "med_hhinc": 91840.0, "c_tenants": 1251, "c_owners": 549, "c_renters": 702, "c_movers": 3263, "c_stay": 2642, "c_movelocal": 174, "c_movecounty": 261, "c_movestate": 159, "c_moveabroad": 27, "c_commute": 1665, "c_car": 760, "c_carpool": 67, "c_transit": 412, "c_bike": 109, "c_walk": 176, "year": 2018, "FIPS_11_digit": "06001420200", "p_white": 0.41454545454545449, "p_black": 0.061515151515151502, "p_asian": 0.33787878787878789, "p_latinx": 0.1063636363636363, "p_owners": 0.43884892086330929, "p_renters": 0.5611510791366906, "p_stay": 0.80968433956481767, "p_movelocal": 0.053325160894881998, "p_movecounty": 0.079987741342323004, "p_movestate": 0.048728164266012799, "p_moveabroad": 0.0082745939319644, "p_car": 0.45645645645645638, "p_carpool": 0.040240240240240199, "p_transit": 0.2474474474474474, "p_bike": 0.065465465465465403, "p_walk": 0.1057057057057057 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.301668, 37.898525 ], [ -122.30028, 37.898225 ], [ -122.296207, 37.898925 ], [ -122.295703, 37.897763 ], [ -122.292898, 37.890719 ], [ -122.292894, 37.890601 ], [ -122.293738, 37.890555 ], [ -122.296262, 37.890403 ], [ -122.299051, 37.890264 ], [ -122.300593, 37.895043 ], [ -122.300903, 37.896019 ], [ -122.301668, 37.898525 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423602", "AFFGEOID": "1400000US06001423602", "GEOID": "06001423602", "NAME_x": "4236.02", "LSAD": "CT", "ALAND": 403182, "AWATER": 0, "NAME_y": "Census Tract 4236.02, Alameda County, California", "c_race": 6222, "c_white": 2518, "c_black": 346, "c_asian": 2226, "c_latinx": 614, "state_fips": 6, "county_fips": 1, "tract_fips": 423602, "med_rent": 1690.0, "med_hhinc": 38463.0, "c_tenants": 2167, "c_owners": 256, "c_renters": 1911, "c_movers": 6222, "c_stay": 3671, "c_movelocal": 1752, "c_movecounty": 577, "c_movestate": 138, "c_moveabroad": 84, "c_commute": 3392, "c_car": 936, "c_carpool": 56, "c_transit": 897, "c_bike": 167, "c_walk": 1087, "year": 2018, "FIPS_11_digit": "06001423602", "p_white": 0.40469302475088398, "p_black": 0.0556091288974606, "p_asian": 0.35776277724204431, "p_latinx": 0.098682095789135296, "p_owners": 0.11813567143516381, "p_renters": 0.88186432856483621, "p_stay": 0.59000321440051429, "p_movelocal": 0.28158148505303759, "p_movecounty": 0.092735454837672704, "p_movestate": 0.022179363548698101, "p_moveabroad": 0.0135004821600771, "p_car": 0.27594339622641512, "p_carpool": 0.016509433962264099, "p_transit": 0.26444575471698112, "p_bike": 0.049233490566037701, "p_walk": 0.3204599056603773 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.265277, 37.864265 ], [ -122.260741, 37.864843 ], [ -122.258543, 37.865149 ], [ -122.253954, 37.865737 ], [ -122.253743, 37.863622 ], [ -122.253552, 37.861823 ], [ -122.25798, 37.861726 ], [ -122.264519, 37.860682 ], [ -122.26488, 37.86246 ], [ -122.265277, 37.864265 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427200", "AFFGEOID": "1400000US06001427200", "GEOID": "06001427200", "NAME_x": "4272", "LSAD": "CT", "ALAND": 1329667, "AWATER": 650374, "NAME_y": "Census Tract 4272, Alameda County, California", "c_race": 4195, "c_white": 1603, "c_black": 95, "c_asian": 1305, "c_latinx": 886, "state_fips": 6, "county_fips": 1, "tract_fips": 427200, "med_rent": 1508.0, "med_hhinc": 74597.0, "c_tenants": 1598, "c_owners": 607, "c_renters": 991, "c_movers": 4195, "c_stay": 3640, "c_movelocal": 356, "c_movecounty": 143, "c_movestate": 30, "c_moveabroad": 26, "c_commute": 2198, "c_car": 1167, "c_carpool": 87, "c_transit": 381, "c_bike": 63, "c_walk": 172, "year": 2018, "FIPS_11_digit": "06001427200", "p_white": 0.38212157330154939, "p_black": 0.022646007151370599, "p_asian": 0.31108462455303931, "p_latinx": 0.21120381406436231, "p_owners": 0.3798498122653316, "p_renters": 0.62015018773466835, "p_stay": 0.86769964243146602, "p_movelocal": 0.084862932061978494, "p_movecounty": 0.034088200238379003, "p_movestate": 0.0071513706793802003, "p_moveabroad": 0.0061978545887960996, "p_car": 0.53093721565059149, "p_carpool": 0.0395814376706096, "p_transit": 0.17333939945404911, "p_bike": 0.028662420382165599, "p_walk": 0.078252957233848897 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.257832, 37.776037 ], [ -122.255021, 37.774806 ], [ -122.253547, 37.775337 ], [ -122.251629, 37.77821 ], [ -122.251281, 37.779135 ], [ -122.256936, 37.785733 ], [ -122.25478, 37.786728 ], [ -122.251332, 37.786881 ], [ -122.246591, 37.784679 ], [ -122.245219, 37.783033 ], [ -122.244817, 37.779123 ], [ -122.24362, 37.776445 ], [ -122.236566, 37.771731 ], [ -122.236488, 37.771696 ], [ -122.236741, 37.771405 ], [ -122.238101, 37.769779 ], [ -122.240792, 37.766583 ], [ -122.2412, 37.766679 ], [ -122.245398, 37.768371 ], [ -122.251144, 37.77086 ], [ -122.253667, 37.771954 ], [ -122.255338, 37.77269 ], [ -122.258965, 37.77427 ], [ -122.257832, 37.776037 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428500", "AFFGEOID": "1400000US06001428500", "GEOID": "06001428500", "NAME_x": "4285", "LSAD": "CT", "ALAND": 624197, "AWATER": 383522, "NAME_y": "Census Tract 4285, Alameda County, California", "c_race": 3152, "c_white": 1293, "c_black": 268, "c_asian": 940, "c_latinx": 378, "state_fips": 6, "county_fips": 1, "tract_fips": 428500, "med_rent": 1873.0, "med_hhinc": 88333.0, "c_tenants": 1422, "c_owners": 485, "c_renters": 937, "c_movers": 3125, "c_stay": 2641, "c_movelocal": 282, "c_movecounty": 102, "c_movestate": 100, "c_moveabroad": 0, "c_commute": 1514, "c_car": 910, "c_carpool": 65, "c_transit": 374, "c_bike": 50, "c_walk": 18, "year": 2018, "FIPS_11_digit": "06001428500", "p_white": 0.41021573604060912, "p_black": 0.085025380710659904, "p_asian": 0.29822335025380708, "p_latinx": 0.1199238578680203, "p_owners": 0.34106891701828412, "p_renters": 0.65893108298171588, "p_stay": 0.84512, "p_movelocal": 0.09024, "p_movecounty": 0.03264, "p_movestate": 0.032, "p_moveabroad": 0.0, "p_car": 0.60105680317040955, "p_carpool": 0.042932628797886299, "p_transit": 0.2470277410832232, "p_bike": 0.033025099075297201, "p_walk": 0.011889035667107001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.26414, 37.759439 ], [ -122.262015, 37.762939 ], [ -122.261421, 37.763845 ], [ -122.263677, 37.765421 ], [ -122.263596, 37.767431 ], [ -122.255755, 37.764173 ], [ -122.252881, 37.762913 ], [ -122.254022, 37.760677 ], [ -122.254623, 37.760906 ], [ -122.254926, 37.75988 ], [ -122.257007371748003, 37.756323829985696 ], [ -122.264503275634013, 37.758932301582504 ], [ -122.26414, 37.759439 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432100", "AFFGEOID": "1400000US06001432100", "GEOID": "06001432100", "NAME_x": "4321", "LSAD": "CT", "ALAND": 1105772, "AWATER": 0, "NAME_y": "Census Tract 4321, Alameda County, California", "c_race": 3739, "c_white": 1628, "c_black": 463, "c_asian": 757, "c_latinx": 674, "state_fips": 6, "county_fips": 1, "tract_fips": 432100, "med_rent": 1563.0, "med_hhinc": 118088.0, "c_tenants": 1512, "c_owners": 1112, "c_renters": 400, "c_movers": 3711, "c_stay": 3213, "c_movelocal": 322, "c_movecounty": 126, "c_movestate": 34, "c_moveabroad": 16, "c_commute": 2153, "c_car": 1308, "c_carpool": 254, "c_transit": 309, "c_bike": 18, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001432100", "p_white": 0.43541053757689219, "p_black": 0.1238299010430596, "p_asian": 0.2024605509494517, "p_latinx": 0.1802621021663546, "p_owners": 0.73544973544973546, "p_renters": 0.26455026455026448, "p_stay": 0.8658043654001617, "p_movelocal": 0.0867690649420641, "p_movecounty": 0.033953112368633701, "p_movestate": 0.0091619509566154, "p_moveabroad": 0.0043115063325248996, "p_car": 0.6075243845796563, "p_carpool": 0.1179749187180678, "p_transit": 0.14352066883418479, "p_bike": 0.0083604273107291995, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.155119, 37.739082 ], [ -122.150187, 37.740439 ], [ -122.148725, 37.740859 ], [ -122.147436, 37.741289 ], [ -122.147351, 37.741365 ], [ -122.14699, 37.7418 ], [ -122.146721, 37.74217 ], [ -122.146522, 37.742499 ], [ -122.146051, 37.742802 ], [ -122.141134, 37.737767 ], [ -122.14071, 37.737182 ], [ -122.140243, 37.736051 ], [ -122.139886, 37.73447 ], [ -122.138977, 37.730932 ], [ -122.140541, 37.731462 ], [ -122.147977, 37.731344 ], [ -122.148234, 37.729729 ], [ -122.148736, 37.729135 ], [ -122.150195, 37.73237 ], [ -122.151063, 37.733566 ], [ -122.152439, 37.735476 ], [ -122.155119, 37.739082 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433800", "AFFGEOID": "1400000US06001433800", "GEOID": "06001433800", "NAME_x": "4338", "LSAD": "CT", "ALAND": 1600706, "AWATER": 0, "NAME_y": "Census Tract 4338, Alameda County, California", "c_race": 7849, "c_white": 910, "c_black": 1034, "c_asian": 2717, "c_latinx": 3125, "state_fips": 6, "county_fips": 1, "tract_fips": 433800, "med_rent": 1430.0, "med_hhinc": 61548.0, "c_tenants": 2600, "c_owners": 1136, "c_renters": 1464, "c_movers": 7849, "c_stay": 7114, "c_movelocal": 345, "c_movecounty": 207, "c_movestate": 23, "c_moveabroad": 160, "c_commute": 3780, "c_car": 2512, "c_carpool": 341, "c_transit": 528, "c_bike": 95, "c_walk": 95, "year": 2018, "FIPS_11_digit": "06001433800", "p_white": 0.1159383360937699, "p_black": 0.1317365269461078, "p_asian": 0.34615874633711302, "p_latinx": 0.39813989043190218, "p_owners": 0.43692307692307691, "p_renters": 0.56307692307692303, "p_stay": 0.90635749777041663, "p_movelocal": 0.043954643903681999, "p_movecounty": 0.0263727863422091, "p_movestate": 0.0029303095935786999, "p_moveabroad": 0.0203847623901133, "p_car": 0.66455026455026456, "p_carpool": 0.090211640211640201, "p_transit": 0.1396825396825396, "p_bike": 0.0251322751322751, "p_walk": 0.0251322751322751 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.130024, 37.696939 ], [ -122.12944, 37.69746 ], [ -122.128509, 37.69812 ], [ -122.128359, 37.6982 ], [ -122.123689, 37.701754 ], [ -122.123695, 37.701926 ], [ -122.124559, 37.702507 ], [ -122.127095, 37.704304 ], [ -122.129196, 37.705793 ], [ -122.129285, 37.705855 ], [ -122.124802, 37.709334 ], [ -122.124259, 37.709833 ], [ -122.122551, 37.708533 ], [ -122.120937, 37.707318 ], [ -122.116647, 37.705303 ], [ -122.117229, 37.703559 ], [ -122.120913, 37.699979 ], [ -122.118868, 37.698542 ], [ -122.119021, 37.691991 ], [ -122.119031, 37.691617 ], [ -122.118946, 37.690315 ], [ -122.118944, 37.68946 ], [ -122.127153, 37.690719 ], [ -122.127785, 37.690765 ], [ -122.128145, 37.69106 ], [ -122.12973, 37.692463 ], [ -122.129883, 37.692596 ], [ -122.130061, 37.692755 ], [ -122.130024, 37.696939 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436300", "AFFGEOID": "1400000US06001436300", "GEOID": "06001436300", "NAME_x": "4363", "LSAD": "CT", "ALAND": 1831139, "AWATER": 0, "NAME_y": "Census Tract 4363, Alameda County, California", "c_race": 9279, "c_white": 1159, "c_black": 1092, "c_asian": 2303, "c_latinx": 4462, "state_fips": 6, "county_fips": 1, "tract_fips": 436300, "med_rent": 1683.0, "med_hhinc": 76369.0, "c_tenants": 2884, "c_owners": 1128, "c_renters": 1756, "c_movers": 9237, "c_stay": 8377, "c_movelocal": 270, "c_movecounty": 403, "c_movestate": 83, "c_moveabroad": 104, "c_commute": 4235, "c_car": 3170, "c_carpool": 370, "c_transit": 498, "c_bike": 0, "c_walk": 2, "year": 2018, "FIPS_11_digit": "06001436300", "p_white": 0.1249057010453712, "p_black": 0.1176850953766569, "p_asian": 0.2481948485828214, "p_latinx": 0.48087078348960011, "p_owners": 0.39112343966712898, "p_renters": 0.60887656033287096, "p_stay": 0.9068961784129046, "p_movelocal": 0.029230269568041499, "p_movecounty": 0.043628883836743501, "p_movestate": 0.0089856013857311998, "p_moveabroad": 0.0112590667965789, "p_car": 0.74852420306965761, "p_carpool": 0.087367178276269095, "p_transit": 0.11759149940968119, "p_bike": 0.0, "p_walk": 0.00047225501770949997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.101682, 37.669365 ], [ -122.098255, 37.670759 ], [ -122.099839, 37.673222 ], [ -122.095011, 37.675179 ], [ -122.09398, 37.674467 ], [ -122.088112, 37.670501 ], [ -122.083076, 37.666916 ], [ -122.082336, 37.666154 ], [ -122.083302, 37.664395 ], [ -122.083358, 37.664295 ], [ -122.086718, 37.658182 ], [ -122.087972, 37.655904 ], [ -122.092598, 37.659886 ], [ -122.100231, 37.666572 ], [ -122.098951, 37.667001 ], [ -122.101682, 37.669365 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440334", "AFFGEOID": "1400000US06001440334", "GEOID": "06001440334", "NAME_x": "4403.34", "LSAD": "CT", "ALAND": 1024215, "AWATER": 0, "NAME_y": "Census Tract 4403.34, Alameda County, California", "c_race": 4750, "c_white": 621, "c_black": 243, "c_asian": 3016, "c_latinx": 625, "state_fips": 6, "county_fips": 1, "tract_fips": 440334, "med_rent": 2463.0, "med_hhinc": 117353.0, "c_tenants": 1102, "c_owners": 835, "c_renters": 267, "c_movers": 4700, "c_stay": 4463, "c_movelocal": 114, "c_movecounty": 31, "c_movestate": 0, "c_moveabroad": 92, "c_commute": 1405, "c_car": 1192, "c_carpool": 88, "c_transit": 73, "c_bike": 8, "c_walk": 5, "year": 2018, "FIPS_11_digit": "06001440334", "p_white": 0.1307368421052631, "p_black": 0.051157894736842097, "p_asian": 0.63494736842105259, "p_latinx": 0.13157894736842099, "p_owners": 0.75771324863883849, "p_renters": 0.24228675136116151, "p_stay": 0.94957446808510637, "p_movelocal": 0.0242553191489361, "p_movecounty": 0.0065957446808510003, "p_movestate": 0.0, "p_moveabroad": 0.019574468085106302, "p_car": 0.84839857651245554, "p_carpool": 0.062633451957295305, "p_transit": 0.051957295373665398, "p_bike": 0.0056939501779359001, "p_walk": 0.0035587188612099 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.074482, 37.596914 ], [ -122.073757, 37.596433 ], [ -122.07097, 37.596948 ], [ -122.067005, 37.598014 ], [ -122.061052, 37.598688 ], [ -122.056609, 37.592457 ], [ -122.060209, 37.591767 ], [ -122.064317, 37.586748 ], [ -122.064709, 37.587067 ], [ -122.068734, 37.591103 ], [ -122.069993, 37.592375 ], [ -122.073773, 37.596434 ], [ -122.074482, 37.596914 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441921", "AFFGEOID": "1400000US06001441921", "GEOID": "06001441921", "NAME_x": "4419.21", "LSAD": "CT", "ALAND": 846806, "AWATER": 0, "NAME_y": "Census Tract 4419.21, Alameda County, California", "c_race": 4084, "c_white": 640, "c_black": 269, "c_asian": 1693, "c_latinx": 1151, "state_fips": 6, "county_fips": 1, "tract_fips": 441921, "med_rent": 2603.0, "med_hhinc": 130905.0, "c_tenants": 1260, "c_owners": 506, "c_renters": 754, "c_movers": 3994, "c_stay": 3627, "c_movelocal": 119, "c_movecounty": 157, "c_movestate": 57, "c_moveabroad": 34, "c_commute": 1641, "c_car": 1059, "c_carpool": 152, "c_transit": 203, "c_bike": 0, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001441921", "p_white": 0.1567091087169441, "p_black": 0.065866797257590495, "p_asian": 0.41454456415279139, "p_latinx": 0.2818315377081293, "p_owners": 0.4015873015873016, "p_renters": 0.5984126984126984, "p_stay": 0.90811216825237862, "p_movelocal": 0.029794692038057, "p_movecounty": 0.039308963445167697, "p_movestate": 0.0142714071106659, "p_moveabroad": 0.0085127691537305004, "p_car": 0.6453382084095064, "p_carpool": 0.092626447288238795, "p_transit": 0.1237050578915295, "p_bike": 0.0, "p_walk": 0.0060938452163315001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.972768, 37.542258 ], [ -121.973085, 37.544047 ], [ -121.973119, 37.544395 ], [ -121.972262, 37.549115 ], [ -121.968099, 37.546913 ], [ -121.965301, 37.545087 ], [ -121.962678, 37.543428 ], [ -121.960601, 37.541672 ], [ -121.961338, 37.541128 ], [ -121.963998, 37.538062 ], [ -121.965459, 37.536376 ], [ -121.966362, 37.536888 ], [ -121.970699, 37.539351 ], [ -121.973146, 37.540693 ], [ -121.972768, 37.542258 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442100", "AFFGEOID": "1400000US06001442100", "GEOID": "06001442100", "NAME_x": "4421", "LSAD": "CT", "ALAND": 1824957, "AWATER": 0, "NAME_y": "Census Tract 4421, Alameda County, California", "c_race": 5303, "c_white": 772, "c_black": 34, "c_asian": 4329, "c_latinx": 48, "state_fips": 6, "county_fips": 1, "tract_fips": 442100, "med_rent": 2813.0, "med_hhinc": 186731.0, "c_tenants": 1622, "c_owners": 1426, "c_renters": 196, "c_movers": 5285, "c_stay": 4848, "c_movelocal": 217, "c_movecounty": 10, "c_movestate": 99, "c_moveabroad": 111, "c_commute": 2360, "c_car": 1655, "c_carpool": 263, "c_transit": 205, "c_bike": 10, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001442100", "p_white": 0.14557797473128409, "p_black": 0.0064114652083726003, "p_asian": 0.81633037903073735, "p_latinx": 0.0090514802941730997, "p_owners": 0.87916152897657218, "p_renters": 0.1208384710234278, "p_stay": 0.91731315042573325, "p_movelocal": 0.041059602649006599, "p_movecounty": 0.0018921475875117999, "p_movestate": 0.018732261116366999, "p_moveabroad": 0.021002838221381201, "p_car": 0.70127118644067798, "p_carpool": 0.1114406779661017, "p_transit": 0.086864406779660994, "p_bike": 0.0042372881355932004, "p_walk": 0.0080508474576270993 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.955638, 37.55985 ], [ -121.945984, 37.553856 ], [ -121.939854, 37.54988 ], [ -121.94464, 37.545099 ], [ -121.94815, 37.541356 ], [ -121.953469, 37.535342 ], [ -121.953342, 37.533211 ], [ -121.953715, 37.533154 ], [ -121.954346, 37.541835 ], [ -121.954944, 37.550201 ], [ -121.955638, 37.55985 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443321", "AFFGEOID": "1400000US06001443321", "GEOID": "06001443321", "NAME_x": "4433.21", "LSAD": "CT", "ALAND": 559915, "AWATER": 0, "NAME_y": "Census Tract 4433.21, Alameda County, California", "c_race": 3315, "c_white": 239, "c_black": 49, "c_asian": 2563, "c_latinx": 389, "state_fips": 6, "county_fips": 1, "tract_fips": 443321, "med_rent": 1994.0, "med_hhinc": 129142.0, "c_tenants": 1107, "c_owners": 480, "c_renters": 627, "c_movers": 3299, "c_stay": 2733, "c_movelocal": 188, "c_movecounty": 322, "c_movestate": 11, "c_moveabroad": 45, "c_commute": 1305, "c_car": 1022, "c_carpool": 214, "c_transit": 20, "c_bike": 0, "c_walk": 37, "year": 2018, "FIPS_11_digit": "06001443321", "p_white": 0.072096530920060298, "p_black": 0.0147812971342383, "p_asian": 0.77315233785822024, "p_latinx": 0.1173453996983408, "p_owners": 0.43360433604336041, "p_renters": 0.56639566395663954, "p_stay": 0.82843285844195214, "p_movelocal": 0.056986965747196097, "p_movecounty": 0.097605334949984801, "p_movestate": 0.0033343437405273998, "p_moveabroad": 0.0136404971203394, "p_car": 0.78314176245210732, "p_carpool": 0.16398467432950189, "p_transit": 0.0153256704980842, "p_bike": 0.0, "p_walk": 0.028352490421455899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.929543, 37.489847 ], [ -121.927494, 37.491309 ], [ -121.923012, 37.495572 ], [ -121.919584, 37.492341 ], [ -121.918502, 37.490941 ], [ -121.919556, 37.489959 ], [ -121.924182, 37.488358 ], [ -121.923182, 37.486132 ], [ -121.926726, 37.48486 ], [ -121.927922, 37.486984 ], [ -121.929169, 37.488837 ], [ -121.929543, 37.489847 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451505", "AFFGEOID": "1400000US06001451505", "GEOID": "06001451505", "NAME_x": "4515.05", "LSAD": "CT", "ALAND": 1373459, "AWATER": 0, "NAME_y": "Census Tract 4515.05, Alameda County, California", "c_race": 3351, "c_white": 2566, "c_black": 0, "c_asian": 192, "c_latinx": 517, "state_fips": 6, "county_fips": 1, "tract_fips": 451505, "med_rent": 2738.0, "med_hhinc": 160333.0, "c_tenants": 1190, "c_owners": 1045, "c_renters": 145, "c_movers": 3351, "c_stay": 3051, "c_movelocal": 222, "c_movecounty": 69, "c_movestate": 9, "c_moveabroad": 0, "c_commute": 1856, "c_car": 1357, "c_carpool": 200, "c_transit": 31, "c_bike": 56, "c_walk": 31, "year": 2018, "FIPS_11_digit": "06001451505", "p_white": 0.76574156968069229, "p_black": 0.0, "p_asian": 0.057296329453894297, "p_latinx": 0.15428230378991339, "p_owners": 0.87815126050420167, "p_renters": 0.1218487394957983, "p_stay": 0.91047448522829, "p_movelocal": 0.066248880931065304, "p_movecounty": 0.0205908683974932, "p_movestate": 0.0026857654431511999, "p_moveabroad": 0.0, "p_car": 0.73114224137931039, "p_carpool": 0.1077586206896551, "p_transit": 0.016702586206896498, "p_bike": 0.030172413793103401, "p_walk": 0.016702586206896498 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.732158, 37.69381 ], [ -121.725725, 37.69528 ], [ -121.723426, 37.695183 ], [ -121.721612, 37.694737 ], [ -121.720279, 37.694452 ], [ -121.718592, 37.694423 ], [ -121.718682, 37.681106 ], [ -121.720526, 37.682197 ], [ -121.725073, 37.683616 ], [ -121.725204, 37.684335 ], [ -121.726271, 37.685149 ], [ -121.72679, 37.685418 ], [ -121.732318, 37.687839 ], [ -121.732158, 37.69381 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400500", "AFFGEOID": "1400000US06001400500", "GEOID": "06001400500", "NAME_x": "4005", "LSAD": "CT", "ALAND": 590307, "AWATER": 0, "NAME_y": "Census Tract 4005, Alameda County, California", "c_race": 3786, "c_white": 1885, "c_black": 990, "c_asian": 264, "c_latinx": 334, "state_fips": 6, "county_fips": 1, "tract_fips": 400500, "med_rent": 1627.0, "med_hhinc": 103846.0, "c_tenants": 1622, "c_owners": 605, "c_renters": 1017, "c_movers": 3745, "c_stay": 3065, "c_movelocal": 309, "c_movecounty": 180, "c_movestate": 145, "c_moveabroad": 46, "c_commute": 2325, "c_car": 983, "c_carpool": 156, "c_transit": 619, "c_bike": 177, "c_walk": 94, "year": 2018, "FIPS_11_digit": "06001400500", "p_white": 0.4978869519281563, "p_black": 0.26148969889064971, "p_asian": 0.069730586370839898, "p_latinx": 0.088219756999471696, "p_owners": 0.3729963008631319, "p_renters": 0.62700369913686804, "p_stay": 0.81842456608811753, "p_movelocal": 0.082510013351134795, "p_movecounty": 0.048064085447262997, "p_movestate": 0.038718291054739597, "p_moveabroad": 0.012283044058744899, "p_car": 0.42279569892473118, "p_carpool": 0.0670967741935483, "p_transit": 0.26623655913978489, "p_bike": 0.0761290322580645, "p_walk": 0.040430107526881698 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.269409, 37.848107 ], [ -122.268909, 37.851652 ], [ -122.266128, 37.852009 ], [ -122.26225, 37.852696 ], [ -122.261829, 37.85258 ], [ -122.260223, 37.852793 ], [ -122.261019, 37.847233 ], [ -122.261296, 37.845027 ], [ -122.26514, 37.84453 ], [ -122.26807, 37.844136 ], [ -122.268183, 37.844585 ], [ -122.268763, 37.847261 ], [ -122.269226, 37.847201 ], [ -122.269409, 37.848107 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401500", "AFFGEOID": "1400000US06001401500", "GEOID": "06001401500", "NAME_x": "4015", "LSAD": "CT", "ALAND": 468922, "AWATER": 0, "NAME_y": "Census Tract 4015, Alameda County, California", "c_race": 2663, "c_white": 1070, "c_black": 974, "c_asian": 103, "c_latinx": 310, "state_fips": 6, "county_fips": 1, "tract_fips": 401500, "med_rent": 1260.0, "med_hhinc": 61406.0, "c_tenants": 1080, "c_owners": 377, "c_renters": 703, "c_movers": 2646, "c_stay": 1932, "c_movelocal": 392, "c_movecounty": 284, "c_movestate": 17, "c_moveabroad": 21, "c_commute": 1587, "c_car": 637, "c_carpool": 175, "c_transit": 372, "c_bike": 64, "c_walk": 103, "year": 2018, "FIPS_11_digit": "06001401500", "p_white": 0.40180247840781069, "p_black": 0.3657529102515959, "p_asian": 0.038678182500938699, "p_latinx": 0.1164100638377769, "p_owners": 0.34907407407407409, "p_renters": 0.65092592592592591, "p_stay": 0.73015873015873012, "p_movelocal": 0.14814814814814811, "p_movecounty": 0.10733182161753591, "p_movestate": 0.0064247921390778, "p_moveabroad": 0.0079365079365078996, "p_car": 0.40138626339004407, "p_carpool": 0.1102709514807813, "p_transit": 0.23440453686200369, "p_bike": 0.040327662255828602, "p_walk": 0.064902331442974096 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.284939, 37.822769 ], [ -122.283643, 37.824406 ], [ -122.281191, 37.827478 ], [ -122.280896, 37.827667 ], [ -122.27872, 37.827188 ], [ -122.278611, 37.826878 ], [ -122.277915, 37.824623 ], [ -122.277372, 37.822934 ], [ -122.276697, 37.820883 ], [ -122.276246, 37.819478 ], [ -122.276053, 37.81887 ], [ -122.286226, 37.821163 ], [ -122.284939, 37.822769 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405600", "AFFGEOID": "1400000US06001405600", "GEOID": "06001405600", "NAME_x": "4056", "LSAD": "CT", "ALAND": 428774, "AWATER": 0, "NAME_y": "Census Tract 4056, Alameda County, California", "c_race": 3292, "c_white": 828, "c_black": 528, "c_asian": 728, "c_latinx": 934, "state_fips": 6, "county_fips": 1, "tract_fips": 405600, "med_rent": 1303.0, "med_hhinc": 64583.0, "c_tenants": 1409, "c_owners": 418, "c_renters": 991, "c_movers": 3232, "c_stay": 2943, "c_movelocal": 153, "c_movecounty": 136, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 2144, "c_car": 1184, "c_carpool": 193, "c_transit": 575, "c_bike": 31, "c_walk": 20, "year": 2018, "FIPS_11_digit": "06001405600", "p_white": 0.25151883353584448, "p_black": 0.1603888213851761, "p_asian": 0.22114216281895499, "p_latinx": 0.28371810449574719, "p_owners": 0.29666430092264018, "p_renters": 0.70333569907735982, "p_stay": 0.91058168316831678, "p_movelocal": 0.047339108910890999, "p_movecounty": 0.042079207920791999, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.55223880597014929, "p_carpool": 0.0900186567164179, "p_transit": 0.26819029850746268, "p_bike": 0.0144589552238805, "p_walk": 0.0093283582089552005 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.242198, 37.801722 ], [ -122.241671, 37.802399 ], [ -122.240188, 37.802549 ], [ -122.237222, 37.803121 ], [ -122.234866, 37.803376 ], [ -122.233397, 37.804375 ], [ -122.23117, 37.802605 ], [ -122.233791, 37.800539 ], [ -122.234679, 37.799827 ], [ -122.235229, 37.799419 ], [ -122.236024, 37.798408 ], [ -122.237121, 37.797052 ], [ -122.237973, 37.79646 ], [ -122.239635, 37.797933 ], [ -122.240474, 37.798669 ], [ -122.241291, 37.799393 ], [ -122.242961, 37.800873 ], [ -122.242198, 37.801722 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409400", "AFFGEOID": "1400000US06001409400", "GEOID": "06001409400", "NAME_x": "4094", "LSAD": "CT", "ALAND": 1253614, "AWATER": 0, "NAME_y": "Census Tract 4094, Alameda County, California", "c_race": 5022, "c_white": 216, "c_black": 858, "c_asian": 413, "c_latinx": 3454, "state_fips": 6, "county_fips": 1, "tract_fips": 409400, "med_rent": 1349.0, "med_hhinc": 42243.0, "c_tenants": 1252, "c_owners": 467, "c_renters": 785, "c_movers": 4871, "c_stay": 4479, "c_movelocal": 174, "c_movecounty": 46, "c_movestate": 12, "c_moveabroad": 160, "c_commute": 1966, "c_car": 1214, "c_carpool": 362, "c_transit": 185, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001409400", "p_white": 0.043010752688171998, "p_black": 0.17084826762246111, "p_asian": 0.0822381521306252, "p_latinx": 0.68777379530067706, "p_owners": 0.3730031948881789, "p_renters": 0.6269968051118211, "p_stay": 0.91952371176349823, "p_movelocal": 0.035721617737630801, "p_movecounty": 0.0094436460685689994, "p_movestate": 0.0024635598439744998, "p_moveabroad": 0.032847464586327202, "p_car": 0.61749745676500511, "p_carpool": 0.18413021363173951, "p_transit": 0.094099694811800597, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.185952, 37.748986 ], [ -122.183321, 37.746462 ], [ -122.180062, 37.748161 ], [ -122.174969, 37.750546 ], [ -122.172521, 37.747223 ], [ -122.170489, 37.744471 ], [ -122.173901, 37.742814 ], [ -122.174793, 37.742388 ], [ -122.176947, 37.741364 ], [ -122.181561, 37.737835 ], [ -122.190731, 37.745815 ], [ -122.185952, 37.748986 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422400", "AFFGEOID": "1400000US06001422400", "GEOID": "06001422400", "NAME_x": "4224", "LSAD": "CT", "ALAND": 475570, "AWATER": 0, "NAME_y": "Census Tract 4224, Alameda County, California", "c_race": 4386, "c_white": 2223, "c_black": 44, "c_asian": 1396, "c_latinx": 495, "state_fips": 6, "county_fips": 1, "tract_fips": 422400, "med_rent": 1712.0, "med_hhinc": 62212.0, "c_tenants": 2077, "c_owners": 296, "c_renters": 1781, "c_movers": 4367, "c_stay": 2722, "c_movelocal": 585, "c_movecounty": 481, "c_movestate": 180, "c_moveabroad": 399, "c_commute": 2775, "c_car": 531, "c_carpool": 181, "c_transit": 519, "c_bike": 268, "c_walk": 1065, "year": 2018, "FIPS_11_digit": "06001422400", "p_white": 0.50683994528043774, "p_black": 0.010031919744641999, "p_asian": 0.31828545371637029, "p_latinx": 0.1128590971272229, "p_owners": 0.14251324025036111, "p_renters": 0.85748675974963895, "p_stay": 0.6233111976185024, "p_movelocal": 0.13395923975269061, "p_movecounty": 0.11014426379665671, "p_movestate": 0.041218227616212501, "p_moveabroad": 0.091367071215937706, "p_car": 0.19135135135135131, "p_carpool": 0.065225225225225197, "p_transit": 0.187027027027027, "p_bike": 0.096576576576576506, "p_walk": 0.38378378378378381 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.273746, 37.877788 ], [ -122.269178, 37.878377 ], [ -122.265752, 37.878806 ], [ -122.265646, 37.877305 ], [ -122.265447, 37.876515 ], [ -122.265383, 37.874297 ], [ -122.266329, 37.874188 ], [ -122.266159, 37.872389 ], [ -122.268403, 37.87211 ], [ -122.273067, 37.871512 ], [ -122.273265, 37.873325 ], [ -122.273357, 37.874216 ], [ -122.273574, 37.87598 ], [ -122.273746, 37.877788 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432300", "AFFGEOID": "1400000US06001432300", "GEOID": "06001432300", "NAME_x": "4323", "LSAD": "CT", "ALAND": 1042400, "AWATER": 0, "NAME_y": "Census Tract 4323, Alameda County, California", "c_race": 4719, "c_white": 900, "c_black": 479, "c_asian": 1456, "c_latinx": 1589, "state_fips": 6, "county_fips": 1, "tract_fips": 432300, "med_rent": 1468.0, "med_hhinc": 85669.0, "c_tenants": 1655, "c_owners": 980, "c_renters": 675, "c_movers": 4672, "c_stay": 4308, "c_movelocal": 269, "c_movecounty": 68, "c_movestate": 27, "c_moveabroad": 0, "c_commute": 2567, "c_car": 1568, "c_carpool": 422, "c_transit": 374, "c_bike": 11, "c_walk": 30, "year": 2018, "FIPS_11_digit": "06001432300", "p_white": 0.1907183725365543, "p_black": 0.10150455605001051, "p_asian": 0.30853994490358128, "p_latinx": 0.33672388217842758, "p_owners": 0.59214501510574014, "p_renters": 0.40785498489425981, "p_stay": 0.9220890410958904, "p_movelocal": 0.057577054794520501, "p_movecounty": 0.014554794520547899, "p_movestate": 0.0057791095890410002, "p_moveabroad": 0.0, "p_car": 0.6108297623685236, "p_carpool": 0.16439423451499799, "p_transit": 0.14569536423841059, "p_bike": 0.0042851577717179, "p_walk": 0.0116867939228671 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.170497, 37.731869 ], [ -122.170097, 37.732056 ], [ -122.169769, 37.732211 ], [ -122.171529, 37.73501 ], [ -122.167499, 37.736898 ], [ -122.167403, 37.736866 ], [ -122.16636, 37.737294 ], [ -122.165546, 37.737655 ], [ -122.165472, 37.737689 ], [ -122.16416, 37.73594 ], [ -122.163336, 37.73486 ], [ -122.161755, 37.732735 ], [ -122.160328, 37.730825 ], [ -122.157524, 37.726871 ], [ -122.158875, 37.725502 ], [ -122.161079, 37.726244 ], [ -122.167507, 37.726322 ], [ -122.170121, 37.72778 ], [ -122.17043, 37.727836 ], [ -122.17404, 37.73119 ], [ -122.170497, 37.731869 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433200", "AFFGEOID": "1400000US06001433200", "GEOID": "06001433200", "NAME_x": "4332", "LSAD": "CT", "ALAND": 3174901, "AWATER": 0, "NAME_y": "Census Tract 4332, Alameda County, California", "c_race": 7625, "c_white": 1383, "c_black": 1617, "c_asian": 2611, "c_latinx": 1667, "state_fips": 6, "county_fips": 1, "tract_fips": 433200, "med_rent": 1219.0, "med_hhinc": 44693.0, "c_tenants": 2754, "c_owners": 1161, "c_renters": 1593, "c_movers": 7395, "c_stay": 6564, "c_movelocal": 638, "c_movecounty": 113, "c_movestate": 37, "c_moveabroad": 43, "c_commute": 3205, "c_car": 2421, "c_carpool": 293, "c_transit": 309, "c_bike": 22, "c_walk": 17, "year": 2018, "FIPS_11_digit": "06001433200", "p_white": 0.18137704918032779, "p_black": 0.21206557377049179, "p_asian": 0.34242622950819668, "p_latinx": 0.21862295081967209, "p_owners": 0.42156862745098039, "p_renters": 0.57843137254901966, "p_stay": 0.88762677484787023, "p_movelocal": 0.086274509803921498, "p_movecounty": 0.015280594996619301, "p_movestate": 0.0050033806626098003, "p_moveabroad": 0.0058147396889789999, "p_car": 0.75538221528861149, "p_carpool": 0.091419656786271397, "p_transit": 0.0964118564742589, "p_bike": 0.0068642745709828002, "p_walk": 0.0053042121684867003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.166672, 37.710422 ], [ -122.155593, 37.715082 ], [ -122.147152, 37.707695 ], [ -122.142381, 37.703541 ], [ -122.140363, 37.701761 ], [ -122.130061, 37.692755 ], [ -122.129883, 37.692596 ], [ -122.12973, 37.692463 ], [ -122.128145, 37.69106 ], [ -122.130131, 37.69112 ], [ -122.130104, 37.686737 ], [ -122.132347, 37.686709 ], [ -122.13585, 37.689132 ], [ -122.138886, 37.690835 ], [ -122.14085, 37.692339 ], [ -122.14292, 37.693812 ], [ -122.143839, 37.6946 ], [ -122.149038, 37.698212 ], [ -122.159817, 37.705648 ], [ -122.166672, 37.710422 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436900", "AFFGEOID": "1400000US06001436900", "GEOID": "06001436900", "NAME_x": "4369", "LSAD": "CT", "ALAND": 1207024, "AWATER": 0, "NAME_y": "Census Tract 4369, Alameda County, California", "c_race": 6513, "c_white": 798, "c_black": 512, "c_asian": 1056, "c_latinx": 3811, "state_fips": 6, "county_fips": 1, "tract_fips": 436900, "med_rent": 1487.0, "med_hhinc": 62285.0, "c_tenants": 1865, "c_owners": 781, "c_renters": 1084, "c_movers": 6438, "c_stay": 5955, "c_movelocal": 315, "c_movecounty": 117, "c_movestate": 12, "c_moveabroad": 39, "c_commute": 3152, "c_car": 2260, "c_carpool": 407, "c_transit": 291, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001436900", "p_white": 0.12252418240442189, "p_black": 0.078612006755719305, "p_asian": 0.16213726393367109, "p_latinx": 0.58513741747274683, "p_owners": 0.41876675603217151, "p_renters": 0.58123324396782838, "p_stay": 0.92497670083876982, "p_movelocal": 0.048928238583410999, "p_movecounty": 0.018173345759552598, "p_movestate": 0.0018639328984155999, "p_moveabroad": 0.0060577819198507996, "p_car": 0.71700507614213194, "p_carpool": 0.12912436548223349, "p_transit": 0.092322335025380703, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.117588, 37.665804 ], [ -122.110789, 37.666178 ], [ -122.109488, 37.66625 ], [ -122.107778, 37.666352 ], [ -122.105877, 37.663287 ], [ -122.104762, 37.661487 ], [ -122.10161, 37.656422 ], [ -122.105261, 37.655035 ], [ -122.107319, 37.654253 ], [ -122.110413, 37.653156 ], [ -122.113675, 37.65826 ], [ -122.116484, 37.662806 ], [ -122.118141, 37.665596 ], [ -122.117588, 37.665804 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441523", "AFFGEOID": "1400000US06001441523", "GEOID": "06001441523", "NAME_x": "4415.23", "LSAD": "CT", "ALAND": 467065, "AWATER": 0, "NAME_y": "Census Tract 4415.23, Alameda County, California", "c_race": 4267, "c_white": 387, "c_black": 31, "c_asian": 3330, "c_latinx": 328, "state_fips": 6, "county_fips": 1, "tract_fips": 441523, "med_rent": 2394.0, "med_hhinc": 138917.0, "c_tenants": 1415, "c_owners": 650, "c_renters": 765, "c_movers": 4200, "c_stay": 3582, "c_movelocal": 164, "c_movecounty": 206, "c_movestate": 74, "c_moveabroad": 174, "c_commute": 1611, "c_car": 1081, "c_carpool": 234, "c_transit": 165, "c_bike": 0, "c_walk": 16, "year": 2018, "FIPS_11_digit": "06001441523", "p_white": 0.090696039371923998, "p_black": 0.0072650574173891997, "p_asian": 0.78040778064213734, "p_latinx": 0.076868994609796099, "p_owners": 0.45936395759717308, "p_renters": 0.54063604240282681, "p_stay": 0.85285714285714287, "p_movelocal": 0.039047619047618998, "p_movecounty": 0.049047619047619, "p_movestate": 0.0176190476190476, "p_moveabroad": 0.041428571428571398, "p_car": 0.67101179391682186, "p_carpool": 0.14525139664804471, "p_transit": 0.10242085661080071, "p_bike": 0.0, "p_walk": 0.0099317194289260998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.051618, 37.566778 ], [ -122.047157, 37.567492 ], [ -122.045396, 37.567774 ], [ -122.043128, 37.56773 ], [ -122.041645, 37.56634 ], [ -122.041476, 37.56496 ], [ -122.043967, 37.562632 ], [ -122.048483, 37.560763 ], [ -122.049546, 37.562099 ], [ -122.050557, 37.563433 ], [ -122.051018, 37.565772 ], [ -122.051618, 37.566778 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443322", "AFFGEOID": "1400000US06001443322", "GEOID": "06001443322", "NAME_x": "4433.22", "LSAD": "CT", "ALAND": 1148283, "AWATER": 0, "NAME_y": "Census Tract 4433.22, Alameda County, California", "c_race": 3313, "c_white": 632, "c_black": 63, "c_asian": 2241, "c_latinx": 160, "state_fips": 6, "county_fips": 1, "tract_fips": 443322, "med_rent": 2659.0, "med_hhinc": 167917.0, "c_tenants": 962, "c_owners": 865, "c_renters": 97, "c_movers": 3261, "c_stay": 3028, "c_movelocal": 47, "c_movecounty": 69, "c_movestate": 96, "c_moveabroad": 21, "c_commute": 1361, "c_car": 1082, "c_carpool": 107, "c_transit": 83, "c_bike": 4, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001443322", "p_white": 0.19076365831572589, "p_black": 0.0190159975852701, "p_asian": 0.67642619981889529, "p_latinx": 0.048294597041955899, "p_owners": 0.89916839916839919, "p_renters": 0.1008316008316008, "p_stay": 0.9285495246856792, "p_movelocal": 0.0144127568230604, "p_movecounty": 0.021159153633854601, "p_movestate": 0.029438822447102098, "p_moveabroad": 0.0064397424103035004, "p_car": 0.79500367376928727, "p_carpool": 0.078618662747979406, "p_transit": 0.0609845701689933, "p_bike": 0.0029390154298309999, "p_walk": 0.0139603232916972 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.926726, 37.48486 ], [ -121.923182, 37.486132 ], [ -121.924182, 37.488358 ], [ -121.919556, 37.489959 ], [ -121.918502, 37.490941 ], [ -121.913802, 37.484061 ], [ -121.913337, 37.482889 ], [ -121.915342, 37.483016 ], [ -121.916846, 37.482553 ], [ -121.914194, 37.478959 ], [ -121.916112, 37.477266 ], [ -121.921084, 37.474995 ], [ -121.924609, 37.481116 ], [ -121.926726, 37.48486 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401700", "AFFGEOID": "1400000US06001401700", "GEOID": "06001401700", "NAME_x": "4017", "LSAD": "CT", "ALAND": 5741757, "AWATER": 5759048, "NAME_y": "Census Tract 4017, Alameda County, California", "c_race": 3002, "c_white": 1021, "c_black": 864, "c_asian": 261, "c_latinx": 731, "state_fips": 6, "county_fips": 1, "tract_fips": 401700, "med_rent": 1679.0, "med_hhinc": 97472.0, "c_tenants": 1289, "c_owners": 710, "c_renters": 579, "c_movers": 2956, "c_stay": 2527, "c_movelocal": 262, "c_movecounty": 130, "c_movestate": 9, "c_moveabroad": 28, "c_commute": 1749, "c_car": 820, "c_carpool": 197, "c_transit": 479, "c_bike": 100, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001401700", "p_white": 0.34010659560293138, "p_black": 0.28780812791472349, "p_asian": 0.086942038640905994, "p_latinx": 0.2435043304463691, "p_owners": 0.55081458494957336, "p_renters": 0.4491854150504267, "p_stay": 0.85487144790257108, "p_movelocal": 0.088633288227334198, "p_movecounty": 0.043978349120432997, "p_movestate": 0.0030446549391068998, "p_moveabroad": 0.0094722598105548006, "p_car": 0.46883933676386508, "p_carpool": 0.11263579188107491, "p_transit": 0.27387078330474551, "p_bike": 0.057175528873642002, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.332638, 37.811216 ], [ -122.323238, 37.810252 ], [ -122.317296, 37.816261 ], [ -122.319198, 37.819078 ], [ -122.330369, 37.82058 ], [ -122.316108, 37.827338 ], [ -122.306125, 37.826024 ], [ -122.296618, 37.828465 ], [ -122.297116981600993, 37.831223745400202 ], [ -122.294462, 37.830559 ], [ -122.293513, 37.830685 ], [ -122.29339, 37.830656 ], [ -122.291029, 37.830103 ], [ -122.281191, 37.827478 ], [ -122.283643, 37.824406 ], [ -122.284939, 37.822769 ], [ -122.286226, 37.821163 ], [ -122.288425, 37.81831 ], [ -122.28967, 37.817002 ], [ -122.289669, 37.816835 ], [ -122.293994, 37.811415 ], [ -122.297754, 37.813283 ], [ -122.300212, 37.810339 ], [ -122.302012, 37.808058 ], [ -122.302386, 37.807123 ], [ -122.304026, 37.807388 ], [ -122.304866, 37.807896 ], [ -122.308546, 37.808287 ], [ -122.311129, 37.809043 ], [ -122.31208, 37.808658 ], [ -122.320197, 37.809318 ], [ -122.323932, 37.807979 ], [ -122.327803, 37.807658 ], [ -122.328704, 37.809858 ], [ -122.334118407598012, 37.810344845950098 ], [ -122.332638, 37.811216 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403701", "AFFGEOID": "1400000US06001403701", "GEOID": "06001403701", "NAME_x": "4037.01", "LSAD": "CT", "ALAND": 173947, "AWATER": 0, "NAME_y": "Census Tract 4037.01, Alameda County, California", "c_race": 2795, "c_white": 1385, "c_black": 555, "c_asian": 306, "c_latinx": 372, "state_fips": 6, "county_fips": 1, "tract_fips": 403701, "med_rent": 1403.0, "med_hhinc": 75141.0, "c_tenants": 1767, "c_owners": 229, "c_renters": 1538, "c_movers": 2795, "c_stay": 2389, "c_movelocal": 180, "c_movecounty": 139, "c_movestate": 87, "c_moveabroad": 0, "c_commute": 1923, "c_car": 718, "c_carpool": 139, "c_transit": 526, "c_bike": 115, "c_walk": 282, "year": 2018, "FIPS_11_digit": "06001403701", "p_white": 0.49552772808586759, "p_black": 0.19856887298747761, "p_asian": 0.10948121645796061, "p_latinx": 0.13309481216457961, "p_owners": 0.12959818902093939, "p_renters": 0.87040181097906055, "p_stay": 0.85474060822898035, "p_movelocal": 0.064400715563506197, "p_movecounty": 0.049731663685152, "p_movestate": 0.031127012522361299, "p_moveabroad": 0.0, "p_car": 0.37337493499739988, "p_carpool": 0.072282891315652603, "p_transit": 0.27353094123764948, "p_bike": 0.059802392095683797, "p_walk": 0.14664586583463329 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.261495, 37.813034 ], [ -122.260867, 37.812406 ], [ -122.258893, 37.813547 ], [ -122.257052, 37.812522 ], [ -122.256414, 37.81092 ], [ -122.255389, 37.810661 ], [ -122.256158, 37.809012 ], [ -122.258549, 37.809408 ], [ -122.260213, 37.810523 ], [ -122.260591, 37.810676 ], [ -122.262463, 37.810945 ], [ -122.261495, 37.813034 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405700", "AFFGEOID": "1400000US06001405700", "GEOID": "06001405700", "NAME_x": "4057", "LSAD": "CT", "ALAND": 546859, "AWATER": 0, "NAME_y": "Census Tract 4057, Alameda County, California", "c_race": 3434, "c_white": 466, "c_black": 877, "c_asian": 1231, "c_latinx": 694, "state_fips": 6, "county_fips": 1, "tract_fips": 405700, "med_rent": 1152.0, "med_hhinc": 53873.0, "c_tenants": 1340, "c_owners": 325, "c_renters": 1015, "c_movers": 3407, "c_stay": 2910, "c_movelocal": 244, "c_movecounty": 91, "c_movestate": 25, "c_moveabroad": 137, "c_commute": 1804, "c_car": 1045, "c_carpool": 234, "c_transit": 365, "c_bike": 18, "c_walk": 106, "year": 2018, "FIPS_11_digit": "06001405700", "p_white": 0.13570180547466509, "p_black": 0.2553873034362259, "p_asian": 0.3584740827023879, "p_latinx": 0.2020966802562609, "p_owners": 0.2425373134328358, "p_renters": 0.7574626865671642, "p_stay": 0.85412386263574991, "p_movelocal": 0.071617258585265603, "p_movecounty": 0.026709715292045699, "p_movestate": 0.0073378338714411, "p_moveabroad": 0.040211329615497497, "p_car": 0.57926829268292679, "p_carpool": 0.12971175166297111, "p_transit": 0.20232815964523279, "p_bike": 0.0099778270509977007, "p_walk": 0.0587583148558758 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.235229, 37.799419 ], [ -122.234679, 37.799827 ], [ -122.233791, 37.800539 ], [ -122.23117, 37.802605 ], [ -122.228499, 37.80097 ], [ -122.22417, 37.799977 ], [ -122.224985, 37.798117 ], [ -122.225399, 37.7976 ], [ -122.226685, 37.793545 ], [ -122.22841, 37.793872 ], [ -122.229817, 37.794708 ], [ -122.231892, 37.795952 ], [ -122.230626, 37.797318 ], [ -122.233174, 37.796691 ], [ -122.236024, 37.798408 ], [ -122.235229, 37.799419 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408400", "AFFGEOID": "1400000US06001408400", "GEOID": "06001408400", "NAME_x": "4084", "LSAD": "CT", "ALAND": 542658, "AWATER": 0, "NAME_y": "Census Tract 4084, Alameda County, California", "c_race": 3089, "c_white": 278, "c_black": 1157, "c_asian": 116, "c_latinx": 1378, "state_fips": 6, "county_fips": 1, "tract_fips": 408400, "med_rent": 1348.0, "med_hhinc": 41303.0, "c_tenants": 1169, "c_owners": 428, "c_renters": 741, "c_movers": 3053, "c_stay": 2867, "c_movelocal": 131, "c_movecounty": 35, "c_movestate": 2, "c_moveabroad": 18, "c_commute": 1440, "c_car": 460, "c_carpool": 490, "c_transit": 290, "c_bike": 0, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001408400", "p_white": 0.089996762706377395, "p_black": 0.37455487212690192, "p_asian": 0.037552606021366099, "p_latinx": 0.44609906118484949, "p_owners": 0.36612489307100088, "p_renters": 0.63387510692899918, "p_stay": 0.93907631837536842, "p_movelocal": 0.042908614477563001, "p_movecounty": 0.0114641336390435, "p_movestate": 0.00065509335080239997, "p_moveabroad": 0.0058958401572224003, "p_car": 0.31944444444444442, "p_carpool": 0.34027777777777779, "p_transit": 0.2013888888888889, "p_bike": 0.0, "p_walk": 0.013194444444444399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.176639, 37.766336 ], [ -122.172133, 37.769131 ], [ -122.169167, 37.767123 ], [ -122.167789, 37.766009 ], [ -122.164942, 37.762685 ], [ -122.168729, 37.760898 ], [ -122.170547, 37.759996 ], [ -122.171136, 37.760692 ], [ -122.172761, 37.762137 ], [ -122.174561, 37.763909 ], [ -122.175698, 37.76494 ], [ -122.177197, 37.765816 ], [ -122.176639, 37.766336 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420100", "AFFGEOID": "1400000US06001420100", "GEOID": "06001420100", "NAME_x": "4201", "LSAD": "CT", "ALAND": 552476, "AWATER": 0, "NAME_y": "Census Tract 4201, Alameda County, California", "c_race": 2454, "c_white": 1543, "c_black": 40, "c_asian": 540, "c_latinx": 118, "state_fips": 6, "county_fips": 1, "tract_fips": 420100, "med_rent": 2231.0, "med_hhinc": 134750.0, "c_tenants": 862, "c_owners": 630, "c_renters": 232, "c_movers": 2446, "c_stay": 2057, "c_movelocal": 211, "c_movecounty": 128, "c_movestate": 12, "c_moveabroad": 38, "c_commute": 1266, "c_car": 560, "c_carpool": 126, "c_transit": 303, "c_bike": 60, "c_walk": 84, "year": 2018, "FIPS_11_digit": "06001420100", "p_white": 0.62876935615321927, "p_black": 0.0162999185004074, "p_asian": 0.22004889975550121, "p_latinx": 0.048084759576202098, "p_owners": 0.73085846867749416, "p_renters": 0.26914153132250579, "p_stay": 0.84096484055600984, "p_movelocal": 0.086263286999182301, "p_movecounty": 0.052330335241210099, "p_movestate": 0.0049059689288634004, "p_moveabroad": 0.0155355682747342, "p_car": 0.44233807266982622, "p_carpool": 0.099526066350710901, "p_transit": 0.23933649289099521, "p_bike": 0.047393364928909901, "p_walk": 0.066350710900473897 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.296207, 37.898925 ], [ -122.293579, 37.898625 ], [ -122.292655, 37.898338 ], [ -122.291079, 37.897926 ], [ -122.289862, 37.897825 ], [ -122.288161, 37.898102 ], [ -122.286934, 37.898707 ], [ -122.287078, 37.896557 ], [ -122.287172, 37.89281 ], [ -122.287172, 37.890912 ], [ -122.288847, 37.890809 ], [ -122.291921, 37.890645 ], [ -122.292894, 37.890601 ], [ -122.292898, 37.890719 ], [ -122.295703, 37.897763 ], [ -122.296207, 37.898925 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423500", "AFFGEOID": "1400000US06001423500", "GEOID": "06001423500", "NAME_x": "4235", "LSAD": "CT", "ALAND": 635744, "AWATER": 0, "NAME_y": "Census Tract 4235, Alameda County, California", "c_race": 3501, "c_white": 1769, "c_black": 487, "c_asian": 500, "c_latinx": 577, "state_fips": 6, "county_fips": 1, "tract_fips": 423500, "med_rent": 1210.0, "med_hhinc": 61250.0, "c_tenants": 1456, "c_owners": 478, "c_renters": 978, "c_movers": 3488, "c_stay": 2977, "c_movelocal": 298, "c_movecounty": 100, "c_movestate": 55, "c_moveabroad": 58, "c_commute": 1908, "c_car": 376, "c_carpool": 121, "c_transit": 585, "c_bike": 198, "c_walk": 361, "year": 2018, "FIPS_11_digit": "06001423500", "p_white": 0.50528420451299627, "p_black": 0.13910311339617251, "p_asian": 0.14281633818908879, "p_latinx": 0.16481005427020851, "p_owners": 0.3282967032967033, "p_renters": 0.67170329670329665, "p_stay": 0.85349770642201839, "p_movelocal": 0.085435779816513693, "p_movecounty": 0.0286697247706422, "p_movestate": 0.0157683486238532, "p_moveabroad": 0.016628440366972402, "p_car": 0.1970649895178197, "p_carpool": 0.063417190775681295, "p_transit": 0.30660377358490559, "p_bike": 0.1037735849056603, "p_walk": 0.18920335429769389 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.272161, 37.863352 ], [ -122.269834, 37.863665 ], [ -122.265277, 37.864265 ], [ -122.26488, 37.86246 ], [ -122.264519, 37.860682 ], [ -122.264139, 37.858893 ], [ -122.263968, 37.858017 ], [ -122.263515, 37.855732 ], [ -122.266598, 37.855289 ], [ -122.268513, 37.855029 ], [ -122.271161, 37.854268 ], [ -122.271466, 37.857052 ], [ -122.271762, 37.859769 ], [ -122.271951, 37.86156 ], [ -122.272161, 37.863352 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428302", "AFFGEOID": "1400000US06001428302", "GEOID": "06001428302", "NAME_x": "4283.02", "LSAD": "CT", "ALAND": 2234427, "AWATER": 474770, "NAME_y": "Census Tract 4283.02, Alameda County, California", "c_race": 7501, "c_white": 3114, "c_black": 273, "c_asian": 3070, "c_latinx": 562, "state_fips": 6, "county_fips": 1, "tract_fips": 428302, "med_rent": 1946.0, "med_hhinc": 147667.0, "c_tenants": 2540, "c_owners": 2015, "c_renters": 525, "c_movers": 7436, "c_stay": 6705, "c_movelocal": 395, "c_movecounty": 99, "c_movestate": 175, "c_moveabroad": 62, "c_commute": 3812, "c_car": 2595, "c_carpool": 296, "c_transit": 409, "c_bike": 18, "c_walk": 73, "year": 2018, "FIPS_11_digit": "06001428302", "p_white": 0.41514464738034929, "p_black": 0.036395147313691499, "p_asian": 0.4092787628316224, "p_latinx": 0.074923343554192695, "p_owners": 0.79330708661417326, "p_renters": 0.20669291338582671, "p_stay": 0.90169445938676718, "p_movelocal": 0.053119956966110798, "p_movecounty": 0.013313609467455601, "p_movestate": 0.023534158149542701, "p_moveabroad": 0.0083378160301237, "p_car": 0.6807450157397692, "p_carpool": 0.077649527806925495, "p_transit": 0.1072927597061909, "p_bike": 0.0047219307450157002, "p_walk": 0.019150052465897099 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.261679, 37.743373 ], [ -122.252233808492008, 37.747615492663094 ], [ -122.252226, 37.747619 ], [ -122.248490684266997, 37.748990016683102 ], [ -122.236405, 37.748549 ], [ -122.23597, 37.747078 ], [ -122.23768, 37.743185 ], [ -122.237836, 37.741488 ], [ -122.238741, 37.73771 ], [ -122.239044, 37.736683 ], [ -122.239945, 37.73553 ], [ -122.243403, 37.736336 ], [ -122.24566, 37.73689 ], [ -122.247216, 37.737042 ], [ -122.248745, 37.737178 ], [ -122.252078, 37.737918 ], [ -122.258774956593001, 37.7378794789986 ], [ -122.260966, 37.739614 ], [ -122.261679, 37.743373 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435602", "AFFGEOID": "1400000US06001435602", "GEOID": "06001435602", "NAME_x": "4356.02", "LSAD": "CT", "ALAND": 1143694, "AWATER": 0, "NAME_y": "Census Tract 4356.02, Alameda County, California", "c_race": 5590, "c_white": 1394, "c_black": 397, "c_asian": 634, "c_latinx": 3063, "state_fips": 6, "county_fips": 1, "tract_fips": 435602, "med_rent": 1465.0, "med_hhinc": 75461.0, "c_tenants": 1669, "c_owners": 413, "c_renters": 1256, "c_movers": 5513, "c_stay": 5208, "c_movelocal": 235, "c_movecounty": 39, "c_movestate": 31, "c_moveabroad": 0, "c_commute": 2187, "c_car": 1714, "c_carpool": 202, "c_transit": 174, "c_bike": 0, "c_walk": 15, "year": 2018, "FIPS_11_digit": "06001435602", "p_white": 0.2493738819320214, "p_black": 0.071019677996422101, "p_asian": 0.11341681574239711, "p_latinx": 0.54794275491949906, "p_owners": 0.24745356500898741, "p_renters": 0.75254643499101259, "p_stay": 0.94467621984400518, "p_movelocal": 0.042626519136586202, "p_movecounty": 0.0070741882822419003, "p_movestate": 0.0056230727371666001, "p_moveabroad": 0.0, "p_car": 0.78372199359853678, "p_carpool": 0.092363968907178698, "p_transit": 0.079561042524005393, "p_bike": 0.0, "p_walk": 0.0068587105624141999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.116825, 37.685647 ], [ -122.113212, 37.686334 ], [ -122.108454, 37.684436 ], [ -122.106029, 37.685902 ], [ -122.100633, 37.685717 ], [ -122.099202, 37.684572 ], [ -122.099046, 37.683002 ], [ -122.098822, 37.682829 ], [ -122.096645, 37.681094 ], [ -122.097618, 37.6804 ], [ -122.100976, 37.679284 ], [ -122.104438, 37.678156 ], [ -122.109728, 37.676414 ], [ -122.112082, 37.679009 ], [ -122.11235, 37.679314 ], [ -122.112614, 37.679615 ], [ -122.116683, 37.68435 ], [ -122.116825, 37.685647 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437102", "AFFGEOID": "1400000US06001437102", "GEOID": "06001437102", "NAME_x": "4371.02", "LSAD": "CT", "ALAND": 870005, "AWATER": 0, "NAME_y": "Census Tract 4371.02, Alameda County, California", "c_race": 4885, "c_white": 545, "c_black": 400, "c_asian": 2077, "c_latinx": 1437, "state_fips": 6, "county_fips": 1, "tract_fips": 437102, "med_rent": 1633.0, "med_hhinc": 69632.0, "c_tenants": 1486, "c_owners": 654, "c_renters": 832, "c_movers": 4871, "c_stay": 4218, "c_movelocal": 346, "c_movecounty": 166, "c_movestate": 47, "c_moveabroad": 94, "c_commute": 1980, "c_car": 1517, "c_carpool": 204, "c_transit": 102, "c_bike": 0, "c_walk": 20, "year": 2018, "FIPS_11_digit": "06001437102", "p_white": 0.1115660184237461, "p_black": 0.081883316274309101, "p_asian": 0.42517911975435008, "p_latinx": 0.29416581371545542, "p_owners": 0.44010767160161501, "p_renters": 0.55989232839838488, "p_stay": 0.86594128515705193, "p_movelocal": 0.071032642167932605, "p_movecounty": 0.034079244508314503, "p_movestate": 0.0096489427222335999, "p_moveabroad": 0.0192978854444672, "p_car": 0.76616161616161615, "p_carpool": 0.103030303030303, "p_transit": 0.0515151515151515, "p_bike": 0.0, "p_walk": 0.0101010101010101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.110054, 37.632353 ], [ -122.107748, 37.633399 ], [ -122.100093, 37.636331 ], [ -122.096801, 37.630905 ], [ -122.094311, 37.626862 ], [ -122.092858, 37.62448 ], [ -122.09348, 37.62425 ], [ -122.099827, 37.624076 ], [ -122.101752, 37.624854 ], [ -122.102285, 37.628754 ], [ -122.104309, 37.632253 ], [ -122.106412, 37.631456 ], [ -122.109322, 37.631228 ], [ -122.110054, 37.632353 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437800", "AFFGEOID": "1400000US06001437800", "GEOID": "06001437800", "NAME_x": "4378", "LSAD": "CT", "ALAND": 1276298, "AWATER": 0, "NAME_y": "Census Tract 4378, Alameda County, California", "c_race": 4730, "c_white": 988, "c_black": 284, "c_asian": 1352, "c_latinx": 1817, "state_fips": 6, "county_fips": 1, "tract_fips": 437800, "med_rent": 2082.0, "med_hhinc": 92930.0, "c_tenants": 1371, "c_owners": 881, "c_renters": 490, "c_movers": 4693, "c_stay": 4433, "c_movelocal": 186, "c_movecounty": 63, "c_movestate": 11, "c_moveabroad": 0, "c_commute": 2112, "c_car": 1755, "c_carpool": 165, "c_transit": 153, "c_bike": 0, "c_walk": 15, "year": 2018, "FIPS_11_digit": "06001437800", "p_white": 0.20887949260042279, "p_black": 0.060042283298097202, "p_asian": 0.28583509513742072, "p_latinx": 0.38414376321353061, "p_owners": 0.64259664478482859, "p_renters": 0.35740335521517141, "p_stay": 0.94459833795013837, "p_movelocal": 0.039633496697208601, "p_movecounty": 0.0134242488813125, "p_movestate": 0.0023439164713402001, "p_moveabroad": 0.0, "p_car": 0.83096590909090906, "p_carpool": 0.078125, "p_transit": 0.072443181818181795, "p_bike": 0.0, "p_walk": 0.0071022727272727001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.076872, 37.649415 ], [ -122.070242, 37.650505 ], [ -122.070021, 37.650546 ], [ -122.058388, 37.635735 ], [ -122.060578, 37.635368 ], [ -122.061273, 37.635332 ], [ -122.063341, 37.63434 ], [ -122.072298, 37.642174 ], [ -122.079978, 37.648911 ], [ -122.076872, 37.649415 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438204", "AFFGEOID": "1400000US06001438204", "GEOID": "06001438204", "NAME_x": "4382.04", "LSAD": "CT", "ALAND": 1490073, "AWATER": 0, "NAME_y": "Census Tract 4382.04, Alameda County, California", "c_race": 5483, "c_white": 834, "c_black": 415, "c_asian": 1973, "c_latinx": 1721, "state_fips": 6, "county_fips": 1, "tract_fips": 438204, "med_rent": 1876.0, "med_hhinc": 79265.0, "c_tenants": 1810, "c_owners": 1332, "c_renters": 478, "c_movers": 5483, "c_stay": 5071, "c_movelocal": 286, "c_movecounty": 58, "c_movestate": 24, "c_moveabroad": 44, "c_commute": 2256, "c_car": 1797, "c_carpool": 192, "c_transit": 182, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001438204", "p_white": 0.15210651103410541, "p_black": 0.075688491701623201, "p_asian": 0.359839503921211, "p_latinx": 0.3138792631770928, "p_owners": 0.73591160220994478, "p_renters": 0.26408839779005527, "p_stay": 0.92485865402152123, "p_movelocal": 0.052161225606419802, "p_movecounty": 0.0105781506474557, "p_movestate": 0.0043771657851541003, "p_moveabroad": 0.0080248039394491995, "p_car": 0.79654255319148937, "p_carpool": 0.085106382978723402, "p_transit": 0.080673758865248205, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.067175, 37.62811 ], [ -122.063322, 37.629141 ], [ -122.061485, 37.62848 ], [ -122.065046, 37.633582 ], [ -122.063605, 37.634227 ], [ -122.063341, 37.63434 ], [ -122.061273, 37.635332 ], [ -122.060578, 37.635368 ], [ -122.058388, 37.635735 ], [ -122.053594, 37.629424 ], [ -122.05168, 37.625745 ], [ -122.052648, 37.624982 ], [ -122.061156, 37.618209 ], [ -122.062203, 37.617374 ], [ -122.061979, 37.617623 ], [ -122.061907, 37.617823 ], [ -122.061916, 37.618075 ], [ -122.063949, 37.619946 ], [ -122.065939, 37.625435 ], [ -122.067175, 37.62811 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441501", "AFFGEOID": "1400000US06001441501", "GEOID": "06001441501", "NAME_x": "4415.01", "LSAD": "CT", "ALAND": 2624983, "AWATER": 0, "NAME_y": "Census Tract 4415.01, Alameda County, California", "c_race": 6570, "c_white": 677, "c_black": 111, "c_asian": 4740, "c_latinx": 570, "state_fips": 6, "county_fips": 1, "tract_fips": 441501, "med_rent": 1883.0, "med_hhinc": 152394.0, "c_tenants": 1796, "c_owners": 1634, "c_renters": 162, "c_movers": 6491, "c_stay": 6010, "c_movelocal": 257, "c_movecounty": 68, "c_movestate": 129, "c_moveabroad": 27, "c_commute": 2317, "c_car": 1765, "c_carpool": 264, "c_transit": 127, "c_bike": 28, "c_walk": 8, "year": 2018, "FIPS_11_digit": "06001441501", "p_white": 0.10304414003044141, "p_black": 0.0168949771689497, "p_asian": 0.72146118721461183, "p_latinx": 0.086757990867579904, "p_owners": 0.90979955456570161, "p_renters": 0.090200445434298407, "p_stay": 0.92589739639500845, "p_movelocal": 0.039593283007240798, "p_movecounty": 0.0104760437528886, "p_movestate": 0.0198736712370975, "p_moveabroad": 0.0041596056077645004, "p_car": 0.76176089771255939, "p_carpool": 0.11394044022442811, "p_transit": 0.054812257229175598, "p_bike": 0.012084592145015101, "p_walk": 0.0034527406128613998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.08916, 37.564285 ], [ -122.086062, 37.566568 ], [ -122.084516, 37.567681 ], [ -122.077973, 37.57066 ], [ -122.075984, 37.569928 ], [ -122.071751, 37.574728 ], [ -122.067613, 37.579422 ], [ -122.062894, 37.5849 ], [ -122.062107, 37.582901 ], [ -122.060428, 37.574893 ], [ -122.060222, 37.573995 ], [ -122.062817, 37.571168 ], [ -122.06973, 37.563639 ], [ -122.072457, 37.562705 ], [ -122.080994, 37.561402 ], [ -122.089615, 37.562107 ], [ -122.08916, 37.564285 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443001", "AFFGEOID": "1400000US06001443001", "GEOID": "06001443001", "NAME_x": "4430.01", "LSAD": "CT", "ALAND": 768730, "AWATER": 0, "NAME_y": "Census Tract 4430.01, Alameda County, California", "c_race": 3046, "c_white": 646, "c_black": 68, "c_asian": 1172, "c_latinx": 1015, "state_fips": 6, "county_fips": 1, "tract_fips": 443001, "med_rent": 2504.0, "med_hhinc": 109147.0, "c_tenants": 839, "c_owners": 580, "c_renters": 259, "c_movers": 3029, "c_stay": 2905, "c_movelocal": 60, "c_movecounty": 18, "c_movestate": 12, "c_moveabroad": 34, "c_commute": 1195, "c_car": 920, "c_carpool": 93, "c_transit": 47, "c_bike": 8, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001443001", "p_white": 0.21208141825344709, "p_black": 0.0223243598161523, "p_asian": 0.3847669074195666, "p_latinx": 0.33322390019697962, "p_owners": 0.69129916567342076, "p_renters": 0.30870083432657919, "p_stay": 0.95906239683063721, "p_movelocal": 0.0198085176625949, "p_movecounty": 0.0059425552987784, "p_movestate": 0.0039617035325189001, "p_moveabroad": 0.0112248266754704, "p_car": 0.76987447698744771, "p_carpool": 0.077824267782426695, "p_transit": 0.039330543933054303, "p_bike": 0.0066945606694559998, "p_walk": 0.0075313807531379997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.957596, 37.523925 ], [ -121.952959, 37.524418 ], [ -121.951627, 37.524905 ], [ -121.945316, 37.512779 ], [ -121.946771, 37.5124 ], [ -121.95117, 37.512099 ], [ -121.952931, 37.515109 ], [ -121.954358, 37.517515 ], [ -121.95734, 37.522694 ], [ -121.957596, 37.523925 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444100", "AFFGEOID": "1400000US06001444100", "GEOID": "06001444100", "NAME_x": "4441", "LSAD": "CT", "ALAND": 2955528, "AWATER": 60526, "NAME_y": "Census Tract 4441, Alameda County, California", "c_race": 7696, "c_white": 3100, "c_black": 21, "c_asian": 2141, "c_latinx": 2231, "state_fips": 6, "county_fips": 1, "tract_fips": 444100, "med_rent": 1746.0, "med_hhinc": 118654.0, "c_tenants": 2518, "c_owners": 2098, "c_renters": 420, "c_movers": 7679, "c_stay": 7182, "c_movelocal": 286, "c_movecounty": 197, "c_movestate": 14, "c_moveabroad": 0, "c_commute": 3092, "c_car": 2391, "c_carpool": 436, "c_transit": 107, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001444100", "p_white": 0.40280665280665279, "p_black": 0.0027286902286901998, "p_asian": 0.27819646569646572, "p_latinx": 0.28989085239085238, "p_owners": 0.8332009531374106, "p_renters": 0.16679904686258931, "p_stay": 0.93527803099361895, "p_movelocal": 0.0372444328688631, "p_movecounty": 0.025654382081000099, "p_movestate": 0.0018231540565177, "p_moveabroad": 0.0, "p_car": 0.77328589909443723, "p_carpool": 0.14100905562742561, "p_transit": 0.034605433376455302, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.045052, 37.556261 ], [ -122.042502, 37.558503 ], [ -122.038506, 37.563408 ], [ -122.031219, 37.556592 ], [ -122.028684, 37.554125 ], [ -122.022895, 37.546533 ], [ -122.026235, 37.54225 ], [ -122.028316, 37.543662 ], [ -122.028878, 37.544635 ], [ -122.029328, 37.544359 ], [ -122.034038, 37.540445 ], [ -122.0363, 37.543747 ], [ -122.040858, 37.545809 ], [ -122.043128, 37.547301 ], [ -122.05208, 37.551742 ], [ -122.045052, 37.556261 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451401", "AFFGEOID": "1400000US06001451401", "GEOID": "06001451401", "NAME_x": "4514.01", "LSAD": "CT", "ALAND": 4635445, "AWATER": 0, "NAME_y": "Census Tract 4514.01, Alameda County, California", "c_race": 6066, "c_white": 3604, "c_black": 190, "c_asian": 845, "c_latinx": 1180, "state_fips": 6, "county_fips": 1, "tract_fips": 451401, "med_rent": 1799.0, "med_hhinc": 98611.0, "c_tenants": 2438, "c_owners": 1431, "c_renters": 1007, "c_movers": 6006, "c_stay": 5071, "c_movelocal": 580, "c_movecounty": 213, "c_movestate": 142, "c_moveabroad": 0, "c_commute": 3347, "c_car": 2614, "c_carpool": 297, "c_transit": 298, "c_bike": 0, "c_walk": 60, "year": 2018, "FIPS_11_digit": "06001451401", "p_white": 0.59413122321134193, "p_black": 0.031322123310253802, "p_asian": 0.13930102209033959, "p_latinx": 0.1945268710847346, "p_owners": 0.58695652173913049, "p_renters": 0.41304347826086951, "p_stay": 0.84432234432234432, "p_movelocal": 0.096570096570096506, "p_movecounty": 0.035464535464535402, "p_movestate": 0.023643023643023599, "p_moveabroad": 0.0, "p_car": 0.78099790857484319, "p_carpool": 0.088736181655213603, "p_transit": 0.089034956677621693, "p_bike": 0.0, "p_walk": 0.017926501344487599 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.786116, 37.699709 ], [ -121.778885, 37.700338 ], [ -121.773921, 37.700948 ], [ -121.768289, 37.701878 ], [ -121.762987, 37.702743 ], [ -121.759362, 37.703015 ], [ -121.755503, 37.702936 ], [ -121.749899, 37.702699 ], [ -121.743137, 37.702458 ], [ -121.740284, 37.702728 ], [ -121.744358, 37.69653 ], [ -121.747159, 37.694529 ], [ -121.751308, 37.69159 ], [ -121.752789, 37.690804 ], [ -121.758088, 37.688034 ], [ -121.762427, 37.68618 ], [ -121.764867, 37.685891 ], [ -121.772448, 37.689554 ], [ -121.773113, 37.691028 ], [ -121.775048, 37.691105 ], [ -121.775941, 37.69131 ], [ -121.781355, 37.693888 ], [ -121.783389, 37.695066 ], [ -121.784084, 37.69552 ], [ -121.78473, 37.696056 ], [ -121.786116, 37.699709 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "983200", "AFFGEOID": "1400000US06001983200", "GEOID": "06001983200", "NAME_x": "9832", "LSAD": "CT", "ALAND": 494540, "AWATER": 146456, "NAME_y": "Census Tract 9832, Alameda County, California", "c_race": 622, "c_white": 326, "c_black": 43, "c_asian": 171, "c_latinx": 52, "state_fips": 6, "county_fips": 1, "tract_fips": 983200, "med_rent": 2365.0, "med_hhinc": 156875.0, "c_tenants": 349, "c_owners": 308, "c_renters": 41, "c_movers": 622, "c_stay": 457, "c_movelocal": 112, "c_movecounty": 42, "c_movestate": 11, "c_moveabroad": 0, "c_commute": 466, "c_car": 168, "c_carpool": 32, "c_transit": 192, "c_bike": 0, "c_walk": 37, "year": 2018, "FIPS_11_digit": "06001983200", "p_white": 0.52411575562700963, "p_black": 0.0691318327974276, "p_asian": 0.27491961414790989, "p_latinx": 0.083601286173633396, "p_owners": 0.88252148997134672, "p_renters": 0.1174785100286533, "p_stay": 0.73472668810289388, "p_movelocal": 0.180064308681672, "p_movecounty": 0.067524115755627001, "p_movestate": 0.017684887459807001, "p_moveabroad": 0.0, "p_car": 0.36051502145922748, "p_carpool": 0.068669527896995694, "p_transit": 0.41201716738197419, "p_bike": 0.0, "p_walk": 0.079399141630901199 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.282207, 37.796267 ], [ -122.279687, 37.800256 ], [ -122.279564, 37.800449 ], [ -122.278536, 37.799654 ], [ -122.275061, 37.798321 ], [ -122.27014, 37.796524 ], [ -122.272827, 37.792219 ], [ -122.27418, 37.791328 ], [ -122.274636, 37.791648 ], [ -122.278243, 37.793129 ], [ -122.28428, 37.793828 ], [ -122.282207, 37.796267 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403000", "AFFGEOID": "1400000US06001403000", "GEOID": "06001403000", "NAME_x": "4030", "LSAD": "CT", "ALAND": 352395, "AWATER": 0, "NAME_y": "Census Tract 4030, Alameda County, California", "c_race": 2969, "c_white": 168, "c_black": 115, "c_asian": 2424, "c_latinx": 88, "state_fips": 6, "county_fips": 1, "tract_fips": 403000, "med_rent": 879.0, "med_hhinc": 24699.0, "c_tenants": 1463, "c_owners": 460, "c_renters": 1003, "c_movers": 2969, "c_stay": 2586, "c_movelocal": 237, "c_movecounty": 61, "c_movestate": 0, "c_moveabroad": 85, "c_commute": 1099, "c_car": 410, "c_carpool": 0, "c_transit": 420, "c_bike": 0, "c_walk": 254, "year": 2018, "FIPS_11_digit": "06001403000", "p_white": 0.056584708656113099, "p_black": 0.0387335803300774, "p_asian": 0.81643651060963285, "p_latinx": 0.029639609296059199, "p_owners": 0.3144224196855776, "p_renters": 0.6855775803144224, "p_stay": 0.871000336813742, "p_movelocal": 0.079824856854159604, "p_movecounty": 0.020545638262041001, "p_movestate": 0.0, "p_moveabroad": 0.0286291680700572, "p_car": 0.37306642402183798, "p_carpool": 0.0, "p_transit": 0.38216560509554143, "p_bike": 0.0, "p_walk": 0.23111919927206551 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.274757, 37.798833 ], [ -122.271274, 37.804361 ], [ -122.268798, 37.803427 ], [ -122.266458, 37.802497 ], [ -122.267312, 37.801081 ], [ -122.269879, 37.796937 ], [ -122.27014, 37.796524 ], [ -122.275061, 37.798321 ], [ -122.274757, 37.798833 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405302", "AFFGEOID": "1400000US06001405302", "GEOID": "06001405302", "NAME_x": "4053.02", "LSAD": "CT", "ALAND": 202350, "AWATER": 0, "NAME_y": "Census Tract 4053.02, Alameda County, California", "c_race": 2454, "c_white": 797, "c_black": 281, "c_asian": 796, "c_latinx": 372, "state_fips": 6, "county_fips": 1, "tract_fips": 405302, "med_rent": 1102.0, "med_hhinc": 42682.0, "c_tenants": 1401, "c_owners": 86, "c_renters": 1315, "c_movers": 2428, "c_stay": 2095, "c_movelocal": 54, "c_movecounty": 149, "c_movestate": 71, "c_moveabroad": 59, "c_commute": 1286, "c_car": 549, "c_carpool": 184, "c_transit": 281, "c_bike": 125, "c_walk": 99, "year": 2018, "FIPS_11_digit": "06001405302", "p_white": 0.32477587612061942, "p_black": 0.1145069274653626, "p_asian": 0.32436837815810921, "p_latinx": 0.15158924205378971, "p_owners": 0.061384725196288299, "p_renters": 0.93861527480371165, "p_stay": 0.86285008237232286, "p_movelocal": 0.022240527182866499, "p_movecounty": 0.061367380560131697, "p_movestate": 0.029242174629324501, "p_moveabroad": 0.024299835255354198, "p_car": 0.42690513219284598, "p_carpool": 0.1430793157076205, "p_transit": 0.21850699844478999, "p_bike": 0.097200622083981295, "p_walk": 0.076982892690513199 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.259574, 37.798552 ], [ -122.258111, 37.799493 ], [ -122.254505, 37.800561 ], [ -122.251935, 37.799731 ], [ -122.251017, 37.79918 ], [ -122.250162, 37.798427 ], [ -122.252043, 37.797093 ], [ -122.253855, 37.795785 ], [ -122.255481, 37.797239 ], [ -122.25713, 37.798725 ], [ -122.258666, 37.798325 ], [ -122.259381, 37.798448 ], [ -122.259574, 37.798552 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435400", "AFFGEOID": "1400000US06001435400", "GEOID": "06001435400", "NAME_x": "4354", "LSAD": "CT", "ALAND": 1328739, "AWATER": 0, "NAME_y": "Census Tract 4354, Alameda County, California", "c_race": 4320, "c_white": 919, "c_black": 821, "c_asian": 767, "c_latinx": 1401, "state_fips": 6, "county_fips": 1, "tract_fips": 435400, "med_rent": 1649.0, "med_hhinc": 67696.0, "c_tenants": 1748, "c_owners": 617, "c_renters": 1131, "c_movers": 4290, "c_stay": 3640, "c_movelocal": 292, "c_movecounty": 268, "c_movestate": 26, "c_moveabroad": 64, "c_commute": 2128, "c_car": 1189, "c_carpool": 283, "c_transit": 421, "c_bike": 21, "c_walk": 32, "year": 2018, "FIPS_11_digit": "06001435400", "p_white": 0.21273148148148149, "p_black": 0.1900462962962963, "p_asian": 0.1775462962962962, "p_latinx": 0.32430555555555551, "p_owners": 0.35297482837528599, "p_renters": 0.64702517162471396, "p_stay": 0.84848484848484851, "p_movelocal": 0.068065268065267998, "p_movecounty": 0.0624708624708624, "p_movestate": 0.0060606060606059999, "p_moveabroad": 0.014918414918414899, "p_car": 0.55874060150375937, "p_carpool": 0.13298872180451121, "p_transit": 0.19783834586466159, "p_bike": 0.0098684210526315003, "p_walk": 0.0150375939849624 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.093896, 37.674538 ], [ -122.093231, 37.674809 ], [ -122.09036, 37.675664 ], [ -122.089088, 37.676436 ], [ -122.087642, 37.678068 ], [ -122.085341, 37.680022 ], [ -122.084346, 37.678926 ], [ -122.083088, 37.676868 ], [ -122.079397, 37.678618 ], [ -122.079692, 37.680103 ], [ -122.07946, 37.680508 ], [ -122.076789, 37.679023 ], [ -122.077308, 37.678623 ], [ -122.073895, 37.675209 ], [ -122.07749, 37.673104 ], [ -122.076015, 37.671876 ], [ -122.077989, 37.670841 ], [ -122.079989, 37.669775 ], [ -122.080719, 37.668796 ], [ -122.081476, 37.667747 ], [ -122.082336, 37.666154 ], [ -122.083076, 37.666916 ], [ -122.088112, 37.670501 ], [ -122.09398, 37.674467 ], [ -122.093896, 37.674538 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441601", "AFFGEOID": "1400000US06001441601", "GEOID": "06001441601", "NAME_x": "4416.01", "LSAD": "CT", "ALAND": 1291647, "AWATER": 0, "NAME_y": "Census Tract 4416.01, Alameda County, California", "c_race": 5093, "c_white": 1275, "c_black": 442, "c_asian": 1932, "c_latinx": 952, "state_fips": 6, "county_fips": 1, "tract_fips": 441601, "med_rent": 2487.0, "med_hhinc": 113155.0, "c_tenants": 1491, "c_owners": 1206, "c_renters": 285, "c_movers": 5048, "c_stay": 4668, "c_movelocal": 174, "c_movecounty": 59, "c_movestate": 22, "c_moveabroad": 125, "c_commute": 1688, "c_car": 1236, "c_carpool": 160, "c_transit": 123, "c_bike": 0, "c_walk": 44, "year": 2018, "FIPS_11_digit": "06001441601", "p_white": 0.25034360887492629, "p_black": 0.086785784409974406, "p_asian": 0.37934419791871188, "p_latinx": 0.18692322795994501, "p_owners": 0.80885311871227361, "p_renters": 0.19114688128772631, "p_stay": 0.92472266244057055, "p_movelocal": 0.034469096671949202, "p_movecounty": 0.0116877971473851, "p_movestate": 0.0043581616481773999, "p_moveabroad": 0.024762282091917501, "p_car": 0.73222748815165872, "p_carpool": 0.094786729857819899, "p_transit": 0.072867298578199, "p_bike": 0.0, "p_walk": 0.0260663507109004 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.036309, 37.566212 ], [ -122.036557, 37.566277 ], [ -122.032429, 37.570799 ], [ -122.026791, 37.567989 ], [ -122.022784, 37.566055 ], [ -122.024827, 37.563501 ], [ -122.025352, 37.559602 ], [ -122.026697, 37.55787 ], [ -122.027608, 37.556687 ], [ -122.029433, 37.556304 ], [ -122.031219, 37.556592 ], [ -122.038506, 37.563408 ], [ -122.036309, 37.566212 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444500", "AFFGEOID": "1400000US06001444500", "GEOID": "06001444500", "NAME_x": "4445", "LSAD": "CT", "ALAND": 1959291, "AWATER": 0, "NAME_y": "Census Tract 4445, Alameda County, California", "c_race": 7352, "c_white": 1259, "c_black": 568, "c_asian": 2317, "c_latinx": 2905, "state_fips": 6, "county_fips": 1, "tract_fips": 444500, "med_rent": 2102.0, "med_hhinc": 104500.0, "c_tenants": 2052, "c_owners": 841, "c_renters": 1211, "c_movers": 7262, "c_stay": 6333, "c_movelocal": 441, "c_movecounty": 280, "c_movestate": 176, "c_moveabroad": 32, "c_commute": 2320, "c_car": 1779, "c_carpool": 209, "c_transit": 176, "c_bike": 0, "c_walk": 56, "year": 2018, "FIPS_11_digit": "06001444500", "p_white": 0.1712459194776931, "p_black": 0.077257889009793204, "p_asian": 0.31515233949945592, "p_latinx": 0.39513057671381929, "p_owners": 0.40984405458089668, "p_renters": 0.59015594541910332, "p_stay": 0.87207380886808039, "p_movelocal": 0.0607270724318369, "p_movecounty": 0.038556871385293297, "p_movestate": 0.024235747727898601, "p_moveabroad": 0.0044064995868905998, "p_car": 0.76681034482758625, "p_carpool": 0.090086206896551696, "p_transit": 0.075862068965517199, "p_bike": 0.0, "p_walk": 0.024137931034482699 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.040007, 37.529433 ], [ -122.035275, 37.531105 ], [ -122.033806, 37.532891 ], [ -122.030598, 37.536824 ], [ -122.03051, 37.536931 ], [ -122.026235, 37.54225 ], [ -122.022895, 37.546533 ], [ -122.020081, 37.542769 ], [ -122.017348, 37.539133 ], [ -122.018923, 37.537007 ], [ -122.022761, 37.532587 ], [ -122.023339, 37.53242 ], [ -122.023475, 37.531679 ], [ -122.025828, 37.528748 ], [ -122.029818, 37.523848 ], [ -122.037187, 37.527311 ], [ -122.040007, 37.529433 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401300", "AFFGEOID": "1400000US06001401300", "GEOID": "06001401300", "NAME_x": "4013", "LSAD": "CT", "ALAND": 857020, "AWATER": 0, "NAME_y": "Census Tract 4013, Alameda County, California", "c_race": 3855, "c_white": 1476, "c_black": 1218, "c_asian": 617, "c_latinx": 383, "state_fips": 6, "county_fips": 1, "tract_fips": 401300, "med_rent": 1126.0, "med_hhinc": 44107.0, "c_tenants": 1804, "c_owners": 288, "c_renters": 1516, "c_movers": 3839, "c_stay": 2904, "c_movelocal": 479, "c_movecounty": 261, "c_movestate": 163, "c_moveabroad": 32, "c_commute": 2202, "c_car": 764, "c_carpool": 108, "c_transit": 674, "c_bike": 138, "c_walk": 306, "year": 2018, "FIPS_11_digit": "06001401300", "p_white": 0.38287937743190659, "p_black": 0.3159533073929961, "p_asian": 0.1600518806744487, "p_latinx": 0.099351491569390396, "p_owners": 0.15964523281596449, "p_renters": 0.84035476718403546, "p_stay": 0.7564469914040115, "p_movelocal": 0.12477207606147429, "p_movecounty": 0.067986454805938998, "p_movestate": 0.042458973691065299, "p_moveabroad": 0.0083355040375097007, "p_car": 0.34695731153496823, "p_carpool": 0.049046321525885499, "p_transit": 0.3060853769300636, "p_bike": 0.062670299727520404, "p_walk": 0.13896457765667569 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.273394, 37.812723 ], [ -122.271379, 37.815031 ], [ -122.270041, 37.818894 ], [ -122.269891, 37.819488 ], [ -122.268876, 37.82312 ], [ -122.268811, 37.823103 ], [ -122.268272, 37.824385 ], [ -122.261969, 37.822966 ], [ -122.260006, 37.822421 ], [ -122.263084, 37.817449 ], [ -122.266771, 37.811553 ], [ -122.269058, 37.811959 ], [ -122.272737, 37.812613 ], [ -122.273394, 37.812723 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410400", "AFFGEOID": "1400000US06001410400", "GEOID": "06001410400", "NAME_x": "4104", "LSAD": "CT", "ALAND": 706610, "AWATER": 0, "NAME_y": "Census Tract 4104, Alameda County, California", "c_race": 4185, "c_white": 243, "c_black": 1426, "c_asian": 397, "c_latinx": 2032, "state_fips": 6, "county_fips": 1, "tract_fips": 410400, "med_rent": 1501.0, "med_hhinc": 64196.0, "c_tenants": 1363, "c_owners": 792, "c_renters": 571, "c_movers": 4130, "c_stay": 3733, "c_movelocal": 230, "c_movecounty": 134, "c_movestate": 25, "c_moveabroad": 8, "c_commute": 1944, "c_car": 1185, "c_carpool": 283, "c_transit": 324, "c_bike": 0, "c_walk": 31, "year": 2018, "FIPS_11_digit": "06001410400", "p_white": 0.058064516129032198, "p_black": 0.34074074074074068, "p_asian": 0.094862604540023807, "p_latinx": 0.48554360812425329, "p_owners": 0.5810711665443874, "p_renters": 0.4189288334556126, "p_stay": 0.90387409200968516, "p_movelocal": 0.055690072639225097, "p_movecounty": 0.032445520581113801, "p_movestate": 0.0060532687651330998, "p_moveabroad": 0.0019370460048426001, "p_car": 0.60956790123456794, "p_carpool": 0.14557613168724279, "p_transit": 0.1666666666666666, "p_bike": 0.0, "p_walk": 0.0159465020576131 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.169212, 37.742763 ], [ -122.165619, 37.743715 ], [ -122.163205, 37.744343 ], [ -122.160431, 37.745069 ], [ -122.159506, 37.745049 ], [ -122.156962, 37.741506 ], [ -122.155119, 37.739082 ], [ -122.160074, 37.737691 ], [ -122.160502, 37.737607 ], [ -122.16416, 37.73594 ], [ -122.165472, 37.737689 ], [ -122.167519, 37.740468 ], [ -122.169212, 37.742763 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432600", "AFFGEOID": "1400000US06001432600", "GEOID": "06001432600", "NAME_x": "4326", "LSAD": "CT", "ALAND": 1673449, "AWATER": 0, "NAME_y": "Census Tract 4326, Alameda County, California", "c_race": 7314, "c_white": 1818, "c_black": 1141, "c_asian": 1597, "c_latinx": 2224, "state_fips": 6, "county_fips": 1, "tract_fips": 432600, "med_rent": 1431.0, "med_hhinc": 59172.0, "c_tenants": 3040, "c_owners": 1052, "c_renters": 1988, "c_movers": 7198, "c_stay": 5972, "c_movelocal": 834, "c_movecounty": 280, "c_movestate": 12, "c_moveabroad": 100, "c_commute": 3817, "c_car": 2441, "c_carpool": 242, "c_transit": 905, "c_bike": 0, "c_walk": 136, "year": 2018, "FIPS_11_digit": "06001432600", "p_white": 0.24856439704675959, "p_black": 0.15600218758545251, "p_asian": 0.21834837298331961, "p_latinx": 0.30407437790538688, "p_owners": 0.34605263157894739, "p_renters": 0.65394736842105261, "p_stay": 0.82967490969713809, "p_movelocal": 0.11586551819949981, "p_movecounty": 0.038899694359544303, "p_movestate": 0.0016671297582660999, "p_moveabroad": 0.0138927479855515, "p_car": 0.6395074665968038, "p_carpool": 0.063400576368875999, "p_transit": 0.23709719675137539, "p_bike": 0.0, "p_walk": 0.035630075975897298 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.167507, 37.726322 ], [ -122.161079, 37.726244 ], [ -122.158875, 37.725502 ], [ -122.157524, 37.726871 ], [ -122.156211, 37.728435 ], [ -122.154613, 37.728028 ], [ -122.150172, 37.728262 ], [ -122.148736, 37.729135 ], [ -122.147888, 37.727156 ], [ -122.146731, 37.724493 ], [ -122.145496, 37.72167 ], [ -122.14508, 37.720682 ], [ -122.148636, 37.719698 ], [ -122.147968, 37.719211 ], [ -122.151638, 37.717692 ], [ -122.151151, 37.716942 ], [ -122.155593, 37.715082 ], [ -122.15892, 37.717986 ], [ -122.159808, 37.718776 ], [ -122.164245, 37.722651 ], [ -122.170121, 37.72778 ], [ -122.167507, 37.726322 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441800", "AFFGEOID": "1400000US06001441800", "GEOID": "06001441800", "NAME_x": "4418", "LSAD": "CT", "ALAND": 2040471, "AWATER": 0, "NAME_y": "Census Tract 4418, Alameda County, California", "c_race": 7359, "c_white": 2520, "c_black": 116, "c_asian": 3447, "c_latinx": 1082, "state_fips": 6, "county_fips": 1, "tract_fips": 441800, "med_rent": 2034.0, "med_hhinc": 122963.0, "c_tenants": 2314, "c_owners": 1328, "c_renters": 986, "c_movers": 7285, "c_stay": 6730, "c_movelocal": 459, "c_movecounty": 81, "c_movestate": 0, "c_moveabroad": 15, "c_commute": 2722, "c_car": 1843, "c_carpool": 233, "c_transit": 335, "c_bike": 0, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001441800", "p_white": 0.34243783122706889, "p_black": 0.015763011278706301, "p_asian": 0.46840603342845488, "p_latinx": 0.147030846582416, "p_owners": 0.57389801210025926, "p_renters": 0.42610198789974069, "p_stay": 0.9238160603980784, "p_movelocal": 0.063006177076183903, "p_movecounty": 0.0111187371310912, "p_movestate": 0.0, "p_moveabroad": 0.0020590253946464999, "p_car": 0.67707567964731818, "p_carpool": 0.085598824393828002, "p_transit": 0.1230712711241734, "p_bike": 0.0, "p_walk": 0.0121234386480529 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.004618, 37.556952 ], [ -122.001229, 37.559969 ], [ -122.002072, 37.561336 ], [ -121.995937, 37.563041 ], [ -121.983531, 37.566463 ], [ -121.982641, 37.563769 ], [ -121.979231, 37.564014 ], [ -121.978911, 37.562793 ], [ -121.978597, 37.560997 ], [ -121.97944, 37.559662 ], [ -121.980294, 37.558635 ], [ -121.982475, 37.559728 ], [ -121.987216, 37.556789 ], [ -121.988494, 37.555415 ], [ -121.992532, 37.550662 ], [ -121.996258, 37.552612 ], [ -122.003709, 37.556474 ], [ -122.003776, 37.55651 ], [ -122.004618, 37.556952 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404101", "AFFGEOID": "1400000US06001404101", "GEOID": "06001404101", "NAME_x": "4041.01", "LSAD": "CT", "ALAND": 571728, "AWATER": 0, "NAME_y": "Census Tract 4041.01, Alameda County, California", "c_race": 3088, "c_white": 1935, "c_black": 236, "c_asian": 383, "c_latinx": 192, "state_fips": 6, "county_fips": 1, "tract_fips": 404101, "med_rent": 1642.0, "med_hhinc": 93721.0, "c_tenants": 1710, "c_owners": 583, "c_renters": 1127, "c_movers": 3051, "c_stay": 2725, "c_movelocal": 137, "c_movecounty": 159, "c_movestate": 12, "c_moveabroad": 18, "c_commute": 2077, "c_car": 676, "c_carpool": 247, "c_transit": 728, "c_bike": 49, "c_walk": 141, "year": 2018, "FIPS_11_digit": "06001404101", "p_white": 0.62661917098445596, "p_black": 0.076424870466321196, "p_asian": 0.12402849740932639, "p_latinx": 0.0621761658031088, "p_owners": 0.34093567251461981, "p_renters": 0.65906432748538013, "p_stay": 0.89314978695509673, "p_movelocal": 0.044903310390035998, "p_movecounty": 0.052114060963618397, "p_movestate": 0.0039331366764994999, "p_moveabroad": 0.0058997050147492, "p_car": 0.3254694270582571, "p_carpool": 0.1189215214251324, "p_transit": 0.35050553683196911, "p_bike": 0.023591718825228598, "p_walk": 0.067886374578719294 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.254455, 37.831252 ], [ -122.25241, 37.834543 ], [ -122.250523, 37.833668 ], [ -122.248742, 37.831714 ], [ -122.246964, 37.833075 ], [ -122.243288, 37.830063 ], [ -122.243358, 37.829833 ], [ -122.245476, 37.827538 ], [ -122.24768, 37.826241 ], [ -122.247605, 37.826763 ], [ -122.249353, 37.828701 ], [ -122.251202, 37.8273 ], [ -122.252453, 37.826373 ], [ -122.256203, 37.828483 ], [ -122.254455, 37.831252 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405902", "AFFGEOID": "1400000US06001405902", "GEOID": "06001405902", "NAME_x": "4059.02", "LSAD": "CT", "ALAND": 487280, "AWATER": 0, "NAME_y": "Census Tract 4059.02, Alameda County, California", "c_race": 2979, "c_white": 279, "c_black": 360, "c_asian": 1548, "c_latinx": 702, "state_fips": 6, "county_fips": 1, "tract_fips": 405902, "med_rent": 1246.0, "med_hhinc": 40089.0, "c_tenants": 923, "c_owners": 300, "c_renters": 623, "c_movers": 2939, "c_stay": 2670, "c_movelocal": 111, "c_movecounty": 31, "c_movestate": 6, "c_moveabroad": 121, "c_commute": 1325, "c_car": 764, "c_carpool": 177, "c_transit": 195, "c_bike": 21, "c_walk": 69, "year": 2018, "FIPS_11_digit": "06001405902", "p_white": 0.093655589123866997, "p_black": 0.12084592145015099, "p_asian": 0.51963746223564955, "p_latinx": 0.23564954682779449, "p_owners": 0.32502708559046589, "p_renters": 0.67497291440953411, "p_stay": 0.90847226947941484, "p_movelocal": 0.0377679482817284, "p_movecounty": 0.0105478053759782, "p_movestate": 0.0020415107179312, "p_moveabroad": 0.041170466144947203, "p_car": 0.57660377358490567, "p_carpool": 0.13358490566037731, "p_transit": 0.14716981132075471, "p_bike": 0.0158490566037735, "p_walk": 0.052075471698113197 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.247175, 37.789913 ], [ -122.243512, 37.792528 ], [ -122.242618, 37.793164 ], [ -122.241694, 37.793825 ], [ -122.239833, 37.795136 ], [ -122.237951, 37.794948 ], [ -122.237547, 37.793494 ], [ -122.235512, 37.792267 ], [ -122.237876, 37.789765 ], [ -122.237974, 37.789708 ], [ -122.239448, 37.788135 ], [ -122.241044, 37.786487 ], [ -122.245238, 37.788992 ], [ -122.247175, 37.789913 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407700", "AFFGEOID": "1400000US06001407700", "GEOID": "06001407700", "NAME_x": "4077", "LSAD": "CT", "ALAND": 918668, "AWATER": 0, "NAME_y": "Census Tract 4077, Alameda County, California", "c_race": 4288, "c_white": 1158, "c_black": 1964, "c_asian": 324, "c_latinx": 553, "state_fips": 6, "county_fips": 1, "tract_fips": 407700, "med_rent": 1765.0, "med_hhinc": 74409.0, "c_tenants": 1691, "c_owners": 1234, "c_renters": 457, "c_movers": 4224, "c_stay": 3695, "c_movelocal": 337, "c_movecounty": 69, "c_movestate": 113, "c_moveabroad": 10, "c_commute": 2057, "c_car": 1220, "c_carpool": 139, "c_transit": 505, "c_bike": 0, "c_walk": 5, "year": 2018, "FIPS_11_digit": "06001407700", "p_white": 0.2700559701492537, "p_black": 0.45802238805970141, "p_asian": 0.075559701492537296, "p_latinx": 0.1289645522388059, "p_owners": 0.729745712596097, "p_renters": 0.270254287403903, "p_stay": 0.87476325757575757, "p_movelocal": 0.079782196969696906, "p_movecounty": 0.016335227272727199, "p_movestate": 0.026751893939393898, "p_moveabroad": 0.0023674242424242, "p_car": 0.5930967428293632, "p_carpool": 0.067574137092853606, "p_transit": 0.24550315994166261, "p_bike": 0.0, "p_walk": 0.0024307243558580002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.199497, 37.778386 ], [ -122.195924, 37.780924 ], [ -122.193629, 37.782553 ], [ -122.193537, 37.782575 ], [ -122.192015, 37.781062 ], [ -122.188298, 37.777873 ], [ -122.187944, 37.777823 ], [ -122.185933, 37.775838 ], [ -122.185069, 37.775653 ], [ -122.18619, 37.774664 ], [ -122.190319, 37.771571 ], [ -122.19592, 37.772639 ], [ -122.199324, 37.775641 ], [ -122.201116, 37.777237 ], [ -122.199497, 37.778386 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420500", "AFFGEOID": "1400000US06001420500", "GEOID": "06001420500", "NAME_x": "4205", "LSAD": "CT", "ALAND": 416291, "AWATER": 0, "NAME_y": "Census Tract 4205, Alameda County, California", "c_race": 2537, "c_white": 1291, "c_black": 114, "c_asian": 538, "c_latinx": 226, "state_fips": 6, "county_fips": 1, "tract_fips": 420500, "med_rent": 1846.0, "med_hhinc": 94395.0, "c_tenants": 977, "c_owners": 449, "c_renters": 528, "c_movers": 2491, "c_stay": 2276, "c_movelocal": 98, "c_movecounty": 83, "c_movestate": 28, "c_moveabroad": 6, "c_commute": 1206, "c_car": 565, "c_carpool": 84, "c_transit": 257, "c_bike": 84, "c_walk": 65, "year": 2018, "FIPS_11_digit": "06001420500", "p_white": 0.5088687426093812, "p_black": 0.044934962554197801, "p_asian": 0.21206148994875831, "p_latinx": 0.089081592432006307, "p_owners": 0.45957011258955988, "p_renters": 0.54042988741044007, "p_stay": 0.91368928141308725, "p_movelocal": 0.039341629867523001, "p_movecounty": 0.0333199518265756, "p_movestate": 0.0112404656764351, "p_moveabroad": 0.0024086712163788999, "p_car": 0.46849087893864011, "p_carpool": 0.069651741293532299, "p_transit": 0.21310116086235489, "p_bike": 0.069651741293532299, "p_walk": 0.053897180762852402 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.299051, 37.890264 ], [ -122.296262, 37.890403 ], [ -122.293738, 37.890555 ], [ -122.293128, 37.889812 ], [ -122.29245, 37.887705 ], [ -122.291677, 37.885275 ], [ -122.290831, 37.883311 ], [ -122.294373, 37.882752 ], [ -122.296891, 37.883498 ], [ -122.297909, 37.886679 ], [ -122.298249, 37.887758 ], [ -122.299051, 37.890264 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422500", "AFFGEOID": "1400000US06001422500", "GEOID": "06001422500", "NAME_x": "4225", "LSAD": "CT", "ALAND": 460334, "AWATER": 0, "NAME_y": "Census Tract 4225, Alameda County, California", "c_race": 4047, "c_white": 1991, "c_black": 135, "c_asian": 1228, "c_latinx": 421, "state_fips": 6, "county_fips": 1, "tract_fips": 422500, "med_rent": 1607.0, "med_hhinc": 66761.0, "c_tenants": 1373, "c_owners": 301, "c_renters": 1072, "c_movers": 4047, "c_stay": 2399, "c_movelocal": 671, "c_movecounty": 559, "c_movestate": 158, "c_moveabroad": 260, "c_commute": 1912, "c_car": 305, "c_carpool": 114, "c_transit": 394, "c_bike": 51, "c_walk": 907, "year": 2018, "FIPS_11_digit": "06001422500", "p_white": 0.49196936001976771, "p_black": 0.033358042994810898, "p_asian": 0.30343464294539157, "p_latinx": 0.1040276748208549, "p_owners": 0.2192279679533867, "p_renters": 0.78077203204661327, "p_stay": 0.59278477884852976, "p_movelocal": 0.16580182851494929, "p_movecounty": 0.138127007659995, "p_movestate": 0.039041265134667602, "p_moveabroad": 0.0642451198418581, "p_car": 0.15951882845188281, "p_carpool": 0.059623430962343099, "p_transit": 0.2060669456066945, "p_bike": 0.026673640167364, "p_walk": 0.47437238493723849 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.265752, 37.878806 ], [ -122.258052, 37.879821 ], [ -122.258205, 37.880573 ], [ -122.256643, 37.879959 ], [ -122.255593, 37.880194 ], [ -122.254723, 37.875627 ], [ -122.255726, 37.875668 ], [ -122.258357, 37.875337 ], [ -122.265383, 37.874297 ], [ -122.265447, 37.876515 ], [ -122.265646, 37.877305 ], [ -122.265752, 37.878806 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423902", "AFFGEOID": "1400000US06001423902", "GEOID": "06001423902", "NAME_x": "4239.02", "LSAD": "CT", "ALAND": 309231, "AWATER": 0, "NAME_y": "Census Tract 4239.02, Alameda County, California", "c_race": 1593, "c_white": 1173, "c_black": 42, "c_asian": 204, "c_latinx": 88, "state_fips": 6, "county_fips": 1, "tract_fips": 423902, "med_rent": 1707.0, "med_hhinc": 130000.0, "c_tenants": 726, "c_owners": 265, "c_renters": 461, "c_movers": 1579, "c_stay": 1353, "c_movelocal": 88, "c_movecounty": 74, "c_movestate": 53, "c_moveabroad": 11, "c_commute": 999, "c_car": 350, "c_carpool": 71, "c_transit": 271, "c_bike": 103, "c_walk": 98, "year": 2018, "FIPS_11_digit": "06001423902", "p_white": 0.73634651600753298, "p_black": 0.026365348399246698, "p_asian": 0.128060263653484, "p_latinx": 0.055241682360326401, "p_owners": 0.36501377410468322, "p_renters": 0.63498622589531684, "p_stay": 0.85687143761874607, "p_movelocal": 0.055731475617479397, "p_movecounty": 0.0468651044965167, "p_movestate": 0.033565547815072802, "p_moveabroad": 0.0069664344521849003, "p_car": 0.35035035035035028, "p_carpool": 0.071071071071070996, "p_transit": 0.27127127127127121, "p_bike": 0.1031031031031031, "p_walk": 0.098098098098098094 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.262407, 37.855865 ], [ -122.256848, 37.856616 ], [ -122.253099, 37.857088 ], [ -122.252503, 37.850826 ], [ -122.253346, 37.85383 ], [ -122.256197, 37.853449 ], [ -122.257251, 37.853176 ], [ -122.258367, 37.853196 ], [ -122.260223, 37.852793 ], [ -122.261829, 37.85258 ], [ -122.262407, 37.855865 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428600", "AFFGEOID": "1400000US06001428600", "GEOID": "06001428600", "NAME_x": "4286", "LSAD": "CT", "ALAND": 901737, "AWATER": 1077651, "NAME_y": "Census Tract 4286, Alameda County, California", "c_race": 3471, "c_white": 1470, "c_black": 218, "c_asian": 1219, "c_latinx": 196, "state_fips": 6, "county_fips": 1, "tract_fips": 428600, "med_rent": 2155.0, "med_hhinc": 87344.0, "c_tenants": 1610, "c_owners": 870, "c_renters": 740, "c_movers": 3449, "c_stay": 2647, "c_movelocal": 234, "c_movecounty": 381, "c_movestate": 126, "c_moveabroad": 61, "c_commute": 1785, "c_car": 982, "c_carpool": 34, "c_transit": 483, "c_bike": 62, "c_walk": 63, "year": 2018, "FIPS_11_digit": "06001428600", "p_white": 0.4235090751944684, "p_black": 0.062806107749927897, "p_asian": 0.35119562085854222, "p_latinx": 0.056467876692595703, "p_owners": 0.54037267080745344, "p_renters": 0.45962732919254651, "p_stay": 0.76746883154537548, "p_movelocal": 0.067845752391997596, "p_movecounty": 0.1104668019715859, "p_movestate": 0.036532328211075597, "p_moveabroad": 0.017686285879965201, "p_car": 0.55014005602240901, "p_carpool": 0.019047619047619001, "p_transit": 0.27058823529411757, "p_bike": 0.034733893557422901, "p_walk": 0.035294117647058802 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.279931, 37.768179 ], [ -122.278489, 37.768358 ], [ -122.278362, 37.771424 ], [ -122.276849, 37.771384 ], [ -122.275088, 37.771352 ], [ -122.272877, 37.771274 ], [ -122.272973, 37.769256 ], [ -122.271266, 37.768585 ], [ -122.270705, 37.768599 ], [ -122.263677, 37.765421 ], [ -122.261421, 37.763845 ], [ -122.262015, 37.762939 ], [ -122.26414, 37.759439 ], [ -122.264503275634013, 37.758932301582504 ], [ -122.271905, 37.761508 ], [ -122.274989, 37.765736 ], [ -122.279401, 37.768134 ], [ -122.279871788424003, 37.7675851959415 ], [ -122.279931, 37.768179 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441401", "AFFGEOID": "1400000US06001441401", "GEOID": "06001441401", "NAME_x": "4414.01", "LSAD": "CT", "ALAND": 1888871, "AWATER": 0, "NAME_y": "Census Tract 4414.01, Alameda County, California", "c_race": 8702, "c_white": 1599, "c_black": 402, "c_asian": 5205, "c_latinx": 932, "state_fips": 6, "county_fips": 1, "tract_fips": 441401, "med_rent": 2108.0, "med_hhinc": 131071.0, "c_tenants": 2522, "c_owners": 1545, "c_renters": 977, "c_movers": 8625, "c_stay": 7693, "c_movelocal": 475, "c_movecounty": 331, "c_movestate": 79, "c_moveabroad": 47, "c_commute": 3043, "c_car": 2244, "c_carpool": 366, "c_transit": 242, "c_bike": 23, "c_walk": 85, "year": 2018, "FIPS_11_digit": "06001441401", "p_white": 0.1837508618708342, "p_black": 0.046196276717995803, "p_asian": 0.59813835899793155, "p_latinx": 0.1071018156745575, "p_owners": 0.61260904044409203, "p_renters": 0.38739095955590802, "p_stay": 0.89194202898550723, "p_movelocal": 0.055072463768115899, "p_movecounty": 0.038376811594202899, "p_movestate": 0.0091594202898550008, "p_moveabroad": 0.0054492753623187999, "p_car": 0.73743016759776536, "p_carpool": 0.1202760433782451, "p_transit": 0.079526782780151101, "p_bike": 0.0075583305948076999, "p_walk": 0.027932960893854698 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.049254, 37.581793 ], [ -122.045849, 37.577567 ], [ -122.041198, 37.575093 ], [ -122.037028, 37.580675 ], [ -122.035394, 37.581569 ], [ -122.033549, 37.581518 ], [ -122.031403, 37.580321 ], [ -122.028327, 37.57786 ], [ -122.0268, 37.576923 ], [ -122.032429, 37.570799 ], [ -122.036557, 37.566277 ], [ -122.036309, 37.566212 ], [ -122.038506, 37.563408 ], [ -122.041645, 37.56634 ], [ -122.043128, 37.56773 ], [ -122.04452, 37.569316 ], [ -122.045512, 37.570834 ], [ -122.048354, 37.578599 ], [ -122.049204, 37.58105 ], [ -122.049254, 37.581793 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450744", "AFFGEOID": "1400000US06001450744", "GEOID": "06001450744", "NAME_x": "4507.44", "LSAD": "CT", "ALAND": 2645159, "AWATER": 0, "NAME_y": "Census Tract 4507.44, Alameda County, California", "c_race": 6055, "c_white": 3744, "c_black": 105, "c_asian": 1528, "c_latinx": 424, "state_fips": 6, "county_fips": 1, "tract_fips": 450744, "med_rent": 2574.0, "med_hhinc": 144618.0, "c_tenants": 1971, "c_owners": 1269, "c_renters": 702, "c_movers": 6043, "c_stay": 5225, "c_movelocal": 382, "c_movecounty": 371, "c_movestate": 0, "c_moveabroad": 65, "c_commute": 2682, "c_car": 1944, "c_carpool": 96, "c_transit": 258, "c_bike": 0, "c_walk": 70, "year": 2018, "FIPS_11_digit": "06001450744", "p_white": 0.61833195706028077, "p_black": 0.017341040462427699, "p_asian": 0.25235342691990093, "p_latinx": 0.070024772914946298, "p_owners": 0.64383561643835618, "p_renters": 0.35616438356164382, "p_stay": 0.86463676981631643, "p_movelocal": 0.063213635611451199, "p_movecounty": 0.061393347674995803, "p_movestate": 0.0, "p_moveabroad": 0.0107562468972364, "p_car": 0.72483221476510062, "p_carpool": 0.0357941834451901, "p_transit": 0.0961968680089485, "p_bike": 0.0, "p_walk": 0.0260999254287844 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.878823, 37.701841 ], [ -121.872265, 37.701817 ], [ -121.872187, 37.70257 ], [ -121.869544, 37.701778 ], [ -121.865179, 37.701506 ], [ -121.855044, 37.70141 ], [ -121.849501, 37.701354 ], [ -121.848357, 37.699727 ], [ -121.848271, 37.694882 ], [ -121.848687, 37.694573 ], [ -121.848734, 37.693867 ], [ -121.848858, 37.693868 ], [ -121.854239, 37.693933 ], [ -121.864237, 37.693942 ], [ -121.865073, 37.693666 ], [ -121.869089, 37.691918 ], [ -121.877938, 37.688952 ], [ -121.878124, 37.694447 ], [ -121.878822, 37.70088 ], [ -121.878823, 37.701841 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451404", "AFFGEOID": "1400000US06001451404", "GEOID": "06001451404", "NAME_x": "4514.04", "LSAD": "CT", "ALAND": 1674931, "AWATER": 0, "NAME_y": "Census Tract 4514.04, Alameda County, California", "c_race": 6762, "c_white": 2706, "c_black": 290, "c_asian": 491, "c_latinx": 3119, "state_fips": 6, "county_fips": 1, "tract_fips": 451404, "med_rent": 1737.0, "med_hhinc": 69701.0, "c_tenants": 2156, "c_owners": 946, "c_renters": 1210, "c_movers": 6718, "c_stay": 5945, "c_movelocal": 620, "c_movecounty": 79, "c_movestate": 28, "c_moveabroad": 46, "c_commute": 3873, "c_car": 2810, "c_carpool": 535, "c_transit": 148, "c_bike": 47, "c_walk": 124, "year": 2018, "FIPS_11_digit": "06001451404", "p_white": 0.40017746228926349, "p_black": 0.0428867199053534, "p_asian": 0.072611653356994904, "p_latinx": 0.4612540668441289, "p_owners": 0.43877551020408162, "p_renters": 0.56122448979591832, "p_stay": 0.88493599285501634, "p_movelocal": 0.092289371836856204, "p_movecounty": 0.011759452217922, "p_movestate": 0.0041679071152127996, "p_moveabroad": 0.0068472759749924998, "p_car": 0.72553576039246059, "p_carpool": 0.1381358120320165, "p_transit": 0.038213271365866198, "p_bike": 0.0121352956364575, "p_walk": 0.032016524657887901 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.790821, 37.688359 ], [ -121.784161, 37.688337 ], [ -121.783379, 37.688289 ], [ -121.780541, 37.689032 ], [ -121.775667, 37.690491 ], [ -121.775941, 37.69131 ], [ -121.775048, 37.691105 ], [ -121.773113, 37.691028 ], [ -121.772448, 37.689554 ], [ -121.764867, 37.685891 ], [ -121.772433, 37.683644 ], [ -121.777436, 37.682187 ], [ -121.788118, 37.678954 ], [ -121.788813, 37.679528 ], [ -121.790583, 37.680693 ], [ -121.790921, 37.682886 ], [ -121.790821, 37.688359 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405402", "AFFGEOID": "1400000US06001405402", "GEOID": "06001405402", "NAME_x": "4054.02", "LSAD": "CT", "ALAND": 285369, "AWATER": 0, "NAME_y": "Census Tract 4054.02, Alameda County, California", "c_race": 3275, "c_white": 460, "c_black": 943, "c_asian": 958, "c_latinx": 673, "state_fips": 6, "county_fips": 1, "tract_fips": 405402, "med_rent": 1167.0, "med_hhinc": 51414.0, "c_tenants": 1167, "c_owners": 122, "c_renters": 1045, "c_movers": 3250, "c_stay": 2599, "c_movelocal": 487, "c_movecounty": 86, "c_movestate": 0, "c_moveabroad": 78, "c_commute": 1670, "c_car": 876, "c_carpool": 115, "c_transit": 429, "c_bike": 96, "c_walk": 71, "year": 2018, "FIPS_11_digit": "06001405402", "p_white": 0.1404580152671755, "p_black": 0.28793893129770992, "p_asian": 0.29251908396946558, "p_latinx": 0.2054961832061068, "p_owners": 0.10454155955441299, "p_renters": 0.89545844044558698, "p_stay": 0.7996923076923077, "p_movelocal": 0.1498461538461538, "p_movecounty": 0.026461538461538401, "p_movestate": 0.0, "p_moveabroad": 0.024, "p_car": 0.5245508982035928, "p_carpool": 0.068862275449101798, "p_transit": 0.2568862275449102, "p_bike": 0.057485029940119697, "p_walk": 0.042514970059880197 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.248697, 37.794132 ], [ -122.246824, 37.795476 ], [ -122.245002, 37.796765 ], [ -122.243346, 37.795289 ], [ -122.241694, 37.793825 ], [ -122.242618, 37.793164 ], [ -122.243512, 37.792528 ], [ -122.247175, 37.789913 ], [ -122.248014, 37.790626 ], [ -122.250515, 37.792834 ], [ -122.248697, 37.794132 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409700", "AFFGEOID": "1400000US06001409700", "GEOID": "06001409700", "NAME_x": "4097", "LSAD": "CT", "ALAND": 811306, "AWATER": 0, "NAME_y": "Census Tract 4097, Alameda County, California", "c_race": 5183, "c_white": 161, "c_black": 1871, "c_asian": 142, "c_latinx": 2789, "state_fips": 6, "county_fips": 1, "tract_fips": 409700, "med_rent": 1567.0, "med_hhinc": 47798.0, "c_tenants": 1534, "c_owners": 562, "c_renters": 972, "c_movers": 5104, "c_stay": 4518, "c_movelocal": 381, "c_movecounty": 62, "c_movestate": 62, "c_moveabroad": 81, "c_commute": 2090, "c_car": 1146, "c_carpool": 445, "c_transit": 381, "c_bike": 18, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001409700", "p_white": 0.031063090874011101, "p_black": 0.36098784487748409, "p_asian": 0.027397260273972601, "p_latinx": 0.53810534439513791, "p_owners": 0.3663624511082138, "p_renters": 0.63363754889178614, "p_stay": 0.8851880877742947, "p_movelocal": 0.074647335423197403, "p_movecounty": 0.012147335423197399, "p_movestate": 0.012147335423197399, "p_moveabroad": 0.0158699059561128, "p_car": 0.54832535885167466, "p_carpool": 0.21291866028708131, "p_transit": 0.18229665071770329, "p_bike": 0.0086124401913875003, "p_walk": 0.0028708133971290998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.170547, 37.759996 ], [ -122.168729, 37.760898 ], [ -122.164942, 37.762685 ], [ -122.163427, 37.760987 ], [ -122.161979, 37.757225 ], [ -122.161409, 37.755639 ], [ -122.1604, 37.752903 ], [ -122.164044, 37.75119 ], [ -122.167145, 37.749709 ], [ -122.168291, 37.75126 ], [ -122.167868, 37.752648 ], [ -122.167571, 37.752785 ], [ -122.169531, 37.755422 ], [ -122.169977, 37.756045 ], [ -122.172296, 37.75915 ], [ -122.170547, 37.759996 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427800", "AFFGEOID": "1400000US06001427800", "GEOID": "06001427800", "NAME_x": "4278", "LSAD": "CT", "ALAND": 831152, "AWATER": 0, "NAME_y": "Census Tract 4278, Alameda County, California", "c_race": 5052, "c_white": 2486, "c_black": 162, "c_asian": 1517, "c_latinx": 318, "state_fips": 6, "county_fips": 1, "tract_fips": 427800, "med_rent": 1491.0, "med_hhinc": 102942.0, "c_tenants": 2045, "c_owners": 879, "c_renters": 1166, "c_movers": 4984, "c_stay": 4353, "c_movelocal": 453, "c_movecounty": 151, "c_movestate": 27, "c_moveabroad": 0, "c_commute": 2499, "c_car": 1444, "c_carpool": 104, "c_transit": 574, "c_bike": 117, "c_walk": 68, "year": 2018, "FIPS_11_digit": "06001427800", "p_white": 0.49208234362628661, "p_black": 0.032066508313539098, "p_asian": 0.30027711797307999, "p_latinx": 0.062945368171021296, "p_owners": 0.42982885085574568, "p_renters": 0.57017114914425426, "p_stay": 0.8733948635634029, "p_movelocal": 0.0908908507223114, "p_movecounty": 0.0302969502407704, "p_movestate": 0.0054173354735151998, "p_moveabroad": 0.0, "p_car": 0.57783113245298123, "p_carpool": 0.041616646658663402, "p_transit": 0.22969187675070021, "p_bike": 0.046818727490996401, "p_walk": 0.027210884353741398 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.276796, 37.775134 ], [ -122.270439, 37.774994 ], [ -122.269417, 37.774965 ], [ -122.265832, 37.774817 ], [ -122.263307, 37.774715 ], [ -122.263472, 37.770948 ], [ -122.263533, 37.769242 ], [ -122.263596, 37.767431 ], [ -122.263677, 37.765421 ], [ -122.270705, 37.768599 ], [ -122.271266, 37.768585 ], [ -122.272973, 37.769256 ], [ -122.272877, 37.771274 ], [ -122.275088, 37.771352 ], [ -122.276849, 37.771384 ], [ -122.276796, 37.775134 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442601", "AFFGEOID": "1400000US06001442601", "GEOID": "06001442601", "NAME_x": "4426.01", "LSAD": "CT", "ALAND": 1181580, "AWATER": 0, "NAME_y": "Census Tract 4426.01, Alameda County, California", "c_race": 4175, "c_white": 1360, "c_black": 42, "c_asian": 1661, "c_latinx": 889, "state_fips": 6, "county_fips": 1, "tract_fips": 442601, "med_rent": 2206.0, "med_hhinc": 147632.0, "c_tenants": 1306, "c_owners": 934, "c_renters": 372, "c_movers": 4105, "c_stay": 3870, "c_movelocal": 109, "c_movecounty": 95, "c_movestate": 17, "c_moveabroad": 14, "c_commute": 1622, "c_car": 1149, "c_carpool": 181, "c_transit": 147, "c_bike": 0, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001442601", "p_white": 0.32574850299401198, "p_black": 0.0100598802395209, "p_asian": 0.39784431137724552, "p_latinx": 0.21293413173652689, "p_owners": 0.71516079632465546, "p_renters": 0.28483920367534449, "p_stay": 0.94275274056029235, "p_movelocal": 0.026552984165651598, "p_movecounty": 0.023142509135200901, "p_movestate": 0.0041412911084043004, "p_moveabroad": 0.0034104750304506, "p_car": 0.70838471023427863, "p_carpool": 0.1115906288532675, "p_transit": 0.090628853267570905, "p_bike": 0.0, "p_walk": 0.0061652281134401002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.003083, 37.542733 ], [ -122.001088, 37.54667 ], [ -121.999131, 37.54911 ], [ -121.996258, 37.552612 ], [ -121.992532, 37.550662 ], [ -121.990833, 37.549815 ], [ -121.993373, 37.546882 ], [ -121.991011, 37.545522 ], [ -121.993279, 37.542744 ], [ -121.996816, 37.538418 ], [ -121.998519, 37.536371 ], [ -122.005337, 37.539893 ], [ -122.003083, 37.542733 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450743", "AFFGEOID": "1400000US06001450743", "GEOID": "06001450743", "NAME_x": "4507.43", "LSAD": "CT", "ALAND": 4333268, "AWATER": 0, "NAME_y": "Census Tract 4507.43, Alameda County, California", "c_race": 6692, "c_white": 1468, "c_black": 333, "c_asian": 4036, "c_latinx": 277, "state_fips": 6, "county_fips": 1, "tract_fips": 450743, "med_rent": 2342.0, "med_hhinc": 125136.0, "c_tenants": 2380, "c_owners": 813, "c_renters": 1567, "c_movers": 6661, "c_stay": 4684, "c_movelocal": 1154, "c_movecounty": 305, "c_movestate": 186, "c_moveabroad": 332, "c_commute": 3177, "c_car": 2138, "c_carpool": 127, "c_transit": 490, "c_bike": 38, "c_walk": 270, "year": 2018, "FIPS_11_digit": "06001450743", "p_white": 0.21936640765092649, "p_black": 0.049760908547519397, "p_asian": 0.60310818888224749, "p_latinx": 0.041392707710699299, "p_owners": 0.34159663865546219, "p_renters": 0.65840336134453781, "p_stay": 0.70319771806035125, "p_movelocal": 0.17324726017114539, "p_movecounty": 0.045788920582495098, "p_movestate": 0.027923735174898601, "p_moveabroad": 0.049842366011109397, "p_car": 0.67296191375511494, "p_carpool": 0.0399748190116462, "p_transit": 0.15423355366698141, "p_bike": 0.011960969468051599, "p_walk": 0.084985835694050896 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.907178, 37.7021 ], [ -121.906606, 37.702327 ], [ -121.898803, 37.702011 ], [ -121.878823, 37.701841 ], [ -121.878822, 37.70088 ], [ -121.878124, 37.694447 ], [ -121.877938, 37.688952 ], [ -121.878146, 37.688893 ], [ -121.886279, 37.686485 ], [ -121.886835, 37.686248 ], [ -121.890448, 37.684739 ], [ -121.903403, 37.680281 ], [ -121.90379, 37.681896 ], [ -121.903657, 37.683103 ], [ -121.903586, 37.68819 ], [ -121.90355, 37.691574 ], [ -121.903469, 37.697301 ], [ -121.903784, 37.698063 ], [ -121.906908, 37.70177 ], [ -121.907013, 37.701893 ], [ -121.907178, 37.7021 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400100", "AFFGEOID": "1400000US06001400100", "GEOID": "06001400100", "NAME_x": "4001", "LSAD": "CT", "ALAND": 6894334, "AWATER": 0, "NAME_y": "Census Tract 4001, Alameda County, California", "c_race": 3115, "c_white": 2055, "c_black": 128, "c_asian": 592, "c_latinx": 104, "state_fips": 6, "county_fips": 1, "tract_fips": 400100, "med_rent": 3501.0, "med_hhinc": 200893.0, "c_tenants": 1297, "c_owners": 1158, "c_renters": 139, "c_movers": 3084, "c_stay": 2514, "c_movelocal": 202, "c_movecounty": 120, "c_movestate": 219, "c_moveabroad": 29, "c_commute": 1542, "c_car": 864, "c_carpool": 165, "c_transit": 271, "c_bike": 0, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001400100", "p_white": 0.6597110754414125, "p_black": 0.041091492776886, "p_asian": 0.19004815409309789, "p_latinx": 0.033386837881219898, "p_owners": 0.89282960678488821, "p_renters": 0.1071703932151117, "p_stay": 0.81517509727626458, "p_movelocal": 0.065499351491569394, "p_movecounty": 0.0389105058365758, "p_movestate": 0.071011673151750901, "p_moveabroad": 0.0094033722438391001, "p_car": 0.56031128404669261, "p_carpool": 0.1070038910505836, "p_transit": 0.175745784695201, "p_bike": 0.0, "p_walk": 0.0064850843060958998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.24692, 37.885438 ], [ -122.241971, 37.881927 ], [ -122.238679, 37.883325 ], [ -122.230979, 37.881325 ], [ -122.223878, 37.878326 ], [ -122.221376, 37.875325 ], [ -122.217376, 37.871724 ], [ -122.216276, 37.868822 ], [ -122.219181, 37.867226 ], [ -122.221488, 37.865026 ], [ -122.220389, 37.864427 ], [ -122.214736, 37.85951 ], [ -122.213196, 37.857601 ], [ -122.21238, 37.857234 ], [ -122.213584, 37.855977 ], [ -122.216737, 37.856199 ], [ -122.219349, 37.857728 ], [ -122.219371, 37.859413 ], [ -122.22108, 37.860114 ], [ -122.222621, 37.857711 ], [ -122.221609, 37.855291 ], [ -122.223451, 37.85511 ], [ -122.224047, 37.853575 ], [ -122.22356, 37.852172 ], [ -122.224196, 37.851016 ], [ -122.226748, 37.849962 ], [ -122.231291, 37.850839 ], [ -122.234084, 37.852518 ], [ -122.234185, 37.852543 ], [ -122.234761, 37.85779 ], [ -122.241715, 37.857248 ], [ -122.242347, 37.85761 ], [ -122.244505, 37.859129 ], [ -122.244065, 37.860776 ], [ -122.244733, 37.865788 ], [ -122.245338, 37.865986 ], [ -122.244877, 37.866276 ], [ -122.245156, 37.869737 ], [ -122.246414, 37.880983 ], [ -122.246833, 37.884106 ], [ -122.24692, 37.885438 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400200", "AFFGEOID": "1400000US06001400200", "GEOID": "06001400200", "NAME_x": "4002", "LSAD": "CT", "ALAND": 587453, "AWATER": 0, "NAME_y": "Census Tract 4002, Alameda County, California", "c_race": 2025, "c_white": 1436, "c_black": 59, "c_asian": 183, "c_latinx": 178, "state_fips": 6, "county_fips": 1, "tract_fips": 400200, "med_rent": 1902.0, "med_hhinc": 160536.0, "c_tenants": 855, "c_owners": 532, "c_renters": 323, "c_movers": 2012, "c_stay": 1827, "c_movelocal": 40, "c_movecounty": 46, "c_movestate": 39, "c_moveabroad": 60, "c_commute": 1211, "c_car": 500, "c_carpool": 40, "c_transit": 426, "c_bike": 62, "c_walk": 57, "year": 2018, "FIPS_11_digit": "06001400200", "p_white": 0.70913580246913577, "p_black": 0.029135802469135798, "p_asian": 0.090370370370370295, "p_latinx": 0.087901234567901207, "p_owners": 0.62222222222222223, "p_renters": 0.37777777777777771, "p_stay": 0.90805168986083495, "p_movelocal": 0.019880715705765401, "p_movecounty": 0.022862823061630198, "p_movestate": 0.019383697813121201, "p_moveabroad": 0.0298210735586481, "p_car": 0.4128819157720891, "p_carpool": 0.033030553261767098, "p_transit": 0.35177539223782001, "p_bike": 0.051197357555739002, "p_walk": 0.047068538398018098 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.257418, 37.843096 ], [ -122.256205, 37.844686 ], [ -122.255084, 37.846069 ], [ -122.25245, 37.849386 ], [ -122.252503, 37.850826 ], [ -122.25096, 37.851159 ], [ -122.249473, 37.851448 ], [ -122.241914, 37.851909 ], [ -122.242427, 37.850833 ], [ -122.244044, 37.850257 ], [ -122.243323, 37.849072 ], [ -122.243716, 37.848513 ], [ -122.247313, 37.846563 ], [ -122.251857, 37.844746 ], [ -122.254366, 37.843773 ], [ -122.257923, 37.842606 ], [ -122.257418, 37.843096 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400600", "AFFGEOID": "1400000US06001400600", "GEOID": "06001400600", "NAME_x": "4006", "LSAD": "CT", "ALAND": 297856, "AWATER": 0, "NAME_y": "Census Tract 4006, Alameda County, California", "c_race": 1638, "c_white": 817, "c_black": 343, "c_asian": 144, "c_latinx": 124, "state_fips": 6, "county_fips": 1, "tract_fips": 400600, "med_rent": 1640.0, "med_hhinc": 127232.0, "c_tenants": 657, "c_owners": 283, "c_renters": 374, "c_movers": 1587, "c_stay": 1221, "c_movelocal": 152, "c_movecounty": 146, "c_movestate": 68, "c_moveabroad": 0, "c_commute": 1022, "c_car": 370, "c_carpool": 120, "c_transit": 268, "c_bike": 93, "c_walk": 3, "year": 2018, "FIPS_11_digit": "06001400600", "p_white": 0.49877899877899878, "p_black": 0.20940170940170941, "p_asian": 0.087912087912087905, "p_latinx": 0.075702075702075697, "p_owners": 0.43074581430745812, "p_renters": 0.56925418569254183, "p_stay": 0.76937618147448017, "p_movelocal": 0.095778197857592895, "p_movecounty": 0.091997479521108996, "p_movestate": 0.042848141146817897, "p_moveabroad": 0.0, "p_car": 0.3620352250489236, "p_carpool": 0.11741682974559681, "p_transit": 0.26223091976516633, "p_bike": 0.090998043052837499, "p_walk": 0.0029354207436398999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.26807, 37.844136 ], [ -122.26514, 37.84453 ], [ -122.261296, 37.845027 ], [ -122.261805, 37.84179 ], [ -122.26186, 37.841353 ], [ -122.264164, 37.839997 ], [ -122.265631, 37.837636 ], [ -122.266653, 37.837482 ], [ -122.267257, 37.840152 ], [ -122.267562, 37.841672 ], [ -122.26807, 37.844136 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400700", "AFFGEOID": "1400000US06001400700", "GEOID": "06001400700", "NAME_x": "4007", "LSAD": "CT", "ALAND": 880302, "AWATER": 0, "NAME_y": "Census Tract 4007, Alameda County, California", "c_race": 5116, "c_white": 2032, "c_black": 1449, "c_asian": 286, "c_latinx": 984, "state_fips": 6, "county_fips": 1, "tract_fips": 400700, "med_rent": 1593.0, "med_hhinc": 77829.0, "c_tenants": 1947, "c_owners": 770, "c_renters": 1177, "c_movers": 5039, "c_stay": 4155, "c_movelocal": 361, "c_movecounty": 253, "c_movestate": 231, "c_moveabroad": 39, "c_commute": 3030, "c_car": 1237, "c_carpool": 288, "c_transit": 865, "c_bike": 297, "c_walk": 51, "year": 2018, "FIPS_11_digit": "06001400700", "p_white": 0.39718530101641908, "p_black": 0.2832290852228303, "p_asian": 0.055903049257232197, "p_latinx": 0.1923377638780297, "p_owners": 0.39548022598870058, "p_renters": 0.60451977401129942, "p_stay": 0.82456836673943246, "p_movelocal": 0.0716411986505259, "p_movecounty": 0.050208374677515301, "p_movestate": 0.0458424290533836, "p_moveabroad": 0.0077396308791425998, "p_car": 0.40825082508250821, "p_carpool": 0.095049504950494995, "p_transit": 0.28547854785478549, "p_bike": 0.098019801980197996, "p_walk": 0.016831683168316802 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.277885, 37.847509 ], [ -122.277766, 37.847525 ], [ -122.276188, 37.847734 ], [ -122.2758, 37.845867 ], [ -122.271236, 37.846465 ], [ -122.269144, 37.84674 ], [ -122.269226, 37.847201 ], [ -122.268763, 37.847261 ], [ -122.268183, 37.844585 ], [ -122.26807, 37.844136 ], [ -122.267562, 37.841672 ], [ -122.267257, 37.840152 ], [ -122.266653, 37.837482 ], [ -122.274641, 37.836408 ], [ -122.275638, 37.836447 ], [ -122.27622, 37.836818 ], [ -122.275718, 37.83816 ], [ -122.276311, 37.839266 ], [ -122.27658, 37.840676 ], [ -122.27701, 37.84359 ], [ -122.277586, 37.844782 ], [ -122.277981, 37.846972 ], [ -122.277885, 37.847509 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401100", "AFFGEOID": "1400000US06001401100", "GEOID": "06001401100", "NAME_x": "4011", "LSAD": "CT", "ALAND": 883588, "AWATER": 0, "NAME_y": "Census Tract 4011, Alameda County, California", "c_race": 4366, "c_white": 2296, "c_black": 482, "c_asian": 925, "c_latinx": 385, "state_fips": 6, "county_fips": 1, "tract_fips": 401100, "med_rent": 1608.0, "med_hhinc": 82049.0, "c_tenants": 2043, "c_owners": 495, "c_renters": 1548, "c_movers": 4332, "c_stay": 2932, "c_movelocal": 695, "c_movecounty": 413, "c_movestate": 272, "c_moveabroad": 20, "c_commute": 3201, "c_car": 527, "c_carpool": 202, "c_transit": 1672, "c_bike": 173, "c_walk": 152, "year": 2018, "FIPS_11_digit": "06001401100", "p_white": 0.52588181401740719, "p_black": 0.1103985341273476, "p_asian": 0.21186440677966101, "p_latinx": 0.088181401740723697, "p_owners": 0.24229074889867841, "p_renters": 0.75770925110132159, "p_stay": 0.67682363804247458, "p_movelocal": 0.16043397968605719, "p_movecounty": 0.095337026777469996, "p_movestate": 0.062788550323176304, "p_moveabroad": 0.0046168051708217004, "p_car": 0.16463605123398939, "p_carpool": 0.063105279600124894, "p_transit": 0.5223367697594502, "p_bike": 0.054045610746641597, "p_walk": 0.047485160887222697 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.2683, 37.826485 ], [ -122.267828, 37.827044 ], [ -122.266895, 37.831339 ], [ -122.266494, 37.833405 ], [ -122.265631, 37.837636 ], [ -122.263234, 37.837903 ], [ -122.262305, 37.837859 ], [ -122.262361, 37.837314 ], [ -122.259902, 37.836994 ], [ -122.259531, 37.836825 ], [ -122.259988, 37.831871 ], [ -122.260204, 37.831016 ], [ -122.260841, 37.828634 ], [ -122.261375, 37.826659 ], [ -122.2621, 37.823536 ], [ -122.261969, 37.822966 ], [ -122.268272, 37.824385 ], [ -122.268563, 37.824462 ], [ -122.2683, 37.826485 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401400", "AFFGEOID": "1400000US06001401400", "GEOID": "06001401400", "NAME_x": "4014", "LSAD": "CT", "ALAND": 762645, "AWATER": 0, "NAME_y": "Census Tract 4014, Alameda County, California", "c_race": 4331, "c_white": 1035, "c_black": 1425, "c_asian": 549, "c_latinx": 864, "state_fips": 6, "county_fips": 1, "tract_fips": 401400, "med_rent": 1275.0, "med_hhinc": 39250.0, "c_tenants": 1576, "c_owners": 298, "c_renters": 1278, "c_movers": 4324, "c_stay": 3406, "c_movelocal": 616, "c_movecounty": 231, "c_movestate": 33, "c_moveabroad": 38, "c_commute": 2259, "c_car": 1086, "c_carpool": 134, "c_transit": 492, "c_bike": 126, "c_walk": 147, "year": 2018, "FIPS_11_digit": "06001401400", "p_white": 0.2389748326021704, "p_black": 0.32902332024936498, "p_asian": 0.12676056338028169, "p_latinx": 0.19949203417224659, "p_owners": 0.18908629441624361, "p_renters": 0.81091370558375631, "p_stay": 0.78769657724329323, "p_movelocal": 0.14246068455134131, "p_movecounty": 0.053422756706752998, "p_movestate": 0.0076318223866790004, "p_moveabroad": 0.0087881591119332997, "p_car": 0.4807436918990704, "p_carpool": 0.059318282425852097, "p_transit": 0.21779548472775559, "p_bike": 0.0557768924302788, "p_walk": 0.065073041168658696 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.278611, 37.826878 ], [ -122.269649, 37.824812 ], [ -122.268563, 37.824462 ], [ -122.268272, 37.824385 ], [ -122.268811, 37.823103 ], [ -122.268876, 37.82312 ], [ -122.269891, 37.819488 ], [ -122.270041, 37.818894 ], [ -122.271379, 37.815031 ], [ -122.273394, 37.812723 ], [ -122.274122, 37.812829 ], [ -122.275265, 37.816452 ], [ -122.276053, 37.81887 ], [ -122.276246, 37.819478 ], [ -122.276697, 37.820883 ], [ -122.277372, 37.822934 ], [ -122.277915, 37.824623 ], [ -122.278611, 37.826878 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402500", "AFFGEOID": "1400000US06001402500", "GEOID": "06001402500", "NAME_x": "4025", "LSAD": "CT", "ALAND": 365455, "AWATER": 0, "NAME_y": "Census Tract 4025, Alameda County, California", "c_race": 1786, "c_white": 157, "c_black": 1147, "c_asian": 188, "c_latinx": 191, "state_fips": 6, "county_fips": 1, "tract_fips": 402500, "med_rent": 742.0, "med_hhinc": 21538.0, "c_tenants": 708, "c_owners": 76, "c_renters": 632, "c_movers": 1735, "c_stay": 1548, "c_movelocal": 126, "c_movecounty": 61, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 624, "c_car": 174, "c_carpool": 19, "c_transit": 257, "c_bike": 28, "c_walk": 87, "year": 2018, "FIPS_11_digit": "06001402500", "p_white": 0.087905935050391903, "p_black": 0.64221724524076151, "p_asian": 0.10526315789473679, "p_latinx": 0.1069428891377379, "p_owners": 0.10734463276836149, "p_renters": 0.89265536723163841, "p_stay": 0.89221902017291066, "p_movelocal": 0.072622478386167102, "p_movecounty": 0.035158501440922099, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.2788461538461538, "p_carpool": 0.0304487179487179, "p_transit": 0.41185897435897428, "p_bike": 0.044871794871794803, "p_walk": 0.1394230769230769 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.287923, 37.804853 ], [ -122.286208, 37.809606 ], [ -122.284009, 37.809106 ], [ -122.281485, 37.808568 ], [ -122.280965, 37.808301 ], [ -122.28274, 37.803675 ], [ -122.283322, 37.8017 ], [ -122.286832, 37.802685 ], [ -122.28867, 37.802755 ], [ -122.287923, 37.804853 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403600", "AFFGEOID": "1400000US06001403600", "GEOID": "06001403600", "NAME_x": "4036", "LSAD": "CT", "ALAND": 390014, "AWATER": 0, "NAME_y": "Census Tract 4036, Alameda County, California", "c_race": 5252, "c_white": 1892, "c_black": 1688, "c_asian": 546, "c_latinx": 712, "state_fips": 6, "county_fips": 1, "tract_fips": 403600, "med_rent": 1472.0, "med_hhinc": 76719.0, "c_tenants": 2578, "c_owners": 374, "c_renters": 2204, "c_movers": 5252, "c_stay": 4127, "c_movelocal": 594, "c_movecounty": 227, "c_movestate": 144, "c_moveabroad": 160, "c_commute": 3521, "c_car": 1752, "c_carpool": 282, "c_transit": 918, "c_bike": 86, "c_walk": 172, "year": 2018, "FIPS_11_digit": "06001403600", "p_white": 0.36024371667936023, "p_black": 0.32140137090632143, "p_asian": 0.1039603960396039, "p_latinx": 0.13556740289413549, "p_owners": 0.1450737005430566, "p_renters": 0.85492629945694332, "p_stay": 0.78579588728103578, "p_movelocal": 0.1130997715156131, "p_movecounty": 0.043221629855293202, "p_movestate": 0.027418126428027399, "p_moveabroad": 0.030464584920030399, "p_car": 0.49758591309287131, "p_carpool": 0.080090883271797697, "p_transit": 0.26072138596989491, "p_bike": 0.024424879295654602, "p_walk": 0.048849758591309203 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.258086, 37.814175 ], [ -122.256049, 37.815327 ], [ -122.253389, 37.81689 ], [ -122.252807, 37.817194 ], [ -122.254, 37.818764 ], [ -122.253679, 37.819001 ], [ -122.250419, 37.813277 ], [ -122.248008, 37.811513 ], [ -122.248598, 37.810505 ], [ -122.249438, 37.810536 ], [ -122.251462, 37.810841 ], [ -122.252558, 37.81058 ], [ -122.253026, 37.810491 ], [ -122.255389, 37.810661 ], [ -122.256414, 37.81092 ], [ -122.257052, 37.812522 ], [ -122.258893, 37.813547 ], [ -122.258086, 37.814175 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404000", "AFFGEOID": "1400000US06001404000", "GEOID": "06001404000", "NAME_x": "4040", "LSAD": "CT", "ALAND": 368297, "AWATER": 0, "NAME_y": "Census Tract 4040, Alameda County, California", "c_race": 2998, "c_white": 1772, "c_black": 168, "c_asian": 365, "c_latinx": 402, "state_fips": 6, "county_fips": 1, "tract_fips": 404000, "med_rent": 1532.0, "med_hhinc": 83114.0, "c_tenants": 1691, "c_owners": 500, "c_renters": 1191, "c_movers": 2975, "c_stay": 2592, "c_movelocal": 201, "c_movecounty": 50, "c_movestate": 92, "c_moveabroad": 40, "c_commute": 2057, "c_car": 915, "c_carpool": 247, "c_transit": 398, "c_bike": 75, "c_walk": 218, "year": 2018, "FIPS_11_digit": "06001404000", "p_white": 0.59106070713809211, "p_black": 0.056037358238825802, "p_asian": 0.12174783188792521, "p_latinx": 0.13408939292861899, "p_owners": 0.29568302779420458, "p_renters": 0.70431697220579537, "p_stay": 0.87126050420168066, "p_movelocal": 0.067563025210084005, "p_movecounty": 0.016806722689075598, "p_movestate": 0.0309243697478991, "p_moveabroad": 0.0134453781512605, "p_car": 0.44482255712202229, "p_carpool": 0.1200777831793874, "p_transit": 0.19348565872630041, "p_bike": 0.036460865337870602, "p_walk": 0.10597958191541069 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.256742, 37.827628 ], [ -122.253441, 37.825715 ], [ -122.253357, 37.825164 ], [ -122.250981, 37.823407 ], [ -122.249295, 37.823722 ], [ -122.24939, 37.822846 ], [ -122.247573, 37.821569 ], [ -122.251931, 37.820247 ], [ -122.252476, 37.819886 ], [ -122.253679, 37.819001 ], [ -122.254479, 37.819625 ], [ -122.254566, 37.821528 ], [ -122.254946, 37.82208 ], [ -122.25868, 37.824515 ], [ -122.256742, 37.827628 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405100", "AFFGEOID": "1400000US06001405100", "GEOID": "06001405100", "NAME_x": "4051", "LSAD": "CT", "ALAND": 1256536, "AWATER": 0, "NAME_y": "Census Tract 4051, Alameda County, California", "c_race": 4324, "c_white": 2666, "c_black": 756, "c_asian": 395, "c_latinx": 141, "state_fips": 6, "county_fips": 1, "tract_fips": 405100, "med_rent": 2569.0, "med_hhinc": 200729.0, "c_tenants": 1602, "c_owners": 1471, "c_renters": 131, "c_movers": 4156, "c_stay": 3721, "c_movelocal": 209, "c_movecounty": 196, "c_movestate": 30, "c_moveabroad": 0, "c_commute": 2350, "c_car": 1133, "c_carpool": 270, "c_transit": 316, "c_bike": 181, "c_walk": 60, "year": 2018, "FIPS_11_digit": "06001405100", "p_white": 0.61655874190564297, "p_black": 0.17483811285846429, "p_asian": 0.091350601295097103, "p_latinx": 0.032608695652173898, "p_owners": 0.91822721598002499, "p_renters": 0.081772784019974995, "p_stay": 0.89533205004812322, "p_movelocal": 0.050288739172281001, "p_movecounty": 0.047160731472569703, "p_movestate": 0.0072184793070259002, "p_moveabroad": 0.0, "p_car": 0.48212765957446801, "p_carpool": 0.1148936170212766, "p_transit": 0.13446808510638289, "p_bike": 0.077021276595744606, "p_walk": 0.025531914893616999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.242276, 37.811565 ], [ -122.241101, 37.81276 ], [ -122.239028, 37.814281 ], [ -122.238144, 37.815118 ], [ -122.232012, 37.81433 ], [ -122.233001, 37.816115 ], [ -122.233296, 37.816492 ], [ -122.232245, 37.816194 ], [ -122.225234, 37.814605 ], [ -122.224011, 37.81435 ], [ -122.220433, 37.813439 ], [ -122.221698, 37.81267 ], [ -122.222502, 37.81103 ], [ -122.227693, 37.808099 ], [ -122.23106, 37.807199 ], [ -122.233008, 37.806888 ], [ -122.234992, 37.8072 ], [ -122.2372, 37.807052 ], [ -122.243289, 37.811055 ], [ -122.242276, 37.811565 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405301", "AFFGEOID": "1400000US06001405301", "GEOID": "06001405301", "NAME_x": "4053.01", "LSAD": "CT", "ALAND": 227753, "AWATER": 0, "NAME_y": "Census Tract 4053.01, Alameda County, California", "c_race": 2955, "c_white": 1318, "c_black": 681, "c_asian": 327, "c_latinx": 423, "state_fips": 6, "county_fips": 1, "tract_fips": 405301, "med_rent": 1500.0, "med_hhinc": 65208.0, "c_tenants": 1584, "c_owners": 143, "c_renters": 1441, "c_movers": 2927, "c_stay": 2382, "c_movelocal": 161, "c_movecounty": 281, "c_movestate": 71, "c_moveabroad": 32, "c_commute": 2055, "c_car": 958, "c_carpool": 110, "c_transit": 651, "c_bike": 113, "c_walk": 108, "year": 2018, "FIPS_11_digit": "06001405301", "p_white": 0.44602368866328251, "p_black": 0.23045685279187811, "p_asian": 0.11065989847715731, "p_latinx": 0.14314720812182741, "p_owners": 0.090277777777777707, "p_renters": 0.90972222222222221, "p_stay": 0.81380252818585586, "p_movelocal": 0.055005124701059102, "p_movecounty": 0.096002733173898194, "p_movestate": 0.0242569183464297, "p_moveabroad": 0.010932695592757001, "p_car": 0.46618004866180041, "p_carpool": 0.053527980535279802, "p_transit": 0.31678832116788319, "p_bike": 0.054987834549878302, "p_walk": 0.052554744525547398 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.254468, 37.801838 ], [ -122.254073, 37.802521 ], [ -122.253447, 37.803608 ], [ -122.250597, 37.805237 ], [ -122.249318, 37.804823 ], [ -122.248411, 37.800443 ], [ -122.248984, 37.800323 ], [ -122.250539, 37.800137 ], [ -122.251017, 37.79918 ], [ -122.251935, 37.799731 ], [ -122.254505, 37.800561 ], [ -122.254468, 37.801838 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405901", "AFFGEOID": "1400000US06001405901", "GEOID": "06001405901", "NAME_x": "4059.01", "LSAD": "CT", "ALAND": 452588, "AWATER": 0, "NAME_y": "Census Tract 4059.01, Alameda County, California", "c_race": 4348, "c_white": 167, "c_black": 705, "c_asian": 1492, "c_latinx": 1783, "state_fips": 6, "county_fips": 1, "tract_fips": 405901, "med_rent": 1071.0, "med_hhinc": 34291.0, "c_tenants": 1089, "c_owners": 331, "c_renters": 758, "c_movers": 4314, "c_stay": 3885, "c_movelocal": 308, "c_movecounty": 21, "c_movestate": 26, "c_moveabroad": 74, "c_commute": 1634, "c_car": 730, "c_carpool": 305, "c_transit": 415, "c_bike": 0, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001405901", "p_white": 0.0384084636614535, "p_black": 0.16214351425942961, "p_asian": 0.34314627414903398, "p_latinx": 0.41007359705611768, "p_owners": 0.3039485766758494, "p_renters": 0.6960514233241506, "p_stay": 0.90055632823365783, "p_movelocal": 0.071395456652758399, "p_movecounty": 0.0048678720445061996, "p_movestate": 0.0060268891979601003, "p_moveabroad": 0.017153453871117198, "p_car": 0.44675642594859238, "p_carpool": 0.18665850673194609, "p_transit": 0.25397796817625451, "p_bike": 0.0, "p_walk": 0.0201958384332925 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.239448, 37.788135 ], [ -122.237974, 37.789708 ], [ -122.237876, 37.789765 ], [ -122.235512, 37.792267 ], [ -122.23544, 37.792224 ], [ -122.233339, 37.790957 ], [ -122.231583, 37.789907 ], [ -122.230914, 37.789441 ], [ -122.23196, 37.788044 ], [ -122.232013, 37.78758 ], [ -122.232503, 37.786558 ], [ -122.234054, 37.785193 ], [ -122.234113, 37.785138 ], [ -122.234293, 37.784972 ], [ -122.2359, 37.78341 ], [ -122.241044, 37.786487 ], [ -122.239448, 37.788135 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406500", "AFFGEOID": "1400000US06001406500", "GEOID": "06001406500", "NAME_x": "4065", "LSAD": "CT", "ALAND": 745054, "AWATER": 0, "NAME_y": "Census Tract 4065, Alameda County, California", "c_race": 6055, "c_white": 468, "c_black": 880, "c_asian": 1196, "c_latinx": 2970, "state_fips": 6, "county_fips": 1, "tract_fips": 406500, "med_rent": 1283.0, "med_hhinc": 39947.0, "c_tenants": 1905, "c_owners": 619, "c_renters": 1286, "c_movers": 5991, "c_stay": 5194, "c_movelocal": 493, "c_movecounty": 215, "c_movestate": 9, "c_moveabroad": 80, "c_commute": 2765, "c_car": 1536, "c_carpool": 465, "c_transit": 519, "c_bike": 19, "c_walk": 42, "year": 2018, "FIPS_11_digit": "06001406500", "p_white": 0.077291494632535096, "p_black": 0.1453344343517754, "p_asian": 0.19752270850536741, "p_latinx": 0.4905037159372419, "p_owners": 0.32493438320209972, "p_renters": 0.67506561679790023, "p_stay": 0.86696711734268073, "p_movelocal": 0.082290101819395695, "p_movecounty": 0.035887164079452499, "p_movestate": 0.0015022533800701, "p_moveabroad": 0.013353363378400899, "p_car": 0.55551537070524415, "p_carpool": 0.16817359855334529, "p_transit": 0.18770343580470161, "p_bike": 0.0068716094032548998, "p_walk": 0.015189873417721499 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.222249, 37.784938 ], [ -122.221193, 37.787599 ], [ -122.219995, 37.790516 ], [ -122.219751, 37.791152 ], [ -122.218469, 37.794476 ], [ -122.216297, 37.793686 ], [ -122.214825, 37.791757 ], [ -122.211685, 37.790305 ], [ -122.211104, 37.789688 ], [ -122.209819, 37.788303 ], [ -122.210377, 37.787975 ], [ -122.211978, 37.78704 ], [ -122.214028, 37.785834 ], [ -122.215271, 37.785099 ], [ -122.217565, 37.783713 ], [ -122.2191, 37.7822 ], [ -122.219322, 37.782476 ], [ -122.222729, 37.783749 ], [ -122.222249, 37.784938 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407600", "AFFGEOID": "1400000US06001407600", "GEOID": "06001407600", "NAME_x": "4076", "LSAD": "CT", "ALAND": 1022712, "AWATER": 0, "NAME_y": "Census Tract 4076, Alameda County, California", "c_race": 6606, "c_white": 859, "c_black": 2755, "c_asian": 639, "c_latinx": 2027, "state_fips": 6, "county_fips": 1, "tract_fips": 407600, "med_rent": 1398.0, "med_hhinc": 65066.0, "c_tenants": 2200, "c_owners": 1134, "c_renters": 1066, "c_movers": 6472, "c_stay": 5802, "c_movelocal": 458, "c_movecounty": 212, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 2885, "c_car": 2005, "c_carpool": 277, "c_transit": 361, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001407600", "p_white": 0.13003330305782621, "p_black": 0.41704511050560089, "p_asian": 0.096730245231607601, "p_latinx": 0.30684226460793218, "p_owners": 0.5154545454545455, "p_renters": 0.4845454545454545, "p_stay": 0.89647713226205195, "p_movelocal": 0.070766378244746603, "p_movecounty": 0.032756489493201403, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.69497400346620453, "p_carpool": 0.096013864818024194, "p_transit": 0.1251299826689774, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.211133, 37.775171 ], [ -122.20681, 37.779734 ], [ -122.206385, 37.780182 ], [ -122.20414, 37.782517 ], [ -122.200715, 37.784273 ], [ -122.200124, 37.784571 ], [ -122.195924, 37.780924 ], [ -122.199497, 37.778386 ], [ -122.201116, 37.777237 ], [ -122.199324, 37.775641 ], [ -122.19592, 37.772639 ], [ -122.200805, 37.772661 ], [ -122.202978, 37.772675 ], [ -122.205109, 37.772674 ], [ -122.207611, 37.772734 ], [ -122.208708, 37.773253 ], [ -122.211734, 37.774681 ], [ -122.211133, 37.775171 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408300", "AFFGEOID": "1400000US06001408300", "GEOID": "06001408300", "NAME_x": "4083", "LSAD": "CT", "ALAND": 1521683, "AWATER": 0, "NAME_y": "Census Tract 4083, Alameda County, California", "c_race": 5323, "c_white": 1190, "c_black": 1858, "c_asian": 559, "c_latinx": 1346, "state_fips": 6, "county_fips": 1, "tract_fips": 408300, "med_rent": 1281.0, "med_hhinc": 86012.0, "c_tenants": 1789, "c_owners": 1179, "c_renters": 610, "c_movers": 5297, "c_stay": 4794, "c_movelocal": 414, "c_movecounty": 18, "c_movestate": 43, "c_moveabroad": 28, "c_commute": 2587, "c_car": 1570, "c_carpool": 133, "c_transit": 621, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001408300", "p_white": 0.22355814390381359, "p_black": 0.34905128686830728, "p_asian": 0.10501596843885019, "p_latinx": 0.25286492579372533, "p_owners": 0.65902738960313023, "p_renters": 0.34097261039686971, "p_stay": 0.90504058901264883, "p_movelocal": 0.078157447611855696, "p_movecounty": 0.0033981498961675998, "p_movestate": 0.0081178025297338006, "p_moveabroad": 0.0052860109495941002, "p_car": 0.60688055662930029, "p_carpool": 0.051410900657131803, "p_transit": 0.24004638577502899, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.173804, 37.780425 ], [ -122.17019, 37.779311 ], [ -122.165991, 37.777292 ], [ -122.158068, 37.773348 ], [ -122.158891, 37.773429 ], [ -122.154381, 37.768779 ], [ -122.157946, 37.767845 ], [ -122.158553, 37.766029 ], [ -122.161219, 37.765433 ], [ -122.160831, 37.764682 ], [ -122.164202, 37.763043 ], [ -122.164942, 37.762685 ], [ -122.167789, 37.766009 ], [ -122.169167, 37.767123 ], [ -122.172133, 37.769131 ], [ -122.172, 37.769173 ], [ -122.16997, 37.770754 ], [ -122.169033, 37.772433 ], [ -122.169725, 37.774067 ], [ -122.169583, 37.774422 ], [ -122.169832, 37.774937 ], [ -122.172039, 37.777821 ], [ -122.175055, 37.78021 ], [ -122.173804, 37.780425 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408600", "AFFGEOID": "1400000US06001408600", "GEOID": "06001408600", "NAME_x": "4086", "LSAD": "CT", "ALAND": 1061058, "AWATER": 0, "NAME_y": "Census Tract 4086, Alameda County, California", "c_race": 6947, "c_white": 213, "c_black": 2288, "c_asian": 284, "c_latinx": 3797, "state_fips": 6, "county_fips": 1, "tract_fips": 408600, "med_rent": 1327.0, "med_hhinc": 36812.0, "c_tenants": 1851, "c_owners": 742, "c_renters": 1109, "c_movers": 6704, "c_stay": 5445, "c_movelocal": 942, "c_movecounty": 273, "c_movestate": 0, "c_moveabroad": 44, "c_commute": 2515, "c_car": 1573, "c_carpool": 497, "c_transit": 323, "c_bike": 17, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001408600", "p_white": 0.030660716856196899, "p_black": 0.32935079890600261, "p_asian": 0.040880955808262502, "p_latinx": 0.54656686339427096, "p_owners": 0.40086439762290649, "p_renters": 0.59913560237709351, "p_stay": 0.81220167064439142, "p_movelocal": 0.14051312649164671, "p_movecounty": 0.040721957040572701, "p_movestate": 0.0, "p_moveabroad": 0.0065632458233889999, "p_car": 0.62544731610337967, "p_carpool": 0.19761431411530811, "p_transit": 0.12842942345924449, "p_bike": 0.0067594433399602001, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.19283, 37.761996 ], [ -122.190235, 37.763686 ], [ -122.189343, 37.764516 ], [ -122.187323, 37.765796 ], [ -122.182173, 37.769577 ], [ -122.182077, 37.769228 ], [ -122.181563, 37.771662 ], [ -122.181981, 37.772422 ], [ -122.179729, 37.773893 ], [ -122.177957, 37.772563 ], [ -122.176807, 37.77141 ], [ -122.172, 37.769173 ], [ -122.172133, 37.769131 ], [ -122.176639, 37.766336 ], [ -122.177197, 37.765816 ], [ -122.177427, 37.765596 ], [ -122.181175, 37.76318 ], [ -122.184685, 37.760935 ], [ -122.186688, 37.759638 ], [ -122.187054, 37.759264 ], [ -122.187862, 37.759708 ], [ -122.190299, 37.760786 ], [ -122.19283, 37.761996 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409600", "AFFGEOID": "1400000US06001409600", "GEOID": "06001409600", "NAME_x": "4096", "LSAD": "CT", "ALAND": 747479, "AWATER": 0, "NAME_y": "Census Tract 4096, Alameda County, California", "c_race": 5188, "c_white": 138, "c_black": 1146, "c_asian": 198, "c_latinx": 3532, "state_fips": 6, "county_fips": 1, "tract_fips": 409600, "med_rent": 1215.0, "med_hhinc": 49406.0, "c_tenants": 1446, "c_owners": 524, "c_renters": 922, "c_movers": 5145, "c_stay": 4585, "c_movelocal": 466, "c_movecounty": 80, "c_movestate": 0, "c_moveabroad": 14, "c_commute": 2376, "c_car": 1559, "c_carpool": 275, "c_transit": 368, "c_bike": 0, "c_walk": 47, "year": 2018, "FIPS_11_digit": "06001409600", "p_white": 0.026599845797995299, "p_black": 0.22089437162683109, "p_asian": 0.038164996144949802, "p_latinx": 0.6808018504240555, "p_owners": 0.36237897648686029, "p_renters": 0.63762102351313965, "p_stay": 0.891156462585034, "p_movelocal": 0.090573372206025196, "p_movecounty": 0.015549076773566499, "p_movestate": 0.0, "p_moveabroad": 0.0027210884353741, "p_car": 0.65614478114478114, "p_carpool": 0.1157407407407407, "p_transit": 0.15488215488215479, "p_bike": 0.0, "p_walk": 0.019781144781144702 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.179475, 37.755647 ], [ -122.175717, 37.757495 ], [ -122.172296, 37.75915 ], [ -122.169977, 37.756045 ], [ -122.169531, 37.755422 ], [ -122.167571, 37.752785 ], [ -122.167868, 37.752648 ], [ -122.168291, 37.75126 ], [ -122.167145, 37.749709 ], [ -122.169303, 37.748714 ], [ -122.170375, 37.748217 ], [ -122.172521, 37.747223 ], [ -122.174969, 37.750546 ], [ -122.175823, 37.751696 ], [ -122.176303, 37.752351 ], [ -122.178484, 37.755174 ], [ -122.179117, 37.755471 ], [ -122.179475, 37.755647 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421100", "AFFGEOID": "1400000US06001421100", "GEOID": "06001421100", "NAME_x": "4211", "LSAD": "CT", "ALAND": 745509, "AWATER": 0, "NAME_y": "Census Tract 4211, Alameda County, California", "c_race": 2100, "c_white": 1607, "c_black": 29, "c_asian": 244, "c_latinx": 137, "state_fips": 6, "county_fips": 1, "tract_fips": 421100, "med_rent": 3107.0, "med_hhinc": 179821.0, "c_tenants": 831, "c_owners": 770, "c_renters": 61, "c_movers": 2100, "c_stay": 1900, "c_movelocal": 91, "c_movecounty": 15, "c_movestate": 58, "c_moveabroad": 36, "c_commute": 981, "c_car": 563, "c_carpool": 104, "c_transit": 145, "c_bike": 20, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001421100", "p_white": 0.76523809523809527, "p_black": 0.013809523809523799, "p_asian": 0.11619047619047609, "p_latinx": 0.065238095238095206, "p_owners": 0.92659446450060157, "p_renters": 0.073405535499398294, "p_stay": 0.90476190476190477, "p_movelocal": 0.0433333333333333, "p_movecounty": 0.0071428571428571001, "p_movestate": 0.027619047619047599, "p_moveabroad": 0.017142857142857099, "p_car": 0.57390417940876659, "p_carpool": 0.1060142711518858, "p_transit": 0.1478083588175331, "p_bike": 0.020387359836901101, "p_walk": 0.0101936799184505 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.271186, 37.899696 ], [ -122.26959, 37.901434 ], [ -122.270319, 37.904287 ], [ -122.270237, 37.904363 ], [ -122.269934, 37.904431 ], [ -122.269528, 37.904327 ], [ -122.269194, 37.904182 ], [ -122.268324, 37.903983 ], [ -122.268172, 37.903973 ], [ -122.267643, 37.904246 ], [ -122.267076, 37.904465 ], [ -122.263881, 37.903675 ], [ -122.26129, 37.901392 ], [ -122.260703, 37.899639 ], [ -122.260784, 37.897553 ], [ -122.262683, 37.896326 ], [ -122.267737, 37.893131 ], [ -122.269387, 37.895751 ], [ -122.269648, 37.897181 ], [ -122.271186, 37.899696 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421300", "AFFGEOID": "1400000US06001421300", "GEOID": "06001421300", "NAME_x": "4213", "LSAD": "CT", "ALAND": 1106644, "AWATER": 0, "NAME_y": "Census Tract 4213, Alameda County, California", "c_race": 3856, "c_white": 3108, "c_black": 49, "c_asian": 340, "c_latinx": 68, "state_fips": 6, "county_fips": 1, "tract_fips": 421300, "med_rent": 1545.0, "med_hhinc": 149516.0, "c_tenants": 1562, "c_owners": 1236, "c_renters": 326, "c_movers": 3836, "c_stay": 3473, "c_movelocal": 169, "c_movecounty": 103, "c_movestate": 11, "c_moveabroad": 80, "c_commute": 2059, "c_car": 972, "c_carpool": 138, "c_transit": 377, "c_bike": 105, "c_walk": 74, "year": 2018, "FIPS_11_digit": "06001421300", "p_white": 0.80601659751037347, "p_black": 0.012707468879667999, "p_asian": 0.088174273858921098, "p_latinx": 0.017634854771784201, "p_owners": 0.7912932138284251, "p_renters": 0.2087067861715749, "p_stay": 0.90537017726798763, "p_movelocal": 0.044056308654848803, "p_movecounty": 0.026850886339937399, "p_movestate": 0.0028675703858184998, "p_moveabroad": 0.020855057351407701, "p_car": 0.47207382224380767, "p_carpool": 0.067022826614861503, "p_transit": 0.1830985915492957, "p_bike": 0.050995628946090298, "p_walk": 0.035939776590577899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.287172, 37.89281 ], [ -122.287078, 37.896557 ], [ -122.286934, 37.898707 ], [ -122.286012, 37.898987 ], [ -122.285704, 37.89837 ], [ -122.281252, 37.899632 ], [ -122.281669, 37.896741 ], [ -122.281233, 37.896184 ], [ -122.278035, 37.895223 ], [ -122.277078, 37.893995 ], [ -122.277154, 37.891466 ], [ -122.276586, 37.888821 ], [ -122.275882, 37.88642 ], [ -122.274963, 37.885341 ], [ -122.275673, 37.884755 ], [ -122.280287, 37.882438 ], [ -122.282678, 37.881249 ], [ -122.28279, 37.882502 ], [ -122.282009, 37.884176 ], [ -122.28196, 37.885043 ], [ -122.282281, 37.885046 ], [ -122.282579, 37.884994 ], [ -122.283262, 37.884772 ], [ -122.283156, 37.885355 ], [ -122.281658, 37.888661 ], [ -122.282409, 37.891171 ], [ -122.285701, 37.891006 ], [ -122.287172, 37.890912 ], [ -122.287172, 37.89281 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422100", "AFFGEOID": "1400000US06001422100", "GEOID": "06001422100", "NAME_x": "4221", "LSAD": "CT", "ALAND": 551943, "AWATER": 0, "NAME_y": "Census Tract 4221, Alameda County, California", "c_race": 2754, "c_white": 1405, "c_black": 347, "c_asian": 342, "c_latinx": 493, "state_fips": 6, "county_fips": 1, "tract_fips": 422100, "med_rent": 1617.0, "med_hhinc": 66310.0, "c_tenants": 1126, "c_owners": 510, "c_renters": 616, "c_movers": 2748, "c_stay": 2332, "c_movelocal": 187, "c_movecounty": 151, "c_movestate": 50, "c_moveabroad": 28, "c_commute": 1570, "c_car": 747, "c_carpool": 134, "c_transit": 272, "c_bike": 161, "c_walk": 117, "year": 2018, "FIPS_11_digit": "06001422100", "p_white": 0.51016702977487294, "p_black": 0.12599854756717499, "p_asian": 0.1241830065359477, "p_latinx": 0.17901234567901231, "p_owners": 0.452930728241563, "p_renters": 0.54706927175843689, "p_stay": 0.84861717612809318, "p_movelocal": 0.068049490538573496, "p_movecounty": 0.054949053857350799, "p_movestate": 0.018195050946142599, "p_moveabroad": 0.0101892285298398, "p_car": 0.47579617834394899, "p_carpool": 0.085350318471337505, "p_transit": 0.17324840764331209, "p_bike": 0.10254777070063691, "p_walk": 0.074522292993630501 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.300853, 37.877571 ], [ -122.295353, 37.878685 ], [ -122.294223, 37.875168 ], [ -122.293645, 37.873449 ], [ -122.292226, 37.869042 ], [ -122.297751, 37.867937 ], [ -122.299722, 37.874085 ], [ -122.300853, 37.877571 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422900", "AFFGEOID": "1400000US06001422900", "GEOID": "06001422900", "NAME_x": "4229", "LSAD": "CT", "ALAND": 544282, "AWATER": 0, "NAME_y": "Census Tract 4229, Alameda County, California", "c_race": 5463, "c_white": 2080, "c_black": 610, "c_asian": 1972, "c_latinx": 352, "state_fips": 6, "county_fips": 1, "tract_fips": 422900, "med_rent": 1435.0, "med_hhinc": 26017.0, "c_tenants": 2044, "c_owners": 67, "c_renters": 1977, "c_movers": 5438, "c_stay": 2865, "c_movelocal": 1535, "c_movecounty": 533, "c_movestate": 191, "c_moveabroad": 314, "c_commute": 2716, "c_car": 459, "c_carpool": 154, "c_transit": 571, "c_bike": 269, "c_walk": 1032, "year": 2018, "FIPS_11_digit": "06001422900", "p_white": 0.3807431814021599, "p_black": 0.1116602599304411, "p_asian": 0.36097382390627858, "p_latinx": 0.064433461468057798, "p_owners": 0.032778864970645701, "p_renters": 0.96722113502935436, "p_stay": 0.52684810592129461, "p_movelocal": 0.28227289444648768, "p_movecounty": 0.098013975726369995, "p_movestate": 0.035123207061419602, "p_moveabroad": 0.057741816844428098, "p_car": 0.16899852724594991, "p_carpool": 0.056701030927835003, "p_transit": 0.2102356406480117, "p_bike": 0.099042709867452103, "p_walk": 0.37997054491899851 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.273067, 37.871512 ], [ -122.268403, 37.87211 ], [ -122.266159, 37.872389 ], [ -122.266227, 37.868998 ], [ -122.26599, 37.867834 ], [ -122.265333, 37.864425 ], [ -122.265277, 37.864265 ], [ -122.269834, 37.863665 ], [ -122.272161, 37.863352 ], [ -122.272763, 37.868784 ], [ -122.273067, 37.871512 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423400", "AFFGEOID": "1400000US06001423400", "GEOID": "06001423400", "NAME_x": "4234", "LSAD": "CT", "ALAND": 755444, "AWATER": 0, "NAME_y": "Census Tract 4234, Alameda County, California", "c_race": 5069, "c_white": 2394, "c_black": 675, "c_asian": 591, "c_latinx": 903, "state_fips": 6, "county_fips": 1, "tract_fips": 423400, "med_rent": 1625.0, "med_hhinc": 75565.0, "c_tenants": 1978, "c_owners": 815, "c_renters": 1163, "c_movers": 5053, "c_stay": 4040, "c_movelocal": 443, "c_movecounty": 280, "c_movestate": 186, "c_moveabroad": 104, "c_commute": 2817, "c_car": 1070, "c_carpool": 140, "c_transit": 862, "c_bike": 195, "c_walk": 221, "year": 2018, "FIPS_11_digit": "06001423400", "p_white": 0.47228250147958178, "p_black": 0.1331623594397317, "p_asian": 0.1165910435983428, "p_latinx": 0.1781416452949299, "p_owners": 0.41203235591506571, "p_renters": 0.58796764408493429, "p_stay": 0.79952503463289137, "p_movelocal": 0.087670690678804605, "p_movecounty": 0.055412626162675602, "p_movestate": 0.036809815950920199, "p_moveabroad": 0.020581832574708001, "p_car": 0.37983670571529998, "p_carpool": 0.049698260560880302, "p_transit": 0.3059992900248491, "p_bike": 0.069222577209797603, "p_walk": 0.078452254171104005 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.281226, 37.862205 ], [ -122.276574, 37.862791 ], [ -122.272161, 37.863352 ], [ -122.271951, 37.86156 ], [ -122.271762, 37.859769 ], [ -122.271466, 37.857052 ], [ -122.271161, 37.854268 ], [ -122.279121, 37.853287 ], [ -122.279698, 37.856035 ], [ -122.28027, 37.858729 ], [ -122.280448, 37.859606 ], [ -122.280631, 37.860486 ], [ -122.281226, 37.862205 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "425102", "AFFGEOID": "1400000US06001425102", "GEOID": "06001425102", "NAME_x": "4251.02", "LSAD": "CT", "ALAND": 747493, "AWATER": 0, "NAME_y": "Census Tract 4251.02, Alameda County, California", "c_race": 3689, "c_white": 1096, "c_black": 301, "c_asian": 1712, "c_latinx": 345, "state_fips": 6, "county_fips": 1, "tract_fips": 425102, "med_rent": 2381.0, "med_hhinc": 108125.0, "c_tenants": 1965, "c_owners": 525, "c_renters": 1440, "c_movers": 3653, "c_stay": 2271, "c_movelocal": 556, "c_movecounty": 516, "c_movestate": 218, "c_moveabroad": 92, "c_commute": 2247, "c_car": 924, "c_carpool": 316, "c_transit": 694, "c_bike": 26, "c_walk": 151, "year": 2018, "FIPS_11_digit": "06001425102", "p_white": 0.29709948495527239, "p_black": 0.081593927893738094, "p_asian": 0.46408240715641091, "p_latinx": 0.093521279479533703, "p_owners": 0.26717557251908391, "p_renters": 0.73282442748091603, "p_stay": 0.62168081029290989, "p_movelocal": 0.1522036682179031, "p_movecounty": 0.14125376402956469, "p_movestate": 0.059676977826444003, "p_moveabroad": 0.025184779633178202, "p_car": 0.41121495327102803, "p_carpool": 0.14063195371606579, "p_transit": 0.30885625278148637, "p_bike": 0.011570983533600299, "p_walk": 0.067200712060525095 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.298863, 37.848097 ], [ -122.296413, 37.848743 ], [ -122.295092, 37.848907 ], [ -122.293481, 37.844072 ], [ -122.291976, 37.838903 ], [ -122.291241, 37.83472 ], [ -122.291029, 37.830103 ], [ -122.29339, 37.830656 ], [ -122.293513, 37.830685 ], [ -122.293463, 37.831041 ], [ -122.293359, 37.83162 ], [ -122.295557, 37.835067 ], [ -122.296787, 37.838002 ], [ -122.29781, 37.843301 ], [ -122.298863, 37.848097 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428000", "AFFGEOID": "1400000US06001428000", "GEOID": "06001428000", "NAME_x": "4280", "LSAD": "CT", "ALAND": 525762, "AWATER": 0, "NAME_y": "Census Tract 4280, Alameda County, California", "c_race": 2593, "c_white": 1132, "c_black": 144, "c_asian": 828, "c_latinx": 318, "state_fips": 6, "county_fips": 1, "tract_fips": 428000, "med_rent": 1477.0, "med_hhinc": 64914.0, "c_tenants": 1292, "c_owners": 161, "c_renters": 1131, "c_movers": 2587, "c_stay": 2168, "c_movelocal": 225, "c_movecounty": 119, "c_movestate": 21, "c_moveabroad": 54, "c_commute": 1429, "c_car": 780, "c_carpool": 179, "c_transit": 268, "c_bike": 53, "c_walk": 46, "year": 2018, "FIPS_11_digit": "06001428000", "p_white": 0.43655996914770528, "p_black": 0.055534130350944802, "p_asian": 0.31932124951793289, "p_latinx": 0.1226378711916698, "p_owners": 0.1246130030959752, "p_renters": 0.87538699690402477, "p_stay": 0.83803633552377266, "p_movelocal": 0.086973328179358295, "p_movecounty": 0.045999226903749503, "p_movestate": 0.0081175106300733994, "p_moveabroad": 0.020873598763045901, "p_car": 0.54583624912526241, "p_carpool": 0.12526242127361789, "p_transit": 0.1875437368789363, "p_bike": 0.037088873337998603, "p_walk": 0.032190342897130797 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.251144, 37.77086 ], [ -122.245398, 37.768371 ], [ -122.2412, 37.766679 ], [ -122.240792, 37.766583 ], [ -122.24284, 37.764143 ], [ -122.244241, 37.762486 ], [ -122.244305, 37.762521 ], [ -122.248243, 37.764236 ], [ -122.253994, 37.766746 ], [ -122.251144, 37.77086 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428301", "AFFGEOID": "1400000US06001428301", "GEOID": "06001428301", "NAME_x": "4283.01", "LSAD": "CT", "ALAND": 4297931, "AWATER": 1597302, "NAME_y": "Census Tract 4283.01, Alameda County, California", "c_race": 7118, "c_white": 2181, "c_black": 237, "c_asian": 3288, "c_latinx": 801, "state_fips": 6, "county_fips": 1, "tract_fips": 428301, "med_rent": 2246.0, "med_hhinc": 128594.0, "c_tenants": 2478, "c_owners": 1976, "c_renters": 502, "c_movers": 7086, "c_stay": 6536, "c_movelocal": 355, "c_movecounty": 115, "c_movestate": 40, "c_moveabroad": 40, "c_commute": 3738, "c_car": 2243, "c_carpool": 466, "c_transit": 739, "c_bike": 44, "c_walk": 40, "year": 2018, "FIPS_11_digit": "06001428301", "p_white": 0.30640629390278168, "p_black": 0.033295869626299497, "p_asian": 0.46192750772688951, "p_latinx": 0.1125316100028097, "p_owners": 0.79741727199354318, "p_renters": 0.2025827280064568, "p_stay": 0.92238216200959644, "p_movelocal": 0.050098786339260501, "p_movecounty": 0.0162291843070843, "p_movestate": 0.0056449336720292998, "p_moveabroad": 0.0056449336720292998, "p_car": 0.60005350454788653, "p_carpool": 0.1246655965757089, "p_transit": 0.19769930444087741, "p_bike": 0.011771000535045401, "p_walk": 0.010700909577314 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.258774956593001, 37.7378794789986 ], [ -122.252078, 37.737918 ], [ -122.248745, 37.737178 ], [ -122.247216, 37.737042 ], [ -122.24566, 37.73689 ], [ -122.243403, 37.736336 ], [ -122.239945, 37.73553 ], [ -122.239044, 37.736683 ], [ -122.238741, 37.73771 ], [ -122.237836, 37.741488 ], [ -122.23768, 37.743185 ], [ -122.23597, 37.747078 ], [ -122.236405, 37.748549 ], [ -122.225895, 37.749694 ], [ -122.224579, 37.753028 ], [ -122.223779, 37.754428 ], [ -122.223481, 37.754702 ], [ -122.223377, 37.748036 ], [ -122.2265, 37.74808 ], [ -122.2266, 37.745501 ], [ -122.226443, 37.734387 ], [ -122.226806, 37.733099 ], [ -122.226768, 37.727657 ], [ -122.228343, 37.727729 ], [ -122.236181, 37.719851 ], [ -122.245039, 37.725798 ], [ -122.247912, 37.728375 ], [ -122.248487328517001, 37.7278947076043 ], [ -122.255989, 37.735674 ], [ -122.258774956593001, 37.7378794789986 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428700", "AFFGEOID": "1400000US06001428700", "GEOID": "06001428700", "NAME_x": "4287", "LSAD": "CT", "ALAND": 7749247, "AWATER": 4534587, "NAME_y": "Census Tract 4287, Alameda County, California", "c_race": 4484, "c_white": 1359, "c_black": 701, "c_asian": 1577, "c_latinx": 591, "state_fips": 6, "county_fips": 1, "tract_fips": 428700, "med_rent": 832.0, "med_hhinc": 57143.0, "c_tenants": 1408, "c_owners": 488, "c_renters": 920, "c_movers": 4446, "c_stay": 3803, "c_movelocal": 265, "c_movecounty": 61, "c_movestate": 288, "c_moveabroad": 29, "c_commute": 2146, "c_car": 1250, "c_carpool": 140, "c_transit": 239, "c_bike": 75, "c_walk": 89, "year": 2018, "FIPS_11_digit": "06001428700", "p_white": 0.30307760927743088, "p_black": 0.15633363068688669, "p_asian": 0.35169491525423729, "p_latinx": 0.13180196253345219, "p_owners": 0.34659090909090912, "p_renters": 0.65340909090909094, "p_stay": 0.85537561853351329, "p_movelocal": 0.059604138551506897, "p_movecounty": 0.013720197930724201, "p_movestate": 0.064777327935222603, "p_moveabroad": 0.0065227170490328003, "p_car": 0.58247903075489282, "p_carpool": 0.065237651444547906, "p_transit": 0.1113699906803355, "p_bike": 0.0349487418452935, "p_walk": 0.041472506989748303 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.336717028471014, 37.800344932497495 ], [ -122.332138, 37.798751 ], [ -122.31468, 37.794728 ], [ -122.29478, 37.792528 ], [ -122.28428, 37.793828 ], [ -122.278243, 37.793129 ], [ -122.274636, 37.791648 ], [ -122.275558, 37.789936 ], [ -122.27619, 37.78903 ], [ -122.276671, 37.788014 ], [ -122.276628, 37.779684 ], [ -122.277182, 37.779665 ], [ -122.284478, 37.780002 ], [ -122.28787, 37.779976 ], [ -122.291396, 37.779987 ], [ -122.291395, 37.776848 ], [ -122.291088, 37.776478 ], [ -122.290743, 37.771088 ], [ -122.291427464917007, 37.769327899007195 ], [ -122.304937, 37.772312 ], [ -122.304345, 37.774632 ], [ -122.315395, 37.776257 ], [ -122.318909, 37.77904 ], [ -122.327561619752998, 37.780644111902497 ], [ -122.328005182007004, 37.780726344048503 ], [ -122.332074475771009, 37.786961338448698 ], [ -122.332045780727015, 37.787760347009801 ], [ -122.331748, 37.796052 ], [ -122.335675, 37.799652 ], [ -122.336717028471014, 37.800344932497495 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "431200", "AFFGEOID": "1400000US06001431200", "GEOID": "06001431200", "NAME_x": "4312", "LSAD": "CT", "ALAND": 2021148, "AWATER": 26007, "NAME_y": "Census Tract 4312, Alameda County, California", "c_race": 5827, "c_white": 2772, "c_black": 784, "c_asian": 851, "c_latinx": 1217, "state_fips": 6, "county_fips": 1, "tract_fips": 431200, "med_rent": 1971.0, "med_hhinc": 93003.0, "c_tenants": 2571, "c_owners": 1292, "c_renters": 1279, "c_movers": 5766, "c_stay": 5031, "c_movelocal": 399, "c_movecounty": 184, "c_movestate": 142, "c_moveabroad": 10, "c_commute": 3106, "c_car": 2128, "c_carpool": 216, "c_transit": 585, "c_bike": 89, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001431200", "p_white": 0.47571649219152218, "p_black": 0.13454607859962239, "p_asian": 0.14604427664321259, "p_latinx": 0.20885532864252609, "p_owners": 0.5025281991443018, "p_renters": 0.4974718008556982, "p_stay": 0.872528616024974, "p_movelocal": 0.069198751300728403, "p_movecounty": 0.031911203607353403, "p_movestate": 0.024627124523066202, "p_moveabroad": 0.0017343045438779001, "p_car": 0.6851255634256278, "p_carpool": 0.069542820347714099, "p_transit": 0.1883451384417256, "p_bike": 0.028654217643271002, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.096161, 37.688149 ], [ -122.094553, 37.689466 ], [ -122.094008, 37.690053 ], [ -122.093315, 37.690762 ], [ -122.079569, 37.690892 ], [ -122.077092, 37.690916 ], [ -122.073811, 37.690948 ], [ -122.073518, 37.686845 ], [ -122.073651, 37.684209 ], [ -122.073895, 37.683098 ], [ -122.073035, 37.682974 ], [ -122.072011, 37.680988 ], [ -122.073225, 37.681981 ], [ -122.076789, 37.679023 ], [ -122.07946, 37.680508 ], [ -122.079692, 37.680103 ], [ -122.079397, 37.678618 ], [ -122.083088, 37.676868 ], [ -122.084346, 37.678926 ], [ -122.085341, 37.680022 ], [ -122.090246, 37.683647 ], [ -122.092159, 37.685027 ], [ -122.092933, 37.685583 ], [ -122.096288, 37.68804 ], [ -122.096161, 37.688149 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432200", "AFFGEOID": "1400000US06001432200", "GEOID": "06001432200", "NAME_x": "4322", "LSAD": "CT", "ALAND": 1023816, "AWATER": 0, "NAME_y": "Census Tract 4322, Alameda County, California", "c_race": 4443, "c_white": 1542, "c_black": 923, "c_asian": 534, "c_latinx": 1116, "state_fips": 6, "county_fips": 1, "tract_fips": 432200, "med_rent": 1480.0, "med_hhinc": 67215.0, "c_tenants": 1761, "c_owners": 749, "c_renters": 1012, "c_movers": 4402, "c_stay": 3999, "c_movelocal": 148, "c_movecounty": 191, "c_movestate": 64, "c_moveabroad": 0, "c_commute": 2152, "c_car": 1567, "c_carpool": 117, "c_transit": 245, "c_bike": 37, "c_walk": 60, "year": 2018, "FIPS_11_digit": "06001432200", "p_white": 0.34706279540850771, "p_black": 0.2077425163178033, "p_asian": 0.1201890614449696, "p_latinx": 0.25118163403106009, "p_owners": 0.42532651902328222, "p_renters": 0.57467348097671778, "p_stay": 0.90845070422535201, "p_movelocal": 0.033621081326669598, "p_movecounty": 0.043389368468877698, "p_movestate": 0.0145388459791004, "p_moveabroad": 0.0, "p_car": 0.72815985130111527, "p_carpool": 0.054368029739776898, "p_transit": 0.1138475836431226, "p_bike": 0.017193308550185801, "p_walk": 0.027881040892193301 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.16416, 37.73594 ], [ -122.160502, 37.737607 ], [ -122.160074, 37.737691 ], [ -122.155119, 37.739082 ], [ -122.152439, 37.735476 ], [ -122.151063, 37.733566 ], [ -122.150195, 37.73237 ], [ -122.148736, 37.729135 ], [ -122.150172, 37.728262 ], [ -122.154613, 37.728028 ], [ -122.156211, 37.728435 ], [ -122.157524, 37.726871 ], [ -122.160328, 37.730825 ], [ -122.161755, 37.732735 ], [ -122.163336, 37.73486 ], [ -122.16416, 37.73594 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432400", "AFFGEOID": "1400000US06001432400", "GEOID": "06001432400", "NAME_x": "4324", "LSAD": "CT", "ALAND": 6434218, "AWATER": 1385676, "NAME_y": "Census Tract 4324, Alameda County, California", "c_race": 6583, "c_white": 1259, "c_black": 367, "c_asian": 2125, "c_latinx": 2607, "state_fips": 6, "county_fips": 1, "tract_fips": 432400, "med_rent": 1682.0, "med_hhinc": 70758.0, "c_tenants": 1822, "c_owners": 827, "c_renters": 995, "c_movers": 6517, "c_stay": 5490, "c_movelocal": 781, "c_movecounty": 90, "c_movestate": 39, "c_moveabroad": 117, "c_commute": 3018, "c_car": 1995, "c_carpool": 471, "c_transit": 232, "c_bike": 126, "c_walk": 32, "year": 2018, "FIPS_11_digit": "06001432400", "p_white": 0.191250189883032, "p_black": 0.055749658210542299, "p_asian": 0.3228011544888349, "p_latinx": 0.39602005164818471, "p_owners": 0.45389681668496151, "p_renters": 0.54610318331503838, "p_stay": 0.84241215283105719, "p_movelocal": 0.1198404173699555, "p_movecounty": 0.0138100352923124, "p_movestate": 0.0059843486266687, "p_moveabroad": 0.0179530458800061, "p_car": 0.66103379721669975, "p_carpool": 0.15606361829025839, "p_transit": 0.076872100728959503, "p_bike": 0.041749502982107299, "p_walk": 0.0106030483764082 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.209726, 37.711087 ], [ -122.202166, 37.712983 ], [ -122.197028, 37.715829 ], [ -122.194265, 37.715912 ], [ -122.194714, 37.717538 ], [ -122.193401, 37.717829 ], [ -122.19275, 37.716767 ], [ -122.189138, 37.717812 ], [ -122.189027, 37.717908 ], [ -122.196274, 37.72331 ], [ -122.196747, 37.724133 ], [ -122.198055, 37.726227 ], [ -122.191927, 37.727288 ], [ -122.190377, 37.728893 ], [ -122.184478, 37.726022 ], [ -122.183159, 37.725395 ], [ -122.176734, 37.718964 ], [ -122.17056, 37.713131 ], [ -122.166672, 37.710422 ], [ -122.170816, 37.708707 ], [ -122.167527, 37.703686 ], [ -122.181906, 37.697658 ], [ -122.186463, 37.69565 ], [ -122.18751, 37.696791 ], [ -122.191653, 37.695548 ], [ -122.193559771140997, 37.694377663976198 ], [ -122.193703, 37.694491 ], [ -122.201546, 37.705022 ], [ -122.204161, 37.711603 ], [ -122.209187112470005, 37.710012817523598 ], [ -122.209726, 37.711087 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432502", "AFFGEOID": "1400000US06001432502", "GEOID": "06001432502", "NAME_x": "4325.02", "LSAD": "CT", "ALAND": 816164, "AWATER": 0, "NAME_y": "Census Tract 4325.02, Alameda County, California", "c_race": 5272, "c_white": 762, "c_black": 561, "c_asian": 2007, "c_latinx": 1765, "state_fips": 6, "county_fips": 1, "tract_fips": 432502, "med_rent": 1470.0, "med_hhinc": 72284.0, "c_tenants": 1537, "c_owners": 862, "c_renters": 675, "c_movers": 5218, "c_stay": 4704, "c_movelocal": 319, "c_movecounty": 134, "c_movestate": 36, "c_moveabroad": 25, "c_commute": 2443, "c_car": 1762, "c_carpool": 133, "c_transit": 311, "c_bike": 0, "c_walk": 73, "year": 2018, "FIPS_11_digit": "06001432502", "p_white": 0.1445371775417299, "p_black": 0.1064112291350531, "p_asian": 0.38069044006069802, "p_latinx": 0.3347875569044006, "p_owners": 0.56083279115159401, "p_renters": 0.43916720884840599, "p_stay": 0.90149482560367955, "p_movelocal": 0.061134534304331099, "p_movecounty": 0.025680337293982301, "p_movestate": 0.0068991950939057004, "p_moveabroad": 0.0047911077041010997, "p_car": 0.7212443716741711, "p_carpool": 0.054441260744985599, "p_transit": 0.12730249693000409, "p_bike": 0.0, "p_walk": 0.029881293491608601 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.18157, 37.725319 ], [ -122.180256, 37.725615 ], [ -122.175386, 37.725329 ], [ -122.174203, 37.726604 ], [ -122.172764, 37.726807 ], [ -122.171436, 37.727883 ], [ -122.170401, 37.727756 ], [ -122.17043, 37.727836 ], [ -122.170121, 37.72778 ], [ -122.164245, 37.722651 ], [ -122.16724, 37.721836 ], [ -122.168104, 37.721626 ], [ -122.170496, 37.721032 ], [ -122.17306, 37.720345 ], [ -122.173941, 37.720025 ], [ -122.175144, 37.719418 ], [ -122.176734, 37.718964 ], [ -122.183159, 37.725395 ], [ -122.18157, 37.725319 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433102", "AFFGEOID": "1400000US06001433102", "GEOID": "06001433102", "NAME_x": "4331.02", "LSAD": "CT", "ALAND": 1433684, "AWATER": 0, "NAME_y": "Census Tract 4331.02, Alameda County, California", "c_race": 4297, "c_white": 565, "c_black": 269, "c_asian": 1742, "c_latinx": 1594, "state_fips": 6, "county_fips": 1, "tract_fips": 433102, "med_rent": 1507.0, "med_hhinc": 74167.0, "c_tenants": 1384, "c_owners": 854, "c_renters": 530, "c_movers": 4230, "c_stay": 3842, "c_movelocal": 277, "c_movecounty": 99, "c_movestate": 0, "c_moveabroad": 12, "c_commute": 2191, "c_car": 1390, "c_carpool": 330, "c_transit": 256, "c_bike": 0, "c_walk": 23, "year": 2018, "FIPS_11_digit": "06001433102", "p_white": 0.13148708401210141, "p_black": 0.062601815219920795, "p_asian": 0.4053991156620898, "p_latinx": 0.3709564812659995, "p_owners": 0.61705202312138729, "p_renters": 0.38294797687861271, "p_stay": 0.90827423167848698, "p_movelocal": 0.065484633569739895, "p_movecounty": 0.023404255319148901, "p_movestate": 0.0, "p_moveabroad": 0.0028368794326240998, "p_car": 0.63441350981287081, "p_carpool": 0.15061615700593331, "p_transit": 0.11684162482884521, "p_bike": 0.0, "p_walk": 0.0104974897307165 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.144077, 37.706209 ], [ -122.142377, 37.707679 ], [ -122.141893, 37.707302 ], [ -122.138651, 37.705068 ], [ -122.138738, 37.705293 ], [ -122.133962, 37.709107 ], [ -122.132915, 37.70838 ], [ -122.131804, 37.707604 ], [ -122.130093, 37.706408 ], [ -122.130084, 37.705351 ], [ -122.129285, 37.705855 ], [ -122.129196, 37.705793 ], [ -122.127095, 37.704304 ], [ -122.124559, 37.702507 ], [ -122.123695, 37.701926 ], [ -122.123689, 37.701754 ], [ -122.128359, 37.6982 ], [ -122.128509, 37.69812 ], [ -122.12944, 37.69746 ], [ -122.130024, 37.696939 ], [ -122.130061, 37.692755 ], [ -122.140363, 37.701761 ], [ -122.142381, 37.703541 ], [ -122.144077, 37.706209 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433104", "AFFGEOID": "1400000US06001433104", "GEOID": "06001433104", "NAME_x": "4331.04", "LSAD": "CT", "ALAND": 1053445, "AWATER": 0, "NAME_y": "Census Tract 4331.04, Alameda County, California", "c_race": 3608, "c_white": 1136, "c_black": 533, "c_asian": 478, "c_latinx": 1116, "state_fips": 6, "county_fips": 1, "tract_fips": 433104, "med_rent": 1587.0, "med_hhinc": 51295.0, "c_tenants": 1818, "c_owners": 495, "c_renters": 1323, "c_movers": 3522, "c_stay": 2862, "c_movelocal": 463, "c_movecounty": 49, "c_movestate": 108, "c_moveabroad": 40, "c_commute": 1783, "c_car": 1171, "c_carpool": 95, "c_transit": 279, "c_bike": 0, "c_walk": 114, "year": 2018, "FIPS_11_digit": "06001433104", "p_white": 0.31485587583148561, "p_black": 0.14772727272727271, "p_asian": 0.1324833702882483, "p_latinx": 0.30931263858093128, "p_owners": 0.2722772277227723, "p_renters": 0.7277227722772277, "p_stay": 0.81260647359454852, "p_movelocal": 0.13145939806927881, "p_movecounty": 0.013912549687677399, "p_movestate": 0.030664395229982901, "p_moveabroad": 0.0113571834185122, "p_car": 0.65675827257431296, "p_carpool": 0.053280987100392599, "p_transit": 0.15647784632641609, "p_bike": 0.0, "p_walk": 0.063937184520471105 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.151151, 37.716942 ], [ -122.151638, 37.717692 ], [ -122.147968, 37.719211 ], [ -122.148636, 37.719698 ], [ -122.14508, 37.720682 ], [ -122.143934, 37.718154 ], [ -122.14106, 37.716024 ], [ -122.138601, 37.714242 ], [ -122.139752, 37.713203 ], [ -122.140029, 37.713389 ], [ -122.146793, 37.707869 ], [ -122.147152, 37.707695 ], [ -122.155593, 37.715082 ], [ -122.151151, 37.716942 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433300", "AFFGEOID": "1400000US06001433300", "GEOID": "06001433300", "NAME_x": "4333", "LSAD": "CT", "ALAND": 2455576, "AWATER": 0, "NAME_y": "Census Tract 4333, Alameda County, California", "c_race": 7743, "c_white": 2000, "c_black": 281, "c_asian": 3360, "c_latinx": 1893, "state_fips": 6, "county_fips": 1, "tract_fips": 433300, "med_rent": 1844.0, "med_hhinc": 90842.0, "c_tenants": 2249, "c_owners": 1788, "c_renters": 461, "c_movers": 7695, "c_stay": 7449, "c_movelocal": 115, "c_movecounty": 1, "c_movestate": 72, "c_moveabroad": 58, "c_commute": 3906, "c_car": 2729, "c_carpool": 550, "c_transit": 320, "c_bike": 57, "c_walk": 24, "year": 2018, "FIPS_11_digit": "06001433300", "p_white": 0.2582978173834431, "p_black": 0.036290843342373702, "p_asian": 0.4339403332041844, "p_latinx": 0.24447888415342889, "p_owners": 0.7950200088928413, "p_renters": 0.2049799911071587, "p_stay": 0.9680311890838208, "p_movelocal": 0.014944769330734201, "p_movecounty": 0.0001299545159194, "p_movestate": 0.0093567251461987994, "p_moveabroad": 0.0075373619233267998, "p_car": 0.69866871479774706, "p_carpool": 0.1408090117767537, "p_transit": 0.081925243215565796, "p_bike": 0.014592933947772601, "p_walk": 0.0061443932411674 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.170816, 37.708707 ], [ -122.166672, 37.710422 ], [ -122.159817, 37.705648 ], [ -122.149038, 37.698212 ], [ -122.143839, 37.6946 ], [ -122.14292, 37.693812 ], [ -122.14085, 37.692339 ], [ -122.14029, 37.691823 ], [ -122.146527, 37.691404 ], [ -122.151809, 37.691273 ], [ -122.155812, 37.691151 ], [ -122.162859, 37.690917 ], [ -122.163083, 37.692497 ], [ -122.162848, 37.692561 ], [ -122.162349, 37.692951 ], [ -122.163976, 37.69723 ], [ -122.1657, 37.700437 ], [ -122.165879, 37.701212 ], [ -122.167527, 37.703686 ], [ -122.170816, 37.708707 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433600", "AFFGEOID": "1400000US06001433600", "GEOID": "06001433600", "NAME_x": "4336", "LSAD": "CT", "ALAND": 1581236, "AWATER": 0, "NAME_y": "Census Tract 4336, Alameda County, California", "c_race": 5722, "c_white": 1258, "c_black": 540, "c_asian": 2570, "c_latinx": 1027, "state_fips": 6, "county_fips": 1, "tract_fips": 433600, "med_rent": 1249.0, "med_hhinc": 48059.0, "c_tenants": 2153, "c_owners": 1071, "c_renters": 1082, "c_movers": 5722, "c_stay": 5272, "c_movelocal": 283, "c_movecounty": 45, "c_movestate": 0, "c_moveabroad": 122, "c_commute": 2641, "c_car": 1916, "c_carpool": 299, "c_transit": 212, "c_bike": 0, "c_walk": 37, "year": 2018, "FIPS_11_digit": "06001433600", "p_white": 0.21985319818245369, "p_black": 0.094372596994058006, "p_asian": 0.44914365606431311, "p_latinx": 0.1794826983572177, "p_owners": 0.49744542498838829, "p_renters": 0.50255457501161171, "p_stay": 0.92135616917161844, "p_movelocal": 0.0494582313876267, "p_movecounty": 0.0078643830828381001, "p_movestate": 0.0, "p_moveabroad": 0.021321216357916801, "p_car": 0.72548277167739494, "p_carpool": 0.1132146914047709, "p_transit": 0.080272624006058294, "p_bike": 0.0, "p_walk": 0.0140098447557743 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.151809, 37.691273 ], [ -122.146527, 37.691404 ], [ -122.14029, 37.691823 ], [ -122.14085, 37.692339 ], [ -122.138886, 37.690835 ], [ -122.13585, 37.689132 ], [ -122.132347, 37.686709 ], [ -122.130022, 37.685112 ], [ -122.129, 37.684386 ], [ -122.129987, 37.684453 ], [ -122.131581, 37.685088 ], [ -122.134509, 37.684364 ], [ -122.135552, 37.684352 ], [ -122.135555, 37.684444 ], [ -122.136507, 37.684464 ], [ -122.138702, 37.684738 ], [ -122.140219, 37.684295 ], [ -122.144078, 37.681571 ], [ -122.144491, 37.679733 ], [ -122.150992, 37.676863 ], [ -122.149849, 37.67801 ], [ -122.150324, 37.68138 ], [ -122.151268, 37.684293 ], [ -122.151112, 37.685448 ], [ -122.151227, 37.689861 ], [ -122.151809, 37.691273 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435104", "AFFGEOID": "1400000US06001435104", "GEOID": "06001435104", "NAME_x": "4351.04", "LSAD": "CT", "ALAND": 7174312, "AWATER": 0, "NAME_y": "Census Tract 4351.04, Alameda County, California", "c_race": 5826, "c_white": 663, "c_black": 809, "c_asian": 1370, "c_latinx": 2484, "state_fips": 6, "county_fips": 1, "tract_fips": 435104, "med_rent": 1833.0, "med_hhinc": 77813.0, "c_tenants": 2104, "c_owners": 431, "c_renters": 1673, "c_movers": 5617, "c_stay": 4956, "c_movelocal": 407, "c_movecounty": 144, "c_movestate": 41, "c_moveabroad": 69, "c_commute": 2492, "c_car": 1950, "c_carpool": 113, "c_transit": 237, "c_bike": 20, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001435104", "p_white": 0.11380020597322341, "p_black": 0.13886028149673871, "p_asian": 0.23515276347408171, "p_latinx": 0.42636457260556121, "p_owners": 0.20484790874524711, "p_renters": 0.79515209125475284, "p_stay": 0.8823215239451665, "p_movelocal": 0.072458607797756799, "p_movecounty": 0.0256364607441694, "p_movestate": 0.0072992700729926996, "p_moveabroad": 0.012284137439914499, "p_car": 0.7825040128410915, "p_carpool": 0.045345104333868298, "p_transit": 0.095104333868378799, "p_bike": 0.0080256821829854993, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.063118, 37.648698 ], [ -122.062241, 37.649918 ], [ -122.055455, 37.650687 ], [ -122.050933, 37.647465 ], [ -122.049562, 37.646505 ], [ -122.039832, 37.646829 ], [ -122.037193, 37.645718 ], [ -122.035972, 37.645532 ], [ -122.031025, 37.645603 ], [ -122.028696, 37.647691 ], [ -122.022702, 37.647557 ], [ -122.017349, 37.643941 ], [ -122.016131, 37.642877 ], [ -122.019562, 37.638435 ], [ -122.019571, 37.636786 ], [ -122.015349, 37.63426 ], [ -122.01126, 37.633737 ], [ -122.012226, 37.632891 ], [ -122.013865, 37.631651 ], [ -122.013906, 37.631621 ], [ -122.014024, 37.631686 ], [ -122.017206, 37.632394 ], [ -122.018928, 37.63337 ], [ -122.019208, 37.633454 ], [ -122.019993, 37.63332 ], [ -122.020541, 37.633372 ], [ -122.020978, 37.633232 ], [ -122.021264, 37.632851 ], [ -122.021704, 37.63244 ], [ -122.022128, 37.632281 ], [ -122.022617, 37.632321 ], [ -122.022853, 37.632251 ], [ -122.023194, 37.631761 ], [ -122.027928, 37.628616 ], [ -122.030028, 37.628855 ], [ -122.031588, 37.628606 ], [ -122.032314, 37.628442 ], [ -122.039879, 37.629171 ], [ -122.040405, 37.628959 ], [ -122.04277, 37.627904 ], [ -122.044644, 37.627777 ], [ -122.046779, 37.629678 ], [ -122.046934, 37.629598 ], [ -122.05168, 37.625745 ], [ -122.053594, 37.629424 ], [ -122.058388, 37.635735 ], [ -122.057233, 37.635929 ], [ -122.054266, 37.636394 ], [ -122.05692, 37.638815 ], [ -122.054441, 37.640044 ], [ -122.0553, 37.642858 ], [ -122.06002, 37.642497 ], [ -122.064598, 37.648266 ], [ -122.063118, 37.648698 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436100", "AFFGEOID": "1400000US06001436100", "GEOID": "06001436100", "NAME_x": "4361", "LSAD": "CT", "ALAND": 1248062, "AWATER": 0, "NAME_y": "Census Tract 4361, Alameda County, California", "c_race": 6146, "c_white": 1425, "c_black": 274, "c_asian": 1580, "c_latinx": 2515, "state_fips": 6, "county_fips": 1, "tract_fips": 436100, "med_rent": 1329.0, "med_hhinc": 89083.0, "c_tenants": 1807, "c_owners": 1048, "c_renters": 759, "c_movers": 6095, "c_stay": 5401, "c_movelocal": 448, "c_movecounty": 161, "c_movestate": 36, "c_moveabroad": 49, "c_commute": 2905, "c_car": 1998, "c_carpool": 286, "c_transit": 351, "c_bike": 38, "c_walk": 62, "year": 2018, "FIPS_11_digit": "06001436100", "p_white": 0.2318581191018548, "p_black": 0.044581841848356597, "p_asian": 0.25707777416205663, "p_latinx": 0.40920924178327361, "p_owners": 0.5799667957941339, "p_renters": 0.4200332042058661, "p_stay": 0.88613617719442161, "p_movelocal": 0.0735028712059064, "p_movecounty": 0.026415094339622601, "p_movestate": 0.0059064807219031002, "p_moveabroad": 0.0080393765381460008, "p_car": 0.68777969018932872, "p_carpool": 0.098450946643717702, "p_transit": 0.12082616179001721, "p_bike": 0.0130808950086058, "p_walk": 0.021342512908777901 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.132929, 37.673297 ], [ -122.125833, 37.676176 ], [ -122.126205, 37.678394 ], [ -122.12355, 37.67421 ], [ -122.117534, 37.676558 ], [ -122.111599, 37.672032 ], [ -122.120098, 37.668712 ], [ -122.120641, 37.669602 ], [ -122.128029, 37.667889 ], [ -122.128175, 37.665131 ], [ -122.13096, 37.66513 ], [ -122.131253, 37.668305 ], [ -122.131378, 37.669775 ], [ -122.131278, 37.670533 ], [ -122.131341, 37.670834 ], [ -122.132929, 37.673297 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436500", "AFFGEOID": "1400000US06001436500", "GEOID": "06001436500", "NAME_x": "4365", "LSAD": "CT", "ALAND": 1964171, "AWATER": 0, "NAME_y": "Census Tract 4365, Alameda County, California", "c_race": 5206, "c_white": 740, "c_black": 543, "c_asian": 992, "c_latinx": 2532, "state_fips": 6, "county_fips": 1, "tract_fips": 436500, "med_rent": 1706.0, "med_hhinc": 69450.0, "c_tenants": 1734, "c_owners": 482, "c_renters": 1252, "c_movers": 5041, "c_stay": 4260, "c_movelocal": 259, "c_movecounty": 446, "c_movestate": 54, "c_moveabroad": 22, "c_commute": 2559, "c_car": 1747, "c_carpool": 348, "c_transit": 285, "c_bike": 0, "c_walk": 79, "year": 2018, "FIPS_11_digit": "06001436500", "p_white": 0.1421436803688052, "p_black": 0.10430272762197459, "p_asian": 0.19054936611601991, "p_latinx": 0.48636189012677677, "p_owners": 0.2779700115340254, "p_renters": 0.72202998846597466, "p_stay": 0.84507042253521125, "p_movelocal": 0.051378694703431801, "p_movecounty": 0.0884745090259869, "p_movestate": 0.0107121602856576, "p_moveabroad": 0.0043642134497123, "p_car": 0.68268855021492769, "p_carpool": 0.13599062133645951, "p_transit": 0.1113716295427901, "p_bike": 0.0, "p_walk": 0.030871434153966301 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.081476, 37.667747 ], [ -122.080719, 37.668796 ], [ -122.080635, 37.66864 ], [ -122.078024, 37.665503 ], [ -122.075918, 37.66289 ], [ -122.068875, 37.665191 ], [ -122.065639, 37.664047 ], [ -122.061411, 37.66062 ], [ -122.060494, 37.660287 ], [ -122.058749, 37.660017 ], [ -122.063073, 37.65916 ], [ -122.059903, 37.658564 ], [ -122.059694, 37.656996 ], [ -122.057031, 37.65554 ], [ -122.055206, 37.652632 ], [ -122.057005, 37.652741 ], [ -122.059529, 37.654122 ], [ -122.061135, 37.654309 ], [ -122.065103, 37.65165 ], [ -122.066939, 37.651218 ], [ -122.067968, 37.65087 ], [ -122.070021, 37.650546 ], [ -122.074284, 37.655967 ], [ -122.078774, 37.662231 ], [ -122.082336, 37.666154 ], [ -122.081476, 37.667747 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437300", "AFFGEOID": "1400000US06001437300", "GEOID": "06001437300", "NAME_x": "4373", "LSAD": "CT", "ALAND": 1027866, "AWATER": 0, "NAME_y": "Census Tract 4373, Alameda County, California", "c_race": 3258, "c_white": 591, "c_black": 438, "c_asian": 859, "c_latinx": 1057, "state_fips": 6, "county_fips": 1, "tract_fips": 437300, "med_rent": 1364.0, "med_hhinc": 73620.0, "c_tenants": 953, "c_owners": 517, "c_renters": 436, "c_movers": 3196, "c_stay": 2924, "c_movelocal": 161, "c_movecounty": 56, "c_movestate": 32, "c_moveabroad": 23, "c_commute": 1362, "c_car": 997, "c_carpool": 208, "c_transit": 50, "c_bike": 0, "c_walk": 23, "year": 2018, "FIPS_11_digit": "06001437300", "p_white": 0.1813996316758747, "p_black": 0.1344383057090239, "p_asian": 0.26365868631062001, "p_latinx": 0.32443216697360339, "p_owners": 0.54249737670514164, "p_renters": 0.4575026232948583, "p_stay": 0.91489361702127658, "p_movelocal": 0.050375469336670801, "p_movecounty": 0.017521902377972399, "p_movestate": 0.010012515644555599, "p_moveabroad": 0.0071964956195244003, "p_car": 0.73201174743024966, "p_carpool": 0.1527165932452276, "p_transit": 0.036710719530102701, "p_bike": 0.0, "p_walk": 0.0168869309838472 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.098212, 37.637618 ], [ -122.097001, 37.639318 ], [ -122.09389, 37.644795 ], [ -122.090665, 37.640183 ], [ -122.087898, 37.636326 ], [ -122.084513, 37.631558 ], [ -122.089817, 37.631721 ], [ -122.093821, 37.63175 ], [ -122.094591, 37.631708 ], [ -122.096801, 37.630905 ], [ -122.100093, 37.636331 ], [ -122.098212, 37.637618 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437600", "AFFGEOID": "1400000US06001437600", "GEOID": "06001437600", "NAME_x": "4376", "LSAD": "CT", "ALAND": 819053, "AWATER": 0, "NAME_y": "Census Tract 4376, Alameda County, California", "c_race": 3755, "c_white": 480, "c_black": 261, "c_asian": 1053, "c_latinx": 1652, "state_fips": 6, "county_fips": 1, "tract_fips": 437600, "med_rent": 1475.0, "med_hhinc": 82766.0, "c_tenants": 914, "c_owners": 521, "c_renters": 393, "c_movers": 3692, "c_stay": 3155, "c_movelocal": 341, "c_movecounty": 137, "c_movestate": 4, "c_moveabroad": 55, "c_commute": 1428, "c_car": 1008, "c_carpool": 204, "c_transit": 85, "c_bike": 12, "c_walk": 4, "year": 2018, "FIPS_11_digit": "06001437600", "p_white": 0.12782956058588549, "p_black": 0.069507323568575197, "p_asian": 0.28042609853528627, "p_latinx": 0.43994673768308917, "p_owners": 0.57002188183807445, "p_renters": 0.4299781181619256, "p_stay": 0.85455037919826649, "p_movelocal": 0.092361863488624005, "p_movecounty": 0.037107258938244798, "p_movestate": 0.0010834236186348001, "p_moveabroad": 0.0148970747562296, "p_car": 0.70588235294117652, "p_carpool": 0.14285714285714279, "p_transit": 0.0595238095238095, "p_bike": 0.0084033613445377991, "p_walk": 0.0028011204481792002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.086765, 37.63688 ], [ -122.084323, 37.63694 ], [ -122.083642, 37.636955 ], [ -122.083513, 37.639593 ], [ -122.081222, 37.639636 ], [ -122.081274, 37.640832 ], [ -122.07847, 37.640942 ], [ -122.075885, 37.636457 ], [ -122.074324, 37.632183 ], [ -122.073242, 37.631424 ], [ -122.07446, 37.631336 ], [ -122.077526, 37.631403 ], [ -122.084513, 37.631558 ], [ -122.087898, 37.636326 ], [ -122.086765, 37.63688 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440304", "AFFGEOID": "1400000US06001440304", "GEOID": "06001440304", "NAME_x": "4403.04", "LSAD": "CT", "ALAND": 978259, "AWATER": 0, "NAME_y": "Census Tract 4403.04, Alameda County, California", "c_race": 5163, "c_white": 366, "c_black": 488, "c_asian": 3451, "c_latinx": 415, "state_fips": 6, "county_fips": 1, "tract_fips": 440304, "med_rent": 1951.0, "med_hhinc": 87042.0, "c_tenants": 1333, "c_owners": 869, "c_renters": 464, "c_movers": 5140, "c_stay": 4821, "c_movelocal": 214, "c_movecounty": 91, "c_movestate": 4, "c_moveabroad": 10, "c_commute": 1770, "c_car": 1329, "c_carpool": 146, "c_transit": 131, "c_bike": 12, "c_walk": 20, "year": 2018, "FIPS_11_digit": "06001440304", "p_white": 0.070889018012783203, "p_black": 0.094518690683711007, "p_asian": 0.66840983924075148, "p_latinx": 0.080379624249467305, "p_owners": 0.65191297824456118, "p_renters": 0.34808702175543887, "p_stay": 0.93793774319066159, "p_movelocal": 0.041634241245136101, "p_movecounty": 0.017704280155641999, "p_movestate": 0.0007782101167315, "p_moveabroad": 0.0019455252918286999, "p_car": 0.75084745762711869, "p_carpool": 0.082485875706214601, "p_transit": 0.074011299435028197, "p_bike": 0.0067796610169491003, "p_walk": 0.011299435028248501 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.081177, 37.591604 ], [ -122.078051, 37.591591 ], [ -122.07757, 37.591673 ], [ -122.07609, 37.592285 ], [ -122.075163, 37.592426 ], [ -122.072253, 37.591093 ], [ -122.069993, 37.592375 ], [ -122.068734, 37.591103 ], [ -122.069057, 37.590387 ], [ -122.072286, 37.58667 ], [ -122.074061, 37.584622 ], [ -122.076131, 37.582267 ], [ -122.078159, 37.579931 ], [ -122.079639, 37.578245 ], [ -122.080862, 37.577771 ], [ -122.081197, 37.587571 ], [ -122.081177, 37.591604 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440307", "AFFGEOID": "1400000US06001440307", "GEOID": "06001440307", "NAME_x": "4403.07", "LSAD": "CT", "ALAND": 1405904, "AWATER": 0, "NAME_y": "Census Tract 4403.07, Alameda County, California", "c_race": 4488, "c_white": 911, "c_black": 276, "c_asian": 2391, "c_latinx": 753, "state_fips": 6, "county_fips": 1, "tract_fips": 440307, "med_rent": 1916.0, "med_hhinc": 70375.0, "c_tenants": 1590, "c_owners": 1147, "c_renters": 443, "c_movers": 4449, "c_stay": 4186, "c_movelocal": 199, "c_movecounty": 21, "c_movestate": 0, "c_moveabroad": 43, "c_commute": 1476, "c_car": 1055, "c_carpool": 222, "c_transit": 94, "c_bike": 16, "c_walk": 15, "year": 2018, "FIPS_11_digit": "06001440307", "p_white": 0.20298573975044559, "p_black": 0.061497326203208497, "p_asian": 0.53275401069518713, "p_latinx": 0.16778074866310161, "p_owners": 0.72138364779874209, "p_renters": 0.2786163522012578, "p_stay": 0.94088559226792523, "p_movelocal": 0.044729152618565901, "p_movecounty": 0.0047201618341200001, "p_movestate": 0.0, "p_moveabroad": 0.0096650932793886004, "p_car": 0.714769647696477, "p_carpool": 0.15040650406504061, "p_transit": 0.063685636856368494, "p_bike": 0.010840108401084, "p_walk": 0.010162601626016199 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.056626, 37.596897 ], [ -122.055063, 37.596447 ], [ -122.051653, 37.595503 ], [ -122.047311, 37.594296 ], [ -122.043872, 37.593345 ], [ -122.03965, 37.592186 ], [ -122.034523, 37.59077 ], [ -122.036529, 37.590134 ], [ -122.038704, 37.587789 ], [ -122.041459, 37.588119 ], [ -122.045705, 37.587136 ], [ -122.048253, 37.585818 ], [ -122.050346, 37.583491 ], [ -122.055099, 37.590335 ], [ -122.056609, 37.592457 ], [ -122.061052, 37.598688 ], [ -122.056626, 37.596897 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441301", "AFFGEOID": "1400000US06001441301", "GEOID": "06001441301", "NAME_x": "4413.01", "LSAD": "CT", "ALAND": 3293449, "AWATER": 0, "NAME_y": "Census Tract 4413.01, Alameda County, California", "c_race": 3323, "c_white": 615, "c_black": 81, "c_asian": 2228, "c_latinx": 260, "state_fips": 6, "county_fips": 1, "tract_fips": 441301, "med_rent": 2471.0, "med_hhinc": 134000.0, "c_tenants": 1170, "c_owners": 598, "c_renters": 572, "c_movers": 3303, "c_stay": 2534, "c_movelocal": 265, "c_movecounty": 139, "c_movestate": 245, "c_moveabroad": 120, "c_commute": 1423, "c_car": 1005, "c_carpool": 147, "c_transit": 181, "c_bike": 8, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001441301", "p_white": 0.18507372855853141, "p_black": 0.0243755642491724, "p_asian": 0.67047848329822446, "p_latinx": 0.078242551910923802, "p_owners": 0.51111111111111107, "p_renters": 0.48888888888888887, "p_stay": 0.76718135028761736, "p_movelocal": 0.080230093854071996, "p_movecounty": 0.042082954889494401, "p_movestate": 0.074174992431123202, "p_moveabroad": 0.036330608537693002, "p_car": 0.7062543921293043, "p_carpool": 0.1033028812368236, "p_transit": 0.12719606465214331, "p_bike": 0.0056219255094869004, "p_walk": 0.0042164441321151996 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.01831, 37.574432 ], [ -122.013355, 37.580965 ], [ -122.010621, 37.581416 ], [ -122.008099, 37.579693 ], [ -122.006515, 37.582662 ], [ -122.006518, 37.582799 ], [ -121.997443, 37.575796 ], [ -121.98837, 37.568829 ], [ -121.987062, 37.568033 ], [ -121.984122, 37.568 ], [ -121.983531, 37.566463 ], [ -121.995937, 37.563041 ], [ -121.99709, 37.564076 ], [ -121.999575, 37.564144 ], [ -122.005128, 37.563368 ], [ -122.007128, 37.564636 ], [ -122.00816, 37.565535 ], [ -122.008843, 37.566782 ], [ -122.009762, 37.568755 ], [ -122.014542, 37.571712 ], [ -122.01413, 37.572077 ], [ -122.017621, 37.574157 ], [ -122.01831, 37.574432 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441503", "AFFGEOID": "1400000US06001441503", "GEOID": "06001441503", "NAME_x": "4415.03", "LSAD": "CT", "ALAND": 77505343, "AWATER": 12542576, "NAME_y": "Census Tract 4415.03, Alameda County, California", "c_race": 6834, "c_white": 609, "c_black": 152, "c_asian": 5580, "c_latinx": 206, "state_fips": 6, "county_fips": 1, "tract_fips": 441503, "med_rent": 2787.0, "med_hhinc": 164118.0, "c_tenants": 2076, "c_owners": 1532, "c_renters": 544, "c_movers": 6707, "c_stay": 5474, "c_movelocal": 292, "c_movecounty": 404, "c_movestate": 122, "c_moveabroad": 415, "c_commute": 2346, "c_car": 1628, "c_carpool": 309, "c_transit": 203, "c_bike": 22, "c_walk": 22, "year": 2018, "FIPS_11_digit": "06001441503", "p_white": 0.089113257243195701, "p_black": 0.022241732513900998, "p_asian": 0.81650570676031609, "p_latinx": 0.0301434006438396, "p_owners": 0.73795761078998068, "p_renters": 0.26204238921001921, "p_stay": 0.81616221857760551, "p_movelocal": 0.043536603548531297, "p_movecounty": 0.060235574772625602, "p_movestate": 0.018189950797674, "p_moveabroad": 0.0618756523035634, "p_car": 0.69394714407502134, "p_carpool": 0.13171355498721221, "p_transit": 0.086530264279624805, "p_bike": 0.0093776641091218998, "p_walk": 0.0093776641091218998 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -122.111424603333006, 37.510201580279897 ], [ -122.110922, 37.509413 ], [ -122.101243, 37.518249 ], [ -122.101522, 37.521337 ], [ -122.098329, 37.522612 ], [ -122.09326, 37.520987 ], [ -122.09228, 37.518493 ], [ -122.088326, 37.516847 ], [ -122.089497, 37.513611 ], [ -122.087861, 37.513193 ], [ -122.08553, 37.514167 ], [ -122.082839, 37.514484 ], [ -122.080861, 37.516609 ], [ -122.079567, 37.516013 ], [ -122.079978, 37.514799 ], [ -122.077208, 37.515458 ], [ -122.074302, 37.516242 ], [ -122.072554, 37.516844 ], [ -122.070185, 37.517866 ], [ -122.069033, 37.517733 ], [ -122.067158, 37.513481 ], [ -122.063063, 37.51489 ], [ -122.058288, 37.51572 ], [ -122.057339, 37.511731 ], [ -122.055628, 37.506777 ], [ -122.057788, 37.501106 ], [ -122.052393, 37.500242 ], [ -122.052606, 37.499278 ], [ -122.043376, 37.495874 ], [ -122.039203, 37.495089 ], [ -122.035386, 37.494691 ], [ -122.033931, 37.492501 ], [ -122.030965, 37.490136 ], [ -122.031495, 37.488435 ], [ -122.030858, 37.481568 ], [ -122.028182, 37.478769 ], [ -122.025852, 37.478979 ], [ -122.024849, 37.48325 ], [ -122.023141, 37.484693 ], [ -122.0198, 37.484589 ], [ -122.013813, 37.481647 ], [ -122.011987, 37.485652 ], [ -122.009747, 37.488982 ], [ -122.010785, 37.492352 ], [ -122.009986, 37.493627 ], [ -122.00599, 37.49484 ], [ -122.005116, 37.495171 ], [ -122.000291, 37.494875 ], [ -121.998465, 37.499289 ], [ -121.997114, 37.500417 ], [ -121.99332, 37.499453 ], [ -121.99798, 37.50383 ], [ -121.995373, 37.51084 ], [ -121.994816, 37.513828 ], [ -121.989281, 37.520863 ], [ -121.98831, 37.521749 ], [ -121.987767, 37.522432 ], [ -121.983809, 37.520338 ], [ -121.982543, 37.519422 ], [ -121.967456, 37.507453 ], [ -121.962883, 37.509343 ], [ -121.960635, 37.510181 ], [ -121.95117, 37.512099 ], [ -121.946771, 37.5124 ], [ -121.945316, 37.512779 ], [ -121.943116, 37.513715 ], [ -121.939515, 37.514759 ], [ -121.93466, 37.506223 ], [ -121.933667, 37.505038 ], [ -121.923012, 37.495572 ], [ -121.927494, 37.491309 ], [ -121.929543, 37.489847 ], [ -121.929169, 37.488837 ], [ -121.927922, 37.486984 ], [ -121.926726, 37.48486 ], [ -121.924609, 37.481116 ], [ -121.921084, 37.474995 ], [ -121.918295, 37.470188 ], [ -121.912652, 37.46065 ], [ -121.917265, 37.458391 ], [ -121.922569, 37.455538 ], [ -121.925041, 37.454186 ], [ -121.9279, 37.455352 ], [ -121.927561, 37.456925 ], [ -121.928444, 37.457394 ], [ -121.932069, 37.455277 ], [ -121.932899, 37.455447 ], [ -121.932656, 37.456919 ], [ -121.931128, 37.45739 ], [ -121.931471, 37.460911 ], [ -121.934116, 37.460331 ], [ -121.935242, 37.461068 ], [ -121.934987, 37.462464 ], [ -121.936025, 37.462929 ], [ -121.938903, 37.462394 ], [ -121.941085, 37.464948 ], [ -121.943779, 37.465457 ], [ -121.944244, 37.468526 ], [ -121.944914, 37.469163 ], [ -121.947087, 37.467424 ], [ -121.946174, 37.463946 ], [ -121.948126, 37.461845 ], [ -121.951921, 37.461461 ], [ -121.959313, 37.463515 ], [ -121.964157, 37.463151 ], [ -121.968524, 37.461953 ], [ -121.975071, 37.460639 ], [ -121.980014, 37.460892 ], [ -121.992669, 37.464639 ], [ -121.996671, 37.467239 ], [ -122.020872, 37.465139 ], [ -122.025425, 37.46563 ], [ -122.036182, 37.464966 ], [ -122.040698, 37.462975 ], [ -122.044587, 37.460666 ], [ -122.045707, 37.461806 ], [ -122.051961970451998, 37.462679294675901 ], [ -122.053327, 37.463286 ], [ -122.059031, 37.468003 ], [ -122.059031, 37.475548 ], [ -122.060971718026011, 37.478088813839101 ], [ -122.061578, 37.486685 ], [ -122.061484, 37.491605 ], [ -122.065898, 37.492946 ], [ -122.072849, 37.494512 ], [ -122.078016, 37.495107 ], [ -122.080287934025009, 37.495085945132395 ], [ -122.088504, 37.497802 ], [ -122.092442, 37.499489 ], [ -122.102527, 37.497237 ], [ -122.10942, 37.500254 ], [ -122.111344, 37.50758 ], [ -122.111424603333006, 37.510201580279897 ] ] ], [ [ [ -122.130211, 37.563942 ], [ -122.124954, 37.570055 ], [ -122.122586, 37.571097 ], [ -122.117721, 37.571102 ], [ -122.109515, 37.567902 ], [ -122.107553, 37.565835 ], [ -122.108464, 37.562094 ], [ -122.107544, 37.561019 ], [ -122.102842, 37.563468 ], [ -122.099355, 37.562148 ], [ -122.097838, 37.564575 ], [ -122.095498, 37.564332 ], [ -122.093694, 37.561883 ], [ -122.090542, 37.56116 ], [ -122.089615, 37.562107 ], [ -122.080994, 37.561402 ], [ -122.072457, 37.562705 ], [ -122.06973, 37.563639 ], [ -122.062817, 37.571168 ], [ -122.061609, 37.569517 ], [ -122.059295, 37.569413 ], [ -122.058404, 37.565056 ], [ -122.057411, 37.560196 ], [ -122.056879, 37.55768 ], [ -122.055233, 37.549743 ], [ -122.05518, 37.549454 ], [ -122.064476, 37.542386 ], [ -122.067333, 37.540231 ], [ -122.071144, 37.537376 ], [ -122.073527, 37.535913 ], [ -122.078125, 37.534114 ], [ -122.085917, 37.532852 ], [ -122.090044, 37.531776 ], [ -122.092433, 37.530552 ], [ -122.093759, 37.529653 ], [ -122.10193, 37.52262 ], [ -122.103929, 37.520176 ], [ -122.109113, 37.513053 ], [ -122.11144457163401, 37.510851038560197 ], [ -122.111998, 37.528851 ], [ -122.128688, 37.560594 ], [ -122.132333636126006, 37.562189139871002 ], [ -122.130211, 37.563942 ] ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441926", "AFFGEOID": "1400000US06001441926", "GEOID": "06001441926", "NAME_x": "4419.26", "LSAD": "CT", "ALAND": 408690, "AWATER": 0, "NAME_y": "Census Tract 4419.26, Alameda County, California", "c_race": 4570, "c_white": 424, "c_black": 205, "c_asian": 2294, "c_latinx": 1394, "state_fips": 6, "county_fips": 1, "tract_fips": 441926, "med_rent": 1890.0, "med_hhinc": 96044.0, "c_tenants": 1483, "c_owners": 346, "c_renters": 1137, "c_movers": 4489, "c_stay": 3636, "c_movelocal": 333, "c_movecounty": 188, "c_movestate": 87, "c_moveabroad": 245, "c_commute": 1446, "c_car": 895, "c_carpool": 251, "c_transit": 200, "c_bike": 1, "c_walk": 32, "year": 2018, "FIPS_11_digit": "06001441926", "p_white": 0.092778993435448501, "p_black": 0.0448577680525164, "p_asian": 0.50196936542669579, "p_latinx": 0.30503282275711158, "p_owners": 0.23331085637221849, "p_renters": 0.76668914362778151, "p_stay": 0.80997995099131215, "p_movelocal": 0.074181332145243903, "p_movecounty": 0.041880151481398897, "p_movestate": 0.019380708398306901, "p_moveabroad": 0.054577856983738002, "p_car": 0.61894882434301524, "p_carpool": 0.17358229598893499, "p_transit": 0.13831258644536651, "p_bike": 0.00069156293222680004, "p_walk": 0.022130013831258601 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.980761, 37.544614 ], [ -121.976822, 37.542597 ], [ -121.973146, 37.540693 ], [ -121.97596, 37.537218 ], [ -121.977002, 37.537862 ], [ -121.978861, 37.538885 ], [ -121.980069, 37.538483 ], [ -121.984127, 37.540398 ], [ -121.980761, 37.544614 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442602", "AFFGEOID": "1400000US06001442602", "GEOID": "06001442602", "NAME_x": "4426.02", "LSAD": "CT", "ALAND": 1318798, "AWATER": 0, "NAME_y": "Census Tract 4426.02, Alameda County, California", "c_race": 4883, "c_white": 1652, "c_black": 306, "c_asian": 1555, "c_latinx": 1288, "state_fips": 6, "county_fips": 1, "tract_fips": 442602, "med_rent": 1826.0, "med_hhinc": 106295.0, "c_tenants": 1625, "c_owners": 963, "c_renters": 662, "c_movers": 4863, "c_stay": 4609, "c_movelocal": 133, "c_movecounty": 80, "c_movestate": 28, "c_moveabroad": 13, "c_commute": 1524, "c_car": 1064, "c_carpool": 159, "c_transit": 172, "c_bike": 0, "c_walk": 7, "year": 2018, "FIPS_11_digit": "06001442602", "p_white": 0.33831660864222812, "p_black": 0.062666393610485302, "p_asian": 0.31845177145197617, "p_latinx": 0.26377227114478802, "p_owners": 0.59261538461538465, "p_renters": 0.4073846153846154, "p_stay": 0.94776886695455476, "p_movelocal": 0.027349372815134599, "p_movecounty": 0.016450750565494499, "p_movestate": 0.0057577626979230002, "p_moveabroad": 0.0026732469668928, "p_car": 0.69816272965879267, "p_carpool": 0.1043307086614173, "p_transit": 0.1128608923884514, "p_bike": 0.0, "p_walk": 0.0045931758530182998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.012574, 37.545809 ], [ -122.008628, 37.550415 ], [ -122.005383, 37.554468 ], [ -122.00424, 37.555839 ], [ -122.003709, 37.556474 ], [ -121.996258, 37.552612 ], [ -121.999131, 37.54911 ], [ -122.001088, 37.54667 ], [ -122.003083, 37.542733 ], [ -122.005337, 37.539893 ], [ -122.013712, 37.544194 ], [ -122.012574, 37.545809 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443002", "AFFGEOID": "1400000US06001443002", "GEOID": "06001443002", "NAME_x": "4430.02", "LSAD": "CT", "ALAND": 1580314, "AWATER": 0, "NAME_y": "Census Tract 4430.02, Alameda County, California", "c_race": 6745, "c_white": 1381, "c_black": 87, "c_asian": 3946, "c_latinx": 1114, "state_fips": 6, "county_fips": 1, "tract_fips": 443002, "med_rent": 2235.0, "med_hhinc": 102092.0, "c_tenants": 1957, "c_owners": 1381, "c_renters": 576, "c_movers": 6716, "c_stay": 6303, "c_movelocal": 304, "c_movecounty": 26, "c_movestate": 45, "c_moveabroad": 38, "c_commute": 2257, "c_car": 1791, "c_carpool": 177, "c_transit": 69, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001443002", "p_white": 0.20474425500370641, "p_black": 0.012898443291326901, "p_asian": 0.58502594514455153, "p_latinx": 0.16515937731653069, "p_owners": 0.70567194685743484, "p_renters": 0.2943280531425651, "p_stay": 0.93850506253722443, "p_movelocal": 0.045265038713519903, "p_movecounty": 0.0038713519952352001, "p_movestate": 0.0067004169148302001, "p_moveabroad": 0.0056581298391899003, "p_car": 0.79353123615418697, "p_carpool": 0.078422684980061996, "p_transit": 0.030571555161719, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.969001, 37.522484 ], [ -121.957596, 37.523925 ], [ -121.95734, 37.522694 ], [ -121.954358, 37.517515 ], [ -121.952931, 37.515109 ], [ -121.95117, 37.512099 ], [ -121.960635, 37.510181 ], [ -121.962883, 37.509343 ], [ -121.965139, 37.512916 ], [ -121.967085, 37.516216 ], [ -121.967607, 37.517235 ], [ -121.96828, 37.51978 ], [ -121.969001, 37.522484 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444400", "AFFGEOID": "1400000US06001444400", "GEOID": "06001444400", "NAME_x": "4444", "LSAD": "CT", "ALAND": 1027798, "AWATER": 0, "NAME_y": "Census Tract 4444, Alameda County, California", "c_race": 5242, "c_white": 936, "c_black": 185, "c_asian": 1208, "c_latinx": 2584, "state_fips": 6, "county_fips": 1, "tract_fips": 444400, "med_rent": 2102.0, "med_hhinc": 91641.0, "c_tenants": 1493, "c_owners": 840, "c_renters": 653, "c_movers": 5189, "c_stay": 4882, "c_movelocal": 236, "c_movecounty": 63, "c_movestate": 8, "c_moveabroad": 0, "c_commute": 1370, "c_car": 975, "c_carpool": 195, "c_transit": 128, "c_bike": 0, "c_walk": 38, "year": 2018, "FIPS_11_digit": "06001444400", "p_white": 0.1785578023655093, "p_black": 0.035291873330789703, "p_asian": 0.2304463945059137, "p_latinx": 0.492941625333842, "p_owners": 0.56262558606831881, "p_renters": 0.43737441393168119, "p_stay": 0.94083638465985742, "p_movelocal": 0.045480824821738201, "p_movecounty": 0.0121410676430911, "p_movestate": 0.0015417228753130999, "p_moveabroad": 0.0, "p_car": 0.71167883211678828, "p_carpool": 0.1423357664233576, "p_transit": 0.093430656934306494, "p_bike": 0.0, "p_walk": 0.027737226277372198 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.044662, 37.533296 ], [ -122.04028, 37.536316 ], [ -122.034932, 37.539829 ], [ -122.033659, 37.539735 ], [ -122.034038, 37.540445 ], [ -122.029328, 37.544359 ], [ -122.028878, 37.544635 ], [ -122.028316, 37.543662 ], [ -122.026235, 37.54225 ], [ -122.03051, 37.536931 ], [ -122.030598, 37.536824 ], [ -122.033806, 37.532891 ], [ -122.035275, 37.531105 ], [ -122.040007, 37.529433 ], [ -122.041936, 37.531053 ], [ -122.044662, 37.533296 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450102", "AFFGEOID": "1400000US06001450102", "GEOID": "06001450102", "NAME_x": "4501.02", "LSAD": "CT", "ALAND": 9581888, "AWATER": 0, "NAME_y": "Census Tract 4501.02, Alameda County, California", "c_race": 6041, "c_white": 1467, "c_black": 561, "c_asian": 2258, "c_latinx": 1063, "state_fips": 6, "county_fips": 1, "tract_fips": 450102, "med_rent": 2629.0, "med_hhinc": 165125.0, "c_tenants": 1331, "c_owners": 799, "c_renters": 532, "c_movers": 5953, "c_stay": 4298, "c_movelocal": 748, "c_movecounty": 503, "c_movestate": 306, "c_moveabroad": 98, "c_commute": 2064, "c_car": 1229, "c_carpool": 214, "c_transit": 371, "c_bike": 56, "c_walk": 119, "year": 2018, "FIPS_11_digit": "06001450102", "p_white": 0.2428405893064062, "p_black": 0.092865419632511104, "p_asian": 0.37377917563317331, "p_latinx": 0.17596424433040889, "p_owners": 0.60030052592036065, "p_renters": 0.39969947407963929, "p_stay": 0.72198891315303204, "p_movelocal": 0.12565093230304039, "p_movecounty": 0.084495212497900193, "p_movestate": 0.051402654123971103, "p_moveabroad": 0.016462287922056101, "p_car": 0.59544573643410847, "p_carpool": 0.10368217054263559, "p_transit": 0.17974806201550381, "p_bike": 0.027131782945736399, "p_walk": 0.0576550387596899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.910138, 37.73046 ], [ -121.881567, 37.737328 ], [ -121.881767, 37.736428 ], [ -121.874364, 37.731425 ], [ -121.872934, 37.729426 ], [ -121.873529, 37.729373 ], [ -121.872033, 37.724224 ], [ -121.872011, 37.716725 ], [ -121.872007, 37.710044 ], [ -121.878182, 37.708564 ], [ -121.888855, 37.708655 ], [ -121.893203, 37.708982 ], [ -121.893186, 37.706292 ], [ -121.896463, 37.706195 ], [ -121.898789, 37.705804 ], [ -121.903945, 37.705858 ], [ -121.910233, 37.710437 ], [ -121.91017, 37.719242 ], [ -121.909471, 37.724803 ], [ -121.910459, 37.730393 ], [ -121.910138, 37.73046 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450603", "AFFGEOID": "1400000US06001450603", "GEOID": "06001450603", "NAME_x": "4506.03", "LSAD": "CT", "ALAND": 3973969, "AWATER": 0, "NAME_y": "Census Tract 4506.03, Alameda County, California", "c_race": 5308, "c_white": 3186, "c_black": 40, "c_asian": 1399, "c_latinx": 578, "state_fips": 6, "county_fips": 1, "tract_fips": 450603, "med_rent": 2969.0, "med_hhinc": 145938.0, "c_tenants": 1704, "c_owners": 1412, "c_renters": 292, "c_movers": 5240, "c_stay": 4744, "c_movelocal": 285, "c_movecounty": 71, "c_movestate": 57, "c_moveabroad": 83, "c_commute": 2736, "c_car": 2091, "c_carpool": 171, "c_transit": 217, "c_bike": 12, "c_walk": 25, "year": 2018, "FIPS_11_digit": "06001450603", "p_white": 0.6002260738507913, "p_black": 0.0075357950263752003, "p_asian": 0.26356443104747551, "p_latinx": 0.1088922381311228, "p_owners": 0.82863849765258213, "p_renters": 0.17136150234741779, "p_stay": 0.90534351145038161, "p_movelocal": 0.054389312977099202, "p_movecounty": 0.0135496183206106, "p_movestate": 0.010877862595419801, "p_moveabroad": 0.0158396946564885, "p_car": 0.76425438596491224, "p_carpool": 0.0625, "p_transit": 0.079312865497076002, "p_bike": 0.0043859649122806998, "p_walk": 0.0091374269005846994 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.923303, 37.702837 ], [ -121.920518, 37.701999 ], [ -121.907178, 37.7021 ], [ -121.907013, 37.701893 ], [ -121.906908, 37.70177 ], [ -121.903784, 37.698063 ], [ -121.903469, 37.697301 ], [ -121.90355, 37.691574 ], [ -121.903586, 37.68819 ], [ -121.903657, 37.683103 ], [ -121.90379, 37.681896 ], [ -121.903403, 37.680281 ], [ -121.902178, 37.679256 ], [ -121.899969, 37.677855 ], [ -121.898383, 37.676847 ], [ -121.910225, 37.671945 ], [ -121.91101, 37.671534 ], [ -121.917161, 37.687219 ], [ -121.922584, 37.701134 ], [ -121.92309, 37.702355 ], [ -121.923303, 37.702837 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450701", "AFFGEOID": "1400000US06001450701", "GEOID": "06001450701", "NAME_x": "4507.01", "LSAD": "CT", "ALAND": 266226091, "AWATER": 2841807, "NAME_y": "Census Tract 4507.01, Alameda County, California", "c_race": 8663, "c_white": 4924, "c_black": 179, "c_asian": 2694, "c_latinx": 534, "state_fips": 6, "county_fips": 1, "tract_fips": 450701, "med_rent": 2173.0, "med_hhinc": 214583.0, "c_tenants": 2844, "c_owners": 2413, "c_renters": 431, "c_movers": 8595, "c_stay": 7888, "c_movelocal": 496, "c_movecounty": 14, "c_movestate": 81, "c_moveabroad": 116, "c_commute": 4191, "c_car": 3059, "c_carpool": 276, "c_transit": 187, "c_bike": 9, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450701", "p_white": 0.56839432067413131, "p_black": 0.020662588018007601, "p_asian": 0.31097772134364537, "p_latinx": 0.061641463696179101, "p_owners": 0.84845288326300983, "p_renters": 0.15154711673699009, "p_stay": 0.91774287376381602, "p_movelocal": 0.057707969749854503, "p_movecounty": 0.0016288539848748999, "p_movestate": 0.0094240837696335008, "p_moveabroad": 0.013496218731820799, "p_car": 0.72989739918873775, "p_carpool": 0.065855404438081605, "p_transit": 0.044619422572178401, "p_bike": 0.0021474588403721999, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.932351, 37.576397 ], [ -121.9312, 37.576054 ], [ -121.929928, 37.577629 ], [ -121.929737, 37.578755 ], [ -121.927569, 37.579622 ], [ -121.928569, 37.580714 ], [ -121.926968, 37.581904 ], [ -121.929968, 37.584781 ], [ -121.932767, 37.591732 ], [ -121.93154, 37.592912 ], [ -121.930473, 37.595381 ], [ -121.925688, 37.598904 ], [ -121.924305, 37.599006 ], [ -121.920895, 37.597968 ], [ -121.916702, 37.594615 ], [ -121.912438, 37.593664 ], [ -121.905703, 37.595608 ], [ -121.903107, 37.59554 ], [ -121.896168, 37.594001 ], [ -121.890172, 37.593445 ], [ -121.885748, 37.59254 ], [ -121.882646, 37.592853 ], [ -121.874798, 37.589693 ], [ -121.870752, 37.588838 ], [ -121.87004, 37.591663 ], [ -121.87101, 37.593744 ], [ -121.872779, 37.595969 ], [ -121.873128, 37.599284 ], [ -121.871677, 37.602474 ], [ -121.871836, 37.604228 ], [ -121.874996, 37.612128 ], [ -121.877017, 37.616246 ], [ -121.879844, 37.622518 ], [ -121.879919, 37.623533 ], [ -121.880307, 37.628436 ], [ -121.883979, 37.634821 ], [ -121.884141, 37.636753 ], [ -121.883816, 37.638814 ], [ -121.884125, 37.640149 ], [ -121.881924, 37.641572 ], [ -121.881493, 37.644763 ], [ -121.881308, 37.647323 ], [ -121.880915, 37.648699 ], [ -121.87933, 37.655117 ], [ -121.877598, 37.656324 ], [ -121.876834, 37.655796 ], [ -121.869173, 37.652354 ], [ -121.864569, 37.65178 ], [ -121.863984, 37.651975 ], [ -121.862637, 37.653258 ], [ -121.859951, 37.654809 ], [ -121.853765, 37.652523 ], [ -121.853562, 37.653506 ], [ -121.851376, 37.656813 ], [ -121.8433, 37.657777 ], [ -121.846234, 37.660485 ], [ -121.844945, 37.662365 ], [ -121.845747, 37.664899 ], [ -121.838641, 37.664723 ], [ -121.834729, 37.662474 ], [ -121.831205, 37.659692 ], [ -121.826792, 37.655508 ], [ -121.823709, 37.655512 ], [ -121.821149, 37.655485 ], [ -121.813989, 37.655374 ], [ -121.805666, 37.652199 ], [ -121.805547, 37.648873 ], [ -121.804702, 37.647204 ], [ -121.800733, 37.643869 ], [ -121.799393, 37.641757 ], [ -121.799119, 37.636918 ], [ -121.799438, 37.636545 ], [ -121.801207, 37.635205 ], [ -121.80218, 37.629749 ], [ -121.803108, 37.628644 ], [ -121.796165, 37.626331 ], [ -121.785864, 37.626031 ], [ -121.785064, 37.623131 ], [ -121.782694, 37.620559 ], [ -121.77993, 37.616857 ], [ -121.779836, 37.614384 ], [ -121.777818, 37.610499 ], [ -121.772366, 37.606994 ], [ -121.764838, 37.60432 ], [ -121.759112, 37.603356 ], [ -121.757446, 37.602516 ], [ -121.751233, 37.601213 ], [ -121.756519, 37.600338 ], [ -121.751977, 37.598272 ], [ -121.748563, 37.594246 ], [ -121.749148, 37.592521 ], [ -121.75008, 37.591153 ], [ -121.746619, 37.59038 ], [ -121.742971, 37.588294 ], [ -121.742207, 37.586559 ], [ -121.739182, 37.586956 ], [ -121.737337, 37.584862 ], [ -121.732294, 37.58448 ], [ -121.731794, 37.582921 ], [ -121.731152, 37.581565 ], [ -121.728271, 37.580496 ], [ -121.727579, 37.578957 ], [ -121.725572, 37.577477 ], [ -121.723896, 37.577345 ], [ -121.722426, 37.577706 ], [ -121.721008, 37.576725 ], [ -121.719569, 37.572619 ], [ -121.72005, 37.569397 ], [ -121.718052, 37.567848 ], [ -121.715478, 37.566766 ], [ -121.713687, 37.564578 ], [ -121.711526, 37.564897 ], [ -121.70752, 37.559671 ], [ -121.703124, 37.558209 ], [ -121.700797, 37.556191 ], [ -121.70085, 37.553219 ], [ -121.698067, 37.552345 ], [ -121.697719, 37.551432 ], [ -121.695747, 37.550177 ], [ -121.693947, 37.546815 ], [ -121.693157, 37.544071 ], [ -121.691734, 37.541011 ], [ -121.689571, 37.538665 ], [ -121.686943, 37.533942 ], [ -121.685282, 37.532346 ], [ -121.684763, 37.53022 ], [ -121.6827, 37.528938 ], [ -121.681246, 37.526847 ], [ -121.681842, 37.526323 ], [ -121.68437, 37.52708 ], [ -121.686897, 37.526348 ], [ -121.687652, 37.52505 ], [ -121.692133, 37.526232 ], [ -121.693983, 37.528185 ], [ -121.69597, 37.529449 ], [ -121.696399, 37.529894 ], [ -121.69678, 37.529889 ], [ -121.697334, 37.529782 ], [ -121.698419, 37.529255 ], [ -121.699535, 37.528153 ], [ -121.702573, 37.526211 ], [ -121.701447, 37.524953 ], [ -121.70115, 37.522179 ], [ -121.702073, 37.52019 ], [ -121.702509, 37.51735 ], [ -121.702435, 37.515055 ], [ -121.700706, 37.514123 ], [ -121.700467, 37.513107 ], [ -121.698247, 37.511986 ], [ -121.695171, 37.509347 ], [ -121.692309, 37.508161 ], [ -121.690969, 37.508955 ], [ -121.68675, 37.507393 ], [ -121.68863, 37.504098 ], [ -121.689976, 37.503591 ], [ -121.691144, 37.501607 ], [ -121.689355, 37.500255 ], [ -121.688173, 37.497072 ], [ -121.688683, 37.496062 ], [ -121.6877, 37.492829 ], [ -121.685443, 37.491914 ], [ -121.68394, 37.491853 ], [ -121.682774, 37.49048 ], [ -121.680865, 37.489771 ], [ -121.67921, 37.490023 ], [ -121.676714, 37.48966 ], [ -121.672405, 37.487347 ], [ -121.671606, 37.486402 ], [ -121.671262, 37.483842 ], [ -121.670399, 37.48274 ], [ -121.69006, 37.482834 ], [ -121.712556, 37.483558 ], [ -121.800732, 37.483991 ], [ -121.855762, 37.484537 ], [ -121.863389, 37.484617 ], [ -121.865267, 37.484637 ], [ -121.867784, 37.483033 ], [ -121.877878, 37.490378 ], [ -121.882368, 37.493537 ], [ -121.884102, 37.499463 ], [ -121.882695, 37.501666 ], [ -121.883021, 37.503306 ], [ -121.885015, 37.512034 ], [ -121.884813, 37.513747 ], [ -121.883611, 37.51721 ], [ -121.881366, 37.521506 ], [ -121.879898, 37.52526 ], [ -121.87932, 37.526324 ], [ -121.880651, 37.52827 ], [ -121.886842, 37.535653 ], [ -121.88754, 37.544037 ], [ -121.891343, 37.549735 ], [ -121.901041, 37.545913 ], [ -121.905265, 37.549154 ], [ -121.907135, 37.549325 ], [ -121.908172, 37.551761 ], [ -121.909657, 37.554242 ], [ -121.915773, 37.555392 ], [ -121.915968, 37.560873 ], [ -121.918002, 37.56124 ], [ -121.924834, 37.557246 ], [ -121.923714, 37.559685 ], [ -121.923641, 37.559913 ], [ -121.919194, 37.561478 ], [ -121.918959, 37.565943 ], [ -121.919429, 37.567686 ], [ -121.923149, 37.568222 ], [ -121.923513, 37.569691 ], [ -121.925221, 37.571212 ], [ -121.932146, 37.573315 ], [ -121.933169, 37.576034 ], [ -121.932351, 37.576397 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450751", "AFFGEOID": "1400000US06001450751", "GEOID": "06001450751", "NAME_x": "4507.51", "LSAD": "CT", "ALAND": 9831463, "AWATER": 0, "NAME_y": "Census Tract 4507.51, Alameda County, California", "c_race": 9787, "c_white": 1833, "c_black": 79, "c_asian": 7113, "c_latinx": 482, "state_fips": 6, "county_fips": 1, "tract_fips": 450751, "med_rent": 3346.0, "med_hhinc": 217188.0, "c_tenants": 2736, "c_owners": 2502, "c_renters": 234, "c_movers": 9674, "c_stay": 7864, "c_movelocal": 905, "c_movecounty": 516, "c_movestate": 82, "c_moveabroad": 307, "c_commute": 4429, "c_car": 2648, "c_carpool": 718, "c_transit": 678, "c_bike": 0, "c_walk": 15, "year": 2018, "FIPS_11_digit": "06001450751", "p_white": 0.1872892612649433, "p_black": 0.0080719321548993004, "p_asian": 0.72678042301011547, "p_latinx": 0.049249003780525102, "p_owners": 0.91447368421052644, "p_renters": 0.085526315789473603, "p_stay": 0.81290055819722973, "p_movelocal": 0.093549720901385094, "p_movecounty": 0.053338846392391899, "p_movestate": 0.0084763283026669002, "p_moveabroad": 0.031734546206326202, "p_car": 0.59787762474599238, "p_carpool": 0.162113343869948, "p_transit": 0.1530819598103409, "p_bike": 0.0, "p_walk": 0.0033867690223525998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.872011, 37.716725 ], [ -121.867567, 37.716946 ], [ -121.865536, 37.718249 ], [ -121.862684, 37.717825 ], [ -121.859124, 37.71856 ], [ -121.857153, 37.716534 ], [ -121.852141, 37.714029 ], [ -121.851354, 37.716997 ], [ -121.852371, 37.718377 ], [ -121.854058, 37.720292 ], [ -121.851728, 37.721278 ], [ -121.852521, 37.725001 ], [ -121.853985, 37.725301 ], [ -121.855663, 37.72452 ], [ -121.856739, 37.725791 ], [ -121.858259, 37.726111 ], [ -121.858718, 37.727878 ], [ -121.860398, 37.729414 ], [ -121.863221, 37.730562 ], [ -121.857323, 37.730453 ], [ -121.855681, 37.732067 ], [ -121.851875, 37.734272 ], [ -121.850608, 37.734061 ], [ -121.848143, 37.732769 ], [ -121.846922, 37.733357 ], [ -121.844062, 37.732272 ], [ -121.842715, 37.733317 ], [ -121.837585, 37.733621 ], [ -121.836607, 37.731297 ], [ -121.834791, 37.729817 ], [ -121.830543, 37.727829 ], [ -121.827601, 37.725119 ], [ -121.825599, 37.722027 ], [ -121.824608, 37.719249 ], [ -121.824403, 37.71591 ], [ -121.823764, 37.713543 ], [ -121.82333, 37.708802 ], [ -121.823291, 37.701145 ], [ -121.828666, 37.701177 ], [ -121.833381, 37.701209 ], [ -121.849501, 37.701354 ], [ -121.849667, 37.701585 ], [ -121.850498, 37.708502 ], [ -121.852029, 37.710428 ], [ -121.854231, 37.710226 ], [ -121.858571, 37.708564 ], [ -121.872007, 37.710044 ], [ -121.872011, 37.716725 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451202", "AFFGEOID": "1400000US06001451202", "GEOID": "06001451202", "NAME_x": "4512.02", "LSAD": "CT", "ALAND": 45958467, "AWATER": 0, "NAME_y": "Census Tract 4512.02, Alameda County, California", "c_race": 4972, "c_white": 3100, "c_black": 43, "c_asian": 823, "c_latinx": 766, "state_fips": 6, "county_fips": 1, "tract_fips": 451202, "med_rent": 2438.0, "med_hhinc": 137875.0, "c_tenants": 1786, "c_owners": 1586, "c_renters": 200, "c_movers": 4904, "c_stay": 4370, "c_movelocal": 287, "c_movecounty": 186, "c_movestate": 37, "c_moveabroad": 24, "c_commute": 2916, "c_car": 2280, "c_carpool": 232, "c_transit": 165, "c_bike": 0, "c_walk": 32, "year": 2018, "FIPS_11_digit": "06001451202", "p_white": 0.62349155269509249, "p_black": 0.0086484312148028004, "p_asian": 0.16552695092518099, "p_latinx": 0.15406275140788411, "p_owners": 0.88801791713325873, "p_renters": 0.1119820828667413, "p_stay": 0.89110929853181076, "p_movelocal": 0.058523654159869397, "p_movecounty": 0.037928221859706297, "p_movestate": 0.0075448613376835, "p_moveabroad": 0.0048939641109297998, "p_car": 0.78189300411522633, "p_carpool": 0.079561042524005393, "p_transit": 0.056584362139917598, "p_bike": 0.0, "p_walk": 0.010973936899862801 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.813666, 37.74678 ], [ -121.811912, 37.751669 ], [ -121.812589, 37.754225 ], [ -121.749599, 37.769536 ], [ -121.73928, 37.772122 ], [ -121.73544, 37.770626 ], [ -121.733992, 37.767839 ], [ -121.734329, 37.766422 ], [ -121.735475, 37.765468 ], [ -121.736593, 37.763038 ], [ -121.736155, 37.760496 ], [ -121.732598, 37.757688 ], [ -121.734146, 37.756108 ], [ -121.734296, 37.755154 ], [ -121.731955, 37.752371 ], [ -121.730517, 37.749471 ], [ -121.726525, 37.74736 ], [ -121.72561, 37.746189 ], [ -121.725242, 37.744378 ], [ -121.723015, 37.740947 ], [ -121.723966, 37.738975 ], [ -121.724238, 37.726917 ], [ -121.724163, 37.722414 ], [ -121.724166, 37.722331 ], [ -121.724279, 37.71701 ], [ -121.732561, 37.717034 ], [ -121.733994, 37.717036 ], [ -121.738794, 37.717051 ], [ -121.741125, 37.716486 ], [ -121.74317, 37.718453 ], [ -121.747982, 37.716454 ], [ -121.750505, 37.71585 ], [ -121.751962, 37.713793 ], [ -121.752211, 37.713042 ], [ -121.752793, 37.712295 ], [ -121.753872, 37.71129 ], [ -121.753928, 37.71101 ], [ -121.75285, 37.709614 ], [ -121.75292, 37.708598 ], [ -121.753212, 37.708201 ], [ -121.753724, 37.707005 ], [ -121.753779, 37.70656 ], [ -121.754396, 37.705978 ], [ -121.755267, 37.705671 ], [ -121.756491, 37.705413 ], [ -121.75698, 37.705071 ], [ -121.759438, 37.704173 ], [ -121.759362, 37.703015 ], [ -121.762987, 37.702743 ], [ -121.768289, 37.701878 ], [ -121.773921, 37.700948 ], [ -121.778885, 37.700338 ], [ -121.786116, 37.699709 ], [ -121.786255, 37.699776 ], [ -121.794806, 37.700875 ], [ -121.808309, 37.701003 ], [ -121.806074, 37.702743 ], [ -121.805986, 37.704804 ], [ -121.804986, 37.707619 ], [ -121.805111, 37.709573 ], [ -121.804812, 37.710582 ], [ -121.80775, 37.716591 ], [ -121.808647, 37.718978 ], [ -121.808935, 37.723042 ], [ -121.808424, 37.725018 ], [ -121.809299, 37.728647 ], [ -121.808565, 37.731673 ], [ -121.808311, 37.735047 ], [ -121.809275, 37.738216 ], [ -121.809562, 37.741787 ], [ -121.81382, 37.74532 ], [ -121.813666, 37.74678 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451703", "AFFGEOID": "1400000US06001451703", "GEOID": "06001451703", "NAME_x": "4517.03", "LSAD": "CT", "ALAND": 1704816, "AWATER": 0, "NAME_y": "Census Tract 4517.03, Alameda County, California", "c_race": 4331, "c_white": 2796, "c_black": 26, "c_asian": 683, "c_latinx": 669, "state_fips": 6, "county_fips": 1, "tract_fips": 451703, "med_rent": 2356.0, "med_hhinc": 150625.0, "c_tenants": 1384, "c_owners": 1107, "c_renters": 277, "c_movers": 4286, "c_stay": 3912, "c_movelocal": 187, "c_movecounty": 95, "c_movestate": 30, "c_moveabroad": 62, "c_commute": 2220, "c_car": 1692, "c_carpool": 115, "c_transit": 82, "c_bike": 29, "c_walk": 37, "year": 2018, "FIPS_11_digit": "06001451703", "p_white": 0.64557838836296466, "p_black": 0.0060032325098129001, "p_asian": 0.1577003001616254, "p_latinx": 0.15446779034864919, "p_owners": 0.79985549132947975, "p_renters": 0.20014450867052019, "p_stay": 0.91273915072328515, "p_movelocal": 0.043630424638357403, "p_movecounty": 0.022165188987400799, "p_movestate": 0.0069995333644422997, "p_moveabroad": 0.0144657022865142, "p_car": 0.76216216216216215, "p_carpool": 0.0518018018018018, "p_transit": 0.0369369369369369, "p_bike": 0.013063063063063001, "p_walk": 0.016666666666666601 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.805485, 37.664095 ], [ -121.805453, 37.665181 ], [ -121.805381, 37.676172 ], [ -121.801414, 37.676588 ], [ -121.795271, 37.677255 ], [ -121.795259, 37.672744 ], [ -121.795263, 37.672219 ], [ -121.793341, 37.669514 ], [ -121.794977, 37.668836 ], [ -121.798438, 37.668664 ], [ -121.798214, 37.66806 ], [ -121.798487, 37.660713 ], [ -121.798518, 37.655984 ], [ -121.803716, 37.655988 ], [ -121.804795, 37.655978 ], [ -121.805612, 37.655952 ], [ -121.805485, 37.664095 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "990000", "AFFGEOID": "1400000US06001990000", "GEOID": "06001990000", "NAME_x": "9900", "LSAD": "CT", "ALAND": 0, "AWATER": 139280202, "NAME_y": "Census Tract 9900, Alameda County, California", "c_race": 0, "c_white": 0, "c_black": 0, "c_asian": 0, "c_latinx": 0, "state_fips": 6, "county_fips": 1, "tract_fips": 990000, "med_rent": null, "med_hhinc": null, "c_tenants": 0, "c_owners": 0, "c_renters": 0, "c_movers": 0, "c_stay": 0, "c_movelocal": 0, "c_movecounty": 0, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 0, "c_car": 0, "c_carpool": 0, "c_transit": 0, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001990000", "p_white": null, "p_black": null, "p_asian": null, "p_latinx": null, "p_owners": null, "p_renters": null, "p_stay": null, "p_movelocal": null, "p_movecounty": null, "p_movestate": null, "p_moveabroad": null, "p_car": null, "p_carpool": null, "p_transit": null, "p_bike": null, "p_walk": null }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -122.051961970451998, 37.462679294675901 ], [ -122.045707, 37.461806 ], [ -122.044587, 37.460666 ], [ -122.046539124712012, 37.459546074033497 ], [ -122.047385, 37.460645 ], [ -122.051961970451998, 37.462679294675901 ] ] ], [ [ [ -122.078016, 37.495107 ], [ -122.072849, 37.494512 ], [ -122.065898, 37.492946 ], [ -122.061484, 37.491605 ], [ -122.061578, 37.486685 ], [ -122.060971718026011, 37.478088813839101 ], [ -122.063785, 37.481772 ], [ -122.068539, 37.491202 ], [ -122.080287934025009, 37.495085945132395 ], [ -122.078016, 37.495107 ] ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402700", "AFFGEOID": "1400000US06001402700", "GEOID": "06001402700", "NAME_x": "4027", "LSAD": "CT", "ALAND": 398820, "AWATER": 0, "NAME_y": "Census Tract 4027, Alameda County, California", "c_race": 1842, "c_white": 454, "c_black": 778, "c_asian": 220, "c_latinx": 299, "state_fips": 6, "county_fips": 1, "tract_fips": 402700, "med_rent": 1307.0, "med_hhinc": 87833.0, "c_tenants": 682, "c_owners": 193, "c_renters": 489, "c_movers": 1818, "c_stay": 1451, "c_movelocal": 197, "c_movecounty": 120, "c_movestate": 43, "c_moveabroad": 7, "c_commute": 1125, "c_car": 496, "c_carpool": 119, "c_transit": 279, "c_bike": 85, "c_walk": 58, "year": 2018, "FIPS_11_digit": "06001402700", "p_white": 0.2464712269272529, "p_black": 0.42236699239956571, "p_asian": 0.11943539630836041, "p_latinx": 0.16232356134636261, "p_owners": 0.28299120234604108, "p_renters": 0.71700879765395897, "p_stay": 0.79812981298129815, "p_movelocal": 0.1083608360836083, "p_movecounty": 0.066006600660066, "p_movestate": 0.023652365236523601, "p_moveabroad": 0.0038503850385038, "p_car": 0.44088888888888889, "p_carpool": 0.10577777777777771, "p_transit": 0.248, "p_bike": 0.075555555555555501, "p_walk": 0.0515555555555555 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.279921, 37.811183 ], [ -122.278681, 37.814574 ], [ -122.275858, 37.813468 ], [ -122.274122, 37.812829 ], [ -122.273394, 37.812723 ], [ -122.272737, 37.812613 ], [ -122.273662, 37.811471 ], [ -122.273353, 37.810465 ], [ -122.275979, 37.806222 ], [ -122.277122, 37.806707 ], [ -122.278678, 37.807284 ], [ -122.280965, 37.808301 ], [ -122.279921, 37.811183 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403300", "AFFGEOID": "1400000US06001403300", "GEOID": "06001403300", "NAME_x": "4033", "LSAD": "CT", "ALAND": 926008, "AWATER": 96764, "NAME_y": "Census Tract 4033, Alameda County, California", "c_race": 4240, "c_white": 990, "c_black": 322, "c_asian": 2155, "c_latinx": 394, "state_fips": 6, "county_fips": 1, "tract_fips": 403300, "med_rent": 1636.0, "med_hhinc": 58365.0, "c_tenants": 2141, "c_owners": 670, "c_renters": 1471, "c_movers": 4228, "c_stay": 3237, "c_movelocal": 368, "c_movecounty": 157, "c_movestate": 295, "c_moveabroad": 171, "c_commute": 2401, "c_car": 715, "c_carpool": 57, "c_transit": 971, "c_bike": 19, "c_walk": 334, "year": 2018, "FIPS_11_digit": "06001403300", "p_white": 0.2334905660377358, "p_black": 0.075943396226414994, "p_asian": 0.50825471698113212, "p_latinx": 0.092924528301886702, "p_owners": 0.31293787949556279, "p_renters": 0.68706212050443716, "p_stay": 0.76561021759697256, "p_movelocal": 0.087038789025543906, "p_movecounty": 0.0371333964049195, "p_movestate": 0.069772942289498499, "p_moveabroad": 0.040444654683065198, "p_car": 0.29779258642232398, "p_carpool": 0.023740108288213199, "p_transit": 0.40441482715535187, "p_bike": 0.0079133694294043991, "p_walk": 0.13910870470637229 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.272827, 37.792219 ], [ -122.27014, 37.796524 ], [ -122.269879, 37.796937 ], [ -122.267312, 37.801081 ], [ -122.263752, 37.7997 ], [ -122.262249, 37.799134 ], [ -122.259574, 37.798552 ], [ -122.259381, 37.798448 ], [ -122.260272, 37.798279 ], [ -122.259577, 37.79632 ], [ -122.260806, 37.79528 ], [ -122.261327, 37.793807 ], [ -122.262963, 37.791175 ], [ -122.26838, 37.788028 ], [ -122.27418, 37.791328 ], [ -122.272827, 37.792219 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403501", "AFFGEOID": "1400000US06001403501", "GEOID": "06001403501", "NAME_x": "4035.01", "LSAD": "CT", "ALAND": 668553, "AWATER": 0, "NAME_y": "Census Tract 4035.01, Alameda County, California", "c_race": 4644, "c_white": 1501, "c_black": 1171, "c_asian": 1070, "c_latinx": 507, "state_fips": 6, "county_fips": 1, "tract_fips": 403501, "med_rent": 1097.0, "med_hhinc": 44803.0, "c_tenants": 2723, "c_owners": 297, "c_renters": 2426, "c_movers": 4611, "c_stay": 3850, "c_movelocal": 412, "c_movecounty": 238, "c_movestate": 109, "c_moveabroad": 2, "c_commute": 2594, "c_car": 1012, "c_carpool": 170, "c_transit": 838, "c_bike": 180, "c_walk": 179, "year": 2018, "FIPS_11_digit": "06001403501", "p_white": 0.32321274763135222, "p_black": 0.25215331610680441, "p_asian": 0.23040482342807919, "p_latinx": 0.109173126614987, "p_owners": 0.1090708777084098, "p_renters": 0.89092912229159016, "p_stay": 0.83495987855129039, "p_movelocal": 0.089351550639774402, "p_movecounty": 0.051615701583170602, "p_movestate": 0.0236391238343092, "p_moveabroad": 0.00043374539145519999, "p_car": 0.39013107170393208, "p_carpool": 0.065535851966075503, "p_transit": 0.32305319969159602, "p_bike": 0.069390902081727004, "p_walk": 0.0690053970701619 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.266771, 37.811553 ], [ -122.263084, 37.817449 ], [ -122.260006, 37.822421 ], [ -122.25868, 37.824515 ], [ -122.254946, 37.82208 ], [ -122.254566, 37.821528 ], [ -122.254479, 37.819625 ], [ -122.253679, 37.819001 ], [ -122.254, 37.818764 ], [ -122.255131, 37.819012 ], [ -122.258656, 37.816092 ], [ -122.259039, 37.815321 ], [ -122.260034, 37.814521 ], [ -122.261495, 37.813034 ], [ -122.262463, 37.810945 ], [ -122.265421, 37.811468 ], [ -122.266771, 37.811553 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403800", "AFFGEOID": "1400000US06001403800", "GEOID": "06001403800", "NAME_x": "4038", "LSAD": "CT", "ALAND": 652456, "AWATER": 0, "NAME_y": "Census Tract 4038, Alameda County, California", "c_race": 3343, "c_white": 2288, "c_black": 216, "c_asian": 484, "c_latinx": 159, "state_fips": 6, "county_fips": 1, "tract_fips": 403800, "med_rent": 1709.0, "med_hhinc": 100305.0, "c_tenants": 1826, "c_owners": 553, "c_renters": 1273, "c_movers": 3318, "c_stay": 2883, "c_movelocal": 191, "c_movecounty": 123, "c_movestate": 111, "c_moveabroad": 10, "c_commute": 2355, "c_car": 993, "c_carpool": 306, "c_transit": 560, "c_bike": 136, "c_walk": 102, "year": 2018, "FIPS_11_digit": "06001403800", "p_white": 0.68441519593179778, "p_black": 0.064612623392162699, "p_asian": 0.1447801376009572, "p_latinx": 0.047562069997008599, "p_owners": 0.30284775465498359, "p_renters": 0.69715224534501641, "p_stay": 0.86889692585895117, "p_movelocal": 0.057564798071127098, "p_movecounty": 0.037070524412296503, "p_movestate": 0.033453887884267598, "p_moveabroad": 0.0030138637733574001, "p_car": 0.42165605095541397, "p_carpool": 0.12993630573248399, "p_transit": 0.2377919320594479, "p_bike": 0.057749469214437299, "p_walk": 0.043312101910828002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.248008, 37.811513 ], [ -122.246643, 37.813776 ], [ -122.246324, 37.814303 ], [ -122.245077, 37.818002 ], [ -122.244722, 37.819119 ], [ -122.244206, 37.819034 ], [ -122.243481, 37.818659 ], [ -122.23931, 37.817841 ], [ -122.239021, 37.817592 ], [ -122.235713, 37.817042 ], [ -122.233296, 37.816492 ], [ -122.233001, 37.816115 ], [ -122.232012, 37.81433 ], [ -122.238144, 37.815118 ], [ -122.239028, 37.814281 ], [ -122.241101, 37.81276 ], [ -122.242276, 37.811565 ], [ -122.243289, 37.811055 ], [ -122.246504, 37.809841 ], [ -122.248598, 37.810505 ], [ -122.248008, 37.811513 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404300", "AFFGEOID": "1400000US06001404300", "GEOID": "06001404300", "NAME_x": "4043", "LSAD": "CT", "ALAND": 1827344, "AWATER": 25272, "NAME_y": "Census Tract 4043, Alameda County, California", "c_race": 3437, "c_white": 2193, "c_black": 95, "c_asian": 462, "c_latinx": 416, "state_fips": 6, "county_fips": 1, "tract_fips": 404300, "med_rent": 1821.0, "med_hhinc": 215809.0, "c_tenants": 1283, "c_owners": 1106, "c_renters": 177, "c_movers": 3372, "c_stay": 3080, "c_movelocal": 19, "c_movecounty": 207, "c_movestate": 35, "c_moveabroad": 31, "c_commute": 1749, "c_car": 793, "c_carpool": 132, "c_transit": 316, "c_bike": 62, "c_walk": 38, "year": 2018, "FIPS_11_digit": "06001404300", "p_white": 0.63805644457375621, "p_black": 0.0276403840558626, "p_asian": 0.1344195519348268, "p_latinx": 0.121035787023567, "p_owners": 0.86204208885424782, "p_renters": 0.13795791114575209, "p_stay": 0.91340450771055759, "p_movelocal": 0.0056346381969156999, "p_movecounty": 0.061387900355871799, "p_movestate": 0.010379596678529, "p_moveabroad": 0.0091933570581256997, "p_car": 0.45340194396798172, "p_carpool": 0.075471698113207503, "p_transit": 0.18067467124070899, "p_bike": 0.035448827901658, "p_walk": 0.021726700971983901 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.24813, 37.841392 ], [ -122.245396, 37.845798 ], [ -122.244188, 37.847913 ], [ -122.243716, 37.848513 ], [ -122.243323, 37.849072 ], [ -122.244044, 37.850257 ], [ -122.242427, 37.850833 ], [ -122.241914, 37.851909 ], [ -122.234185, 37.852543 ], [ -122.234084, 37.852518 ], [ -122.230346, 37.848892 ], [ -122.228003, 37.848244 ], [ -122.227559, 37.845474 ], [ -122.224827, 37.841683 ], [ -122.227242, 37.842927 ], [ -122.231442, 37.842733 ], [ -122.235354, 37.842231 ], [ -122.236608, 37.841097 ], [ -122.237969, 37.840912 ], [ -122.239456, 37.840897 ], [ -122.25081, 37.837135 ], [ -122.24813, 37.841392 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404501", "AFFGEOID": "1400000US06001404501", "GEOID": "06001404501", "NAME_x": "4045.01", "LSAD": "CT", "ALAND": 1087929, "AWATER": 5141, "NAME_y": "Census Tract 4045.01, Alameda County, California", "c_race": 1795, "c_white": 1180, "c_black": 73, "c_asian": 251, "c_latinx": 136, "state_fips": 6, "county_fips": 1, "tract_fips": 404501, "med_rent": 1839.0, "med_hhinc": 189044.0, "c_tenants": 679, "c_owners": 605, "c_renters": 74, "c_movers": 1775, "c_stay": 1588, "c_movelocal": 136, "c_movecounty": 31, "c_movestate": 10, "c_moveabroad": 10, "c_commute": 989, "c_car": 519, "c_carpool": 117, "c_transit": 178, "c_bike": 0, "c_walk": 42, "year": 2018, "FIPS_11_digit": "06001404501", "p_white": 0.65738161559888575, "p_black": 0.040668523676880203, "p_asian": 0.13983286908077991, "p_latinx": 0.075766016713091897, "p_owners": 0.89101620029455086, "p_renters": 0.10898379970544909, "p_stay": 0.89464788732394362, "p_movelocal": 0.0766197183098591, "p_movecounty": 0.0174647887323943, "p_movestate": 0.0056338028169014001, "p_moveabroad": 0.0056338028169014001, "p_car": 0.52477249747219412, "p_carpool": 0.1183013144590495, "p_transit": 0.17997977755308389, "p_bike": 0.0, "p_walk": 0.0424671385237613 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.224456, 37.830256 ], [ -122.221884, 37.832504 ], [ -122.218516, 37.832939 ], [ -122.2171, 37.832758 ], [ -122.215626, 37.832114 ], [ -122.215197, 37.831689 ], [ -122.215781, 37.83126 ], [ -122.207365, 37.821647 ], [ -122.208835, 37.819555 ], [ -122.210178, 37.818613 ], [ -122.212238, 37.819907 ], [ -122.220705, 37.825369 ], [ -122.22172, 37.826913 ], [ -122.2221, 37.827246 ], [ -122.222304, 37.828361 ], [ -122.224444, 37.830246 ], [ -122.224486, 37.830239 ], [ -122.224456, 37.830256 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404600", "AFFGEOID": "1400000US06001404600", "GEOID": "06001404600", "NAME_x": "4046", "LSAD": "CT", "ALAND": 4827839, "AWATER": 0, "NAME_y": "Census Tract 4046, Alameda County, California", "c_race": 4688, "c_white": 3221, "c_black": 221, "c_asian": 684, "c_latinx": 183, "state_fips": 6, "county_fips": 1, "tract_fips": 404600, "med_rent": 3185.0, "med_hhinc": 161324.0, "c_tenants": 1784, "c_owners": 1669, "c_renters": 115, "c_movers": 4620, "c_stay": 4016, "c_movelocal": 286, "c_movecounty": 196, "c_movestate": 49, "c_moveabroad": 73, "c_commute": 2304, "c_car": 1504, "c_carpool": 199, "c_transit": 346, "c_bike": 10, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001404600", "p_white": 0.68707337883959041, "p_black": 0.047141638225255897, "p_asian": 0.14590443686006821, "p_latinx": 0.039035836177474401, "p_owners": 0.9355381165919282, "p_renters": 0.064461883408071699, "p_stay": 0.86926406926406929, "p_movelocal": 0.0619047619047619, "p_movecounty": 0.042424242424242399, "p_movestate": 0.0106060606060606, "p_moveabroad": 0.015800865800865802, "p_car": 0.65277777777777779, "p_carpool": 0.086371527777777707, "p_transit": 0.1501736111111111, "p_bike": 0.0043402777777776999, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.207389, 37.824847 ], [ -122.203344, 37.823738 ], [ -122.201478, 37.828702 ], [ -122.198928, 37.830244 ], [ -122.194015, 37.832052 ], [ -122.192109, 37.833914 ], [ -122.186974, 37.835419 ], [ -122.187449, 37.836234 ], [ -122.184443, 37.834923 ], [ -122.184179, 37.833922 ], [ -122.185977, 37.831226 ], [ -122.187077, 37.829526 ], [ -122.186725, 37.826877 ], [ -122.185877, 37.825526 ], [ -122.186677, 37.823526 ], [ -122.185977, 37.820726 ], [ -122.181477, 37.819526 ], [ -122.177873, 37.816323 ], [ -122.175474, 37.81459 ], [ -122.174752, 37.812212 ], [ -122.174159, 37.81027 ], [ -122.175869, 37.807494 ], [ -122.177769, 37.806667 ], [ -122.179157, 37.804981 ], [ -122.181329, 37.808877 ], [ -122.183105, 37.809602 ], [ -122.191459, 37.809752 ], [ -122.194649, 37.810822 ], [ -122.197202, 37.810958 ], [ -122.197791, 37.810589 ], [ -122.199655, 37.812202 ], [ -122.207365, 37.821647 ], [ -122.209042, 37.824436 ], [ -122.207389, 37.824847 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405200", "AFFGEOID": "1400000US06001405200", "GEOID": "06001405200", "NAME_x": "4052", "LSAD": "CT", "ALAND": 858130, "AWATER": 0, "NAME_y": "Census Tract 4052, Alameda County, California", "c_race": 5188, "c_white": 1871, "c_black": 456, "c_asian": 1564, "c_latinx": 991, "state_fips": 6, "county_fips": 1, "tract_fips": 405200, "med_rent": 1548.0, "med_hhinc": 86307.0, "c_tenants": 2427, "c_owners": 658, "c_renters": 1769, "c_movers": 5132, "c_stay": 4581, "c_movelocal": 263, "c_movecounty": 210, "c_movestate": 44, "c_moveabroad": 34, "c_commute": 3308, "c_car": 1652, "c_carpool": 420, "c_transit": 708, "c_bike": 171, "c_walk": 80, "year": 2018, "FIPS_11_digit": "06001405200", "p_white": 0.36063993831919811, "p_black": 0.087895142636854204, "p_asian": 0.30146491904394751, "p_latinx": 0.19101773323053201, "p_owners": 0.27111660486196948, "p_renters": 0.72888339513803047, "p_stay": 0.89263445050662504, "p_movelocal": 0.051247077162899397, "p_movecounty": 0.040919719407638298, "p_movestate": 0.0085736554949336994, "p_moveabroad": 0.0066250974279033004, "p_car": 0.49939540507859731, "p_carpool": 0.12696493349455859, "p_transit": 0.21402660217654171, "p_bike": 0.051692865779927398, "p_walk": 0.024183796856106402 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.250597, 37.805237 ], [ -122.249148, 37.808391 ], [ -122.246702, 37.809703 ], [ -122.246504, 37.809841 ], [ -122.241982, 37.808552 ], [ -122.235416, 37.805624 ], [ -122.233397, 37.804375 ], [ -122.234866, 37.803376 ], [ -122.237222, 37.803121 ], [ -122.240188, 37.802549 ], [ -122.241671, 37.802399 ], [ -122.242352, 37.80232 ], [ -122.243982, 37.801855 ], [ -122.246539, 37.801387 ], [ -122.248411, 37.800443 ], [ -122.249318, 37.804823 ], [ -122.250597, 37.805237 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405500", "AFFGEOID": "1400000US06001405500", "GEOID": "06001405500", "NAME_x": "4055", "LSAD": "CT", "ALAND": 411721, "AWATER": 0, "NAME_y": "Census Tract 4055, Alameda County, California", "c_race": 4063, "c_white": 1013, "c_black": 602, "c_asian": 1737, "c_latinx": 512, "state_fips": 6, "county_fips": 1, "tract_fips": 405500, "med_rent": 1315.0, "med_hhinc": 59513.0, "c_tenants": 1557, "c_owners": 372, "c_renters": 1185, "c_movers": 4037, "c_stay": 3541, "c_movelocal": 252, "c_movecounty": 71, "c_movestate": 78, "c_moveabroad": 95, "c_commute": 2485, "c_car": 1287, "c_carpool": 415, "c_transit": 311, "c_bike": 109, "c_walk": 87, "year": 2018, "FIPS_11_digit": "06001405500", "p_white": 0.24932316022643361, "p_black": 0.14816637952252029, "p_asian": 0.4275166133398966, "p_latinx": 0.12601525966034949, "p_owners": 0.2389210019267822, "p_renters": 0.76107899807321777, "p_stay": 0.87713648749071094, "p_movelocal": 0.062422591032945202, "p_movecounty": 0.017587317314837699, "p_movestate": 0.019321278176864, "p_moveabroad": 0.023532325984642, "p_car": 0.51790744466800809, "p_carpool": 0.16700201207243459, "p_transit": 0.12515090543259549, "p_bike": 0.043863179074446597, "p_walk": 0.035010060362173002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.248411, 37.800443 ], [ -122.246539, 37.801387 ], [ -122.243982, 37.801855 ], [ -122.242352, 37.80232 ], [ -122.241671, 37.802399 ], [ -122.242198, 37.801722 ], [ -122.242961, 37.800873 ], [ -122.241291, 37.799393 ], [ -122.240474, 37.798669 ], [ -122.239635, 37.797933 ], [ -122.237973, 37.79646 ], [ -122.239833, 37.795136 ], [ -122.241694, 37.793825 ], [ -122.243346, 37.795289 ], [ -122.245002, 37.796765 ], [ -122.24665, 37.79828 ], [ -122.248984, 37.800323 ], [ -122.248411, 37.800443 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406000", "AFFGEOID": "1400000US06001406000", "GEOID": "06001406000", "NAME_x": "4060", "LSAD": "CT", "ALAND": 2113473, "AWATER": 467981, "NAME_y": "Census Tract 4060, Alameda County, California", "c_race": 3344, "c_white": 608, "c_black": 498, "c_asian": 1477, "c_latinx": 655, "state_fips": 6, "county_fips": 1, "tract_fips": 406000, "med_rent": 1028.0, "med_hhinc": 41971.0, "c_tenants": 1465, "c_owners": 179, "c_renters": 1286, "c_movers": 3326, "c_stay": 2919, "c_movelocal": 200, "c_movecounty": 115, "c_movestate": 60, "c_moveabroad": 32, "c_commute": 1583, "c_car": 733, "c_carpool": 171, "c_transit": 396, "c_bike": 64, "c_walk": 68, "year": 2018, "FIPS_11_digit": "06001406000", "p_white": 0.1818181818181818, "p_black": 0.14892344497607651, "p_asian": 0.44168660287081341, "p_latinx": 0.1958732057416267, "p_owners": 0.1221843003412969, "p_renters": 0.8778156996587031, "p_stay": 0.87763078773301262, "p_movelocal": 0.060132291040288603, "p_movecounty": 0.034576067348165901, "p_movestate": 0.018039687312086501, "p_moveabroad": 0.0096211665664461005, "p_car": 0.4630448515476942, "p_carpool": 0.1080227416298168, "p_transit": 0.25015792798483888, "p_bike": 0.0404295641187618, "p_walk": 0.042956411876184403 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.262963, 37.791175 ], [ -122.261327, 37.793807 ], [ -122.260806, 37.79528 ], [ -122.259577, 37.79632 ], [ -122.260272, 37.798279 ], [ -122.259381, 37.798448 ], [ -122.258666, 37.798325 ], [ -122.25713, 37.798725 ], [ -122.255481, 37.797239 ], [ -122.253855, 37.795785 ], [ -122.251356, 37.793563 ], [ -122.250515, 37.792834 ], [ -122.248014, 37.790626 ], [ -122.247175, 37.789913 ], [ -122.245238, 37.788992 ], [ -122.241044, 37.786487 ], [ -122.2359, 37.78341 ], [ -122.238723, 37.783516 ], [ -122.236318, 37.776643 ], [ -122.235862, 37.772645 ], [ -122.236566, 37.771731 ], [ -122.24362, 37.776445 ], [ -122.244817, 37.779123 ], [ -122.245219, 37.783033 ], [ -122.246591, 37.784679 ], [ -122.251332, 37.786881 ], [ -122.25478, 37.786728 ], [ -122.256936, 37.785733 ], [ -122.259338, 37.784755 ], [ -122.26838, 37.788028 ], [ -122.262963, 37.791175 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406400", "AFFGEOID": "1400000US06001406400", "GEOID": "06001406400", "NAME_x": "4064", "LSAD": "CT", "ALAND": 487904, "AWATER": 77534, "NAME_y": "Census Tract 4064, Alameda County, California", "c_race": 2466, "c_white": 767, "c_black": 513, "c_asian": 581, "c_latinx": 447, "state_fips": 6, "county_fips": 1, "tract_fips": 406400, "med_rent": 1314.0, "med_hhinc": 68456.0, "c_tenants": 746, "c_owners": 343, "c_renters": 403, "c_movers": 2455, "c_stay": 2108, "c_movelocal": 164, "c_movecounty": 99, "c_movestate": 84, "c_moveabroad": 0, "c_commute": 942, "c_car": 506, "c_carpool": 174, "c_transit": 170, "c_bike": 42, "c_walk": 12, "year": 2018, "FIPS_11_digit": "06001406400", "p_white": 0.31103000811030002, "p_black": 0.20802919708029191, "p_asian": 0.23560421735604209, "p_latinx": 0.18126520681265201, "p_owners": 0.45978552278820373, "p_renters": 0.54021447721179627, "p_stay": 0.85865580448065171, "p_movelocal": 0.066802443991853297, "p_movecounty": 0.040325865580447998, "p_movestate": 0.034215885947046797, "p_moveabroad": 0.0, "p_car": 0.53715498938428874, "p_carpool": 0.1847133757961783, "p_transit": 0.1804670912951167, "p_bike": 0.044585987261146397, "p_walk": 0.0127388535031847 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.226685, 37.793545 ], [ -122.225399, 37.7976 ], [ -122.224985, 37.798117 ], [ -122.22417, 37.799977 ], [ -122.220981, 37.799362 ], [ -122.218581, 37.798803 ], [ -122.216974, 37.798404 ], [ -122.217936, 37.795826 ], [ -122.218469, 37.794476 ], [ -122.219751, 37.791152 ], [ -122.219995, 37.790516 ], [ -122.221573, 37.790949 ], [ -122.222667, 37.791538 ], [ -122.225428, 37.793037 ], [ -122.226685, 37.793545 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406700", "AFFGEOID": "1400000US06001406700", "GEOID": "06001406700", "NAME_x": "4067", "LSAD": "CT", "ALAND": 1683727, "AWATER": 0, "NAME_y": "Census Tract 4067, Alameda County, California", "c_race": 4992, "c_white": 2395, "c_black": 677, "c_asian": 1059, "c_latinx": 578, "state_fips": 6, "county_fips": 1, "tract_fips": 406700, "med_rent": 1396.0, "med_hhinc": 96915.0, "c_tenants": 2173, "c_owners": 1405, "c_renters": 768, "c_movers": 4966, "c_stay": 4284, "c_movelocal": 377, "c_movecounty": 244, "c_movestate": 59, "c_moveabroad": 2, "c_commute": 2489, "c_car": 1371, "c_carpool": 358, "c_transit": 400, "c_bike": 0, "c_walk": 40, "year": 2018, "FIPS_11_digit": "06001406700", "p_white": 0.47976762820512819, "p_black": 0.13561698717948709, "p_asian": 0.21213942307692299, "p_latinx": 0.1157852564102564, "p_owners": 0.6465715600552232, "p_renters": 0.3534284399447768, "p_stay": 0.86266612968183654, "p_movelocal": 0.075916230366492102, "p_movecounty": 0.049134111961336997, "p_movestate": 0.0118807893677003, "p_moveabroad": 0.00040273862263389998, "p_car": 0.55082362394535955, "p_carpool": 0.1438328646042587, "p_transit": 0.16070711128967449, "p_bike": 0.0, "p_walk": 0.016070711128967401 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.211014, 37.80286 ], [ -122.210328, 37.803515 ], [ -122.207372, 37.806409 ], [ -122.206073, 37.807279 ], [ -122.201658, 37.810169 ], [ -122.197791, 37.810589 ], [ -122.195357, 37.808705 ], [ -122.194059, 37.807423 ], [ -122.195038, 37.808233 ], [ -122.192556, 37.805123 ], [ -122.194499, 37.805509 ], [ -122.192665, 37.803075 ], [ -122.194085, 37.802956 ], [ -122.193382, 37.801326 ], [ -122.194663, 37.80177 ], [ -122.19677, 37.798152 ], [ -122.197644, 37.799397 ], [ -122.198397, 37.800064 ], [ -122.200506, 37.79692 ], [ -122.202104, 37.797091 ], [ -122.203371, 37.796096 ], [ -122.208027, 37.7986 ], [ -122.208794, 37.798478 ], [ -122.214117, 37.799805 ], [ -122.211014, 37.80286 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407102", "AFFGEOID": "1400000US06001407102", "GEOID": "06001407102", "NAME_x": "4071.02", "LSAD": "CT", "ALAND": 660863, "AWATER": 0, "NAME_y": "Census Tract 4071.02, Alameda County, California", "c_race": 4416, "c_white": 411, "c_black": 1014, "c_asian": 592, "c_latinx": 2076, "state_fips": 6, "county_fips": 1, "tract_fips": 407102, "med_rent": 1310.0, "med_hhinc": 52632.0, "c_tenants": 1300, "c_owners": 639, "c_renters": 661, "c_movers": 4387, "c_stay": 3827, "c_movelocal": 375, "c_movecounty": 82, "c_movestate": 7, "c_moveabroad": 96, "c_commute": 1816, "c_car": 1239, "c_carpool": 147, "c_transit": 270, "c_bike": 26, "c_walk": 35, "year": 2018, "FIPS_11_digit": "06001407102", "p_white": 0.093070652173912999, "p_black": 0.2296195652173913, "p_asian": 0.13405797101449271, "p_latinx": 0.47010869565217389, "p_owners": 0.49153846153846148, "p_renters": 0.50846153846153841, "p_stay": 0.87235012537041257, "p_movelocal": 0.085479826760884406, "p_movecounty": 0.0186915887850467, "p_movestate": 0.0015956234328697999, "p_moveabroad": 0.0218828356507864, "p_car": 0.68226872246696035, "p_carpool": 0.080947136563876601, "p_transit": 0.14867841409691629, "p_bike": 0.01431718061674, "p_walk": 0.019273127753303899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.216665, 37.779038 ], [ -122.212927, 37.781652 ], [ -122.210697, 37.783221 ], [ -122.209049, 37.784397 ], [ -122.211978, 37.78704 ], [ -122.210377, 37.787975 ], [ -122.207444, 37.785373 ], [ -122.20414, 37.782517 ], [ -122.206385, 37.780182 ], [ -122.20681, 37.779734 ], [ -122.211133, 37.775171 ], [ -122.211734, 37.774681 ], [ -122.213859, 37.776521 ], [ -122.214748, 37.777317 ], [ -122.215354, 37.777833 ], [ -122.216665, 37.779038 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407400", "AFFGEOID": "1400000US06001407400", "GEOID": "06001407400", "NAME_x": "4074", "LSAD": "CT", "ALAND": 511490, "AWATER": 0, "NAME_y": "Census Tract 4074, Alameda County, California", "c_race": 4399, "c_white": 109, "c_black": 911, "c_asian": 486, "c_latinx": 2768, "state_fips": 6, "county_fips": 1, "tract_fips": 407400, "med_rent": 1157.0, "med_hhinc": 53804.0, "c_tenants": 1152, "c_owners": 404, "c_renters": 748, "c_movers": 4350, "c_stay": 3532, "c_movelocal": 593, "c_movecounty": 157, "c_movestate": 0, "c_moveabroad": 68, "c_commute": 1869, "c_car": 1126, "c_carpool": 326, "c_transit": 290, "c_bike": 0, "c_walk": 61, "year": 2018, "FIPS_11_digit": "06001407400", "p_white": 0.0247783587178904, "p_black": 0.20709252102750619, "p_asian": 0.1104796544669243, "p_latinx": 0.62923391679927254, "p_owners": 0.35069444444444442, "p_renters": 0.64930555555555558, "p_stay": 0.81195402298850572, "p_movelocal": 0.13632183908045969, "p_movecounty": 0.036091954022988502, "p_movestate": 0.0, "p_moveabroad": 0.0156321839080459, "p_car": 0.60246120920278223, "p_carpool": 0.17442482611021931, "p_transit": 0.15516318887105399, "p_bike": 0.0, "p_walk": 0.0326377742108079 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.211734, 37.774681 ], [ -122.208708, 37.773253 ], [ -122.207611, 37.772734 ], [ -122.205109, 37.772674 ], [ -122.202978, 37.772675 ], [ -122.200805, 37.772661 ], [ -122.200809, 37.770067 ], [ -122.20084, 37.76913 ], [ -122.20368, 37.767126 ], [ -122.207008, 37.768703 ], [ -122.210778, 37.770479 ], [ -122.214794, 37.772376 ], [ -122.211734, 37.774681 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408000", "AFFGEOID": "1400000US06001408000", "GEOID": "06001408000", "NAME_x": "4080", "LSAD": "CT", "ALAND": 1955678, "AWATER": 0, "NAME_y": "Census Tract 4080, Alameda County, California", "c_race": 2718, "c_white": 1448, "c_black": 289, "c_asian": 533, "c_latinx": 310, "state_fips": 6, "county_fips": 1, "tract_fips": 408000, "med_rent": 3232.0, "med_hhinc": 158125.0, "c_tenants": 1010, "c_owners": 895, "c_renters": 115, "c_movers": 2692, "c_stay": 2263, "c_movelocal": 127, "c_movecounty": 234, "c_movestate": 58, "c_moveabroad": 10, "c_commute": 1404, "c_car": 807, "c_carpool": 81, "c_transit": 245, "c_bike": 0, "c_walk": 129, "year": 2018, "FIPS_11_digit": "06001408000", "p_white": 0.5327446651949963, "p_black": 0.10632818248712279, "p_asian": 0.1961000735835173, "p_latinx": 0.11405445180279609, "p_owners": 0.88613861386138615, "p_renters": 0.1138613861386138, "p_stay": 0.84063893016344726, "p_movelocal": 0.047176820208023697, "p_movecounty": 0.086924219910846895, "p_movestate": 0.021545319465081699, "p_moveabroad": 0.0037147102526001998, "p_car": 0.57478632478632474, "p_carpool": 0.057692307692307598, "p_transit": 0.1745014245014245, "p_bike": 0.0, "p_walk": 0.091880341880341804 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.197202, 37.810958 ], [ -122.194649, 37.810822 ], [ -122.191459, 37.809752 ], [ -122.183105, 37.809602 ], [ -122.181329, 37.808877 ], [ -122.179157, 37.804981 ], [ -122.178139, 37.803964 ], [ -122.176953, 37.804711 ], [ -122.170615, 37.800138 ], [ -122.170754, 37.796512 ], [ -122.173601, 37.797163 ], [ -122.175818, 37.794814 ], [ -122.17692, 37.794239 ], [ -122.185369, 37.798489 ], [ -122.190151, 37.802808 ], [ -122.194059, 37.807423 ], [ -122.195357, 37.808705 ], [ -122.197791, 37.810589 ], [ -122.197202, 37.810958 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408500", "AFFGEOID": "1400000US06001408500", "GEOID": "06001408500", "NAME_x": "4085", "LSAD": "CT", "ALAND": 831360, "AWATER": 0, "NAME_y": "Census Tract 4085, Alameda County, California", "c_race": 5997, "c_white": 165, "c_black": 2124, "c_asian": 135, "c_latinx": 3342, "state_fips": 6, "county_fips": 1, "tract_fips": 408500, "med_rent": 1534.0, "med_hhinc": 53197.0, "c_tenants": 1573, "c_owners": 540, "c_renters": 1033, "c_movers": 5815, "c_stay": 5071, "c_movelocal": 629, "c_movecounty": 77, "c_movestate": 30, "c_moveabroad": 8, "c_commute": 2462, "c_car": 1499, "c_carpool": 366, "c_transit": 370, "c_bike": 29, "c_walk": 20, "year": 2018, "FIPS_11_digit": "06001408500", "p_white": 0.0275137568784392, "p_black": 0.3541770885442721, "p_asian": 0.022511255627813899, "p_latinx": 0.55727863931965982, "p_owners": 0.34329307056579778, "p_renters": 0.65670692943420217, "p_stay": 0.87205503009458296, "p_movelocal": 0.1081685296646603, "p_movecounty": 0.0132416165090283, "p_movestate": 0.0051590713671538996, "p_moveabroad": 0.0013757523645743001, "p_car": 0.6088545897644192, "p_carpool": 0.14865962632006499, "p_transit": 0.1502843216896832, "p_bike": 0.0117790414297319, "p_walk": 0.0081234768480909006 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.186688, 37.759638 ], [ -122.184685, 37.760935 ], [ -122.181175, 37.76318 ], [ -122.177427, 37.765596 ], [ -122.177197, 37.765816 ], [ -122.175698, 37.76494 ], [ -122.174561, 37.763909 ], [ -122.172761, 37.762137 ], [ -122.171136, 37.760692 ], [ -122.170547, 37.759996 ], [ -122.172296, 37.75915 ], [ -122.175717, 37.757495 ], [ -122.179475, 37.755647 ], [ -122.182446, 37.757065 ], [ -122.18268, 37.757174 ], [ -122.184368, 37.757975 ], [ -122.187054, 37.759264 ], [ -122.186688, 37.759638 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408700", "AFFGEOID": "1400000US06001408700", "GEOID": "06001408700", "NAME_x": "4087", "LSAD": "CT", "ALAND": 1130996, "AWATER": 0, "NAME_y": "Census Tract 4087, Alameda County, California", "c_race": 7628, "c_white": 413, "c_black": 3287, "c_asian": 170, "c_latinx": 3574, "state_fips": 6, "county_fips": 1, "tract_fips": 408700, "med_rent": 1433.0, "med_hhinc": 52380.0, "c_tenants": 2365, "c_owners": 948, "c_renters": 1417, "c_movers": 7547, "c_stay": 6674, "c_movelocal": 623, "c_movecounty": 167, "c_movestate": 82, "c_moveabroad": 1, "c_commute": 3078, "c_car": 2123, "c_carpool": 448, "c_transit": 247, "c_bike": 0, "c_walk": 113, "year": 2018, "FIPS_11_digit": "06001408700", "p_white": 0.054142632406921798, "p_black": 0.43091242789722078, "p_asian": 0.022286313581541602, "p_latinx": 0.46853696906135289, "p_owners": 0.40084566596194499, "p_renters": 0.59915433403805496, "p_stay": 0.88432489731018948, "p_movelocal": 0.082549357360540601, "p_movecounty": 0.022127997879952298, "p_movestate": 0.010865244468000501, "p_moveabroad": 0.00013250298131699999, "p_car": 0.68973359324236516, "p_carpool": 0.14554905782975949, "p_transit": 0.080246913580246895, "p_bike": 0.0, "p_walk": 0.036712150747238402 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.195729, 37.767804 ], [ -122.194984, 37.768322 ], [ -122.192194, 37.770292 ], [ -122.190432, 37.771522 ], [ -122.190319, 37.771571 ], [ -122.18619, 37.774664 ], [ -122.185069, 37.775653 ], [ -122.184009, 37.776485 ], [ -122.180165, 37.774257 ], [ -122.179729, 37.773893 ], [ -122.181981, 37.772422 ], [ -122.181563, 37.771662 ], [ -122.182077, 37.769228 ], [ -122.182173, 37.769577 ], [ -122.187323, 37.765796 ], [ -122.189343, 37.764516 ], [ -122.190235, 37.763686 ], [ -122.19283, 37.761996 ], [ -122.19433, 37.762714 ], [ -122.195455, 37.763258 ], [ -122.199502, 37.765149 ], [ -122.195729, 37.767804 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409300", "AFFGEOID": "1400000US06001409300", "GEOID": "06001409300", "NAME_x": "4093", "LSAD": "CT", "ALAND": 1078562, "AWATER": 0, "NAME_y": "Census Tract 4093, Alameda County, California", "c_race": 5433, "c_white": 323, "c_black": 1445, "c_asian": 125, "c_latinx": 3427, "state_fips": 6, "county_fips": 1, "tract_fips": 409300, "med_rent": 1380.0, "med_hhinc": 45625.0, "c_tenants": 1647, "c_owners": 639, "c_renters": 1008, "c_movers": 5363, "c_stay": 4515, "c_movelocal": 728, "c_movecounty": 32, "c_movestate": 8, "c_moveabroad": 80, "c_commute": 2283, "c_car": 1342, "c_carpool": 379, "c_transit": 240, "c_bike": 23, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001409300", "p_white": 0.059451500092030103, "p_black": 0.26596723725381921, "p_asian": 0.023007546475243799, "p_latinx": 0.6307748941652862, "p_owners": 0.38797814207650272, "p_renters": 0.61202185792349728, "p_stay": 0.84187954503076634, "p_movelocal": 0.1357449188886817, "p_movecounty": 0.0059668096214804999, "p_movestate": 0.0014917024053701, "p_moveabroad": 0.014917024053701201, "p_car": 0.58782303985983353, "p_carpool": 0.1660096364432764, "p_transit": 0.10512483574244411, "p_bike": 0.0100744634253175, "p_walk": 0.0083223828296101008 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.181561, 37.737835 ], [ -122.176947, 37.741364 ], [ -122.174793, 37.742388 ], [ -122.173901, 37.742814 ], [ -122.170489, 37.744471 ], [ -122.169212, 37.742763 ], [ -122.167519, 37.740468 ], [ -122.165472, 37.737689 ], [ -122.165546, 37.737655 ], [ -122.16636, 37.737294 ], [ -122.167403, 37.736866 ], [ -122.167499, 37.736898 ], [ -122.171529, 37.73501 ], [ -122.169769, 37.732211 ], [ -122.170097, 37.732056 ], [ -122.170497, 37.731869 ], [ -122.17404, 37.73119 ], [ -122.177295, 37.73403 ], [ -122.179782, 37.736267 ], [ -122.181561, 37.737835 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410000", "AFFGEOID": "1400000US06001410000", "GEOID": "06001410000", "NAME_x": "4100", "LSAD": "CT", "ALAND": 6562024, "AWATER": 145283, "NAME_y": "Census Tract 4100, Alameda County, California", "c_race": 3367, "c_white": 1147, "c_black": 1313, "c_asian": 109, "c_latinx": 314, "state_fips": 6, "county_fips": 1, "tract_fips": 410000, "med_rent": 2031.0, "med_hhinc": 113411.0, "c_tenants": 1219, "c_owners": 1082, "c_renters": 137, "c_movers": 3328, "c_stay": 3090, "c_movelocal": 96, "c_movecounty": 137, "c_movestate": 5, "c_moveabroad": 0, "c_commute": 1561, "c_car": 1185, "c_carpool": 63, "c_transit": 83, "c_bike": 13, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001410000", "p_white": 0.34065934065934061, "p_black": 0.3899613899613899, "p_asian": 0.032373032373032302, "p_latinx": 0.0932580932580932, "p_owners": 0.88761279737489751, "p_renters": 0.1123872026251025, "p_stay": 0.92848557692307676, "p_movelocal": 0.028846153846153799, "p_movecounty": 0.041165865384615301, "p_movestate": 0.0015024038461538001, "p_moveabroad": 0.0, "p_car": 0.75912876361306858, "p_carpool": 0.040358744394618798, "p_transit": 0.053171044202434299, "p_bike": 0.0083279948750799998, "p_walk": 0.0064061499039077003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.151206, 37.75364 ], [ -122.150562, 37.753371 ], [ -122.141828, 37.757477 ], [ -122.140094, 37.757216 ], [ -122.138522, 37.757941 ], [ -122.12952, 37.756046 ], [ -122.127378, 37.754464 ], [ -122.12401, 37.751307 ], [ -122.12063, 37.745991 ], [ -122.115786, 37.748521 ], [ -122.115555, 37.748643 ], [ -122.115483, 37.748681 ], [ -122.115478, 37.74861 ], [ -122.114797, 37.741853 ], [ -122.114799, 37.74022 ], [ -122.115234, 37.739153 ], [ -122.115091, 37.735279 ], [ -122.118818, 37.732273 ], [ -122.119964, 37.732042 ], [ -122.121082, 37.731899 ], [ -122.122228, 37.729933 ], [ -122.122213, 37.729795 ], [ -122.124462, 37.728588 ], [ -122.127423, 37.72977 ], [ -122.132345, 37.731726 ], [ -122.130603, 37.732679 ], [ -122.130464, 37.732821 ], [ -122.130384, 37.733412 ], [ -122.130623, 37.733694 ], [ -122.131225, 37.733587 ], [ -122.131403, 37.733606 ], [ -122.134527, 37.734223 ], [ -122.138747, 37.730929 ], [ -122.138977, 37.730932 ], [ -122.139886, 37.73447 ], [ -122.140243, 37.736051 ], [ -122.14071, 37.737182 ], [ -122.141134, 37.737767 ], [ -122.146051, 37.742802 ], [ -122.146522, 37.742499 ], [ -122.149492, 37.744623 ], [ -122.148647, 37.745129 ], [ -122.151677, 37.751124 ], [ -122.151206, 37.75364 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410100", "AFFGEOID": "1400000US06001410100", "GEOID": "06001410100", "NAME_x": "4101", "LSAD": "CT", "ALAND": 784679, "AWATER": 0, "NAME_y": "Census Tract 4101, Alameda County, California", "c_race": 2674, "c_white": 394, "c_black": 1539, "c_asian": 97, "c_latinx": 431, "state_fips": 6, "county_fips": 1, "tract_fips": 410100, "med_rent": 1036.0, "med_hhinc": 64570.0, "c_tenants": 1053, "c_owners": 662, "c_renters": 391, "c_movers": 2631, "c_stay": 2236, "c_movelocal": 230, "c_movecounty": 122, "c_movestate": 20, "c_moveabroad": 23, "c_commute": 1339, "c_car": 962, "c_carpool": 114, "c_transit": 79, "c_bike": 61, "c_walk": 5, "year": 2018, "FIPS_11_digit": "06001410100", "p_white": 0.14734480179506351, "p_black": 0.5755422587883321, "p_asian": 0.036275243081525799, "p_latinx": 0.1611817501869858, "p_owners": 0.62867996201329535, "p_renters": 0.3713200379867046, "p_stay": 0.84986697073356143, "p_movelocal": 0.087419232231090799, "p_movecounty": 0.0463702014443177, "p_movestate": 0.0076016723679208998, "p_moveabroad": 0.0087419232231090004, "p_car": 0.71844660194174759, "p_carpool": 0.085138162808065701, "p_transit": 0.058999253174010398, "p_bike": 0.0455563853622106, "p_walk": 0.0037341299477221001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.1604, 37.752903 ], [ -122.157388, 37.753833 ], [ -122.154381, 37.751643 ], [ -122.153547, 37.75241 ], [ -122.152735, 37.753693 ], [ -122.152102, 37.754142 ], [ -122.151206, 37.75364 ], [ -122.151677, 37.751124 ], [ -122.148647, 37.745129 ], [ -122.149492, 37.744623 ], [ -122.146522, 37.742499 ], [ -122.146721, 37.74217 ], [ -122.14699, 37.7418 ], [ -122.147351, 37.741365 ], [ -122.147436, 37.741289 ], [ -122.148725, 37.740859 ], [ -122.148837, 37.740907 ], [ -122.151526, 37.742214 ], [ -122.152496, 37.742923 ], [ -122.153625, 37.744069 ], [ -122.156174, 37.745897 ], [ -122.157234, 37.747374 ], [ -122.159831, 37.751335 ], [ -122.1604, 37.752903 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "410500", "AFFGEOID": "1400000US06001410500", "GEOID": "06001410500", "NAME_x": "4105", "LSAD": "CT", "ALAND": 724476, "AWATER": 0, "NAME_y": "Census Tract 4105, Alameda County, California", "c_race": 2373, "c_white": 198, "c_black": 1503, "c_asian": 349, "c_latinx": 246, "state_fips": 6, "county_fips": 1, "tract_fips": 410500, "med_rent": 659.0, "med_hhinc": 24318.0, "c_tenants": 936, "c_owners": 119, "c_renters": 817, "c_movers": 2362, "c_stay": 2141, "c_movelocal": 107, "c_movecounty": 105, "c_movestate": 9, "c_moveabroad": 0, "c_commute": 831, "c_car": 359, "c_carpool": 64, "c_transit": 273, "c_bike": 37, "c_walk": 23, "year": 2018, "FIPS_11_digit": "06001410500", "p_white": 0.083438685208596694, "p_black": 0.63337547408343864, "p_asian": 0.14707121786767799, "p_latinx": 0.1036662452591656, "p_owners": 0.1271367521367521, "p_renters": 0.87286324786324787, "p_stay": 0.90643522438611357, "p_movelocal": 0.0453005927180355, "p_movecounty": 0.044453852667231099, "p_movestate": 0.0038103302286198, "p_moveabroad": 0.0, "p_car": 0.43200962695547529, "p_carpool": 0.077015643802647402, "p_transit": 0.32851985559566788, "p_bike": 0.0445246690734055, "p_walk": 0.0276774969915764 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.292315, 37.809156 ], [ -122.289802, 37.816155 ], [ -122.289669, 37.816835 ], [ -122.28967, 37.817002 ], [ -122.284024, 37.815622 ], [ -122.286208, 37.809606 ], [ -122.287923, 37.804853 ], [ -122.28867, 37.802755 ], [ -122.291101, 37.802526 ], [ -122.290608, 37.803784 ], [ -122.29369, 37.805079 ], [ -122.292315, 37.809156 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420300", "AFFGEOID": "1400000US06001420300", "GEOID": "06001420300", "NAME_x": "4203", "LSAD": "CT", "ALAND": 1302789, "AWATER": 1111343, "NAME_y": "Census Tract 4203, Alameda County, California", "c_race": 4864, "c_white": 1532, "c_black": 94, "c_asian": 1998, "c_latinx": 722, "state_fips": 6, "county_fips": 1, "tract_fips": 420300, "med_rent": 1696.0, "med_hhinc": 82731.0, "c_tenants": 1955, "c_owners": 863, "c_renters": 1092, "c_movers": 4832, "c_stay": 4189, "c_movelocal": 230, "c_movecounty": 266, "c_movestate": 1, "c_moveabroad": 146, "c_commute": 2614, "c_car": 1153, "c_carpool": 322, "c_transit": 707, "c_bike": 189, "c_walk": 147, "year": 2018, "FIPS_11_digit": "06001420300", "p_white": 0.31496710526315791, "p_black": 0.019325657894736802, "p_asian": 0.41077302631578949, "p_latinx": 0.1484375, "p_owners": 0.44143222506393859, "p_renters": 0.55856777493606136, "p_stay": 0.86692880794701987, "p_movelocal": 0.047599337748344302, "p_movecounty": 0.055049668874172099, "p_movestate": 0.0002069536423841, "p_moveabroad": 0.030215231788079399, "p_car": 0.44108645753634279, "p_carpool": 0.1231828615149196, "p_transit": 0.27046671767406272, "p_bike": 0.072302983932670206, "p_walk": 0.056235654169854599 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.326912, 37.892492 ], [ -122.315439, 37.892231 ], [ -122.311101, 37.89043 ], [ -122.309497, 37.892981 ], [ -122.311399, 37.895794 ], [ -122.315150304886004, 37.896843573915596 ], [ -122.311468, 37.897629 ], [ -122.309315, 37.897867 ], [ -122.308946, 37.89797 ], [ -122.305771, 37.898315 ], [ -122.30528, 37.898425 ], [ -122.301668, 37.898525 ], [ -122.300903, 37.896019 ], [ -122.300593, 37.895043 ], [ -122.299051, 37.890264 ], [ -122.298249, 37.887758 ], [ -122.30068, 37.887725 ], [ -122.301821, 37.887615 ], [ -122.30688, 37.887214 ], [ -122.309345, 37.887682 ], [ -122.31185, 37.88947 ], [ -122.326912, 37.889647548398003 ], [ -122.326912, 37.892492 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421200", "AFFGEOID": "1400000US06001421200", "GEOID": "06001421200", "NAME_x": "4212", "LSAD": "CT", "ALAND": 1354146, "AWATER": 1509, "NAME_y": "Census Tract 4212, Alameda County, California", "c_race": 3575, "c_white": 2642, "c_black": 43, "c_asian": 425, "c_latinx": 160, "state_fips": 6, "county_fips": 1, "tract_fips": 421200, "med_rent": 1867.0, "med_hhinc": 163750.0, "c_tenants": 1486, "c_owners": 1343, "c_renters": 143, "c_movers": 3566, "c_stay": 3097, "c_movelocal": 123, "c_movecounty": 272, "c_movestate": 44, "c_moveabroad": 30, "c_commute": 1661, "c_car": 818, "c_carpool": 117, "c_transit": 280, "c_bike": 68, "c_walk": 36, "year": 2018, "FIPS_11_digit": "06001421200", "p_white": 0.73902097902097907, "p_black": 0.012027972027971999, "p_asian": 0.1188811188811188, "p_latinx": 0.0447552447552447, "p_owners": 0.90376850605652759, "p_renters": 0.096231493943472399, "p_stay": 0.86848008973639934, "p_movelocal": 0.034492428491306702, "p_movecounty": 0.0762759394279304, "p_movestate": 0.012338754907459301, "p_moveabroad": 0.0084127874369040005, "p_car": 0.4924744130042143, "p_carpool": 0.070439494280553794, "p_transit": 0.168573148705599, "p_bike": 0.040939193257074, "p_walk": 0.021673690547862699 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.286012, 37.898987 ], [ -122.27798, 37.901626 ], [ -122.2781, 37.903302 ], [ -122.27618, 37.903826 ], [ -122.274944, 37.904527 ], [ -122.27108, 37.905824 ], [ -122.270237, 37.904363 ], [ -122.270319, 37.904287 ], [ -122.26959, 37.901434 ], [ -122.271186, 37.899696 ], [ -122.269648, 37.897181 ], [ -122.269387, 37.895751 ], [ -122.267737, 37.893131 ], [ -122.272285, 37.890246 ], [ -122.272507, 37.889997 ], [ -122.276027, 37.88887 ], [ -122.276586, 37.888821 ], [ -122.277154, 37.891466 ], [ -122.277078, 37.893995 ], [ -122.278035, 37.895223 ], [ -122.281233, 37.896184 ], [ -122.281669, 37.896741 ], [ -122.281252, 37.899632 ], [ -122.285704, 37.89837 ], [ -122.286012, 37.898987 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421500", "AFFGEOID": "1400000US06001421500", "GEOID": "06001421500", "NAME_x": "4215", "LSAD": "CT", "ALAND": 1590668, "AWATER": 3635, "NAME_y": "Census Tract 4215, Alameda County, California", "c_race": 3789, "c_white": 2924, "c_black": 133, "c_asian": 426, "c_latinx": 185, "state_fips": 6, "county_fips": 1, "tract_fips": 421500, "med_rent": 2773.0, "med_hhinc": 158807.0, "c_tenants": 1589, "c_owners": 1305, "c_renters": 284, "c_movers": 3783, "c_stay": 3267, "c_movelocal": 269, "c_movecounty": 87, "c_movestate": 118, "c_moveabroad": 42, "c_commute": 1984, "c_car": 876, "c_carpool": 162, "c_transit": 420, "c_bike": 49, "c_walk": 145, "year": 2018, "FIPS_11_digit": "06001421500", "p_white": 0.77170757455793082, "p_black": 0.035101609923462597, "p_asian": 0.11243072050673, "p_latinx": 0.048825547637899099, "p_owners": 0.82127123977344241, "p_renters": 0.17872876022655759, "p_stay": 0.86360031720856467, "p_movelocal": 0.071107586571504094, "p_movecounty": 0.022997620935765201, "p_movestate": 0.031192175522072398, "p_moveabroad": 0.011102299762093501, "p_car": 0.44153225806451613, "p_carpool": 0.081653225806451596, "p_transit": 0.2116935483870967, "p_bike": 0.024697580645161199, "p_walk": 0.073084677419354802 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.267737, 37.893131 ], [ -122.262683, 37.896326 ], [ -122.260784, 37.897553 ], [ -122.260703, 37.899639 ], [ -122.257169, 37.899824 ], [ -122.256274, 37.89697 ], [ -122.255533, 37.895966 ], [ -122.253771, 37.89622 ], [ -122.253082, 37.894116 ], [ -122.249477, 37.893086 ], [ -122.248977, 37.891222 ], [ -122.251877, 37.890955 ], [ -122.253377, 37.888163 ], [ -122.254143, 37.889163 ], [ -122.254792, 37.887816 ], [ -122.255334, 37.88806 ], [ -122.260268, 37.886153 ], [ -122.259856, 37.883278 ], [ -122.261699, 37.883053 ], [ -122.26257, 37.886523 ], [ -122.266609, 37.886035 ], [ -122.26672, 37.88895 ], [ -122.267174, 37.890428 ], [ -122.267147, 37.892796 ], [ -122.267737, 37.893131 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421800", "AFFGEOID": "1400000US06001421800", "GEOID": "06001421800", "NAME_x": "4218", "LSAD": "CT", "ALAND": 528477, "AWATER": 0, "NAME_y": "Census Tract 4218, Alameda County, California", "c_race": 2139, "c_white": 1584, "c_black": 57, "c_asian": 279, "c_latinx": 76, "state_fips": 6, "county_fips": 1, "tract_fips": 421800, "med_rent": 2061.0, "med_hhinc": 127250.0, "c_tenants": 890, "c_owners": 594, "c_renters": 296, "c_movers": 2112, "c_stay": 1843, "c_movelocal": 138, "c_movecounty": 44, "c_movestate": 40, "c_moveabroad": 47, "c_commute": 1029, "c_car": 375, "c_carpool": 165, "c_transit": 171, "c_bike": 70, "c_walk": 103, "year": 2018, "FIPS_11_digit": "06001421800", "p_white": 0.7405329593267882, "p_black": 0.026647966339410901, "p_asian": 0.13043478260869559, "p_latinx": 0.035530621785881199, "p_owners": 0.66741573033707868, "p_renters": 0.33258426966292137, "p_stay": 0.8726325757575758, "p_movelocal": 0.065340909090909005, "p_movecounty": 0.020833333333333301, "p_movestate": 0.018939393939393898, "p_moveabroad": 0.0222537878787878, "p_car": 0.36443148688046639, "p_carpool": 0.16034985422740519, "p_transit": 0.16618075801749271, "p_bike": 0.068027210884353706, "p_walk": 0.1000971817298348 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.283273, 37.880926 ], [ -122.282678, 37.881249 ], [ -122.280287, 37.882438 ], [ -122.275673, 37.884755 ], [ -122.274963, 37.885341 ], [ -122.274543, 37.884895 ], [ -122.27414, 37.881413 ], [ -122.273944, 37.879587 ], [ -122.273746, 37.877788 ], [ -122.277103, 37.877358 ], [ -122.282793, 37.87666 ], [ -122.283273, 37.880926 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422300", "AFFGEOID": "1400000US06001422300", "GEOID": "06001422300", "NAME_x": "4223", "LSAD": "CT", "ALAND": 560047, "AWATER": 0, "NAME_y": "Census Tract 4223, Alameda County, California", "c_race": 3756, "c_white": 2090, "c_black": 202, "c_asian": 862, "c_latinx": 326, "state_fips": 6, "county_fips": 1, "tract_fips": 422300, "med_rent": 1661.0, "med_hhinc": 64836.0, "c_tenants": 1729, "c_owners": 653, "c_renters": 1076, "c_movers": 3685, "c_stay": 3002, "c_movelocal": 245, "c_movecounty": 219, "c_movestate": 59, "c_moveabroad": 160, "c_commute": 1921, "c_car": 442, "c_carpool": 104, "c_transit": 659, "c_bike": 171, "c_walk": 308, "year": 2018, "FIPS_11_digit": "06001422300", "p_white": 0.55644302449414274, "p_black": 0.053780617678381201, "p_asian": 0.22949946751863681, "p_latinx": 0.086794462193823196, "p_owners": 0.37767495662232498, "p_renters": 0.62232504337767491, "p_stay": 0.81465400271370425, "p_movelocal": 0.066485753052917193, "p_movecounty": 0.059430122116689202, "p_movestate": 0.016010854816824901, "p_moveabroad": 0.043419267299864298, "p_car": 0.23008849557522121, "p_carpool": 0.054138469547110803, "p_transit": 0.34305049453409681, "p_bike": 0.089016137428422695, "p_walk": 0.1603331598125976 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.282793, 37.87666 ], [ -122.277103, 37.877358 ], [ -122.273746, 37.877788 ], [ -122.273574, 37.87598 ], [ -122.273357, 37.874216 ], [ -122.273265, 37.873325 ], [ -122.273067, 37.871512 ], [ -122.28204, 37.870353 ], [ -122.282256, 37.872132 ], [ -122.282356, 37.873018 ], [ -122.282565, 37.874862 ], [ -122.282793, 37.87666 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422700", "AFFGEOID": "1400000US06001422700", "GEOID": "06001422700", "NAME_x": "4227", "LSAD": "CT", "ALAND": 348098, "AWATER": 0, "NAME_y": "Census Tract 4227, Alameda County, California", "c_race": 5053, "c_white": 2214, "c_black": 150, "c_asian": 1431, "c_latinx": 925, "state_fips": 6, "county_fips": 1, "tract_fips": 422700, "med_rent": 1627.0, "med_hhinc": 30731.0, "c_tenants": 1000, "c_owners": 128, "c_renters": 872, "c_movers": 5053, "c_stay": 2109, "c_movelocal": 986, "c_movecounty": 1213, "c_movestate": 390, "c_moveabroad": 355, "c_commute": 1961, "c_car": 338, "c_carpool": 61, "c_transit": 279, "c_bike": 111, "c_walk": 930, "year": 2018, "FIPS_11_digit": "06001422700", "p_white": 0.43815555115772808, "p_black": 0.0296853354442905, "p_asian": 0.28319810013853158, "p_latinx": 0.18305956857312489, "p_owners": 0.128, "p_renters": 0.872, "p_stay": 0.41737581634672472, "p_movelocal": 0.1951316049871363, "p_movecounty": 0.24005541262616259, "p_movestate": 0.077181872155155304, "p_moveabroad": 0.070255293884820894, "p_car": 0.17236104028556859, "p_carpool": 0.031106578276389501, "p_transit": 0.1422743498215196, "p_bike": 0.056603773584905599, "p_walk": 0.47424783273839871 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.254588, 37.869321 ], [ -122.252328, 37.869616 ], [ -122.250971, 37.869328 ], [ -122.250214, 37.869346 ], [ -122.249594, 37.870289 ], [ -122.245156, 37.869737 ], [ -122.244877, 37.866276 ], [ -122.245338, 37.865986 ], [ -122.246962, 37.866159 ], [ -122.24842, 37.866083 ], [ -122.251653, 37.865887 ], [ -122.253954, 37.865737 ], [ -122.254223, 37.866931 ], [ -122.254588, 37.869321 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423100", "AFFGEOID": "1400000US06001423100", "GEOID": "06001423100", "NAME_x": "4231", "LSAD": "CT", "ALAND": 748653, "AWATER": 0, "NAME_y": "Census Tract 4231, Alameda County, California", "c_race": 4272, "c_white": 1984, "c_black": 797, "c_asian": 660, "c_latinx": 488, "state_fips": 6, "county_fips": 1, "tract_fips": 423100, "med_rent": 1370.0, "med_hhinc": 69243.0, "c_tenants": 1927, "c_owners": 651, "c_renters": 1276, "c_movers": 4232, "c_stay": 3446, "c_movelocal": 232, "c_movecounty": 306, "c_movestate": 143, "c_moveabroad": 105, "c_commute": 2235, "c_car": 859, "c_carpool": 14, "c_transit": 609, "c_bike": 279, "c_walk": 232, "year": 2018, "FIPS_11_digit": "06001423100", "p_white": 0.46441947565543068, "p_black": 0.18656367041198499, "p_asian": 0.1544943820224719, "p_latinx": 0.1142322097378277, "p_owners": 0.33783082511676182, "p_renters": 0.66216917488323823, "p_stay": 0.81427221172022679, "p_movelocal": 0.054820415879017002, "p_movecounty": 0.072306238185255195, "p_movestate": 0.033790170132325097, "p_moveabroad": 0.024810964083175801, "p_car": 0.38434004474272931, "p_carpool": 0.0062639821029081997, "p_transit": 0.27248322147651, "p_bike": 0.1248322147651006, "p_walk": 0.1038031319910514 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.292226, 37.869042 ], [ -122.288052, 37.869592 ], [ -122.28204, 37.870353 ], [ -122.281783, 37.867382 ], [ -122.28162, 37.865817 ], [ -122.281438, 37.864011 ], [ -122.281226, 37.862205 ], [ -122.289651, 37.861104 ], [ -122.290205, 37.862863 ], [ -122.290776, 37.864633 ], [ -122.291346, 37.866392 ], [ -122.292226, 37.869042 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423601", "AFFGEOID": "1400000US06001423601", "GEOID": "06001423601", "NAME_x": "4236.01", "LSAD": "CT", "ALAND": 524798, "AWATER": 0, "NAME_y": "Census Tract 4236.01, Alameda County, California", "c_race": 2804, "c_white": 2011, "c_black": 117, "c_asian": 275, "c_latinx": 201, "state_fips": 6, "county_fips": 1, "tract_fips": 423601, "med_rent": 1857.0, "med_hhinc": 103603.0, "c_tenants": 1177, "c_owners": 512, "c_renters": 665, "c_movers": 2798, "c_stay": 2061, "c_movelocal": 285, "c_movecounty": 249, "c_movestate": 180, "c_moveabroad": 23, "c_commute": 1623, "c_car": 447, "c_carpool": 125, "c_transit": 503, "c_bike": 173, "c_walk": 160, "year": 2018, "FIPS_11_digit": "06001423601", "p_white": 0.71718972895863053, "p_black": 0.041726105563480699, "p_asian": 0.098074179743223897, "p_latinx": 0.071683309557774605, "p_owners": 0.43500424808836019, "p_renters": 0.56499575191163975, "p_stay": 0.73659756969263757, "p_movelocal": 0.1018584703359542, "p_movecounty": 0.088992137240886296, "p_movestate": 0.0643316654753395, "p_moveabroad": 0.0082201572551822005, "p_car": 0.2754158964879852, "p_carpool": 0.077017868145409701, "p_transit": 0.30991990141712877, "p_bike": 0.106592729513247, "p_walk": 0.098582871226124399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.264519, 37.860682 ], [ -122.25798, 37.861726 ], [ -122.253552, 37.861823 ], [ -122.253513, 37.861399 ], [ -122.253225, 37.8585 ], [ -122.253099, 37.857088 ], [ -122.256848, 37.856616 ], [ -122.262407, 37.855865 ], [ -122.263515, 37.855732 ], [ -122.263968, 37.858017 ], [ -122.264139, 37.858893 ], [ -122.264519, 37.860682 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423700", "AFFGEOID": "1400000US06001423700", "GEOID": "06001423700", "NAME_x": "4237", "LSAD": "CT", "ALAND": 728690, "AWATER": 0, "NAME_y": "Census Tract 4237, Alameda County, California", "c_race": 4399, "c_white": 2784, "c_black": 89, "c_asian": 875, "c_latinx": 360, "state_fips": 6, "county_fips": 1, "tract_fips": 423700, "med_rent": 1410.0, "med_hhinc": 88857.0, "c_tenants": 1308, "c_owners": 521, "c_renters": 787, "c_movers": 4380, "c_stay": 2435, "c_movelocal": 723, "c_movecounty": 688, "c_movestate": 279, "c_moveabroad": 255, "c_commute": 1776, "c_car": 570, "c_carpool": 74, "c_transit": 241, "c_bike": 137, "c_walk": 506, "year": 2018, "FIPS_11_digit": "06001423700", "p_white": 0.63287110706978855, "p_black": 0.0202318708797453, "p_asian": 0.1989088429188452, "p_latinx": 0.081836781086610494, "p_owners": 0.39831804281345567, "p_renters": 0.60168195718654438, "p_stay": 0.55593607305936077, "p_movelocal": 0.16506849315068489, "p_movecounty": 0.1570776255707762, "p_movestate": 0.063698630136986303, "p_moveabroad": 0.058219178082191701, "p_car": 0.32094594594594589, "p_carpool": 0.041666666666666602, "p_transit": 0.1356981981981982, "p_bike": 0.077139639639639601, "p_walk": 0.28490990990990989 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.253954, 37.865737 ], [ -122.251653, 37.865887 ], [ -122.24842, 37.866083 ], [ -122.246962, 37.866159 ], [ -122.245338, 37.865986 ], [ -122.244733, 37.865788 ], [ -122.244065, 37.860776 ], [ -122.244505, 37.859129 ], [ -122.242347, 37.85761 ], [ -122.243876, 37.858118 ], [ -122.24539, 37.858087 ], [ -122.252299, 37.85741 ], [ -122.253099, 37.857088 ], [ -122.253225, 37.8585 ], [ -122.253513, 37.861399 ], [ -122.253552, 37.861823 ], [ -122.253743, 37.863622 ], [ -122.253954, 37.865737 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "425101", "AFFGEOID": "1400000US06001425101", "GEOID": "06001425101", "NAME_x": "4251.01", "LSAD": "CT", "ALAND": 579083, "AWATER": 2118708, "NAME_y": "Census Tract 4251.01, Alameda County, California", "c_race": 1588, "c_white": 936, "c_black": 63, "c_asian": 421, "c_latinx": 67, "state_fips": 6, "county_fips": 1, "tract_fips": 425101, "med_rent": 1736.0, "med_hhinc": 77404.0, "c_tenants": 1135, "c_owners": 581, "c_renters": 554, "c_movers": 1588, "c_stay": 1374, "c_movelocal": 58, "c_movecounty": 57, "c_movestate": 59, "c_moveabroad": 40, "c_commute": 902, "c_car": 497, "c_carpool": 97, "c_transit": 153, "c_bike": 14, "c_walk": 56, "year": 2018, "FIPS_11_digit": "06001425101", "p_white": 0.58942065491183881, "p_black": 0.039672544080604499, "p_asian": 0.2651133501259445, "p_latinx": 0.042191435768261898, "p_owners": 0.51189427312775326, "p_renters": 0.48810572687224668, "p_stay": 0.86523929471032746, "p_movelocal": 0.036523929471032703, "p_movecounty": 0.035894206549118297, "p_movestate": 0.037153652392947101, "p_moveabroad": 0.025188916876574301, "p_car": 0.5509977827050998, "p_carpool": 0.1075388026607538, "p_transit": 0.1696230598669623, "p_bike": 0.0155210643015521, "p_walk": 0.062084257206208401 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.314195, 37.842311 ], [ -122.299233, 37.840479 ], [ -122.300952657435019, 37.845742002081103 ], [ -122.301134, 37.846297 ], [ -122.301161573409999, 37.847362399484197 ], [ -122.299934, 37.847673 ], [ -122.298863, 37.848097 ], [ -122.29781, 37.843301 ], [ -122.296787, 37.838002 ], [ -122.295557, 37.835067 ], [ -122.293359, 37.83162 ], [ -122.293463, 37.831041 ], [ -122.293513, 37.830685 ], [ -122.294462, 37.830559 ], [ -122.297116981600993, 37.831223745400202 ], [ -122.298044, 37.836349 ], [ -122.315913, 37.836812 ], [ -122.314195, 37.842311 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "425103", "AFFGEOID": "1400000US06001425103", "GEOID": "06001425103", "NAME_x": "4251.03", "LSAD": "CT", "ALAND": 882684, "AWATER": 0, "NAME_y": "Census Tract 4251.03, Alameda County, California", "c_race": 2789, "c_white": 1534, "c_black": 241, "c_asian": 594, "c_latinx": 217, "state_fips": 6, "county_fips": 1, "tract_fips": 425103, "med_rent": 2740.0, "med_hhinc": 125000.0, "c_tenants": 1372, "c_owners": 553, "c_renters": 819, "c_movers": 2777, "c_stay": 1862, "c_movelocal": 374, "c_movecounty": 393, "c_movestate": 112, "c_moveabroad": 36, "c_commute": 2139, "c_car": 860, "c_carpool": 199, "c_transit": 580, "c_bike": 129, "c_walk": 173, "year": 2018, "FIPS_11_digit": "06001425103", "p_white": 0.5500179275726067, "p_black": 0.086410899964144805, "p_asian": 0.21297956256722839, "p_latinx": 0.077805665112943706, "p_owners": 0.40306122448979592, "p_renters": 0.59693877551020413, "p_stay": 0.67050774216780695, "p_movelocal": 0.13467770975873239, "p_movecounty": 0.14151962549513861, "p_movestate": 0.040331292761973302, "p_moveabroad": 0.0129636298163485, "p_car": 0.40205703599812997, "p_carpool": 0.093034128097241695, "p_transit": 0.27115474520804111, "p_bike": 0.060308555399719403, "p_walk": 0.080878915381019101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.295092, 37.848907 ], [ -122.292355, 37.849359 ], [ -122.288744, 37.850007 ], [ -122.287954, 37.847521 ], [ -122.287866, 37.846907 ], [ -122.287499, 37.845772 ], [ -122.286714, 37.843345 ], [ -122.285576, 37.839778 ], [ -122.284494, 37.83672 ], [ -122.287672, 37.836052 ], [ -122.291241, 37.83472 ], [ -122.291976, 37.838903 ], [ -122.293481, 37.844072 ], [ -122.295092, 37.848907 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "426100", "AFFGEOID": "1400000US06001426100", "GEOID": "06001426100", "NAME_x": "4261", "LSAD": "CT", "ALAND": 3043950, "AWATER": 0, "NAME_y": "Census Tract 4261, Alameda County, California", "c_race": 6404, "c_white": 4827, "c_black": 82, "c_asian": 1124, "c_latinx": 79, "state_fips": 6, "county_fips": 1, "tract_fips": 426100, "med_rent": 3501.0, "med_hhinc": 250001.0, "c_tenants": 2229, "c_owners": 2066, "c_renters": 163, "c_movers": 6382, "c_stay": 5970, "c_movelocal": 146, "c_movecounty": 74, "c_movestate": 82, "c_moveabroad": 110, "c_commute": 2665, "c_car": 1488, "c_carpool": 397, "c_transit": 366, "c_bike": 0, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001426100", "p_white": 0.75374765771392882, "p_black": 0.0128044971892567, "p_asian": 0.1755153029356652, "p_latinx": 0.0123360399750156, "p_owners": 0.92687303723642878, "p_renters": 0.073126962763571099, "p_stay": 0.93544343465998125, "p_movelocal": 0.022876841115637699, "p_movecounty": 0.0115951112503917, "p_movestate": 0.0128486367909746, "p_moveabroad": 0.017235976183014701, "p_car": 0.55834896810506562, "p_carpool": 0.14896810506566599, "p_transit": 0.1373358348968105, "p_bike": 0.0, "p_walk": 0.0071294559099437001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.23931, 37.817841 ], [ -122.236608, 37.820221 ], [ -122.238009, 37.821645 ], [ -122.235835, 37.823307 ], [ -122.233816, 37.82304 ], [ -122.232279, 37.825085 ], [ -122.233608, 37.827547 ], [ -122.235254, 37.830534 ], [ -122.237048, 37.830823 ], [ -122.229148, 37.833144 ], [ -122.227353, 37.832391 ], [ -122.227516, 37.832698 ], [ -122.224456, 37.830256 ], [ -122.224486, 37.830239 ], [ -122.224444, 37.830246 ], [ -122.222304, 37.828361 ], [ -122.2221, 37.827246 ], [ -122.22172, 37.826913 ], [ -122.220705, 37.825369 ], [ -122.212238, 37.819907 ], [ -122.210178, 37.818613 ], [ -122.213172, 37.815784 ], [ -122.214677, 37.812688 ], [ -122.215174, 37.812276 ], [ -122.220433, 37.813439 ], [ -122.224011, 37.81435 ], [ -122.225234, 37.814605 ], [ -122.232245, 37.816194 ], [ -122.233296, 37.816492 ], [ -122.235713, 37.817042 ], [ -122.239021, 37.817592 ], [ -122.23931, 37.817841 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427700", "AFFGEOID": "1400000US06001427700", "GEOID": "06001427700", "NAME_x": "4277", "LSAD": "CT", "ALAND": 999309, "AWATER": 710016, "NAME_y": "Census Tract 4277, Alameda County, California", "c_race": 5190, "c_white": 2669, "c_black": 448, "c_asian": 707, "c_latinx": 909, "state_fips": 6, "county_fips": 1, "tract_fips": 427700, "med_rent": 1775.0, "med_hhinc": 98250.0, "c_tenants": 2236, "c_owners": 765, "c_renters": 1471, "c_movers": 5139, "c_stay": 4564, "c_movelocal": 221, "c_movecounty": 158, "c_movestate": 176, "c_moveabroad": 20, "c_commute": 3207, "c_car": 2004, "c_carpool": 345, "c_transit": 476, "c_bike": 33, "c_walk": 124, "year": 2018, "FIPS_11_digit": "06001427700", "p_white": 0.51425818882466279, "p_black": 0.086319845857418101, "p_asian": 0.1362235067437379, "p_latinx": 0.1751445086705202, "p_owners": 0.34212880143112701, "p_renters": 0.65787119856887299, "p_stay": 0.88811052733994944, "p_movelocal": 0.043004475578906402, "p_movecounty": 0.030745281183109499, "p_movestate": 0.034247908153337198, "p_moveabroad": 0.0038918077446973998, "p_car": 0.62488306828811979, "p_carpool": 0.1075771749298409, "p_transit": 0.14842531961334579, "p_bike": 0.010289990645463, "p_walk": 0.038665419395073203 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.290743, 37.771088 ], [ -122.291088, 37.776478 ], [ -122.289033, 37.776411 ], [ -122.288061, 37.776382 ], [ -122.285206, 37.776285 ], [ -122.282318, 37.775316 ], [ -122.28085, 37.775248 ], [ -122.276796, 37.775134 ], [ -122.276849, 37.771384 ], [ -122.278362, 37.771424 ], [ -122.278489, 37.768358 ], [ -122.279931, 37.768179 ], [ -122.279871788424003, 37.7675851959415 ], [ -122.28307, 37.763857 ], [ -122.289012, 37.764608 ], [ -122.288775, 37.768742 ], [ -122.291427464917007, 37.769327899007195 ], [ -122.290743, 37.771088 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428200", "AFFGEOID": "1400000US06001428200", "GEOID": "06001428200", "NAME_x": "4282", "LSAD": "CT", "ALAND": 1366564, "AWATER": 800242, "NAME_y": "Census Tract 4282, Alameda County, California", "c_race": 6643, "c_white": 3468, "c_black": 387, "c_asian": 1589, "c_latinx": 686, "state_fips": 6, "county_fips": 1, "tract_fips": 428200, "med_rent": 1855.0, "med_hhinc": 103781.0, "c_tenants": 2641, "c_owners": 1468, "c_renters": 1173, "c_movers": 6587, "c_stay": 6155, "c_movelocal": 205, "c_movecounty": 71, "c_movestate": 141, "c_moveabroad": 15, "c_commute": 3391, "c_car": 2189, "c_carpool": 229, "c_transit": 510, "c_bike": 51, "c_walk": 108, "year": 2018, "FIPS_11_digit": "06001428200", "p_white": 0.5220532891765769, "p_black": 0.058256811681469199, "p_asian": 0.2391991570073761, "p_latinx": 0.1032665964172813, "p_owners": 0.55585005679666788, "p_renters": 0.44414994320333201, "p_stay": 0.93441627448003639, "p_movelocal": 0.031121906786093799, "p_movecounty": 0.0107788067405495, "p_movestate": 0.021405799301654701, "p_moveabroad": 0.0022772126916654001, "p_car": 0.64553229135948098, "p_carpool": 0.067531701562960705, "p_transit": 0.15039811265113531, "p_bike": 0.015039811265113501, "p_walk": 0.031849012090828598 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.249232, 37.755666 ], [ -122.248417, 37.757465 ], [ -122.245584, 37.76086 ], [ -122.244241, 37.762486 ], [ -122.239436, 37.759735 ], [ -122.237596, 37.758543 ], [ -122.234991, 37.756718 ], [ -122.234226, 37.756192 ], [ -122.231002, 37.753968 ], [ -122.229715, 37.753094 ], [ -122.22732, 37.754951 ], [ -122.224579, 37.753028 ], [ -122.225895, 37.749694 ], [ -122.236405, 37.748549 ], [ -122.248490684266997, 37.748990016683102 ], [ -122.244938, 37.750294 ], [ -122.243947, 37.751779 ], [ -122.250561707781003, 37.754080827455397 ], [ -122.249232, 37.755666 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430101", "AFFGEOID": "1400000US06001430101", "GEOID": "06001430101", "NAME_x": "4301.01", "LSAD": "CT", "ALAND": 25482093, "AWATER": 0, "NAME_y": "Census Tract 4301.01, Alameda County, California", "c_race": 6955, "c_white": 1935, "c_black": 410, "c_asian": 3495, "c_latinx": 722, "state_fips": 6, "county_fips": 1, "tract_fips": 430101, "med_rent": 3228.0, "med_hhinc": 148625.0, "c_tenants": 2237, "c_owners": 1969, "c_renters": 268, "c_movers": 6860, "c_stay": 6454, "c_movelocal": 28, "c_movecounty": 45, "c_movestate": 76, "c_moveabroad": 257, "c_commute": 3413, "c_car": 2517, "c_carpool": 193, "c_transit": 329, "c_bike": 0, "c_walk": 43, "year": 2018, "FIPS_11_digit": "06001430101", "p_white": 0.27821710999281091, "p_black": 0.058950395398993501, "p_asian": 0.50251617541337168, "p_latinx": 0.1038102084831056, "p_owners": 0.88019669199821193, "p_renters": 0.11980330800178809, "p_stay": 0.9408163265306122, "p_movelocal": 0.0040816326530611997, "p_movecounty": 0.0065597667638482996, "p_movestate": 0.011078717201166099, "p_moveabroad": 0.037463556851311898, "p_car": 0.73747436273073541, "p_carpool": 0.056548491063580397, "p_transit": 0.096396132434808005, "p_bike": 0.0, "p_walk": 0.0125988866100205 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.058284, 37.695727 ], [ -122.057033, 37.695062 ], [ -122.054474, 37.701567 ], [ -122.05262, 37.702801 ], [ -122.043735, 37.7034 ], [ -122.040501, 37.708969 ], [ -122.039885, 37.713824 ], [ -122.039573, 37.715961 ], [ -122.037984, 37.717844 ], [ -122.038276, 37.719764 ], [ -122.036876, 37.723507 ], [ -122.033882, 37.729113 ], [ -122.033913, 37.731168 ], [ -122.032448, 37.733506 ], [ -122.032572, 37.735603 ], [ -122.032055, 37.739069 ], [ -122.031295, 37.745205 ], [ -122.031206, 37.749582 ], [ -122.029335, 37.752203 ], [ -122.029719, 37.754198 ], [ -122.028668, 37.758574 ], [ -122.027214, 37.760637 ], [ -122.023708, 37.763028 ], [ -122.018434, 37.765085 ], [ -122.015836, 37.766512 ], [ -122.010138, 37.767442 ], [ -122.00694, 37.768322 ], [ -122.004228, 37.770058 ], [ -121.998948, 37.764478 ], [ -121.997771, 37.763227 ], [ -122.010771, 37.755127 ], [ -122.011291, 37.754172 ], [ -122.011771, 37.747428 ], [ -122.001071, 37.739028 ], [ -121.993571, 37.738128 ], [ -121.989971, 37.733628 ], [ -121.983468, 37.730864 ], [ -121.977999, 37.729579 ], [ -121.97407, 37.729428 ], [ -121.97247, 37.728528 ], [ -121.97293, 37.728168 ], [ -121.977937, 37.724004 ], [ -122.001277, 37.703728 ], [ -122.016488, 37.702942 ], [ -122.0212, 37.701492 ], [ -122.020384, 37.699987 ], [ -122.024958, 37.698093 ], [ -122.027065, 37.698138 ], [ -122.036055, 37.701993 ], [ -122.036966, 37.701741 ], [ -122.040171, 37.700201 ], [ -122.045253, 37.695682 ], [ -122.047651, 37.694379 ], [ -122.051961, 37.693582 ], [ -122.053386, 37.693636 ], [ -122.054485, 37.693768 ], [ -122.054958, 37.694236 ], [ -122.055014, 37.694607 ], [ -122.056443, 37.694548 ], [ -122.056963, 37.693962 ], [ -122.058061, 37.693915 ], [ -122.059972, 37.69359 ], [ -122.058284, 37.695727 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430102", "AFFGEOID": "1400000US06001430102", "GEOID": "06001430102", "NAME_x": "4301.02", "LSAD": "CT", "ALAND": 76921018, "AWATER": 3743184, "NAME_y": "Census Tract 4301.02, Alameda County, California", "c_race": 2393, "c_white": 1358, "c_black": 83, "c_asian": 440, "c_latinx": 263, "state_fips": 6, "county_fips": 1, "tract_fips": 430102, "med_rent": 1859.0, "med_hhinc": 136000.0, "c_tenants": 884, "c_owners": 732, "c_renters": 152, "c_movers": 2377, "c_stay": 2114, "c_movelocal": 86, "c_movecounty": 158, "c_movestate": 5, "c_moveabroad": 14, "c_commute": 1121, "c_car": 752, "c_carpool": 87, "c_transit": 142, "c_bike": 0, "c_walk": 25, "year": 2018, "FIPS_11_digit": "06001430102", "p_white": 0.56748850814876728, "p_black": 0.034684496447973202, "p_asian": 0.18386961972419549, "p_latinx": 0.1099038863351441, "p_owners": 0.82805429864253388, "p_renters": 0.17194570135746601, "p_stay": 0.88935633151030713, "p_movelocal": 0.036180058897770297, "p_movecounty": 0.066470340765671002, "p_movestate": 0.0021034917963819, "p_moveabroad": 0.0058897770298694998, "p_car": 0.67082961641391614, "p_carpool": 0.077609277430865195, "p_transit": 0.12667261373773411, "p_bike": 0.0, "p_walk": 0.022301516503122201 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.179157, 37.804981 ], [ -122.177769, 37.806667 ], [ -122.175869, 37.807494 ], [ -122.174159, 37.81027 ], [ -122.174752, 37.812212 ], [ -122.175474, 37.81459 ], [ -122.177873, 37.816323 ], [ -122.176977, 37.816227 ], [ -122.172775, 37.815826 ], [ -122.166873, 37.813424 ], [ -122.157392, 37.817952 ], [ -122.15295, 37.815034 ], [ -122.148808, 37.81376 ], [ -122.145946, 37.810723 ], [ -122.144268, 37.807693 ], [ -122.14026, 37.804562 ], [ -122.138402, 37.80433 ], [ -122.132765, 37.804012 ], [ -122.113812, 37.802729 ], [ -122.106302, 37.802194 ], [ -122.064302, 37.799396 ], [ -122.061681, 37.79922 ], [ -122.045473, 37.798126 ], [ -122.030472, 37.787727 ], [ -122.021972, 37.784227 ], [ -122.017772, 37.781227 ], [ -122.014072, 37.780227 ], [ -122.004809, 37.770571 ], [ -122.004228, 37.770058 ], [ -122.00694, 37.768322 ], [ -122.010138, 37.767442 ], [ -122.015836, 37.766512 ], [ -122.018434, 37.765085 ], [ -122.023708, 37.763028 ], [ -122.027214, 37.760637 ], [ -122.028668, 37.758574 ], [ -122.029719, 37.754198 ], [ -122.029335, 37.752203 ], [ -122.031206, 37.749582 ], [ -122.031295, 37.745205 ], [ -122.032055, 37.739069 ], [ -122.032572, 37.735603 ], [ -122.032448, 37.733506 ], [ -122.033913, 37.731168 ], [ -122.033882, 37.729113 ], [ -122.036876, 37.723507 ], [ -122.038276, 37.719764 ], [ -122.037984, 37.717844 ], [ -122.039573, 37.715961 ], [ -122.039885, 37.713824 ], [ -122.040501, 37.708969 ], [ -122.043735, 37.7034 ], [ -122.05262, 37.702801 ], [ -122.054474, 37.701567 ], [ -122.055829, 37.703045 ], [ -122.0554, 37.703809 ], [ -122.056541, 37.704204 ], [ -122.054334, 37.715113 ], [ -122.054534, 37.717846 ], [ -122.054208, 37.721428 ], [ -122.052146, 37.723867 ], [ -122.052706, 37.727185 ], [ -122.052325, 37.729427 ], [ -122.051322, 37.731152 ], [ -122.051923, 37.733388 ], [ -122.053943, 37.737388 ], [ -122.053652, 37.738173 ], [ -122.054405, 37.741431 ], [ -122.055664, 37.742898 ], [ -122.056625, 37.748057 ], [ -122.058244, 37.74976 ], [ -122.057818, 37.751015 ], [ -122.059215, 37.752652 ], [ -122.062206, 37.748429 ], [ -122.061508, 37.743685 ], [ -122.059932, 37.738777 ], [ -122.061692, 37.729551 ], [ -122.065563, 37.720173 ], [ -122.068095, 37.720581 ], [ -122.075264, 37.720742 ], [ -122.079714, 37.724689 ], [ -122.080943, 37.733712 ], [ -122.079678, 37.735043 ], [ -122.07597, 37.737028 ], [ -122.075533, 37.737926 ], [ -122.0955, 37.72874 ], [ -122.095943, 37.727982 ], [ -122.094574, 37.728129 ], [ -122.097793, 37.726724 ], [ -122.100944, 37.727828 ], [ -122.107333, 37.721465 ], [ -122.117234, 37.726862 ], [ -122.118082, 37.727685 ], [ -122.119964, 37.732042 ], [ -122.118818, 37.732273 ], [ -122.115091, 37.735279 ], [ -122.115234, 37.739153 ], [ -122.114799, 37.74022 ], [ -122.114797, 37.741853 ], [ -122.115478, 37.74861 ], [ -122.115483, 37.748681 ], [ -122.115555, 37.748643 ], [ -122.115786, 37.748521 ], [ -122.116183, 37.750372 ], [ -122.120391, 37.756243 ], [ -122.121287, 37.757301 ], [ -122.122824, 37.759099 ], [ -122.128683, 37.769608 ], [ -122.131808, 37.775339 ], [ -122.133176, 37.777674 ], [ -122.134337, 37.778283 ], [ -122.134634, 37.778216 ], [ -122.143706, 37.787393 ], [ -122.141799, 37.789751 ], [ -122.143244, 37.790349 ], [ -122.143317, 37.793017 ], [ -122.152291, 37.793082 ], [ -122.152262, 37.796405 ], [ -122.15667, 37.796466 ], [ -122.158064, 37.797354 ], [ -122.159697, 37.800057 ], [ -122.162322, 37.800022 ], [ -122.161632, 37.801443 ], [ -122.164146, 37.802929 ], [ -122.165036, 37.805175 ], [ -122.16765, 37.805783 ], [ -122.170529, 37.804654 ], [ -122.17002, 37.801683 ], [ -122.168411, 37.80094 ], [ -122.168388, 37.799128 ], [ -122.170615, 37.800138 ], [ -122.176953, 37.804711 ], [ -122.178139, 37.803964 ], [ -122.179157, 37.804981 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430800", "AFFGEOID": "1400000US06001430800", "GEOID": "06001430800", "NAME_x": "4308", "LSAD": "CT", "ALAND": 1806078, "AWATER": 0, "NAME_y": "Census Tract 4308, Alameda County, California", "c_race": 5232, "c_white": 2914, "c_black": 99, "c_asian": 1193, "c_latinx": 701, "state_fips": 6, "county_fips": 1, "tract_fips": 430800, "med_rent": 1736.0, "med_hhinc": 83603.0, "c_tenants": 2108, "c_owners": 1514, "c_renters": 594, "c_movers": 5071, "c_stay": 4477, "c_movelocal": 417, "c_movecounty": 164, "c_movestate": 0, "c_moveabroad": 13, "c_commute": 2643, "c_car": 1700, "c_carpool": 304, "c_transit": 446, "c_bike": 19, "c_walk": 13, "year": 2018, "FIPS_11_digit": "06001430800", "p_white": 0.55695718654434245, "p_black": 0.018922018348623799, "p_asian": 0.22801987767584089, "p_latinx": 0.13398318042813451, "p_owners": 0.71821631878557879, "p_renters": 0.28178368121442121, "p_stay": 0.88286334056399129, "p_movelocal": 0.082232301321238405, "p_movecounty": 0.032340761191086503, "p_movestate": 0.0, "p_moveabroad": 0.0025635969236836001, "p_car": 0.64320847521755575, "p_carpool": 0.1150208096859629, "p_transit": 0.16874763526295869, "p_bike": 0.0071888006053725997, "p_walk": 0.0049186530457813 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.074098, 37.704751 ], [ -122.066723, 37.704396 ], [ -122.065057, 37.704265 ], [ -122.061196, 37.703886 ], [ -122.060579, 37.704023 ], [ -122.059219, 37.70389 ], [ -122.05787, 37.703751 ], [ -122.0554, 37.703809 ], [ -122.055829, 37.703045 ], [ -122.054474, 37.701567 ], [ -122.057033, 37.695062 ], [ -122.058284, 37.695727 ], [ -122.059972, 37.69359 ], [ -122.062299, 37.692962 ], [ -122.06251, 37.6929 ], [ -122.062442, 37.693508 ], [ -122.066555, 37.693216 ], [ -122.073132, 37.695476 ], [ -122.073974, 37.695616 ], [ -122.074064, 37.70131 ], [ -122.074064, 37.701822 ], [ -122.074098, 37.704751 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435900", "AFFGEOID": "1400000US06001435900", "GEOID": "06001435900", "NAME_x": "4359", "LSAD": "CT", "ALAND": 2411344, "AWATER": 17052, "NAME_y": "Census Tract 4359, Alameda County, California", "c_race": 5525, "c_white": 1658, "c_black": 376, "c_asian": 1503, "c_latinx": 1738, "state_fips": 6, "county_fips": 1, "tract_fips": 435900, "med_rent": 2042.0, "med_hhinc": 95678.0, "c_tenants": 1644, "c_owners": 1328, "c_renters": 316, "c_movers": 5469, "c_stay": 5293, "c_movelocal": 125, "c_movecounty": 41, "c_movestate": 0, "c_moveabroad": 10, "c_commute": 2326, "c_car": 1759, "c_carpool": 247, "c_transit": 166, "c_bike": 60, "c_walk": 3, "year": 2018, "FIPS_11_digit": "06001435900", "p_white": 0.30009049773755658, "p_black": 0.0680542986425339, "p_asian": 0.27203619909502258, "p_latinx": 0.31457013574660631, "p_owners": 0.80778588807785889, "p_renters": 0.19221411192214111, "p_stay": 0.96781861400621683, "p_movelocal": 0.022856098006948201, "p_movecounty": 0.0074968001462789998, "p_movestate": 0.0, "p_moveabroad": 0.0018284878405558, "p_car": 0.7562338779019776, "p_carpool": 0.1061908856405847, "p_transit": 0.0713671539122957, "p_bike": 0.025795356835769501, "p_walk": 0.0012897678417884001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.165429, 37.672979 ], [ -122.161705, 37.667748 ], [ -122.154383, 37.671505 ], [ -122.15232, 37.672564 ], [ -122.154468, 37.674886 ], [ -122.154719, 37.675163 ], [ -122.154555, 37.675241 ], [ -122.150992, 37.676863 ], [ -122.144491, 37.679733 ], [ -122.144078, 37.681571 ], [ -122.140219, 37.684295 ], [ -122.138702, 37.684738 ], [ -122.137002, 37.679616 ], [ -122.140019, 37.678407 ], [ -122.137654, 37.674688 ], [ -122.140156, 37.673672 ], [ -122.138487, 37.671443 ], [ -122.138138, 37.670989 ], [ -122.139617, 37.670306 ], [ -122.146907, 37.666863 ], [ -122.146992, 37.666837 ], [ -122.143759, 37.663352 ], [ -122.141891, 37.661356 ], [ -122.144476, 37.661531 ], [ -122.146976, 37.664431 ], [ -122.160859, 37.664481 ], [ -122.162676, 37.667297 ], [ -122.162802519462005, 37.667273013369702 ], [ -122.163049, 37.667933 ], [ -122.166512300212005, 37.672750355342203 ], [ -122.165429, 37.672979 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435103", "AFFGEOID": "1400000US06001435103", "GEOID": "06001435103", "NAME_x": "4351.03", "LSAD": "CT", "ALAND": 51482892, "AWATER": 0, "NAME_y": "Census Tract 4351.03, Alameda County, California", "c_race": 7400, "c_white": 2239, "c_black": 891, "c_asian": 3009, "c_latinx": 688, "state_fips": 6, "county_fips": 1, "tract_fips": 435103, "med_rent": 2849.0, "med_hhinc": 164914.0, "c_tenants": 2360, "c_owners": 2213, "c_renters": 147, "c_movers": 7356, "c_stay": 6869, "c_movelocal": 380, "c_movecounty": 91, "c_movestate": 16, "c_moveabroad": 0, "c_commute": 3809, "c_car": 2818, "c_carpool": 429, "c_transit": 320, "c_bike": 20, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001435103", "p_white": 0.30256756756756759, "p_black": 0.1204054054054054, "p_asian": 0.40662162162162158, "p_latinx": 0.092972972972972898, "p_owners": 0.93771186440677956, "p_renters": 0.062288135593220301, "p_stay": 0.93379554105492124, "p_movelocal": 0.051658510059815102, "p_movecounty": 0.0123708537248504, "p_movestate": 0.0021750951604131998, "p_moveabroad": 0.0, "p_car": 0.73982672617484901, "p_carpool": 0.11262798634812279, "p_transit": 0.084011551588343295, "p_bike": 0.0052507219742714004, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.047274, 37.690937 ], [ -122.044492, 37.692442 ], [ -122.043964, 37.694486 ], [ -122.045253, 37.695682 ], [ -122.040171, 37.700201 ], [ -122.036966, 37.701741 ], [ -122.036055, 37.701993 ], [ -122.027065, 37.698138 ], [ -122.024958, 37.698093 ], [ -122.020384, 37.699987 ], [ -122.020917, 37.697684 ], [ -122.022511, 37.696014 ], [ -122.018904, 37.694776 ], [ -122.014432, 37.694906 ], [ -122.01226, 37.69454 ], [ -122.008228, 37.695674 ], [ -122.006025, 37.695493 ], [ -122.003264, 37.696008 ], [ -122.002391, 37.693953 ], [ -122.000913, 37.693091 ], [ -121.999591, 37.691013 ], [ -121.996292, 37.690228 ], [ -121.992702, 37.689898 ], [ -121.99136, 37.688906 ], [ -121.987834, 37.687778 ], [ -121.986149, 37.687744 ], [ -121.984045, 37.689127 ], [ -121.979341, 37.678999 ], [ -121.978374, 37.678117 ], [ -121.975038, 37.674202 ], [ -121.968192, 37.671554 ], [ -121.964067, 37.671479 ], [ -121.963473, 37.672006 ], [ -121.963853, 37.669844 ], [ -121.96729, 37.666915 ], [ -121.967832, 37.664394 ], [ -121.967282, 37.663328 ], [ -121.964277, 37.662192 ], [ -121.951939, 37.65222 ], [ -121.950796, 37.653514 ], [ -121.950658, 37.653614 ], [ -121.950177, 37.653398 ], [ -121.949532, 37.652484 ], [ -121.948926, 37.65208 ], [ -121.948596, 37.651644 ], [ -121.948331, 37.651185 ], [ -121.948351, 37.650797 ], [ -121.948119, 37.650584 ], [ -121.947103, 37.649947 ], [ -121.942667, 37.645675 ], [ -121.938675, 37.640191 ], [ -121.93525, 37.637818 ], [ -121.934286, 37.63507 ], [ -121.933054, 37.634121 ], [ -121.931614, 37.632273 ], [ -121.930989, 37.630538 ], [ -121.930061, 37.630303 ], [ -121.929236, 37.629112 ], [ -121.927621, 37.628664 ], [ -121.926176, 37.626579 ], [ -121.925116, 37.621902 ], [ -121.923969, 37.618933 ], [ -121.922069, 37.618633 ], [ -121.916969, 37.614633 ], [ -121.911469, 37.608633 ], [ -121.909269, 37.607933 ], [ -121.908568, 37.606433 ], [ -121.904768, 37.603733 ], [ -121.904468, 37.602133 ], [ -121.902768, 37.600633 ], [ -121.896368, 37.597333 ], [ -121.898468, 37.595333 ], [ -121.896168, 37.594001 ], [ -121.903107, 37.59554 ], [ -121.905703, 37.595608 ], [ -121.912438, 37.593664 ], [ -121.916702, 37.594615 ], [ -121.920895, 37.597968 ], [ -121.924305, 37.599006 ], [ -121.925688, 37.598904 ], [ -121.930473, 37.595381 ], [ -121.93154, 37.592912 ], [ -121.932767, 37.591732 ], [ -121.936076, 37.591036 ], [ -121.93752, 37.592858 ], [ -121.938382, 37.598148 ], [ -121.940099, 37.598869 ], [ -121.946658, 37.597716 ], [ -121.947011, 37.597896 ], [ -121.945875, 37.598069 ], [ -121.947815, 37.601225 ], [ -121.948287, 37.603251 ], [ -121.946585, 37.605633 ], [ -121.945536, 37.60675 ], [ -121.945382, 37.609241 ], [ -121.942269, 37.610457 ], [ -121.941192, 37.612045 ], [ -121.941008, 37.613827 ], [ -121.944987, 37.617028 ], [ -121.943619, 37.620833 ], [ -121.943915, 37.626003 ], [ -121.943857, 37.626413 ], [ -121.94599, 37.628967 ], [ -121.950784, 37.63197 ], [ -121.951916, 37.633211 ], [ -121.954435, 37.635446 ], [ -121.958615, 37.636122 ], [ -121.960163, 37.636838 ], [ -121.962072, 37.638588 ], [ -121.963518, 37.640816 ], [ -121.967026, 37.643206 ], [ -121.9689, 37.643085 ], [ -121.978277, 37.639418 ], [ -121.981171, 37.635832 ], [ -121.983154, 37.634586 ], [ -121.987073, 37.634041 ], [ -121.989851, 37.633831 ], [ -121.991341, 37.630825 ], [ -121.991893, 37.63034 ], [ -121.996391, 37.6315 ], [ -121.998892, 37.630418 ], [ -121.999106, 37.629031 ], [ -122.002146, 37.627265 ], [ -122.005974, 37.627314 ], [ -122.006761, 37.627078 ], [ -122.013906, 37.631621 ], [ -122.013865, 37.631651 ], [ -122.012226, 37.632891 ], [ -122.01126, 37.633737 ], [ -122.015349, 37.63426 ], [ -122.019571, 37.636786 ], [ -122.019562, 37.638435 ], [ -122.016131, 37.642877 ], [ -122.017349, 37.643941 ], [ -122.022702, 37.647557 ], [ -122.028696, 37.647691 ], [ -122.031025, 37.645603 ], [ -122.035972, 37.645532 ], [ -122.034942, 37.646124 ], [ -122.039123, 37.648521 ], [ -122.038254, 37.649588 ], [ -122.036193, 37.64847 ], [ -122.033075, 37.652196 ], [ -122.034094, 37.655325 ], [ -122.029921, 37.65411 ], [ -122.025246, 37.654378 ], [ -122.022747, 37.656361 ], [ -122.02127, 37.655102 ], [ -122.017398, 37.65423 ], [ -122.017143, 37.655555 ], [ -122.018337, 37.658771 ], [ -122.024051, 37.661241 ], [ -122.02623, 37.661425 ], [ -122.027234, 37.663432 ], [ -122.027909, 37.664641 ], [ -122.027863, 37.667041 ], [ -122.029124, 37.672292 ], [ -122.032313, 37.675325 ], [ -122.033499, 37.676172 ], [ -122.036331, 37.675823 ], [ -122.043245, 37.674483 ], [ -122.044395, 37.674993 ], [ -122.040572, 37.679631 ], [ -122.042032, 37.68206 ], [ -122.043736, 37.686717 ], [ -122.044267, 37.687325 ], [ -122.045355, 37.688136 ], [ -122.046777, 37.688896 ], [ -122.047274, 37.690937 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436000", "AFFGEOID": "1400000US06001436000", "GEOID": "06001436000", "NAME_x": "4360", "LSAD": "CT", "ALAND": 1314438, "AWATER": 0, "NAME_y": "Census Tract 4360, Alameda County, California", "c_race": 4745, "c_white": 1474, "c_black": 29, "c_asian": 1235, "c_latinx": 1902, "state_fips": 6, "county_fips": 1, "tract_fips": 436000, "med_rent": 1955.0, "med_hhinc": 90887.0, "c_tenants": 1434, "c_owners": 1107, "c_renters": 327, "c_movers": 4668, "c_stay": 4367, "c_movelocal": 209, "c_movecounty": 27, "c_movestate": 23, "c_moveabroad": 42, "c_commute": 2206, "c_car": 1551, "c_carpool": 222, "c_transit": 298, "c_bike": 0, "c_walk": 16, "year": 2018, "FIPS_11_digit": "06001436000", "p_white": 0.31064278187565858, "p_black": 0.0061116965226553997, "p_asian": 0.26027397260273971, "p_latinx": 0.40084299262381451, "p_owners": 0.77196652719665271, "p_renters": 0.22803347280334729, "p_stay": 0.93551842330762636, "p_movelocal": 0.044772922022279303, "p_movecounty": 0.0057840616966579996, "p_movestate": 0.0049271636675235, "p_moveabroad": 0.0089974293059124997, "p_car": 0.70308250226654578, "p_carpool": 0.1006346328195829, "p_transit": 0.1350861287398005, "p_bike": 0.0, "p_walk": 0.0072529465095194003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.146907, 37.666863 ], [ -122.139617, 37.670306 ], [ -122.138138, 37.670989 ], [ -122.138487, 37.671443 ], [ -122.140156, 37.673672 ], [ -122.137654, 37.674688 ], [ -122.140019, 37.678407 ], [ -122.137002, 37.679616 ], [ -122.135038, 37.676622 ], [ -122.132929, 37.673297 ], [ -122.131341, 37.670834 ], [ -122.131278, 37.670533 ], [ -122.131378, 37.669775 ], [ -122.131253, 37.668305 ], [ -122.13096, 37.66513 ], [ -122.134816, 37.663278 ], [ -122.140802, 37.663134 ], [ -122.143759, 37.663352 ], [ -122.146992, 37.666837 ], [ -122.146907, 37.666863 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436402", "AFFGEOID": "1400000US06001436402", "GEOID": "06001436402", "NAME_x": "4364.02", "LSAD": "CT", "ALAND": 4262742, "AWATER": 0, "NAME_y": "Census Tract 4364.02, Alameda County, California", "c_race": 2665, "c_white": 1358, "c_black": 535, "c_asian": 258, "c_latinx": 382, "state_fips": 6, "county_fips": 1, "tract_fips": 436402, "med_rent": 3111.0, "med_hhinc": 129082.0, "c_tenants": 1050, "c_owners": 957, "c_renters": 93, "c_movers": 2661, "c_stay": 2576, "c_movelocal": 52, "c_movecounty": 33, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1339, "c_car": 1070, "c_carpool": 83, "c_transit": 63, "c_bike": 29, "c_walk": 23, "year": 2018, "FIPS_11_digit": "06001436402", "p_white": 0.50956848030018764, "p_black": 0.20075046904315191, "p_asian": 0.096810506566604101, "p_latinx": 0.1433395872420262, "p_owners": 0.91142857142857159, "p_renters": 0.088571428571428495, "p_stay": 0.96805712138293876, "p_movelocal": 0.019541525742202099, "p_movecounty": 0.012401352874859, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.79910380881254672, "p_carpool": 0.061986557132188203, "p_transit": 0.047050037341299401, "p_bike": 0.0216579536967886, "p_walk": 0.017176997759522 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.059028, 37.666282 ], [ -122.058259, 37.667188 ], [ -122.054798, 37.667879 ], [ -122.051948, 37.668487 ], [ -122.052503, 37.670166 ], [ -122.054303, 37.670838 ], [ -122.056135, 37.671076 ], [ -122.055763, 37.673401 ], [ -122.054587, 37.673672 ], [ -122.05233, 37.674004 ], [ -122.049032, 37.677089 ], [ -122.04829, 37.675993 ], [ -122.044395, 37.674993 ], [ -122.043245, 37.674483 ], [ -122.036331, 37.675823 ], [ -122.033499, 37.676172 ], [ -122.032313, 37.675325 ], [ -122.029124, 37.672292 ], [ -122.027863, 37.667041 ], [ -122.027909, 37.664641 ], [ -122.027234, 37.663432 ], [ -122.02623, 37.661425 ], [ -122.024051, 37.661241 ], [ -122.027474, 37.656088 ], [ -122.029447, 37.656389 ], [ -122.030611, 37.656325 ], [ -122.035979, 37.658562 ], [ -122.039159, 37.658404 ], [ -122.045212, 37.660971 ], [ -122.04839, 37.662652 ], [ -122.050913, 37.661718 ], [ -122.053837, 37.661906 ], [ -122.055612, 37.663999 ], [ -122.05743, 37.665059 ], [ -122.060868, 37.665709 ], [ -122.059028, 37.666282 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436700", "AFFGEOID": "1400000US06001436700", "GEOID": "06001436700", "NAME_x": "4367", "LSAD": "CT", "ALAND": 798273, "AWATER": 0, "NAME_y": "Census Tract 4367, Alameda County, California", "c_race": 3290, "c_white": 561, "c_black": 233, "c_asian": 841, "c_latinx": 1528, "state_fips": 6, "county_fips": 1, "tract_fips": 436700, "med_rent": 2167.0, "med_hhinc": 83456.0, "c_tenants": 1056, "c_owners": 596, "c_renters": 460, "c_movers": 3273, "c_stay": 2919, "c_movelocal": 238, "c_movecounty": 38, "c_movestate": 61, "c_moveabroad": 17, "c_commute": 1661, "c_car": 971, "c_carpool": 365, "c_transit": 186, "c_bike": 29, "c_walk": 51, "year": 2018, "FIPS_11_digit": "06001436700", "p_white": 0.17051671732522791, "p_black": 0.070820668693009098, "p_asian": 0.2556231003039513, "p_latinx": 0.46443768996960488, "p_owners": 0.56439393939393945, "p_renters": 0.43560606060606061, "p_stay": 0.89184234647112737, "p_movelocal": 0.072716162542010299, "p_movecounty": 0.011610143599144499, "p_movestate": 0.018637335777574, "p_moveabroad": 0.0051940116101435001, "p_car": 0.58458759783263092, "p_carpool": 0.21974714027694159, "p_transit": 0.11198073449729069, "p_bike": 0.017459361830222699, "p_walk": 0.0307043949428055 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.106786, 37.666439 ], [ -122.104008, 37.666502 ], [ -122.103352, 37.666519 ], [ -122.101184, 37.666442 ], [ -122.100231, 37.666572 ], [ -122.092598, 37.659886 ], [ -122.096908, 37.658225 ], [ -122.098136, 37.657768 ], [ -122.10161, 37.656422 ], [ -122.104762, 37.661487 ], [ -122.105877, 37.663287 ], [ -122.107778, 37.666352 ], [ -122.106786, 37.666439 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440305", "AFFGEOID": "1400000US06001440305", "GEOID": "06001440305", "NAME_x": "4403.05", "LSAD": "CT", "ALAND": 928519, "AWATER": 0, "NAME_y": "Census Tract 4403.05, Alameda County, California", "c_race": 4286, "c_white": 767, "c_black": 287, "c_asian": 2339, "c_latinx": 591, "state_fips": 6, "county_fips": 1, "tract_fips": 440305, "med_rent": 2425.0, "med_hhinc": 123375.0, "c_tenants": 1043, "c_owners": 876, "c_renters": 167, "c_movers": 4253, "c_stay": 4031, "c_movelocal": 106, "c_movecounty": 52, "c_movestate": 18, "c_moveabroad": 46, "c_commute": 1138, "c_car": 796, "c_carpool": 180, "c_transit": 69, "c_bike": 4, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001440305", "p_white": 0.17895473635090989, "p_black": 0.066962202519831995, "p_asian": 0.54573028464769013, "p_latinx": 0.13789080727951469, "p_owners": 0.83988494726749763, "p_renters": 0.1601150527325024, "p_stay": 0.94780155184575599, "p_movelocal": 0.024923583352927301, "p_movecounty": 0.0122266635316247, "p_movestate": 0.0042323066071008001, "p_moveabroad": 0.0108158946625911, "p_car": 0.69947275922671348, "p_carpool": 0.15817223198594019, "p_transit": 0.060632688927943698, "p_bike": 0.0035149384885763998, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.079639, 37.578245 ], [ -122.078159, 37.579931 ], [ -122.076131, 37.582267 ], [ -122.074061, 37.584622 ], [ -122.072807, 37.582663 ], [ -122.067944, 37.579904 ], [ -122.067613, 37.579422 ], [ -122.071751, 37.574728 ], [ -122.075984, 37.569928 ], [ -122.077758, 37.571572 ], [ -122.080862, 37.577771 ], [ -122.079639, 37.578245 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440308", "AFFGEOID": "1400000US06001440308", "GEOID": "06001440308", "NAME_x": "4403.08", "LSAD": "CT", "ALAND": 1843809, "AWATER": 0, "NAME_y": "Census Tract 4403.08, Alameda County, California", "c_race": 5856, "c_white": 921, "c_black": 212, "c_asian": 2885, "c_latinx": 1598, "state_fips": 6, "county_fips": 1, "tract_fips": 440308, "med_rent": 2042.0, "med_hhinc": 96923.0, "c_tenants": 1974, "c_owners": 1061, "c_renters": 913, "c_movers": 5786, "c_stay": 5327, "c_movelocal": 176, "c_movecounty": 69, "c_movestate": 75, "c_moveabroad": 139, "c_commute": 1827, "c_car": 1088, "c_carpool": 199, "c_transit": 301, "c_bike": 9, "c_walk": 12, "year": 2018, "FIPS_11_digit": "06001440308", "p_white": 0.15727459016393441, "p_black": 0.036202185792349698, "p_asian": 0.49265710382513661, "p_latinx": 0.2728825136612022, "p_owners": 0.53748733535967574, "p_renters": 0.4625126646403242, "p_stay": 0.92067058416868319, "p_movelocal": 0.0304182509505703, "p_movecounty": 0.011925337020394, "p_movestate": 0.012962322848254401, "p_moveabroad": 0.024023505012098101, "p_car": 0.59551176792556104, "p_carpool": 0.1089217296113847, "p_transit": 0.1647509578544061, "p_bike": 0.0049261083743842001, "p_walk": 0.0065681444991789002 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.038704, 37.587789 ], [ -122.036529, 37.590134 ], [ -122.034523, 37.59077 ], [ -122.033573, 37.591381 ], [ -122.032578, 37.594402 ], [ -122.030616, 37.595445 ], [ -122.029778, 37.600605 ], [ -122.029415, 37.601381 ], [ -122.026375, 37.598772 ], [ -122.025389, 37.597919 ], [ -122.027409, 37.596419 ], [ -122.026398, 37.595455 ], [ -122.020991, 37.593752 ], [ -122.019652, 37.592547 ], [ -122.021514, 37.587181 ], [ -122.023494, 37.581454 ], [ -122.023741, 37.580764 ], [ -122.024319, 37.579654 ], [ -122.02536, 37.578493 ], [ -122.03352, 37.586112 ], [ -122.038389, 37.587732 ], [ -122.038704, 37.587789 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440332", "AFFGEOID": "1400000US06001440332", "GEOID": "06001440332", "NAME_x": "4403.32", "LSAD": "CT", "ALAND": 2276490, "AWATER": 0, "NAME_y": "Census Tract 4403.32, Alameda County, California", "c_race": 3393, "c_white": 298, "c_black": 29, "c_asian": 2672, "c_latinx": 154, "state_fips": 6, "county_fips": 1, "tract_fips": 440332, "med_rent": 3348.0, "med_hhinc": 167269.0, "c_tenants": 895, "c_owners": 808, "c_renters": 87, "c_movers": 3371, "c_stay": 3135, "c_movelocal": 72, "c_movecounty": 22, "c_movestate": 136, "c_moveabroad": 6, "c_commute": 1335, "c_car": 961, "c_carpool": 194, "c_transit": 73, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001440332", "p_white": 0.087827880931329205, "p_black": 0.0085470085470084993, "p_asian": 0.78750368405540816, "p_latinx": 0.045387562628941898, "p_owners": 0.90279329608938563, "p_renters": 0.097206703910614506, "p_stay": 0.92999110056363099, "p_movelocal": 0.021358647285671901, "p_movecounty": 0.0065262533372885999, "p_movestate": 0.040344111539602399, "p_moveabroad": 0.0017798872738059, "p_car": 0.71985018726591765, "p_carpool": 0.1453183520599251, "p_transit": 0.0546816479400749, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.096532, 37.582925 ], [ -122.091011, 37.584893 ], [ -122.090926, 37.589037 ], [ -122.091485, 37.590001 ], [ -122.091951, 37.592747 ], [ -122.084393, 37.594808 ], [ -122.081, 37.593922 ], [ -122.081177, 37.591604 ], [ -122.081197, 37.587571 ], [ -122.080862, 37.577771 ], [ -122.077758, 37.571572 ], [ -122.075984, 37.569928 ], [ -122.077973, 37.57066 ], [ -122.084516, 37.567681 ], [ -122.086062, 37.566568 ], [ -122.084326, 37.568039 ], [ -122.083894, 37.569793 ], [ -122.085725, 37.573205 ], [ -122.082784, 37.574574 ], [ -122.083137, 37.57529 ], [ -122.085922, 37.574228 ], [ -122.087007, 37.578753 ], [ -122.089731, 37.578719 ], [ -122.095674, 37.579841 ], [ -122.096532, 37.582925 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440335", "AFFGEOID": "1400000US06001440335", "GEOID": "06001440335", "NAME_x": "4403.35", "LSAD": "CT", "ALAND": 2005294, "AWATER": 0, "NAME_y": "Census Tract 4403.35, Alameda County, California", "c_race": 6772, "c_white": 1267, "c_black": 264, "c_asian": 4228, "c_latinx": 679, "state_fips": 6, "county_fips": 1, "tract_fips": 440335, "med_rent": 2249.0, "med_hhinc": 161736.0, "c_tenants": 2269, "c_owners": 1225, "c_renters": 1044, "c_movers": 6586, "c_stay": 5740, "c_movelocal": 390, "c_movecounty": 330, "c_movestate": 36, "c_moveabroad": 90, "c_commute": 2590, "c_car": 1435, "c_carpool": 223, "c_transit": 611, "c_bike": 0, "c_walk": 107, "year": 2018, "FIPS_11_digit": "06001440335", "p_white": 0.1870939161252215, "p_black": 0.038984051978735897, "p_asian": 0.62433549911399877, "p_latinx": 0.1002658003544004, "p_owners": 0.53988541207580432, "p_renters": 0.46011458792419568, "p_stay": 0.87154570300637713, "p_movelocal": 0.059216519890677097, "p_movecounty": 0.050106286061342202, "p_movestate": 0.0054661402976009001, "p_moveabroad": 0.013665350744002399, "p_car": 0.55405405405405406, "p_carpool": 0.086100386100386103, "p_transit": 0.2359073359073359, "p_bike": 0.0, "p_walk": 0.041312741312741298 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.019652, 37.592547 ], [ -122.018634, 37.595312 ], [ -122.016057, 37.601974 ], [ -122.015637, 37.602313 ], [ -122.001372, 37.589602 ], [ -122.005866, 37.586484 ], [ -122.006518, 37.582799 ], [ -122.006515, 37.582662 ], [ -122.007772, 37.582879 ], [ -122.017502, 37.586023 ], [ -122.021514, 37.587181 ], [ -122.019652, 37.592547 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441302", "AFFGEOID": "1400000US06001441302", "GEOID": "06001441302", "NAME_x": "4413.02", "LSAD": "CT", "ALAND": 1994668, "AWATER": 0, "NAME_y": "Census Tract 4413.02, Alameda County, California", "c_race": 5902, "c_white": 1569, "c_black": 133, "c_asian": 2930, "c_latinx": 900, "state_fips": 6, "county_fips": 1, "tract_fips": 441302, "med_rent": 2157.0, "med_hhinc": 118667.0, "c_tenants": 1880, "c_owners": 1159, "c_renters": 721, "c_movers": 5753, "c_stay": 5311, "c_movelocal": 295, "c_movecounty": 65, "c_movestate": 60, "c_moveabroad": 22, "c_commute": 2096, "c_car": 1586, "c_carpool": 185, "c_transit": 137, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441302", "p_white": 0.26584208742799048, "p_black": 0.022534733988478401, "p_asian": 0.49644188410708229, "p_latinx": 0.1524906811250423, "p_owners": 0.61648936170212765, "p_renters": 0.3835106382978723, "p_stay": 0.92317051972883724, "p_movelocal": 0.0512775942986268, "p_movecounty": 0.0112984529810533, "p_movestate": 0.01042934121328, "p_moveabroad": 0.0038240917782026, "p_car": 0.75667938931297707, "p_carpool": 0.0882633587786259, "p_transit": 0.065362595419847305, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.0268, 37.576923 ], [ -122.02536, 37.578493 ], [ -122.025167, 37.578299 ], [ -122.023839, 37.577032 ], [ -122.01831, 37.574432 ], [ -122.017621, 37.574157 ], [ -122.01413, 37.572077 ], [ -122.014542, 37.571712 ], [ -122.009762, 37.568755 ], [ -122.008843, 37.566782 ], [ -122.00816, 37.565535 ], [ -122.007128, 37.564636 ], [ -122.010656, 37.561845 ], [ -122.011693, 37.56059 ], [ -122.015983, 37.562705 ], [ -122.022784, 37.566055 ], [ -122.026791, 37.567989 ], [ -122.032429, 37.570799 ], [ -122.0268, 37.576923 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441521", "AFFGEOID": "1400000US06001441521", "GEOID": "06001441521", "NAME_x": "4415.21", "LSAD": "CT", "ALAND": 1710851, "AWATER": 0, "NAME_y": "Census Tract 4415.21, Alameda County, California", "c_race": 6170, "c_white": 1131, "c_black": 87, "c_asian": 4198, "c_latinx": 446, "state_fips": 6, "county_fips": 1, "tract_fips": 441521, "med_rent": 2835.0, "med_hhinc": 157892.0, "c_tenants": 1822, "c_owners": 1371, "c_renters": 451, "c_movers": 6078, "c_stay": 5633, "c_movelocal": 138, "c_movecounty": 87, "c_movestate": 67, "c_moveabroad": 153, "c_commute": 2354, "c_car": 1672, "c_carpool": 203, "c_transit": 264, "c_bike": 7, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441521", "p_white": 0.1833063209076175, "p_black": 0.014100486223662801, "p_asian": 0.68038897893030792, "p_latinx": 0.072285251215559093, "p_owners": 0.75246981339187702, "p_renters": 0.2475301866081229, "p_stay": 0.92678512668641, "p_movelocal": 0.022704837117472801, "p_movecounty": 0.014313919052319799, "p_movestate": 0.0110233629483382, "p_moveabroad": 0.025172754195459002, "p_car": 0.71028037383177567, "p_carpool": 0.086236193712829201, "p_transit": 0.1121495327102803, "p_bike": 0.0029736618521665, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.062817, 37.571168 ], [ -122.060222, 37.573995 ], [ -122.060428, 37.574893 ], [ -122.05502, 37.581152 ], [ -122.054663, 37.581737 ], [ -122.052073, 37.580335 ], [ -122.050647, 37.579702 ], [ -122.048354, 37.578599 ], [ -122.045512, 37.570834 ], [ -122.04452, 37.569316 ], [ -122.043128, 37.56773 ], [ -122.045396, 37.567774 ], [ -122.047157, 37.567492 ], [ -122.051618, 37.566778 ], [ -122.053918, 37.566287 ], [ -122.058659, 37.567463 ], [ -122.059295, 37.569413 ], [ -122.061609, 37.569517 ], [ -122.062817, 37.571168 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441524", "AFFGEOID": "1400000US06001441524", "GEOID": "06001441524", "NAME_x": "4415.24", "LSAD": "CT", "ALAND": 1680736, "AWATER": 0, "NAME_y": "Census Tract 4415.24, Alameda County, California", "c_race": 4428, "c_white": 432, "c_black": 100, "c_asian": 3644, "c_latinx": 165, "state_fips": 6, "county_fips": 1, "tract_fips": 441524, "med_rent": 2564.0, "med_hhinc": 150250.0, "c_tenants": 1424, "c_owners": 879, "c_renters": 545, "c_movers": 4350, "c_stay": 3827, "c_movelocal": 198, "c_movecounty": 147, "c_movestate": 77, "c_moveabroad": 101, "c_commute": 1548, "c_car": 903, "c_carpool": 274, "c_transit": 273, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441524", "p_white": 0.097560975609756101, "p_black": 0.022583559168924999, "p_asian": 0.82294489611562782, "p_latinx": 0.037262872628726199, "p_owners": 0.6172752808988764, "p_renters": 0.3827247191011236, "p_stay": 0.87977011494252877, "p_movelocal": 0.045517241379310298, "p_movecounty": 0.033793103448275803, "p_movestate": 0.017701149425287301, "p_moveabroad": 0.023218390804597699, "p_car": 0.58333333333333337, "p_carpool": 0.17700258397932811, "p_transit": 0.1763565891472868, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.058659, 37.567463 ], [ -122.053918, 37.566287 ], [ -122.051618, 37.566778 ], [ -122.051018, 37.565772 ], [ -122.050557, 37.563433 ], [ -122.049546, 37.562099 ], [ -122.048483, 37.560763 ], [ -122.043967, 37.562632 ], [ -122.041476, 37.56496 ], [ -122.041645, 37.56634 ], [ -122.038506, 37.563408 ], [ -122.042502, 37.558503 ], [ -122.045052, 37.556261 ], [ -122.05208, 37.551742 ], [ -122.05518, 37.549454 ], [ -122.055233, 37.549743 ], [ -122.056879, 37.55768 ], [ -122.057411, 37.560196 ], [ -122.058404, 37.565056 ], [ -122.059295, 37.569413 ], [ -122.058659, 37.567463 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441602", "AFFGEOID": "1400000US06001441602", "GEOID": "06001441602", "NAME_x": "4416.02", "LSAD": "CT", "ALAND": 1682081, "AWATER": 0, "NAME_y": "Census Tract 4416.02, Alameda County, California", "c_race": 8069, "c_white": 1630, "c_black": 384, "c_asian": 4042, "c_latinx": 1393, "state_fips": 6, "county_fips": 1, "tract_fips": 441602, "med_rent": 2169.0, "med_hhinc": 106429.0, "c_tenants": 2316, "c_owners": 1290, "c_renters": 1026, "c_movers": 8011, "c_stay": 7527, "c_movelocal": 107, "c_movecounty": 179, "c_movestate": 0, "c_moveabroad": 198, "c_commute": 3103, "c_car": 2216, "c_carpool": 351, "c_transit": 216, "c_bike": 19, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441602", "p_white": 0.2020076837278473, "p_black": 0.047589540215640103, "p_asian": 0.50092948320733677, "p_latinx": 0.1726360143760069, "p_owners": 0.55699481865284972, "p_renters": 0.44300518134715028, "p_stay": 0.93958307327424795, "p_movelocal": 0.013356634627387299, "p_movecounty": 0.022344276619647899, "p_movestate": 0.0, "p_moveabroad": 0.024716015478716699, "p_car": 0.71414759909764747, "p_carpool": 0.11311633902674829, "p_transit": 0.069610054785691197, "p_bike": 0.0061231066709634997, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.029433, 37.556304 ], [ -122.027608, 37.556687 ], [ -122.026697, 37.55787 ], [ -122.025352, 37.559602 ], [ -122.024827, 37.563501 ], [ -122.022784, 37.566055 ], [ -122.015983, 37.562705 ], [ -122.011693, 37.56059 ], [ -122.012436, 37.559589 ], [ -122.01598, 37.554921 ], [ -122.018861, 37.551426 ], [ -122.022895, 37.546533 ], [ -122.028684, 37.554125 ], [ -122.031219, 37.556592 ], [ -122.029433, 37.556304 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441925", "AFFGEOID": "1400000US06001441925", "GEOID": "06001441925", "NAME_x": "4419.25", "LSAD": "CT", "ALAND": 3003363, "AWATER": 264744, "NAME_y": "Census Tract 4419.25, Alameda County, California", "c_race": 7165, "c_white": 1112, "c_black": 385, "c_asian": 4834, "c_latinx": 547, "state_fips": 6, "county_fips": 1, "tract_fips": 441925, "med_rent": 2370.0, "med_hhinc": 123670.0, "c_tenants": 3000, "c_owners": 494, "c_renters": 2506, "c_movers": 6914, "c_stay": 4353, "c_movelocal": 1065, "c_movecounty": 463, "c_movestate": 355, "c_moveabroad": 678, "c_commute": 3149, "c_car": 1713, "c_carpool": 123, "c_transit": 942, "c_bike": 0, "c_walk": 41, "year": 2018, "FIPS_11_digit": "06001441925", "p_white": 0.15519888346127, "p_black": 0.053733426378227402, "p_asian": 0.67466852756454987, "p_latinx": 0.0763433356594556, "p_owners": 0.1646666666666666, "p_renters": 0.83533333333333337, "p_stay": 0.62959213190627716, "p_movelocal": 0.15403529071449229, "p_movecounty": 0.066965577089962397, "p_movestate": 0.051345096904830703, "p_moveabroad": 0.098061903384437293, "p_car": 0.54398221657669099, "p_carpool": 0.039060019053667801, "p_transit": 0.29914258494760237, "p_bike": 0.0, "p_walk": 0.0130200063512226 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.976036, 37.554114 ], [ -121.972862, 37.558069 ], [ -121.971102, 37.559296 ], [ -121.967861, 37.561283 ], [ -121.966533, 37.562069 ], [ -121.96222, 37.565012 ], [ -121.961473, 37.565571 ], [ -121.95739, 37.561093 ], [ -121.957047, 37.560814 ], [ -121.955638, 37.55985 ], [ -121.954944, 37.550201 ], [ -121.954346, 37.541835 ], [ -121.959556, 37.541198 ], [ -121.960601, 37.541672 ], [ -121.962678, 37.543428 ], [ -121.965301, 37.545087 ], [ -121.968099, 37.546913 ], [ -121.972262, 37.549115 ], [ -121.977734, 37.55192 ], [ -121.976036, 37.554114 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441927", "AFFGEOID": "1400000US06001441927", "GEOID": "06001441927", "NAME_x": "4419.27", "LSAD": "CT", "ALAND": 650133, "AWATER": 0, "NAME_y": "Census Tract 4419.27, Alameda County, California", "c_race": 4512, "c_white": 563, "c_black": 118, "c_asian": 3076, "c_latinx": 532, "state_fips": 6, "county_fips": 1, "tract_fips": 441927, "med_rent": 2266.0, "med_hhinc": 102604.0, "c_tenants": 1760, "c_owners": 472, "c_renters": 1288, "c_movers": 4414, "c_stay": 3330, "c_movelocal": 253, "c_movecounty": 408, "c_movestate": 169, "c_moveabroad": 254, "c_commute": 1628, "c_car": 981, "c_carpool": 189, "c_transit": 274, "c_bike": 0, "c_walk": 71, "year": 2018, "FIPS_11_digit": "06001441927", "p_white": 0.1247783687943262, "p_black": 0.026152482269503501, "p_asian": 0.68173758865248224, "p_latinx": 0.11790780141843971, "p_owners": 0.26818181818181819, "p_renters": 0.73181818181818181, "p_stay": 0.7544177616674218, "p_movelocal": 0.0573176257362936, "p_movecounty": 0.092433167195287699, "p_movestate": 0.0382872677843226, "p_moveabroad": 0.0575441776166742, "p_car": 0.60257985257985258, "p_carpool": 0.1160933660933661, "p_transit": 0.16830466830466831, "p_bike": 0.0, "p_walk": 0.043611793611793598 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.982594, 37.54556 ], [ -121.977734, 37.55192 ], [ -121.972262, 37.549115 ], [ -121.973119, 37.544395 ], [ -121.973085, 37.544047 ], [ -121.972768, 37.542258 ], [ -121.973146, 37.540693 ], [ -121.976822, 37.542597 ], [ -121.980761, 37.544614 ], [ -121.980866, 37.544669 ], [ -121.982594, 37.54556 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442700", "AFFGEOID": "1400000US06001442700", "GEOID": "06001442700", "NAME_x": "4427", "LSAD": "CT", "ALAND": 1234034, "AWATER": 0, "NAME_y": "Census Tract 4427, Alameda County, California", "c_race": 3118, "c_white": 1118, "c_black": 161, "c_asian": 1223, "c_latinx": 519, "state_fips": 6, "county_fips": 1, "tract_fips": 442700, "med_rent": 2259.0, "med_hhinc": 131579.0, "c_tenants": 1046, "c_owners": 729, "c_renters": 317, "c_movers": 3086, "c_stay": 2692, "c_movelocal": 276, "c_movecounty": 43, "c_movestate": 40, "c_moveabroad": 35, "c_commute": 1228, "c_car": 872, "c_carpool": 74, "c_transit": 157, "c_bike": 0, "c_walk": 48, "year": 2018, "FIPS_11_digit": "06001442700", "p_white": 0.35856318152661959, "p_black": 0.051635663887107101, "p_asian": 0.39223861449647202, "p_latinx": 0.16645285439384219, "p_owners": 0.69694072657743789, "p_renters": 0.30305927342256211, "p_stay": 0.87232663642255348, "p_movelocal": 0.089436163318211206, "p_movecounty": 0.0139338950097213, "p_movestate": 0.012961762799740701, "p_moveabroad": 0.0113415424497731, "p_car": 0.71009771986970682, "p_carpool": 0.060260586319218198, "p_transit": 0.12785016286644951, "p_bike": 0.0, "p_walk": 0.039087947882736097 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.016558, 37.540277 ], [ -122.013712, 37.544194 ], [ -122.005337, 37.539893 ], [ -121.998519, 37.536371 ], [ -122.000848, 37.533483 ], [ -122.001341, 37.532891 ], [ -122.00236, 37.529774 ], [ -122.014861, 37.536695 ], [ -122.017348, 37.539133 ], [ -122.016558, 37.540277 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442800", "AFFGEOID": "1400000US06001442800", "GEOID": "06001442800", "NAME_x": "4428", "LSAD": "CT", "ALAND": 1278647, "AWATER": 0, "NAME_y": "Census Tract 4428, Alameda County, California", "c_race": 2836, "c_white": 1020, "c_black": 49, "c_asian": 1202, "c_latinx": 460, "state_fips": 6, "county_fips": 1, "tract_fips": 442800, "med_rent": 2522.0, "med_hhinc": 107337.0, "c_tenants": 904, "c_owners": 749, "c_renters": 155, "c_movers": 2817, "c_stay": 2554, "c_movelocal": 151, "c_movecounty": 82, "c_movestate": 0, "c_moveabroad": 30, "c_commute": 1222, "c_car": 893, "c_carpool": 160, "c_transit": 74, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001442800", "p_white": 0.35966149506346962, "p_black": 0.017277856135401899, "p_asian": 0.42383638928067702, "p_latinx": 0.16220028208744711, "p_owners": 0.82853982300884954, "p_renters": 0.1714601769911504, "p_stay": 0.90663826766063182, "p_movelocal": 0.053603123890663802, "p_movecounty": 0.029108981185658502, "p_movestate": 0.0, "p_moveabroad": 0.0106496272630457, "p_car": 0.73076923076923073, "p_carpool": 0.13093289689034371, "p_transit": 0.060556464811783901, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.001341, 37.532891 ], [ -122.000848, 37.533483 ], [ -121.998519, 37.536371 ], [ -121.991774, 37.532928 ], [ -121.985797, 37.529846 ], [ -121.983044, 37.528437 ], [ -121.98498, 37.526076 ], [ -121.987048, 37.523532 ], [ -121.987767, 37.522432 ], [ -121.987975, 37.522531 ], [ -122.00236, 37.529774 ], [ -122.001341, 37.532891 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443103", "AFFGEOID": "1400000US06001443103", "GEOID": "06001443103", "NAME_x": "4431.03", "LSAD": "CT", "ALAND": 15516570, "AWATER": 0, "NAME_y": "Census Tract 4431.03, Alameda County, California", "c_race": 3937, "c_white": 301, "c_black": 15, "c_asian": 3323, "c_latinx": 157, "state_fips": 6, "county_fips": 1, "tract_fips": 443103, "med_rent": 2872.0, "med_hhinc": 208125.0, "c_tenants": 1211, "c_owners": 1126, "c_renters": 85, "c_movers": 3912, "c_stay": 3742, "c_movelocal": 5, "c_movecounty": 24, "c_movestate": 86, "c_moveabroad": 55, "c_commute": 1641, "c_car": 1412, "c_carpool": 13, "c_transit": 61, "c_bike": 0, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001443103", "p_white": 0.076454152908305803, "p_black": 0.0038100076200152, "p_asian": 0.84404368808737618, "p_latinx": 0.0398780797561595, "p_owners": 0.92981007431874485, "p_renters": 0.070189925681255094, "p_stay": 0.95654396728016355, "p_movelocal": 0.0012781186094068999, "p_movecounty": 0.0061349693251532998, "p_movestate": 0.0219836400817995, "p_moveabroad": 0.0140593047034764, "p_car": 0.86045094454600857, "p_carpool": 0.0079219987812309007, "p_transit": 0.037172455819622099, "p_bike": 0.0, "p_walk": 0.011578305911029801 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.920781, 37.543989 ], [ -121.919996, 37.54546 ], [ -121.91935, 37.548942 ], [ -121.918111, 37.551243 ], [ -121.916594, 37.554318 ], [ -121.915773, 37.555392 ], [ -121.909657, 37.554242 ], [ -121.908172, 37.551761 ], [ -121.907135, 37.549325 ], [ -121.905265, 37.549154 ], [ -121.901041, 37.545913 ], [ -121.891343, 37.549735 ], [ -121.88754, 37.544037 ], [ -121.886842, 37.535653 ], [ -121.880651, 37.52827 ], [ -121.87932, 37.526324 ], [ -121.879898, 37.52526 ], [ -121.881366, 37.521506 ], [ -121.883611, 37.51721 ], [ -121.884813, 37.513747 ], [ -121.885015, 37.512034 ], [ -121.883021, 37.503306 ], [ -121.885104, 37.503516 ], [ -121.889453, 37.507369 ], [ -121.893611, 37.508569 ], [ -121.905257, 37.504381 ], [ -121.916304, 37.502037 ], [ -121.919461, 37.502066 ], [ -121.919646, 37.506684 ], [ -121.919759, 37.510454 ], [ -121.919252, 37.513607 ], [ -121.917942, 37.517937 ], [ -121.917794, 37.520775 ], [ -121.9178, 37.525029 ], [ -121.917953, 37.526126 ], [ -121.920035, 37.533423 ], [ -121.920646, 37.535488 ], [ -121.924387, 37.540631 ], [ -121.920781, 37.543989 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443200", "AFFGEOID": "1400000US06001443200", "GEOID": "06001443200", "NAME_x": "4432", "LSAD": "CT", "ALAND": 13666438, "AWATER": 0, "NAME_y": "Census Tract 4432, Alameda County, California", "c_race": 3886, "c_white": 720, "c_black": 0, "c_asian": 2861, "c_latinx": 52, "state_fips": 6, "county_fips": 1, "tract_fips": 443200, "med_rent": null, "med_hhinc": 223634.0, "c_tenants": 1217, "c_owners": 1207, "c_renters": 10, "c_movers": 3850, "c_stay": 3608, "c_movelocal": 119, "c_movecounty": 51, "c_movestate": 14, "c_moveabroad": 58, "c_commute": 1574, "c_car": 1246, "c_carpool": 102, "c_transit": 53, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001443200", "p_white": 0.1852804940813175, "p_black": 0.0, "p_asian": 0.73623262995367988, "p_latinx": 0.013381369016984, "p_owners": 0.99178307313064917, "p_renters": 0.0082169268693508008, "p_stay": 0.93714285714285717, "p_movelocal": 0.0309090909090909, "p_movecounty": 0.013246753246753199, "p_movestate": 0.0036363636363635999, "p_moveabroad": 0.015064935064935, "p_car": 0.79161372299872934, "p_carpool": 0.064803049555273107, "p_transit": 0.033672172808132103, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.920248, 37.497728 ], [ -121.919391, 37.500449 ], [ -121.919461, 37.502066 ], [ -121.916304, 37.502037 ], [ -121.905257, 37.504381 ], [ -121.893611, 37.508569 ], [ -121.889453, 37.507369 ], [ -121.885104, 37.503516 ], [ -121.883021, 37.503306 ], [ -121.882695, 37.501666 ], [ -121.884102, 37.499463 ], [ -121.882368, 37.493537 ], [ -121.877878, 37.490378 ], [ -121.867784, 37.483033 ], [ -121.869934, 37.48168 ], [ -121.871047, 37.479241 ], [ -121.874009, 37.477407 ], [ -121.875205, 37.475215 ], [ -121.877236, 37.475227 ], [ -121.880251, 37.471548 ], [ -121.882603, 37.470554 ], [ -121.885966, 37.471375 ], [ -121.889352, 37.470102 ], [ -121.890759, 37.468038 ], [ -121.891386, 37.46785 ], [ -121.898038, 37.466768 ], [ -121.898842, 37.465954 ], [ -121.903917, 37.46454 ], [ -121.905446, 37.466415 ], [ -121.910048, 37.472697 ], [ -121.913337, 37.482889 ], [ -121.913802, 37.484061 ], [ -121.918502, 37.490941 ], [ -121.919584, 37.492341 ], [ -121.923012, 37.495572 ], [ -121.920248, 37.497728 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444601", "AFFGEOID": "1400000US06001444601", "GEOID": "06001444601", "NAME_x": "4446.01", "LSAD": "CT", "ALAND": 3055830, "AWATER": 0, "NAME_y": "Census Tract 4446.01, Alameda County, California", "c_race": 5741, "c_white": 1626, "c_black": 316, "c_asian": 2157, "c_latinx": 1459, "state_fips": 6, "county_fips": 1, "tract_fips": 444601, "med_rent": 2814.0, "med_hhinc": 130882.0, "c_tenants": 1710, "c_owners": 1528, "c_renters": 182, "c_movers": 5712, "c_stay": 5131, "c_movelocal": 343, "c_movecounty": 219, "c_movestate": 7, "c_moveabroad": 12, "c_commute": 1877, "c_car": 1334, "c_carpool": 313, "c_transit": 45, "c_bike": 0, "c_walk": 34, "year": 2018, "FIPS_11_digit": "06001444601", "p_white": 0.28322591882947218, "p_black": 0.055042675492074498, "p_asian": 0.37571851593798988, "p_latinx": 0.25413690994600241, "p_owners": 0.89356725146198834, "p_renters": 0.1064327485380117, "p_stay": 0.89828431372549022, "p_movelocal": 0.060049019607843097, "p_movecounty": 0.038340336134453701, "p_movestate": 0.0012254901960783999, "p_moveabroad": 0.0021008403361343999, "p_car": 0.71070857751731487, "p_carpool": 0.16675546084176879, "p_transit": 0.023974427277570501, "p_bike": 0.0, "p_walk": 0.018114011720831099 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.029818, 37.523848 ], [ -122.025828, 37.528748 ], [ -122.023475, 37.531679 ], [ -122.023339, 37.53242 ], [ -122.022761, 37.532587 ], [ -122.018923, 37.537007 ], [ -122.017348, 37.539133 ], [ -122.014861, 37.536695 ], [ -122.00236, 37.529774 ], [ -122.005166, 37.528147 ], [ -122.007773, 37.524999 ], [ -122.008326, 37.524306 ], [ -122.012103, 37.515625 ], [ -122.029716, 37.523801 ], [ -122.029818, 37.523848 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450101", "AFFGEOID": "1400000US06001450101", "GEOID": "06001450101", "NAME_x": "4501.01", "LSAD": "CT", "ALAND": 1772100, "AWATER": 0, "NAME_y": "Census Tract 4501.01, Alameda County, California", "c_race": 5573, "c_white": 1784, "c_black": 281, "c_asian": 2684, "c_latinx": 313, "state_fips": 6, "county_fips": 1, "tract_fips": 450101, "med_rent": 2628.0, "med_hhinc": 139583.0, "c_tenants": 2094, "c_owners": 650, "c_renters": 1444, "c_movers": 5504, "c_stay": 3812, "c_movelocal": 630, "c_movecounty": 469, "c_movestate": 291, "c_moveabroad": 302, "c_commute": 3026, "c_car": 1922, "c_carpool": 152, "c_transit": 636, "c_bike": 16, "c_walk": 104, "year": 2018, "FIPS_11_digit": "06001450101", "p_white": 0.3201148394042706, "p_black": 0.050421675937555997, "p_asian": 0.4816077516597882, "p_latinx": 0.056163646151085503, "p_owners": 0.3104106972301815, "p_renters": 0.68958930276981856, "p_stay": 0.69258720930232553, "p_movelocal": 0.11446220930232549, "p_movecounty": 0.085210755813953404, "p_movestate": 0.052870639534883697, "p_moveabroad": 0.0548691860465116, "p_car": 0.63516192994051557, "p_carpool": 0.050231328486450698, "p_transit": 0.2101784534038334, "p_bike": 0.0052875082617315997, "p_walk": 0.034368803701255703 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.903945, 37.705858 ], [ -121.898789, 37.705804 ], [ -121.896463, 37.706195 ], [ -121.893186, 37.706292 ], [ -121.893203, 37.708982 ], [ -121.888855, 37.708655 ], [ -121.878182, 37.708564 ], [ -121.872007, 37.710044 ], [ -121.872187, 37.70257 ], [ -121.872265, 37.701817 ], [ -121.878823, 37.701841 ], [ -121.898803, 37.702011 ], [ -121.903945, 37.705858 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450502", "AFFGEOID": "1400000US06001450502", "GEOID": "06001450502", "NAME_x": "4505.02", "LSAD": "CT", "ALAND": 11093660, "AWATER": 0, "NAME_y": "Census Tract 4505.02, Alameda County, California", "c_race": 5880, "c_white": 2709, "c_black": 128, "c_asian": 2075, "c_latinx": 381, "state_fips": 6, "county_fips": 1, "tract_fips": 450502, "med_rent": 2462.0, "med_hhinc": 165655.0, "c_tenants": 1913, "c_owners": 1621, "c_renters": 292, "c_movers": 5783, "c_stay": 4905, "c_movelocal": 266, "c_movecounty": 456, "c_movestate": 89, "c_moveabroad": 67, "c_commute": 2965, "c_car": 2188, "c_carpool": 246, "c_transit": 312, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450502", "p_white": 0.46071428571428569, "p_black": 0.021768707482993099, "p_asian": 0.35289115646258501, "p_latinx": 0.064795918367346897, "p_owners": 0.84736016727652896, "p_renters": 0.1526398327234709, "p_stay": 0.848175687359502, "p_movelocal": 0.045996887428670197, "p_movecounty": 0.078851807020577494, "p_movestate": 0.0153899360193671, "p_moveabroad": 0.0115856821718831, "p_car": 0.73794266441821244, "p_carpool": 0.082967959527824597, "p_transit": 0.1052276559865092, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.001277, 37.703728 ], [ -121.977937, 37.724004 ], [ -121.97293, 37.728168 ], [ -121.97247, 37.728528 ], [ -121.96077, 37.718629 ], [ -121.955261, 37.719857 ], [ -121.949041, 37.721278 ], [ -121.943695, 37.722722 ], [ -121.942383, 37.722946 ], [ -121.939488, 37.713904 ], [ -121.942935, 37.713605 ], [ -121.94476, 37.713119 ], [ -121.945255, 37.713227 ], [ -121.945489, 37.712558 ], [ -121.948112, 37.710493 ], [ -121.94609, 37.70459 ], [ -121.945971, 37.703563 ], [ -121.945739, 37.702277 ], [ -121.944553, 37.700265 ], [ -121.944004, 37.699785 ], [ -121.935788, 37.70209 ], [ -121.935454, 37.700535 ], [ -121.9354, 37.700297 ], [ -121.93813, 37.698628 ], [ -121.940096, 37.698806 ], [ -121.956217, 37.698699 ], [ -121.956222, 37.698612 ], [ -121.967972, 37.697374 ], [ -121.977662, 37.698542 ], [ -121.987177, 37.699931 ], [ -121.993682, 37.702371 ], [ -121.99859, 37.703539 ], [ -122.001277, 37.703728 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450602", "AFFGEOID": "1400000US06001450602", "GEOID": "06001450602", "NAME_x": "4506.02", "LSAD": "CT", "ALAND": 6197078, "AWATER": 0, "NAME_y": "Census Tract 4506.02, Alameda County, California", "c_race": 10096, "c_white": 5312, "c_black": 207, "c_asian": 3415, "c_latinx": 821, "state_fips": 6, "county_fips": 1, "tract_fips": 450602, "med_rent": 2282.0, "med_hhinc": 151336.0, "c_tenants": 3465, "c_owners": 2642, "c_renters": 823, "c_movers": 9984, "c_stay": 8826, "c_movelocal": 389, "c_movecounty": 391, "c_movestate": 176, "c_moveabroad": 202, "c_commute": 4502, "c_car": 3275, "c_carpool": 341, "c_transit": 394, "c_bike": 24, "c_walk": 189, "year": 2018, "FIPS_11_digit": "06001450602", "p_white": 0.52614896988906501, "p_black": 0.0205031695721077, "p_asian": 0.33825277337559428, "p_latinx": 0.081319334389857306, "p_owners": 0.76248196248196243, "p_renters": 0.23751803751803749, "p_stay": 0.88401442307692313, "p_movelocal": 0.038962339743589702, "p_movecounty": 0.039162660256410201, "p_movestate": 0.0176282051282051, "p_moveabroad": 0.020232371794871699, "p_car": 0.72745446468236341, "p_carpool": 0.075744113727232304, "p_transit": 0.087516659262549895, "p_bike": 0.0053309640159927996, "p_walk": 0.041981341625944003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.934962, 37.698517 ], [ -121.928986, 37.69973 ], [ -121.927523, 37.70006 ], [ -121.922584, 37.701134 ], [ -121.917161, 37.687219 ], [ -121.91101, 37.671534 ], [ -121.91054, 37.670322 ], [ -121.909748, 37.668303 ], [ -121.909695, 37.668166 ], [ -121.908162, 37.664567 ], [ -121.906326, 37.661758 ], [ -121.904666, 37.659938 ], [ -121.888392, 37.644277 ], [ -121.88835, 37.644236 ], [ -121.885487, 37.641498 ], [ -121.884418, 37.639949 ], [ -121.886192, 37.639007 ], [ -121.886674, 37.638665 ], [ -121.891114, 37.637362 ], [ -121.893142, 37.639039 ], [ -121.903502, 37.646977 ], [ -121.904035, 37.647546 ], [ -121.910923, 37.659714 ], [ -121.913485, 37.662115 ], [ -121.915721, 37.663663 ], [ -121.917897, 37.6663 ], [ -121.918121, 37.666579 ], [ -121.919128, 37.668037 ], [ -121.919256, 37.669768 ], [ -121.920169, 37.67303 ], [ -121.920706, 37.673796 ], [ -121.921208, 37.675606 ], [ -121.922988, 37.67982 ], [ -121.924956, 37.682263 ], [ -121.927366, 37.683159 ], [ -121.929348, 37.684932 ], [ -121.930286, 37.6888 ], [ -121.93442, 37.69615 ], [ -121.934962, 37.698517 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450607", "AFFGEOID": "1400000US06001450607", "GEOID": "06001450607", "NAME_x": "4506.07", "LSAD": "CT", "ALAND": 4826710, "AWATER": 0, "NAME_y": "Census Tract 4506.07, Alameda County, California", "c_race": 5971, "c_white": 2832, "c_black": 324, "c_asian": 1726, "c_latinx": 804, "state_fips": 6, "county_fips": 1, "tract_fips": 450607, "med_rent": 1837.0, "med_hhinc": 96061.0, "c_tenants": 2445, "c_owners": 883, "c_renters": 1562, "c_movers": 5905, "c_stay": 4735, "c_movelocal": 715, "c_movecounty": 254, "c_movestate": 201, "c_moveabroad": 0, "c_commute": 3315, "c_car": 2316, "c_carpool": 440, "c_transit": 193, "c_bike": 71, "c_walk": 114, "year": 2018, "FIPS_11_digit": "06001450607", "p_white": 0.47429241333110028, "p_black": 0.054262267626863099, "p_asian": 0.28906380840730189, "p_latinx": 0.13465081225925299, "p_owners": 0.36114519427402858, "p_renters": 0.63885480572597142, "p_stay": 0.80186282811176968, "p_movelocal": 0.1210838272650296, "p_movecounty": 0.043014394580863598, "p_movestate": 0.034038950042337, "p_moveabroad": 0.0, "p_car": 0.69864253393665154, "p_carpool": 0.1327300150829562, "p_transit": 0.058220211161387599, "p_bike": 0.0214177978883861, "p_walk": 0.034389140271493202 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.906326, 37.661758 ], [ -121.897115, 37.665173 ], [ -121.895326, 37.6657 ], [ -121.891317, 37.667714 ], [ -121.885754, 37.666882 ], [ -121.883752, 37.66746 ], [ -121.881932, 37.665809 ], [ -121.874035, 37.66477 ], [ -121.86945, 37.665492 ], [ -121.868081, 37.664936 ], [ -121.86999, 37.663137 ], [ -121.873007, 37.659151 ], [ -121.872076, 37.658479 ], [ -121.873964, 37.656713 ], [ -121.875687, 37.657944 ], [ -121.877598, 37.656324 ], [ -121.87933, 37.655117 ], [ -121.880915, 37.648699 ], [ -121.881308, 37.647323 ], [ -121.881493, 37.644763 ], [ -121.881924, 37.641572 ], [ -121.884125, 37.640149 ], [ -121.884418, 37.639949 ], [ -121.885487, 37.641498 ], [ -121.88835, 37.644236 ], [ -121.888392, 37.644277 ], [ -121.904666, 37.659938 ], [ -121.906326, 37.661758 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450746", "AFFGEOID": "1400000US06001450746", "GEOID": "06001450746", "NAME_x": "4507.46", "LSAD": "CT", "ALAND": 1733940, "AWATER": 0, "NAME_y": "Census Tract 4507.46, Alameda County, California", "c_race": 3596, "c_white": 2027, "c_black": 11, "c_asian": 984, "c_latinx": 426, "state_fips": 6, "county_fips": 1, "tract_fips": 450746, "med_rent": 1236.0, "med_hhinc": 125375.0, "c_tenants": 1385, "c_owners": 1087, "c_renters": 298, "c_movers": 3580, "c_stay": 3235, "c_movelocal": 134, "c_movecounty": 117, "c_movestate": 94, "c_moveabroad": 0, "c_commute": 1607, "c_car": 1172, "c_carpool": 157, "c_transit": 110, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450746", "p_white": 0.56368186874304782, "p_black": 0.0030589543937707998, "p_asian": 0.27363737486095657, "p_latinx": 0.11846496106785311, "p_owners": 0.78483754512635384, "p_renters": 0.21516245487364619, "p_stay": 0.90363128491620115, "p_movelocal": 0.037430167597765303, "p_movecounty": 0.032681564245810001, "p_movestate": 0.026256983240223401, "p_moveabroad": 0.0, "p_car": 0.72930927193528317, "p_carpool": 0.097697573117610403, "p_transit": 0.068450528935905405, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.877311, 37.686155 ], [ -121.862924, 37.675541 ], [ -121.858811, 37.672626 ], [ -121.857871, 37.670438 ], [ -121.864956, 37.66782 ], [ -121.868081, 37.664936 ], [ -121.86945, 37.665492 ], [ -121.874035, 37.66477 ], [ -121.873804, 37.665485 ], [ -121.873456, 37.66739 ], [ -121.872735, 37.671412 ], [ -121.872684, 37.672741 ], [ -121.873425, 37.674934 ], [ -121.874014, 37.676726 ], [ -121.877311, 37.686155 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450750", "AFFGEOID": "1400000US06001450750", "GEOID": "06001450750", "NAME_x": "4507.50", "LSAD": "CT", "ALAND": 1666579, "AWATER": 0, "NAME_y": "Census Tract 4507.50, Alameda County, California", "c_race": 4842, "c_white": 1456, "c_black": 219, "c_asian": 2349, "c_latinx": 648, "state_fips": 6, "county_fips": 1, "tract_fips": 450750, "med_rent": 2272.0, "med_hhinc": 124844.0, "c_tenants": 2027, "c_owners": 924, "c_renters": 1103, "c_movers": 4718, "c_stay": 3607, "c_movelocal": 593, "c_movecounty": 338, "c_movestate": 126, "c_moveabroad": 54, "c_commute": 2747, "c_car": 2090, "c_carpool": 160, "c_transit": 413, "c_bike": 0, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001450750", "p_white": 0.3007021891780256, "p_black": 0.0452292441140024, "p_asian": 0.48513011152416358, "p_latinx": 0.13382899628252781, "p_owners": 0.45584607794770599, "p_renters": 0.54415392205229407, "p_stay": 0.76451886392539214, "p_movelocal": 0.125688851208139, "p_movecounty": 0.071640525646460299, "p_movestate": 0.026706231454005899, "p_moveabroad": 0.0114455277660025, "p_car": 0.76082999635966508, "p_carpool": 0.058245358572988702, "p_transit": 0.15034583181652711, "p_bike": 0.0, "p_walk": 0.0032763014197305998 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.872007, 37.710044 ], [ -121.858571, 37.708564 ], [ -121.854231, 37.710226 ], [ -121.852029, 37.710428 ], [ -121.850498, 37.708502 ], [ -121.849667, 37.701585 ], [ -121.849501, 37.701354 ], [ -121.855044, 37.70141 ], [ -121.865179, 37.701506 ], [ -121.869544, 37.701778 ], [ -121.872187, 37.70257 ], [ -121.872007, 37.710044 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451101", "AFFGEOID": "1400000US06001451101", "GEOID": "06001451101", "NAME_x": "4511.01", "LSAD": "CT", "ALAND": 552881834, "AWATER": 5607595, "NAME_y": "Census Tract 4511.01, Alameda County, California", "c_race": 7804, "c_white": 4876, "c_black": 111, "c_asian": 1086, "c_latinx": 1270, "state_fips": 6, "county_fips": 1, "tract_fips": 451101, "med_rent": 2541.0, "med_hhinc": 155833.0, "c_tenants": 2394, "c_owners": 1993, "c_renters": 401, "c_movers": 7772, "c_stay": 6750, "c_movelocal": 187, "c_movecounty": 650, "c_movestate": 168, "c_moveabroad": 17, "c_commute": 4015, "c_car": 2785, "c_carpool": 632, "c_transit": 171, "c_bike": 13, "c_walk": 4, "year": 2018, "FIPS_11_digit": "06001451101", "p_white": 0.62480779087647365, "p_black": 0.0142234751409533, "p_asian": 0.1391594054331112, "p_latinx": 0.1627370579190158, "p_owners": 0.83249791144527985, "p_renters": 0.1675020885547201, "p_stay": 0.868502316006176, "p_movelocal": 0.024060730828615502, "p_movecounty": 0.083633556356150204, "p_movestate": 0.021616057642820301, "p_moveabroad": 0.0021873391662377002, "p_car": 0.69364881693648817, "p_carpool": 0.15740971357409711, "p_transit": 0.042590286425902797, "p_bike": 0.0032378580323785002, "p_walk": 0.00099626400996259993 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.80218, 37.629749 ], [ -121.801207, 37.635205 ], [ -121.799438, 37.636545 ], [ -121.799119, 37.636918 ], [ -121.79615, 37.639766 ], [ -121.789506, 37.644469 ], [ -121.788401, 37.645148 ], [ -121.785451, 37.646821 ], [ -121.78378, 37.647892 ], [ -121.783407, 37.648268 ], [ -121.783194, 37.648693 ], [ -121.782919, 37.645229 ], [ -121.782653, 37.64519 ], [ -121.768075, 37.645195 ], [ -121.768095, 37.645319 ], [ -121.768099, 37.653816 ], [ -121.768068, 37.65663 ], [ -121.761169, 37.656617 ], [ -121.749937, 37.656592 ], [ -121.749703, 37.661988 ], [ -121.749722, 37.670019 ], [ -121.747967, 37.66886 ], [ -121.742411, 37.665328 ], [ -121.73674, 37.665129 ], [ -121.719109, 37.665003 ], [ -121.718943, 37.665 ], [ -121.71879, 37.67977 ], [ -121.71878, 37.679853 ], [ -121.718682, 37.681106 ], [ -121.718592, 37.694423 ], [ -121.71807, 37.696943 ], [ -121.718795, 37.700207 ], [ -121.723874, 37.709128 ], [ -121.72436, 37.710601 ], [ -121.724279, 37.71701 ], [ -121.724166, 37.722331 ], [ -121.724163, 37.722414 ], [ -121.724238, 37.726917 ], [ -121.723966, 37.738975 ], [ -121.723015, 37.740947 ], [ -121.725242, 37.744378 ], [ -121.72561, 37.746189 ], [ -121.726525, 37.74736 ], [ -121.730517, 37.749471 ], [ -121.731955, 37.752371 ], [ -121.734296, 37.755154 ], [ -121.734146, 37.756108 ], [ -121.732598, 37.757688 ], [ -121.736155, 37.760496 ], [ -121.736593, 37.763038 ], [ -121.735475, 37.765468 ], [ -121.734329, 37.766422 ], [ -121.733992, 37.767839 ], [ -121.73544, 37.770626 ], [ -121.73928, 37.772122 ], [ -121.697169, 37.782692 ], [ -121.670362, 37.789427 ], [ -121.666262, 37.790427 ], [ -121.624161, 37.799127 ], [ -121.620293, 37.800304 ], [ -121.58056, 37.812467 ], [ -121.55916, 37.818927 ], [ -121.558905, 37.818432 ], [ -121.556936, 37.817218 ], [ -121.557038, 37.815988 ], [ -121.556959, 37.794734 ], [ -121.557032, 37.794733 ], [ -121.556661, 37.756107 ], [ -121.557145, 37.746608 ], [ -121.556959, 37.743051 ], [ -121.557034, 37.707704 ], [ -121.556958, 37.703581 ], [ -121.556957, 37.670642 ], [ -121.556857, 37.635531 ], [ -121.556655, 37.542732 ], [ -121.550454, 37.539332 ], [ -121.548355, 37.535932 ], [ -121.546854, 37.535032 ], [ -121.545754, 37.532532 ], [ -121.54328, 37.531593 ], [ -121.541833, 37.530215 ], [ -121.539425, 37.529584 ], [ -121.537079, 37.529752 ], [ -121.53619, 37.52908 ], [ -121.533616, 37.528887 ], [ -121.529897, 37.527048 ], [ -121.528817, 37.52806 ], [ -121.527894, 37.527387 ], [ -121.523862, 37.526212 ], [ -121.522328, 37.524705 ], [ -121.519134, 37.524447 ], [ -121.516749, 37.525512 ], [ -121.513674, 37.524758 ], [ -121.511509, 37.525075 ], [ -121.507883, 37.524774 ], [ -121.506368, 37.525549 ], [ -121.503403, 37.525604 ], [ -121.501475, 37.525003 ], [ -121.498268, 37.522427 ], [ -121.49958, 37.52014 ], [ -121.502371, 37.51847 ], [ -121.49994, 37.516242 ], [ -121.49987, 37.515108 ], [ -121.497232, 37.512463 ], [ -121.496676, 37.509211 ], [ -121.495382, 37.508133 ], [ -121.496017, 37.504938 ], [ -121.493183, 37.502421 ], [ -121.489381, 37.502142 ], [ -121.486593, 37.501388 ], [ -121.482065, 37.501439 ], [ -121.48074, 37.499777 ], [ -121.479362, 37.496484 ], [ -121.475897, 37.495272 ], [ -121.473761, 37.492777 ], [ -121.470938, 37.491183 ], [ -121.469214, 37.48936 ], [ -121.471925, 37.481783 ], [ -121.472648, 37.48217 ], [ -121.472952, 37.482333 ], [ -121.564355, 37.482433 ], [ -121.670399, 37.48274 ], [ -121.671262, 37.483842 ], [ -121.671606, 37.486402 ], [ -121.672405, 37.487347 ], [ -121.676714, 37.48966 ], [ -121.67921, 37.490023 ], [ -121.680865, 37.489771 ], [ -121.682774, 37.49048 ], [ -121.68394, 37.491853 ], [ -121.685443, 37.491914 ], [ -121.6877, 37.492829 ], [ -121.688683, 37.496062 ], [ -121.688173, 37.497072 ], [ -121.689355, 37.500255 ], [ -121.691144, 37.501607 ], [ -121.689976, 37.503591 ], [ -121.68863, 37.504098 ], [ -121.68675, 37.507393 ], [ -121.690969, 37.508955 ], [ -121.692309, 37.508161 ], [ -121.695171, 37.509347 ], [ -121.698247, 37.511986 ], [ -121.700467, 37.513107 ], [ -121.700706, 37.514123 ], [ -121.702435, 37.515055 ], [ -121.702509, 37.51735 ], [ -121.702073, 37.52019 ], [ -121.70115, 37.522179 ], [ -121.701447, 37.524953 ], [ -121.702573, 37.526211 ], [ -121.699535, 37.528153 ], [ -121.698419, 37.529255 ], [ -121.697334, 37.529782 ], [ -121.69678, 37.529889 ], [ -121.696399, 37.529894 ], [ -121.69597, 37.529449 ], [ -121.693983, 37.528185 ], [ -121.692133, 37.526232 ], [ -121.687652, 37.52505 ], [ -121.686897, 37.526348 ], [ -121.68437, 37.52708 ], [ -121.681842, 37.526323 ], [ -121.681246, 37.526847 ], [ -121.6827, 37.528938 ], [ -121.684763, 37.53022 ], [ -121.685282, 37.532346 ], [ -121.686943, 37.533942 ], [ -121.689571, 37.538665 ], [ -121.691734, 37.541011 ], [ -121.693157, 37.544071 ], [ -121.693947, 37.546815 ], [ -121.695747, 37.550177 ], [ -121.697719, 37.551432 ], [ -121.698067, 37.552345 ], [ -121.70085, 37.553219 ], [ -121.700797, 37.556191 ], [ -121.703124, 37.558209 ], [ -121.70752, 37.559671 ], [ -121.711526, 37.564897 ], [ -121.713687, 37.564578 ], [ -121.715478, 37.566766 ], [ -121.718052, 37.567848 ], [ -121.72005, 37.569397 ], [ -121.719569, 37.572619 ], [ -121.721008, 37.576725 ], [ -121.722426, 37.577706 ], [ -121.723896, 37.577345 ], [ -121.725572, 37.577477 ], [ -121.727579, 37.578957 ], [ -121.728271, 37.580496 ], [ -121.731152, 37.581565 ], [ -121.731794, 37.582921 ], [ -121.732294, 37.58448 ], [ -121.737337, 37.584862 ], [ -121.739182, 37.586956 ], [ -121.742207, 37.586559 ], [ -121.742971, 37.588294 ], [ -121.746619, 37.59038 ], [ -121.75008, 37.591153 ], [ -121.749148, 37.592521 ], [ -121.748563, 37.594246 ], [ -121.751977, 37.598272 ], [ -121.756519, 37.600338 ], [ -121.751233, 37.601213 ], [ -121.757446, 37.602516 ], [ -121.759112, 37.603356 ], [ -121.764838, 37.60432 ], [ -121.772366, 37.606994 ], [ -121.777818, 37.610499 ], [ -121.779836, 37.614384 ], [ -121.77993, 37.616857 ], [ -121.782694, 37.620559 ], [ -121.785064, 37.623131 ], [ -121.785864, 37.626031 ], [ -121.796165, 37.626331 ], [ -121.803108, 37.628644 ], [ -121.80218, 37.629749 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451300", "AFFGEOID": "1400000US06001451300", "GEOID": "06001451300", "NAME_x": "4513", "LSAD": "CT", "ALAND": 12688706, "AWATER": 0, "NAME_y": "Census Tract 4513, Alameda County, California", "c_race": 7126, "c_white": 4432, "c_black": 96, "c_asian": 533, "c_latinx": 1657, "state_fips": 6, "county_fips": 1, "tract_fips": 451300, "med_rent": 2448.0, "med_hhinc": 119018.0, "c_tenants": 2335, "c_owners": 1874, "c_renters": 461, "c_movers": 6897, "c_stay": 6293, "c_movelocal": 400, "c_movecounty": 122, "c_movestate": 82, "c_moveabroad": 0, "c_commute": 3614, "c_car": 2677, "c_carpool": 258, "c_transit": 179, "c_bike": 19, "c_walk": 82, "year": 2018, "FIPS_11_digit": "06001451300", "p_white": 0.62194779680044909, "p_black": 0.013471793432500699, "p_asian": 0.074796519786696603, "p_latinx": 0.2325287678922256, "p_owners": 0.80256959314775156, "p_renters": 0.1974304068522483, "p_stay": 0.91242569232999859, "p_movelocal": 0.057996230245034003, "p_movecounty": 0.017688850224735299, "p_movestate": 0.011889227200231899, "p_moveabroad": 0.0, "p_car": 0.74073049252905365, "p_carpool": 0.071389042612064094, "p_transit": 0.049529607083563902, "p_bike": 0.005257332595462, "p_walk": 0.022689540675152099 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.849501, 37.701354 ], [ -121.833381, 37.701209 ], [ -121.828666, 37.701177 ], [ -121.823291, 37.701145 ], [ -121.808309, 37.701003 ], [ -121.794806, 37.700875 ], [ -121.786255, 37.699776 ], [ -121.786116, 37.699709 ], [ -121.78473, 37.696056 ], [ -121.784084, 37.69552 ], [ -121.785379, 37.694207 ], [ -121.790473, 37.692199 ], [ -121.790813, 37.689012 ], [ -121.790821, 37.688359 ], [ -121.790921, 37.682886 ], [ -121.790583, 37.680693 ], [ -121.788813, 37.679528 ], [ -121.788118, 37.678954 ], [ -121.787481, 37.678106 ], [ -121.789153, 37.677892 ], [ -121.795271, 37.677255 ], [ -121.801414, 37.676588 ], [ -121.805381, 37.676172 ], [ -121.819614, 37.674599 ], [ -121.826737, 37.673841 ], [ -121.82683, 37.67632 ], [ -121.830528, 37.67901 ], [ -121.832514, 37.680518 ], [ -121.843379, 37.691103 ], [ -121.84792, 37.691827 ], [ -121.848734, 37.693867 ], [ -121.848687, 37.694573 ], [ -121.848271, 37.694882 ], [ -121.848357, 37.699727 ], [ -121.849501, 37.701354 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451503", "AFFGEOID": "1400000US06001451503", "GEOID": "06001451503", "NAME_x": "4515.03", "LSAD": "CT", "ALAND": 2674111, "AWATER": 0, "NAME_y": "Census Tract 4515.03, Alameda County, California", "c_race": 6158, "c_white": 3759, "c_black": 65, "c_asian": 751, "c_latinx": 1204, "state_fips": 6, "county_fips": 1, "tract_fips": 451503, "med_rent": 1208.0, "med_hhinc": 127610.0, "c_tenants": 2200, "c_owners": 1669, "c_renters": 531, "c_movers": 6100, "c_stay": 5248, "c_movelocal": 724, "c_movecounty": 77, "c_movestate": 11, "c_moveabroad": 40, "c_commute": 3161, "c_car": 2467, "c_carpool": 356, "c_transit": 104, "c_bike": 25, "c_walk": 55, "year": 2018, "FIPS_11_digit": "06001451503", "p_white": 0.61042546281260146, "p_black": 0.0105553751217927, "p_asian": 0.12195518025332901, "p_latinx": 0.1955180253329003, "p_owners": 0.75863636363636366, "p_renters": 0.24136363636363631, "p_stay": 0.86032786885245904, "p_movelocal": 0.11868852459016389, "p_movecounty": 0.0126229508196721, "p_movestate": 0.0018032786885245, "p_moveabroad": 0.0065573770491803001, "p_car": 0.78044922492881996, "p_carpool": 0.1126225877886744, "p_transit": 0.032900980702309297, "p_bike": 0.0079088895919012005, "p_walk": 0.0173995571021828 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.762427, 37.68618 ], [ -121.758088, 37.688034 ], [ -121.752789, 37.690804 ], [ -121.751308, 37.69159 ], [ -121.747159, 37.694529 ], [ -121.746547, 37.693933 ], [ -121.743669, 37.690089 ], [ -121.738164, 37.687417 ], [ -121.73455, 37.68316 ], [ -121.733077, 37.67994 ], [ -121.736501, 37.679943 ], [ -121.748355, 37.679962 ], [ -121.751736, 37.679966 ], [ -121.755118, 37.679981 ], [ -121.765258, 37.679975 ], [ -121.765453, 37.680189 ], [ -121.761236, 37.684325 ], [ -121.765623, 37.684062 ], [ -121.762427, 37.68618 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451506", "AFFGEOID": "1400000US06001451506", "GEOID": "06001451506", "NAME_x": "4515.06", "LSAD": "CT", "ALAND": 851132, "AWATER": 0, "NAME_y": "Census Tract 4515.06, Alameda County, California", "c_race": 3457, "c_white": 1451, "c_black": 247, "c_asian": 256, "c_latinx": 1451, "state_fips": 6, "county_fips": 1, "tract_fips": 451506, "med_rent": 1802.0, "med_hhinc": 86806.0, "c_tenants": 1115, "c_owners": 509, "c_renters": 606, "c_movers": 3445, "c_stay": 2973, "c_movelocal": 361, "c_movecounty": 74, "c_movestate": 18, "c_moveabroad": 19, "c_commute": 1804, "c_car": 1419, "c_carpool": 166, "c_transit": 14, "c_bike": 58, "c_walk": 21, "year": 2018, "FIPS_11_digit": "06001451506", "p_white": 0.41972808793751809, "p_black": 0.071449233439398296, "p_asian": 0.074052646803586905, "p_latinx": 0.41972808793751809, "p_owners": 0.45650224215246638, "p_renters": 0.54349775784753362, "p_stay": 0.86298984034833093, "p_movelocal": 0.1047895500725689, "p_movecounty": 0.0214804063860667, "p_movestate": 0.0052249637155296997, "p_moveabroad": 0.0055152394775035999, "p_car": 0.78658536585365857, "p_carpool": 0.092017738359201698, "p_transit": 0.0077605321507759999, "p_bike": 0.032150776053215001, "p_walk": 0.011640798226164 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.736705, 37.688073 ], [ -121.732318, 37.687839 ], [ -121.72679, 37.685418 ], [ -121.726271, 37.685149 ], [ -121.725204, 37.684335 ], [ -121.725073, 37.683616 ], [ -121.720526, 37.682197 ], [ -121.718682, 37.681106 ], [ -121.71878, 37.679853 ], [ -121.726342, 37.679899 ], [ -121.733077, 37.67994 ], [ -121.73455, 37.68316 ], [ -121.738164, 37.687417 ], [ -121.736705, 37.688073 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451701", "AFFGEOID": "1400000US06001451701", "GEOID": "06001451701", "NAME_x": "4517.01", "LSAD": "CT", "ALAND": 1222738, "AWATER": 0, "NAME_y": "Census Tract 4517.01, Alameda County, California", "c_race": 3181, "c_white": 2193, "c_black": 31, "c_asian": 151, "c_latinx": 596, "state_fips": 6, "county_fips": 1, "tract_fips": 451701, "med_rent": 2290.0, "med_hhinc": 132200.0, "c_tenants": 1102, "c_owners": 888, "c_renters": 214, "c_movers": 3112, "c_stay": 2819, "c_movelocal": 291, "c_movecounty": 2, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1539, "c_car": 1197, "c_carpool": 112, "c_transit": 106, "c_bike": 12, "c_walk": 18, "year": 2018, "FIPS_11_digit": "06001451701", "p_white": 0.68940584721785603, "p_black": 0.0097453630933668003, "p_asian": 0.047469349261238601, "p_latinx": 0.18736246463376291, "p_owners": 0.80580762250453719, "p_renters": 0.1941923774954627, "p_stay": 0.90584832904884316, "p_movelocal": 0.093508997429305907, "p_movecounty": 0.00064267352185079995, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.77777777777777779, "p_carpool": 0.072774528914879705, "p_transit": 0.068875893437296901, "p_bike": 0.0077972709551655996, "p_walk": 0.011695906432748499 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.795271, 37.677255 ], [ -121.789153, 37.677892 ], [ -121.785234, 37.674912 ], [ -121.780181, 37.674042 ], [ -121.780448, 37.672916 ], [ -121.780391, 37.667105 ], [ -121.785114, 37.667088 ], [ -121.788897, 37.667201 ], [ -121.793341, 37.669514 ], [ -121.795263, 37.672219 ], [ -121.795259, 37.672744 ], [ -121.795271, 37.677255 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "982000", "AFFGEOID": "1400000US06001982000", "GEOID": "06001982000", "NAME_x": "9820", "LSAD": "CT", "ALAND": 1269355, "AWATER": 269260, "NAME_y": "Census Tract 9820, Alameda County, California", "c_race": 63, "c_white": 18, "c_black": 18, "c_asian": 20, "c_latinx": 7, "state_fips": 6, "county_fips": 1, "tract_fips": 982000, "med_rent": null, "med_hhinc": 116667.0, "c_tenants": 32, "c_owners": 32, "c_renters": 0, "c_movers": 63, "c_stay": 60, "c_movelocal": 3, "c_movecounty": 0, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 36, "c_car": 14, "c_carpool": 0, "c_transit": 8, "c_bike": 0, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001982000", "p_white": 0.2857142857142857, "p_black": 0.2857142857142857, "p_asian": 0.31746031746031739, "p_latinx": 0.1111111111111111, "p_owners": 1.0, "p_renters": 0.0, "p_stay": 0.95238095238095244, "p_movelocal": 0.047619047619047603, "p_movecounty": 0.0, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.3888888888888889, "p_carpool": 0.0, "p_transit": 0.22222222222222221, "p_bike": 0.0, "p_walk": 0.1666666666666666 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.313212, 37.795303 ], [ -122.307743, 37.795816 ], [ -122.300868, 37.797369 ], [ -122.290031, 37.799622 ], [ -122.28867, 37.802755 ], [ -122.286832, 37.802685 ], [ -122.283322, 37.8017 ], [ -122.279687, 37.800256 ], [ -122.282207, 37.796267 ], [ -122.28428, 37.793828 ], [ -122.29478, 37.792528 ], [ -122.31468, 37.794728 ], [ -122.313212, 37.795303 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436800", "AFFGEOID": "1400000US06001436800", "GEOID": "06001436800", "NAME_x": "4368", "LSAD": "CT", "ALAND": 1025367, "AWATER": 0, "NAME_y": "Census Tract 4368, Alameda County, California", "c_race": 4335, "c_white": 624, "c_black": 633, "c_asian": 845, "c_latinx": 2003, "state_fips": 6, "county_fips": 1, "tract_fips": 436800, "med_rent": 1829.0, "med_hhinc": 82589.0, "c_tenants": 1329, "c_owners": 670, "c_renters": 659, "c_movers": 4299, "c_stay": 4073, "c_movelocal": 158, "c_movecounty": 25, "c_movestate": 17, "c_moveabroad": 26, "c_commute": 1838, "c_car": 1266, "c_carpool": 202, "c_transit": 175, "c_bike": 0, "c_walk": 151, "year": 2018, "FIPS_11_digit": "06001436800", "p_white": 0.1439446366782007, "p_black": 0.1460207612456747, "p_asian": 0.19492502883506341, "p_latinx": 0.46205305651672429, "p_owners": 0.50413844996237778, "p_renters": 0.49586155003762228, "p_stay": 0.94742963479879039, "p_movelocal": 0.036752733193765902, "p_movecounty": 0.0058153058850894997, "p_movestate": 0.0039544080018608001, "p_moveabroad": 0.0060479181204931001, "p_car": 0.68879216539717081, "p_carpool": 0.10990206746463541, "p_transit": 0.095212187159956399, "p_bike": 0.0, "p_walk": 0.082154515778019493 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.098136, 37.657768 ], [ -122.096908, 37.658225 ], [ -122.092598, 37.659886 ], [ -122.087972, 37.655904 ], [ -122.091467, 37.649537 ], [ -122.091829, 37.648688 ], [ -122.09389, 37.644795 ], [ -122.10161, 37.656422 ], [ -122.098136, 37.657768 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437200", "AFFGEOID": "1400000US06001437200", "GEOID": "06001437200", "NAME_x": "4372", "LSAD": "CT", "ALAND": 2554599, "AWATER": 0, "NAME_y": "Census Tract 4372, Alameda County, California", "c_race": 7495, "c_white": 1328, "c_black": 373, "c_asian": 3142, "c_latinx": 2134, "state_fips": 6, "county_fips": 1, "tract_fips": 437200, "med_rent": 2021.0, "med_hhinc": 86146.0, "c_tenants": 2247, "c_owners": 1540, "c_renters": 707, "c_movers": 7363, "c_stay": 6584, "c_movelocal": 237, "c_movecounty": 218, "c_movestate": 122, "c_moveabroad": 202, "c_commute": 3196, "c_car": 2228, "c_carpool": 626, "c_transit": 234, "c_bike": 0, "c_walk": 28, "year": 2018, "FIPS_11_digit": "06001437200", "p_white": 0.1771847898599066, "p_black": 0.049766511007338199, "p_asian": 0.41921280853902598, "p_latinx": 0.28472314876584381, "p_owners": 0.68535825545171336, "p_renters": 0.31464174454828658, "p_stay": 0.89420073339671324, "p_movelocal": 0.032187966861333697, "p_movecounty": 0.0296074969441803, "p_movestate": 0.016569333152247699, "p_moveabroad": 0.0274344696455249, "p_car": 0.69712140175219028, "p_carpool": 0.19586983729662069, "p_transit": 0.073216520650813494, "p_bike": 0.0, "p_walk": 0.0087609511889861994 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.120239, 37.653223 ], [ -122.110413, 37.653156 ], [ -122.107285, 37.647997 ], [ -122.102066, 37.639492 ], [ -122.100093, 37.636331 ], [ -122.107748, 37.633399 ], [ -122.110054, 37.632353 ], [ -122.110392, 37.632901 ], [ -122.113391, 37.635202 ], [ -122.119073, 37.64047 ], [ -122.119759, 37.642007 ], [ -122.119868, 37.644227 ], [ -122.119919, 37.645611 ], [ -122.120239, 37.653223 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437701", "AFFGEOID": "1400000US06001437701", "GEOID": "06001437701", "NAME_x": "4377.01", "LSAD": "CT", "ALAND": 484105, "AWATER": 0, "NAME_y": "Census Tract 4377.01, Alameda County, California", "c_race": 3597, "c_white": 383, "c_black": 375, "c_asian": 418, "c_latinx": 2139, "state_fips": 6, "county_fips": 1, "tract_fips": 437701, "med_rent": 1507.0, "med_hhinc": 62527.0, "c_tenants": 1031, "c_owners": 237, "c_renters": 794, "c_movers": 3543, "c_stay": 3231, "c_movelocal": 152, "c_movecounty": 84, "c_movestate": 28, "c_moveabroad": 48, "c_commute": 1405, "c_car": 972, "c_carpool": 147, "c_transit": 197, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001437701", "p_white": 0.10647762023908811, "p_black": 0.1042535446205171, "p_asian": 0.11620795107033639, "p_latinx": 0.59466221851542955, "p_owners": 0.22987390882638209, "p_renters": 0.77012609117361785, "p_stay": 0.91193903471634197, "p_movelocal": 0.042901495907423003, "p_movecounty": 0.023708721422523199, "p_movestate": 0.0079029071408409993, "p_moveabroad": 0.0135478408128704, "p_car": 0.69181494661921705, "p_carpool": 0.1046263345195729, "p_transit": 0.1402135231316726, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.074725, 37.636712 ], [ -122.072327, 37.634598 ], [ -122.072114, 37.634332 ], [ -122.068989, 37.635925 ], [ -122.0717, 37.638279 ], [ -122.069543, 37.639504 ], [ -122.072466, 37.642087 ], [ -122.072298, 37.642174 ], [ -122.063341, 37.63434 ], [ -122.063605, 37.634227 ], [ -122.065046, 37.633582 ], [ -122.069088, 37.631791 ], [ -122.071678, 37.631553 ], [ -122.073242, 37.631424 ], [ -122.074324, 37.632183 ], [ -122.075885, 37.636457 ], [ -122.074725, 37.636712 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437900", "AFFGEOID": "1400000US06001437900", "GEOID": "06001437900", "NAME_x": "4379", "LSAD": "CT", "ALAND": 673654, "AWATER": 0, "NAME_y": "Census Tract 4379, Alameda County, California", "c_race": 2384, "c_white": 200, "c_black": 109, "c_asian": 310, "c_latinx": 1595, "state_fips": 6, "county_fips": 1, "tract_fips": 437900, "med_rent": 1796.0, "med_hhinc": 78083.0, "c_tenants": 659, "c_owners": 286, "c_renters": 373, "c_movers": 2355, "c_stay": 2116, "c_movelocal": 149, "c_movecounty": 52, "c_movestate": 30, "c_moveabroad": 8, "c_commute": 925, "c_car": 695, "c_carpool": 121, "c_transit": 43, "c_bike": 0, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001437900", "p_white": 0.083892617449664406, "p_black": 0.045721476510067097, "p_asian": 0.1300335570469798, "p_latinx": 0.66904362416107388, "p_owners": 0.4339908952959029, "p_renters": 0.56600910470409715, "p_stay": 0.89851380042462847, "p_movelocal": 0.063269639065817396, "p_movecounty": 0.022080679405520099, "p_movestate": 0.0127388535031847, "p_moveabroad": 0.0033970276008492002, "p_car": 0.75135135135135134, "p_carpool": 0.13081081081081081, "p_transit": 0.0464864864864864, "p_bike": 0.0, "p_walk": 0.0097297297297296997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.067968, 37.65087 ], [ -122.066939, 37.651218 ], [ -122.064598, 37.648266 ], [ -122.06002, 37.642497 ], [ -122.0553, 37.642858 ], [ -122.054441, 37.640044 ], [ -122.05692, 37.638815 ], [ -122.054266, 37.636394 ], [ -122.057233, 37.635929 ], [ -122.058388, 37.635735 ], [ -122.070021, 37.650546 ], [ -122.067968, 37.65087 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438203", "AFFGEOID": "1400000US06001438203", "GEOID": "06001438203", "NAME_x": "4382.03", "LSAD": "CT", "ALAND": 5277216, "AWATER": 0, "NAME_y": "Census Tract 4382.03, Alameda County, California", "c_race": 4118, "c_white": 666, "c_black": 187, "c_asian": 2223, "c_latinx": 898, "state_fips": 6, "county_fips": 1, "tract_fips": 438203, "med_rent": 1239.0, "med_hhinc": 71607.0, "c_tenants": 1211, "c_owners": 895, "c_renters": 316, "c_movers": 4084, "c_stay": 3928, "c_movelocal": 79, "c_movecounty": 65, "c_movestate": 12, "c_moveabroad": 0, "c_commute": 1560, "c_car": 1152, "c_carpool": 174, "c_transit": 189, "c_bike": 0, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001438203", "p_white": 0.16172899465760071, "p_black": 0.045410393394851797, "p_asian": 0.5398251578436134, "p_latinx": 0.2180670228266148, "p_owners": 0.73905862923203969, "p_renters": 0.26094137076796031, "p_stay": 0.96180215475024478, "p_movelocal": 0.019343780607247701, "p_movecounty": 0.015915768854064601, "p_movestate": 0.0029382957884427001, "p_moveabroad": 0.0, "p_car": 0.7384615384615385, "p_carpool": 0.1115384615384615, "p_transit": 0.1211538461538461, "p_bike": 0.0, "p_walk": 0.0038461538461538 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.07373, 37.617474 ], [ -122.071653, 37.617521 ], [ -122.073275, 37.618432 ], [ -122.071867, 37.624553 ], [ -122.072286, 37.63082 ], [ -122.073242, 37.631424 ], [ -122.071678, 37.631553 ], [ -122.069088, 37.631791 ], [ -122.065046, 37.633582 ], [ -122.061485, 37.62848 ], [ -122.063322, 37.629141 ], [ -122.067175, 37.62811 ], [ -122.065939, 37.625435 ], [ -122.063949, 37.619946 ], [ -122.061916, 37.618075 ], [ -122.061907, 37.617823 ], [ -122.061979, 37.617623 ], [ -122.062203, 37.617374 ], [ -122.061156, 37.618209 ], [ -122.052648, 37.624982 ], [ -122.05168, 37.625745 ], [ -122.050317, 37.622973 ], [ -122.040967, 37.614734 ], [ -122.039459, 37.613404 ], [ -122.034387, 37.608962 ], [ -122.030938, 37.605927 ], [ -122.034819, 37.605962 ], [ -122.041447, 37.61164 ], [ -122.042777, 37.61165 ], [ -122.043305, 37.605956 ], [ -122.051683, 37.606006 ], [ -122.05869, 37.606028 ], [ -122.059375, 37.603907 ], [ -122.063242, 37.604685 ], [ -122.065495, 37.604911 ], [ -122.066125, 37.605181 ], [ -122.068539, 37.605683 ], [ -122.066516, 37.612853 ], [ -122.066607, 37.613143 ], [ -122.07145, 37.613278 ], [ -122.073893, 37.616684 ], [ -122.07373, 37.617474 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438400", "AFFGEOID": "1400000US06001438400", "GEOID": "06001438400", "NAME_x": "4384", "LSAD": "CT", "ALAND": 1723690, "AWATER": 0, "NAME_y": "Census Tract 4384, Alameda County, California", "c_race": 2568, "c_white": 509, "c_black": 205, "c_asian": 987, "c_latinx": 738, "state_fips": 6, "county_fips": 1, "tract_fips": 438400, "med_rent": 2547.0, "med_hhinc": 80357.0, "c_tenants": 732, "c_owners": 632, "c_renters": 100, "c_movers": 2568, "c_stay": 2272, "c_movelocal": 257, "c_movecounty": 13, "c_movestate": 8, "c_moveabroad": 18, "c_commute": 1158, "c_car": 934, "c_carpool": 151, "c_transit": 18, "c_bike": 10, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001438400", "p_white": 0.198208722741433, "p_black": 0.079828660436136997, "p_asian": 0.38434579439252331, "p_latinx": 0.28738317757009341, "p_owners": 0.86338797814207646, "p_renters": 0.13661202185792351, "p_stay": 0.88473520249221183, "p_movelocal": 0.10007788161993759, "p_movecounty": 0.0050623052959500999, "p_movestate": 0.0031152647975077, "p_moveabroad": 0.0070093457943924999, "p_car": 0.8065630397236615, "p_carpool": 0.1303972366148532, "p_transit": 0.0155440414507772, "p_bike": 0.0086355785837651002, "p_walk": 0.0051813471502589999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091349, 37.62507 ], [ -122.089062, 37.625949 ], [ -122.088173, 37.624525 ], [ -122.082654, 37.624732 ], [ -122.080321, 37.624651 ], [ -122.079674, 37.624745 ], [ -122.074414, 37.617422 ], [ -122.073893, 37.616684 ], [ -122.07145, 37.613278 ], [ -122.072282, 37.613309 ], [ -122.077932, 37.613476 ], [ -122.080259, 37.611531 ], [ -122.083905, 37.609872 ], [ -122.088444, 37.617285 ], [ -122.090451, 37.620556 ], [ -122.092858, 37.62448 ], [ -122.091349, 37.62507 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "400800", "AFFGEOID": "1400000US06001400800", "GEOID": "06001400800", "NAME_x": "4008", "LSAD": "CT", "ALAND": 697978, "AWATER": 0, "NAME_y": "Census Tract 4008, Alameda County, California", "c_race": 3792, "c_white": 1677, "c_black": 1005, "c_asian": 522, "c_latinx": 343, "state_fips": 6, "county_fips": 1, "tract_fips": 400800, "med_rent": 1460.0, "med_hhinc": 64808.0, "c_tenants": 1626, "c_owners": 600, "c_renters": 1026, "c_movers": 3734, "c_stay": 2964, "c_movelocal": 424, "c_movecounty": 201, "c_movestate": 74, "c_moveabroad": 71, "c_commute": 2246, "c_car": 866, "c_carpool": 178, "c_transit": 679, "c_bike": 222, "c_walk": 88, "year": 2018, "FIPS_11_digit": "06001400800", "p_white": 0.442246835443038, "p_black": 0.26503164556962028, "p_asian": 0.13765822784810119, "p_latinx": 0.090453586497890301, "p_owners": 0.36900369003690031, "p_renters": 0.63099630996309963, "p_stay": 0.79378682378146759, "p_movelocal": 0.11355115158007489, "p_movecounty": 0.053829673272629802, "p_movestate": 0.019817889662560199, "p_moveabroad": 0.019014461703267201, "p_car": 0.38557435440783611, "p_carpool": 0.079252003561887802, "p_transit": 0.3023152270703473, "p_bike": 0.098842386464826307, "p_walk": 0.039180765805877101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.288744, 37.850007 ], [ -122.286247, 37.850505 ], [ -122.286132, 37.850149 ], [ -122.284054, 37.850548 ], [ -122.283459, 37.850307 ], [ -122.281899, 37.846975 ], [ -122.279883, 37.84722 ], [ -122.277885, 37.847509 ], [ -122.277981, 37.846972 ], [ -122.277586, 37.844782 ], [ -122.27701, 37.84359 ], [ -122.283186, 37.840978 ], [ -122.285576, 37.839778 ], [ -122.286714, 37.843345 ], [ -122.287499, 37.845772 ], [ -122.287866, 37.846907 ], [ -122.287954, 37.847521 ], [ -122.288744, 37.850007 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401600", "AFFGEOID": "1400000US06001401600", "GEOID": "06001401600", "NAME_x": "4016", "LSAD": "CT", "ALAND": 636068, "AWATER": 0, "NAME_y": "Census Tract 4016, Alameda County, California", "c_race": 2269, "c_white": 729, "c_black": 844, "c_asian": 235, "c_latinx": 323, "state_fips": 6, "county_fips": 1, "tract_fips": 401600, "med_rent": 1288.0, "med_hhinc": 53750.0, "c_tenants": 868, "c_owners": 196, "c_renters": 672, "c_movers": 2262, "c_stay": 1728, "c_movelocal": 323, "c_movecounty": 172, "c_movestate": 6, "c_moveabroad": 33, "c_commute": 1344, "c_car": 434, "c_carpool": 128, "c_transit": 460, "c_bike": 114, "c_walk": 38, "year": 2018, "FIPS_11_digit": "06001401600", "p_white": 0.32128691053327457, "p_black": 0.37197003085059499, "p_asian": 0.1035698545614808, "p_latinx": 0.14235345967386509, "p_owners": 0.22580645161290319, "p_renters": 0.77419354838709675, "p_stay": 0.76392572944297077, "p_movelocal": 0.1427939876215738, "p_movecounty": 0.076038903625110496, "p_movestate": 0.0026525198938992002, "p_moveabroad": 0.014588859416445599, "p_car": 0.32291666666666669, "p_carpool": 0.095238095238095205, "p_transit": 0.34226190476190471, "p_bike": 0.084821428571428506, "p_walk": 0.0282738095238095 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.288425, 37.81831 ], [ -122.286226, 37.821163 ], [ -122.276053, 37.81887 ], [ -122.275265, 37.816452 ], [ -122.274122, 37.812829 ], [ -122.275858, 37.813468 ], [ -122.278681, 37.814574 ], [ -122.280237, 37.814777 ], [ -122.284024, 37.815622 ], [ -122.28967, 37.817002 ], [ -122.288425, 37.81831 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404502", "AFFGEOID": "1400000US06001404502", "GEOID": "06001404502", "NAME_x": "4045.02", "LSAD": "CT", "ALAND": 3071448, "AWATER": 0, "NAME_y": "Census Tract 4045.02, Alameda County, California", "c_race": 6070, "c_white": 4305, "c_black": 135, "c_asian": 775, "c_latinx": 388, "state_fips": 6, "county_fips": 1, "tract_fips": 404502, "med_rent": 2254.0, "med_hhinc": 167077.0, "c_tenants": 2483, "c_owners": 2161, "c_renters": 322, "c_movers": 5974, "c_stay": 5430, "c_movelocal": 281, "c_movecounty": 263, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 3171, "c_car": 1817, "c_carpool": 362, "c_transit": 570, "c_bike": 0, "c_walk": 69, "year": 2018, "FIPS_11_digit": "06001404502", "p_white": 0.70922570016474462, "p_black": 0.022240527182866499, "p_asian": 0.12767710049423389, "p_latinx": 0.0639209225700164, "p_owners": 0.87031816351188074, "p_renters": 0.12968183648811921, "p_stay": 0.90893873451623719, "p_movelocal": 0.047037161031134901, "p_movecounty": 0.044024104452627999, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.57300536108483124, "p_carpool": 0.1141595711132135, "p_transit": 0.17975402081362341, "p_bike": 0.0, "p_walk": 0.0217596972563859 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.215197, 37.831689 ], [ -122.214548, 37.832793 ], [ -122.212328, 37.834442 ], [ -122.211029, 37.837762 ], [ -122.210683, 37.83876 ], [ -122.209187, 37.841521 ], [ -122.206704, 37.841774 ], [ -122.20249, 37.843454 ], [ -122.195287, 37.842817 ], [ -122.196101, 37.842005 ], [ -122.188925, 37.83765 ], [ -122.188877, 37.837626 ], [ -122.185277, 37.837026 ], [ -122.184443, 37.834923 ], [ -122.187449, 37.836234 ], [ -122.186974, 37.835419 ], [ -122.192109, 37.833914 ], [ -122.194015, 37.832052 ], [ -122.198928, 37.830244 ], [ -122.201478, 37.828702 ], [ -122.203344, 37.823738 ], [ -122.207389, 37.824847 ], [ -122.209042, 37.824436 ], [ -122.207365, 37.821647 ], [ -122.215781, 37.83126 ], [ -122.215197, 37.831689 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404700", "AFFGEOID": "1400000US06001404700", "GEOID": "06001404700", "NAME_x": "4047", "LSAD": "CT", "ALAND": 1200169, "AWATER": 0, "NAME_y": "Census Tract 4047, Alameda County, California", "c_race": 2079, "c_white": 1515, "c_black": 134, "c_asian": 199, "c_latinx": 175, "state_fips": 6, "county_fips": 1, "tract_fips": 404700, "med_rent": 3250.0, "med_hhinc": 181000.0, "c_tenants": 790, "c_owners": 680, "c_renters": 110, "c_movers": 2043, "c_stay": 1822, "c_movelocal": 58, "c_movecounty": 77, "c_movestate": 65, "c_moveabroad": 21, "c_commute": 1075, "c_car": 572, "c_carpool": 191, "c_transit": 170, "c_bike": 7, "c_walk": 6, "year": 2018, "FIPS_11_digit": "06001404700", "p_white": 0.72871572871572876, "p_black": 0.064454064454064403, "p_asian": 0.095719095719095704, "p_latinx": 0.084175084175084097, "p_owners": 0.86075949367088611, "p_renters": 0.13924050632911389, "p_stay": 0.89182574645129709, "p_movelocal": 0.028389623103279402, "p_movecounty": 0.037689672050905502, "p_movestate": 0.031815956926088997, "p_moveabroad": 0.0102790014684287, "p_car": 0.53209302325581398, "p_carpool": 0.17767441860465111, "p_transit": 0.1581395348837209, "p_bike": 0.0065116279069767002, "p_walk": 0.0055813953488371999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.214677, 37.812688 ], [ -122.213172, 37.815784 ], [ -122.210178, 37.818613 ], [ -122.208835, 37.819555 ], [ -122.207365, 37.821647 ], [ -122.199655, 37.812202 ], [ -122.197791, 37.810589 ], [ -122.201658, 37.810169 ], [ -122.206073, 37.807279 ], [ -122.207372, 37.806409 ], [ -122.208875, 37.807015 ], [ -122.209605, 37.806913 ], [ -122.209615, 37.807805 ], [ -122.21206, 37.809955 ], [ -122.21091, 37.81061 ], [ -122.213383, 37.812182 ], [ -122.214677, 37.812688 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405800", "AFFGEOID": "1400000US06001405800", "GEOID": "06001405800", "NAME_x": "4058", "LSAD": "CT", "ALAND": 519054, "AWATER": 0, "NAME_y": "Census Tract 4058, Alameda County, California", "c_race": 4645, "c_white": 660, "c_black": 896, "c_asian": 2024, "c_latinx": 961, "state_fips": 6, "county_fips": 1, "tract_fips": 405800, "med_rent": 1305.0, "med_hhinc": 47061.0, "c_tenants": 1351, "c_owners": 443, "c_renters": 908, "c_movers": 4603, "c_stay": 4122, "c_movelocal": 199, "c_movecounty": 132, "c_movestate": 53, "c_moveabroad": 97, "c_commute": 2178, "c_car": 1376, "c_carpool": 392, "c_transit": 263, "c_bike": 11, "c_walk": 27, "year": 2018, "FIPS_11_digit": "06001405800", "p_white": 0.1420882669537136, "p_black": 0.19289558665231429, "p_asian": 0.43573735199138858, "p_latinx": 0.20688912809472551, "p_owners": 0.3279052553663952, "p_renters": 0.67209474463360475, "p_stay": 0.89550293286986749, "p_movelocal": 0.043232674342819903, "p_movecounty": 0.028676949815337801, "p_movestate": 0.0115142298500977, "p_moveabroad": 0.021073213121876998, "p_car": 0.63177226813590448, "p_carpool": 0.17998163452708901, "p_transit": 0.12075298438934801, "p_bike": 0.0050505050505049998, "p_walk": 0.012396694214876 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.237973, 37.79646 ], [ -122.237121, 37.797052 ], [ -122.236024, 37.798408 ], [ -122.233174, 37.796691 ], [ -122.230626, 37.797318 ], [ -122.231892, 37.795952 ], [ -122.229817, 37.794708 ], [ -122.22841, 37.793872 ], [ -122.226685, 37.793545 ], [ -122.229001, 37.790821 ], [ -122.230914, 37.789441 ], [ -122.231583, 37.789907 ], [ -122.233339, 37.790957 ], [ -122.23544, 37.792224 ], [ -122.235512, 37.792267 ], [ -122.237547, 37.793494 ], [ -122.237951, 37.794948 ], [ -122.239833, 37.795136 ], [ -122.237973, 37.79646 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406300", "AFFGEOID": "1400000US06001406300", "GEOID": "06001406300", "NAME_x": "4063", "LSAD": "CT", "ALAND": 485745, "AWATER": 0, "NAME_y": "Census Tract 4063, Alameda County, California", "c_race": 4425, "c_white": 573, "c_black": 1225, "c_asian": 1161, "c_latinx": 1386, "state_fips": 6, "county_fips": 1, "tract_fips": 406300, "med_rent": 1155.0, "med_hhinc": 49116.0, "c_tenants": 1239, "c_owners": 450, "c_renters": 789, "c_movers": 4370, "c_stay": 3715, "c_movelocal": 225, "c_movecounty": 360, "c_movestate": 28, "c_moveabroad": 42, "c_commute": 2113, "c_car": 1235, "c_carpool": 283, "c_transit": 484, "c_bike": 0, "c_walk": 20, "year": 2018, "FIPS_11_digit": "06001406300", "p_white": 0.1294915254237288, "p_black": 0.2768361581920904, "p_asian": 0.26237288135593217, "p_latinx": 0.31322033898305079, "p_owners": 0.36319612590799027, "p_renters": 0.63680387409200967, "p_stay": 0.85011441647597252, "p_movelocal": 0.051487414187643001, "p_movecounty": 0.082379862700228804, "p_movestate": 0.0064073226544621997, "p_moveabroad": 0.0096109839816932996, "p_car": 0.58447704685281587, "p_carpool": 0.133932796971131, "p_transit": 0.22905821107430191, "p_bike": 0.0, "p_walk": 0.0094652153336488003 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.229001, 37.790821 ], [ -122.226685, 37.793545 ], [ -122.225428, 37.793037 ], [ -122.222667, 37.791538 ], [ -122.221573, 37.790949 ], [ -122.219995, 37.790516 ], [ -122.221193, 37.787599 ], [ -122.222249, 37.784938 ], [ -122.224369, 37.785646 ], [ -122.225307, 37.786098 ], [ -122.228901, 37.788213 ], [ -122.230914, 37.789441 ], [ -122.229001, 37.790821 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406800", "AFFGEOID": "1400000US06001406800", "GEOID": "06001406800", "NAME_x": "4068", "LSAD": "CT", "ALAND": 912527, "AWATER": 0, "NAME_y": "Census Tract 4068, Alameda County, California", "c_race": 3510, "c_white": 1532, "c_black": 366, "c_asian": 801, "c_latinx": 490, "state_fips": 6, "county_fips": 1, "tract_fips": 406800, "med_rent": 1583.0, "med_hhinc": 100469.0, "c_tenants": 1351, "c_owners": 971, "c_renters": 380, "c_movers": 3442, "c_stay": 2997, "c_movelocal": 142, "c_movecounty": 243, "c_movestate": 38, "c_moveabroad": 22, "c_commute": 1922, "c_car": 1134, "c_carpool": 157, "c_transit": 355, "c_bike": 14, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001406800", "p_white": 0.4364672364672364, "p_black": 0.10427350427350419, "p_asian": 0.2282051282051282, "p_latinx": 0.1396011396011396, "p_owners": 0.7187268689859363, "p_renters": 0.28127313101406359, "p_stay": 0.87071470075537483, "p_movelocal": 0.041255084253340998, "p_movecounty": 0.070598489250435797, "p_movestate": 0.011040092969203901, "p_moveabroad": 0.0063916327716443001, "p_car": 0.59001040582726327, "p_carpool": 0.081685744016649298, "p_transit": 0.18470343392299679, "p_bike": 0.0072840790842872002, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.202104, 37.797091 ], [ -122.200506, 37.79692 ], [ -122.198397, 37.800064 ], [ -122.197644, 37.799397 ], [ -122.19677, 37.798152 ], [ -122.194663, 37.80177 ], [ -122.193382, 37.801326 ], [ -122.194085, 37.802956 ], [ -122.192665, 37.803075 ], [ -122.194499, 37.805509 ], [ -122.192556, 37.805123 ], [ -122.195038, 37.808233 ], [ -122.194059, 37.807423 ], [ -122.190151, 37.802808 ], [ -122.185369, 37.798489 ], [ -122.187682, 37.798822 ], [ -122.191753, 37.798872 ], [ -122.193066, 37.798061 ], [ -122.192472, 37.797505 ], [ -122.191055, 37.795524 ], [ -122.191543, 37.795091 ], [ -122.191623, 37.795028 ], [ -122.194306, 37.793458 ], [ -122.198304, 37.791118 ], [ -122.200653, 37.793713 ], [ -122.203371, 37.796096 ], [ -122.202104, 37.797091 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406900", "AFFGEOID": "1400000US06001406900", "GEOID": "06001406900", "NAME_x": "4069", "LSAD": "CT", "ALAND": 872952, "AWATER": 0, "NAME_y": "Census Tract 4069, Alameda County, California", "c_race": 3708, "c_white": 1494, "c_black": 620, "c_asian": 815, "c_latinx": 414, "state_fips": 6, "county_fips": 1, "tract_fips": 406900, "med_rent": 1615.0, "med_hhinc": 82759.0, "c_tenants": 1538, "c_owners": 836, "c_renters": 702, "c_movers": 3658, "c_stay": 3170, "c_movelocal": 249, "c_movecounty": 158, "c_movestate": 64, "c_moveabroad": 17, "c_commute": 2097, "c_car": 1269, "c_carpool": 201, "c_transit": 353, "c_bike": 10, "c_walk": 17, "year": 2018, "FIPS_11_digit": "06001406900", "p_white": 0.40291262135922329, "p_black": 0.16720604099244871, "p_asian": 0.21979503775620279, "p_latinx": 0.1116504854368932, "p_owners": 0.54356306892067618, "p_renters": 0.45643693107932382, "p_stay": 0.86659376708583924, "p_movelocal": 0.068069983597594294, "p_movecounty": 0.043193001640240501, "p_movestate": 0.017495899398578402, "p_moveabroad": 0.0046473482777473997, "p_car": 0.60515021459227469, "p_carpool": 0.095851216022889804, "p_transit": 0.16833571769194081, "p_bike": 0.0047687172150691001, "p_walk": 0.0081068192656174997 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.198304, 37.791118 ], [ -122.194306, 37.793458 ], [ -122.191623, 37.795028 ], [ -122.191543, 37.795091 ], [ -122.191055, 37.795524 ], [ -122.192472, 37.797505 ], [ -122.193066, 37.798061 ], [ -122.191753, 37.798872 ], [ -122.187682, 37.798822 ], [ -122.185369, 37.798489 ], [ -122.184387, 37.797244 ], [ -122.18569, 37.79589 ], [ -122.185612, 37.793182 ], [ -122.184278, 37.791537 ], [ -122.185984, 37.789802 ], [ -122.188276, 37.790636 ], [ -122.190123, 37.789692 ], [ -122.194846, 37.787285 ], [ -122.198304, 37.791118 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407800", "AFFGEOID": "1400000US06001407800", "GEOID": "06001407800", "NAME_x": "4078", "LSAD": "CT", "ALAND": 1234700, "AWATER": 0, "NAME_y": "Census Tract 4078, Alameda County, California", "c_race": 2734, "c_white": 806, "c_black": 688, "c_asian": 509, "c_latinx": 486, "state_fips": 6, "county_fips": 1, "tract_fips": 407800, "med_rent": 1269.0, "med_hhinc": 82981.0, "c_tenants": 757, "c_owners": 508, "c_renters": 249, "c_movers": 2724, "c_stay": 2042, "c_movelocal": 211, "c_movecounty": 355, "c_movestate": 75, "c_moveabroad": 41, "c_commute": 1232, "c_car": 671, "c_carpool": 54, "c_transit": 101, "c_bike": 38, "c_walk": 207, "year": 2018, "FIPS_11_digit": "06001407800", "p_white": 0.29480614484272127, "p_black": 0.25164594001463059, "p_asian": 0.18617410387710309, "p_latinx": 0.17776152158010239, "p_owners": 0.67107001321003967, "p_renters": 0.32892998678996038, "p_stay": 0.74963289280469902, "p_movelocal": 0.077459618208516795, "p_movecounty": 0.13032305433186489, "p_movestate": 0.027533039647577001, "p_moveabroad": 0.0150513950073421, "p_car": 0.5446428571428571, "p_carpool": 0.043831168831168797, "p_transit": 0.081980519480519404, "p_bike": 0.030844155844155799, "p_walk": 0.16801948051948051 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.196226, 37.786591 ], [ -122.195775, 37.786829 ], [ -122.192183, 37.785265 ], [ -122.188586, 37.784446 ], [ -122.187784, 37.784355 ], [ -122.180845, 37.784075 ], [ -122.179451, 37.784019 ], [ -122.178401, 37.783822 ], [ -122.17769, 37.783588 ], [ -122.17019, 37.779311 ], [ -122.173804, 37.780425 ], [ -122.175055, 37.78021 ], [ -122.180189, 37.779744 ], [ -122.182559, 37.777412 ], [ -122.184009, 37.776485 ], [ -122.185069, 37.775653 ], [ -122.185933, 37.775838 ], [ -122.187944, 37.777823 ], [ -122.188298, 37.777873 ], [ -122.192015, 37.781062 ], [ -122.193537, 37.782575 ], [ -122.193629, 37.782553 ], [ -122.195924, 37.780924 ], [ -122.200124, 37.784571 ], [ -122.196226, 37.786591 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408200", "AFFGEOID": "1400000US06001408200", "GEOID": "06001408200", "NAME_x": "4082", "LSAD": "CT", "ALAND": 901766, "AWATER": 0, "NAME_y": "Census Tract 4082, Alameda County, California", "c_race": 4455, "c_white": 930, "c_black": 2194, "c_asian": 224, "c_latinx": 605, "state_fips": 6, "county_fips": 1, "tract_fips": 408200, "med_rent": 1354.0, "med_hhinc": 58493.0, "c_tenants": 1855, "c_owners": 714, "c_renters": 1141, "c_movers": 4433, "c_stay": 4051, "c_movelocal": 251, "c_movecounty": 121, "c_movestate": 0, "c_moveabroad": 10, "c_commute": 2460, "c_car": 1634, "c_carpool": 304, "c_transit": 357, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001408200", "p_white": 0.20875420875420869, "p_black": 0.49248035914702581, "p_asian": 0.0502805836139169, "p_latinx": 0.13580246913580241, "p_owners": 0.38490566037735852, "p_renters": 0.61509433962264148, "p_stay": 0.91382810737649445, "p_movelocal": 0.056620798556282402, "p_movecounty": 0.027295285359801399, "p_movestate": 0.0, "p_moveabroad": 0.0022558087074215998, "p_car": 0.66422764227642273, "p_carpool": 0.1235772357723577, "p_transit": 0.1451219512195121, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.182559, 37.777412 ], [ -122.180189, 37.779744 ], [ -122.175055, 37.78021 ], [ -122.172039, 37.777821 ], [ -122.169832, 37.774937 ], [ -122.169583, 37.774422 ], [ -122.169725, 37.774067 ], [ -122.169033, 37.772433 ], [ -122.16997, 37.770754 ], [ -122.172, 37.769173 ], [ -122.176807, 37.77141 ], [ -122.177957, 37.772563 ], [ -122.179729, 37.773893 ], [ -122.180165, 37.774257 ], [ -122.184009, 37.776485 ], [ -122.182559, 37.777412 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409000", "AFFGEOID": "1400000US06001409000", "GEOID": "06001409000", "NAME_x": "4090", "LSAD": "CT", "ALAND": 16931289, "AWATER": 4382424, "NAME_y": "Census Tract 4090, Alameda County, California", "c_race": 3904, "c_white": 74, "c_black": 1261, "c_asian": 158, "c_latinx": 2059, "state_fips": 6, "county_fips": 1, "tract_fips": 409000, "med_rent": 1589.0, "med_hhinc": 48190.0, "c_tenants": 1086, "c_owners": 538, "c_renters": 548, "c_movers": 3813, "c_stay": 3295, "c_movelocal": 450, "c_movecounty": 8, "c_movestate": 5, "c_moveabroad": 55, "c_commute": 1711, "c_car": 1090, "c_carpool": 355, "c_transit": 124, "c_bike": 30, "c_walk": 29, "year": 2018, "FIPS_11_digit": "06001409000", "p_white": 0.018954918032786799, "p_black": 0.32300204918032788, "p_asian": 0.040471311475409798, "p_latinx": 0.52740778688524592, "p_owners": 0.49539594843462248, "p_renters": 0.50460405156537758, "p_stay": 0.86414896407028585, "p_movelocal": 0.1180173092053501, "p_movecounty": 0.0020980854969839999, "p_movestate": 0.001311303435615, "p_moveabroad": 0.014424337791765, "p_car": 0.63705435417884282, "p_carpool": 0.20748100526008181, "p_transit": 0.072472238457042606, "p_bike": 0.017533606078316701, "p_walk": 0.016949152542372801 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.248369, 37.727772 ], [ -122.248487328517001, 37.7278947076043 ], [ -122.247912, 37.728375 ], [ -122.245039, 37.725798 ], [ -122.236181, 37.719851 ], [ -122.228343, 37.727729 ], [ -122.226768, 37.727657 ], [ -122.226806, 37.733099 ], [ -122.226443, 37.734387 ], [ -122.2266, 37.745501 ], [ -122.2265, 37.74808 ], [ -122.223377, 37.748036 ], [ -122.223481, 37.754702 ], [ -122.218112, 37.759656 ], [ -122.214852, 37.761468 ], [ -122.207537, 37.753148 ], [ -122.205176, 37.754231 ], [ -122.201102, 37.754884 ], [ -122.198076, 37.752214 ], [ -122.196548, 37.750857 ], [ -122.193624, 37.748322 ], [ -122.190731, 37.745815 ], [ -122.181561, 37.737835 ], [ -122.18335, 37.736426 ], [ -122.183593, 37.735921 ], [ -122.183945, 37.734649 ], [ -122.184545, 37.734246 ], [ -122.185717, 37.73366 ], [ -122.186815, 37.732855 ], [ -122.186936, 37.732769 ], [ -122.188784, 37.731729 ], [ -122.184167, 37.726529 ], [ -122.183159, 37.725395 ], [ -122.184478, 37.726022 ], [ -122.190377, 37.728893 ], [ -122.191927, 37.727288 ], [ -122.198055, 37.726227 ], [ -122.196747, 37.724133 ], [ -122.196274, 37.72331 ], [ -122.189027, 37.717908 ], [ -122.189138, 37.717812 ], [ -122.19275, 37.716767 ], [ -122.193401, 37.717829 ], [ -122.194714, 37.717538 ], [ -122.194265, 37.715912 ], [ -122.197028, 37.715829 ], [ -122.202166, 37.712983 ], [ -122.209726, 37.711087 ], [ -122.209187112470005, 37.710012817523598 ], [ -122.21248, 37.708971 ], [ -122.211767, 37.702013 ], [ -122.213774, 37.698695 ], [ -122.226503, 37.706526 ], [ -122.246705, 37.720816 ], [ -122.252172, 37.724952 ], [ -122.248369, 37.727772 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409900", "AFFGEOID": "1400000US06001409900", "GEOID": "06001409900", "NAME_x": "4099", "LSAD": "CT", "ALAND": 4332536, "AWATER": 0, "NAME_y": "Census Tract 4099, Alameda County, California", "c_race": 3680, "c_white": 933, "c_black": 1766, "c_asian": 227, "c_latinx": 297, "state_fips": 6, "county_fips": 1, "tract_fips": 409900, "med_rent": 2320.0, "med_hhinc": 112292.0, "c_tenants": 1420, "c_owners": 1256, "c_renters": 164, "c_movers": 3616, "c_stay": 3226, "c_movelocal": 200, "c_movecounty": 154, "c_movestate": 33, "c_moveabroad": 3, "c_commute": 1643, "c_car": 1152, "c_carpool": 216, "c_transit": 132, "c_bike": 0, "c_walk": 12, "year": 2018, "FIPS_11_digit": "06001409900", "p_white": 0.2535326086956522, "p_black": 0.47989130434782601, "p_asian": 0.061684782608695601, "p_latinx": 0.080706521739130399, "p_owners": 0.88450704225352117, "p_renters": 0.1154929577464788, "p_stay": 0.89214601769911506, "p_movelocal": 0.055309734513274297, "p_movecounty": 0.042588495575221201, "p_movestate": 0.0091261061946901999, "p_moveabroad": 0.00082964601769909996, "p_car": 0.70115642118076693, "p_carpool": 0.1314668289713937, "p_transit": 0.080340839926962795, "p_bike": 0.0, "p_walk": 0.0073037127206329001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.155824, 37.772354 ], [ -122.153957, 37.7724 ], [ -122.150944, 37.770404 ], [ -122.147745, 37.771393 ], [ -122.144594, 37.773175 ], [ -122.142249, 37.77254 ], [ -122.138414, 37.769644 ], [ -122.136356, 37.769865 ], [ -122.135071, 37.770397 ], [ -122.131719, 37.770913 ], [ -122.128683, 37.769608 ], [ -122.122824, 37.759099 ], [ -122.121287, 37.757301 ], [ -122.120391, 37.756243 ], [ -122.116183, 37.750372 ], [ -122.115786, 37.748521 ], [ -122.12063, 37.745991 ], [ -122.12401, 37.751307 ], [ -122.127378, 37.754464 ], [ -122.12952, 37.756046 ], [ -122.138522, 37.757941 ], [ -122.140094, 37.757216 ], [ -122.141828, 37.757477 ], [ -122.150562, 37.753371 ], [ -122.151206, 37.75364 ], [ -122.148211, 37.75686 ], [ -122.147737, 37.758759 ], [ -122.148141, 37.760488 ], [ -122.155169, 37.770856 ], [ -122.156288, 37.772002 ], [ -122.155824, 37.772354 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421600", "AFFGEOID": "1400000US06001421600", "GEOID": "06001421600", "NAME_x": "4216", "LSAD": "CT", "ALAND": 1326167, "AWATER": 0, "NAME_y": "Census Tract 4216, Alameda County, California", "c_race": 3698, "c_white": 2695, "c_black": 117, "c_asian": 518, "c_latinx": 173, "state_fips": 6, "county_fips": 1, "tract_fips": 421600, "med_rent": 1849.0, "med_hhinc": 144615.0, "c_tenants": 1572, "c_owners": 1206, "c_renters": 366, "c_movers": 3606, "c_stay": 3052, "c_movelocal": 212, "c_movecounty": 149, "c_movestate": 56, "c_moveabroad": 137, "c_commute": 1793, "c_car": 618, "c_carpool": 161, "c_transit": 431, "c_bike": 44, "c_walk": 247, "year": 2018, "FIPS_11_digit": "06001421600", "p_white": 0.72877230935640891, "p_black": 0.031638723634396897, "p_asian": 0.14007571660356949, "p_latinx": 0.046782044348296303, "p_owners": 0.76717557251908397, "p_renters": 0.232824427480916, "p_stay": 0.84636716583471994, "p_movelocal": 0.058790904048807498, "p_movecounty": 0.041320022185246802, "p_movestate": 0.0155296727676095, "p_moveabroad": 0.037992235163616099, "p_car": 0.34467373117679861, "p_carpool": 0.0897936419408812, "p_transit": 0.2403792526491913, "p_bike": 0.0245398773006134, "p_walk": 0.1377579475738985 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.266609, 37.886035 ], [ -122.26257, 37.886523 ], [ -122.261699, 37.883053 ], [ -122.259856, 37.883278 ], [ -122.260268, 37.886153 ], [ -122.255334, 37.88806 ], [ -122.254792, 37.887816 ], [ -122.254143, 37.889163 ], [ -122.253377, 37.888163 ], [ -122.251877, 37.890955 ], [ -122.248977, 37.891222 ], [ -122.248988, 37.887117 ], [ -122.24692, 37.885438 ], [ -122.246833, 37.884106 ], [ -122.246414, 37.880983 ], [ -122.249085, 37.88125 ], [ -122.249229, 37.881363 ], [ -122.251453, 37.880709 ], [ -122.255593, 37.880194 ], [ -122.256643, 37.879959 ], [ -122.258205, 37.880573 ], [ -122.258052, 37.879821 ], [ -122.265752, 37.878806 ], [ -122.265978, 37.880606 ], [ -122.266153, 37.882423 ], [ -122.266609, 37.886035 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422600", "AFFGEOID": "1400000US06001422600", "GEOID": "06001422600", "NAME_x": "4226", "LSAD": "CT", "ALAND": 1706612, "AWATER": 0, "NAME_y": "Census Tract 4226, Alameda County, California", "c_race": 1264, "c_white": 498, "c_black": 50, "c_asian": 509, "c_latinx": 168, "state_fips": 6, "county_fips": 1, "tract_fips": 422600, "med_rent": null, "med_hhinc": 250001.0, "c_tenants": 21, "c_owners": 21, "c_renters": 0, "c_movers": 1264, "c_stay": 364, "c_movelocal": 206, "c_movecounty": 243, "c_movestate": 44, "c_moveabroad": 407, "c_commute": 430, "c_car": 11, "c_carpool": 8, "c_transit": 8, "c_bike": 10, "c_walk": 345, "year": 2018, "FIPS_11_digit": "06001422600", "p_white": 0.39398734177215189, "p_black": 0.039556962025316403, "p_asian": 0.4026898734177215, "p_latinx": 0.13291139240506319, "p_owners": 1.0, "p_renters": 0.0, "p_stay": 0.28797468354430378, "p_movelocal": 0.16297468354430381, "p_movecounty": 0.19224683544303789, "p_movestate": 0.034810126582278403, "p_moveabroad": 0.32199367088607589, "p_car": 0.025581395348837199, "p_carpool": 0.0186046511627906, "p_transit": 0.0186046511627906, "p_bike": 0.023255813953488299, "p_walk": 0.80232558139534882 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.266329, 37.874188 ], [ -122.265383, 37.874297 ], [ -122.258357, 37.875337 ], [ -122.255726, 37.875668 ], [ -122.254723, 37.875627 ], [ -122.255593, 37.880194 ], [ -122.251453, 37.880709 ], [ -122.249229, 37.881363 ], [ -122.249085, 37.88125 ], [ -122.246414, 37.880983 ], [ -122.245156, 37.869737 ], [ -122.249594, 37.870289 ], [ -122.250214, 37.869346 ], [ -122.250971, 37.869328 ], [ -122.252328, 37.869616 ], [ -122.254588, 37.869321 ], [ -122.259197, 37.86872 ], [ -122.261482, 37.868439 ], [ -122.26599, 37.867834 ], [ -122.266227, 37.868998 ], [ -122.266159, 37.872389 ], [ -122.266329, 37.874188 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "425104", "AFFGEOID": "1400000US06001425104", "GEOID": "06001425104", "NAME_x": "4251.04", "LSAD": "CT", "ALAND": 1088883, "AWATER": 0, "NAME_y": "Census Tract 4251.04, Alameda County, California", "c_race": 3658, "c_white": 1351, "c_black": 980, "c_asian": 541, "c_latinx": 622, "state_fips": 6, "county_fips": 1, "tract_fips": 425104, "med_rent": 1626.0, "med_hhinc": 70385.0, "c_tenants": 1984, "c_owners": 642, "c_renters": 1342, "c_movers": 3596, "c_stay": 2878, "c_movelocal": 312, "c_movecounty": 258, "c_movestate": 108, "c_moveabroad": 40, "c_commute": 2059, "c_car": 971, "c_carpool": 149, "c_transit": 654, "c_bike": 25, "c_walk": 64, "year": 2018, "FIPS_11_digit": "06001425104", "p_white": 0.36932750136686709, "p_black": 0.2679059595407326, "p_asian": 0.14789502460360851, "p_latinx": 0.1700382722799344, "p_owners": 0.32358870967741937, "p_renters": 0.67641129032258063, "p_stay": 0.80033370411568405, "p_movelocal": 0.086763070077864296, "p_movecounty": 0.071746384872080002, "p_movestate": 0.030033370411568401, "p_moveabroad": 0.011123470522803099, "p_car": 0.47158814958717821, "p_carpool": 0.072365225837785305, "p_transit": 0.31762991743564839, "p_bike": 0.012141816415735701, "p_walk": 0.0310830500242836 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.291241, 37.83472 ], [ -122.287672, 37.836052 ], [ -122.284494, 37.83672 ], [ -122.281963, 37.837181 ], [ -122.281649, 37.836692 ], [ -122.27622, 37.836818 ], [ -122.275638, 37.836447 ], [ -122.275896, 37.835661 ], [ -122.27641, 37.834279 ], [ -122.277204, 37.832216 ], [ -122.277821, 37.832304 ], [ -122.277556, 37.831276 ], [ -122.278343, 37.828522 ], [ -122.277956, 37.826993 ], [ -122.27872, 37.827188 ], [ -122.280896, 37.827667 ], [ -122.281191, 37.827478 ], [ -122.291029, 37.830103 ], [ -122.291241, 37.83472 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428100", "AFFGEOID": "1400000US06001428100", "GEOID": "06001428100", "NAME_x": "4281", "LSAD": "CT", "ALAND": 994804, "AWATER": 38330, "NAME_y": "Census Tract 4281, Alameda County, California", "c_race": 4968, "c_white": 2761, "c_black": 262, "c_asian": 1021, "c_latinx": 609, "state_fips": 6, "county_fips": 1, "tract_fips": 428100, "med_rent": 1569.0, "med_hhinc": 99603.0, "c_tenants": 2030, "c_owners": 1094, "c_renters": 936, "c_movers": 4900, "c_stay": 4205, "c_movelocal": 531, "c_movecounty": 126, "c_movestate": 26, "c_moveabroad": 12, "c_commute": 2672, "c_car": 1434, "c_carpool": 280, "c_transit": 460, "c_bike": 66, "c_walk": 67, "year": 2018, "FIPS_11_digit": "06001428100", "p_white": 0.55575684380032209, "p_black": 0.052737520128824399, "p_asian": 0.2055152979066022, "p_latinx": 0.12258454106280189, "p_owners": 0.5389162561576355, "p_renters": 0.4610837438423645, "p_stay": 0.85816326530612241, "p_movelocal": 0.10836734693877551, "p_movecounty": 0.0257142857142857, "p_movestate": 0.0053061224489795002, "p_moveabroad": 0.0024489795918366999, "p_car": 0.53667664670658688, "p_carpool": 0.1047904191616766, "p_transit": 0.17215568862275449, "p_bike": 0.0247005988023952, "p_walk": 0.0250748502994011 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.24284, 37.764143 ], [ -122.240792, 37.766583 ], [ -122.235888, 37.76403 ], [ -122.2349, 37.763508 ], [ -122.233597, 37.762836 ], [ -122.232626, 37.762353 ], [ -122.229686, 37.7603 ], [ -122.229935, 37.760063 ], [ -122.225918, 37.757134 ], [ -122.223779, 37.754428 ], [ -122.224579, 37.753028 ], [ -122.22732, 37.754951 ], [ -122.229715, 37.753094 ], [ -122.231002, 37.753968 ], [ -122.234226, 37.756192 ], [ -122.234991, 37.756718 ], [ -122.237596, 37.758543 ], [ -122.239436, 37.759735 ], [ -122.244241, 37.762486 ], [ -122.24284, 37.764143 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "428400", "AFFGEOID": "1400000US06001428400", "GEOID": "06001428400", "NAME_x": "4284", "LSAD": "CT", "ALAND": 810521, "AWATER": 1168052, "NAME_y": "Census Tract 4284, Alameda County, California", "c_race": 4653, "c_white": 1911, "c_black": 478, "c_asian": 1200, "c_latinx": 745, "state_fips": 6, "county_fips": 1, "tract_fips": 428400, "med_rent": 1692.0, "med_hhinc": 84405.0, "c_tenants": 1898, "c_owners": 506, "c_renters": 1392, "c_movers": 4603, "c_stay": 3919, "c_movelocal": 342, "c_movecounty": 212, "c_movestate": 115, "c_moveabroad": 15, "c_commute": 2578, "c_car": 1633, "c_carpool": 169, "c_transit": 520, "c_bike": 32, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001428400", "p_white": 0.4107027724049, "p_black": 0.102729421878358, "p_asian": 0.25789813023855579, "p_latinx": 0.16011175585643669, "p_owners": 0.26659641728134881, "p_renters": 0.73340358271865125, "p_stay": 0.85140126004779493, "p_movelocal": 0.074299369976102494, "p_movecounty": 0.046056919400391, "p_movestate": 0.024983706278514001, "p_moveabroad": 0.0032587442971974, "p_car": 0.63343677269200926, "p_carpool": 0.065554693560899893, "p_transit": 0.20170674941815361, "p_bike": 0.0124127230411171, "p_walk": 0.012800620636152 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.254926, 37.75988 ], [ -122.254623, 37.760906 ], [ -122.254022, 37.760677 ], [ -122.252881, 37.762913 ], [ -122.255755, 37.764173 ], [ -122.253994, 37.766746 ], [ -122.248243, 37.764236 ], [ -122.244305, 37.762521 ], [ -122.244241, 37.762486 ], [ -122.245584, 37.76086 ], [ -122.248417, 37.757465 ], [ -122.249232, 37.755666 ], [ -122.250561707781003, 37.754080827455397 ], [ -122.257007371748003, 37.756323829985696 ], [ -122.254926, 37.75988 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430300", "AFFGEOID": "1400000US06001430300", "GEOID": "06001430300", "NAME_x": "4303", "LSAD": "CT", "ALAND": 2964586, "AWATER": 233357, "NAME_y": "Census Tract 4303, Alameda County, California", "c_race": 3812, "c_white": 2166, "c_black": 49, "c_asian": 904, "c_latinx": 491, "state_fips": 6, "county_fips": 1, "tract_fips": 430300, "med_rent": 2122.0, "med_hhinc": 134327.0, "c_tenants": 1317, "c_owners": 1190, "c_renters": 127, "c_movers": 3812, "c_stay": 3438, "c_movelocal": 115, "c_movecounty": 221, "c_movestate": 19, "c_moveabroad": 19, "c_commute": 2030, "c_car": 1430, "c_carpool": 262, "c_transit": 146, "c_bike": 7, "c_walk": 8, "year": 2018, "FIPS_11_digit": "06001430300", "p_white": 0.56820566631689406, "p_black": 0.0128541448058761, "p_asian": 0.23714585519412379, "p_latinx": 0.12880377754459599, "p_owners": 0.90356871678056183, "p_renters": 0.096431283219438099, "p_stay": 0.90188877229800635, "p_movelocal": 0.0301678908709338, "p_movecounty": 0.057974816369359902, "p_movestate": 0.0049842602308498999, "p_moveabroad": 0.0049842602308498999, "p_car": 0.70443349753694584, "p_carpool": 0.12906403940886699, "p_transit": 0.071921182266009798, "p_bike": 0.0034482758620689, "p_walk": 0.0039408866995073004 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.0955, 37.72874 ], [ -122.075533, 37.737926 ], [ -122.07597, 37.737028 ], [ -122.079678, 37.735043 ], [ -122.080943, 37.733712 ], [ -122.079714, 37.724689 ], [ -122.075264, 37.720742 ], [ -122.073793, 37.718748 ], [ -122.073729, 37.716736 ], [ -122.073844, 37.713986 ], [ -122.073944, 37.710875 ], [ -122.074034, 37.709604 ], [ -122.082495, 37.710416 ], [ -122.084182, 37.710369 ], [ -122.088763, 37.710251 ], [ -122.089168, 37.712636 ], [ -122.0904, 37.721562 ], [ -122.093974, 37.727229 ], [ -122.094574, 37.728129 ], [ -122.095943, 37.727982 ], [ -122.0955, 37.72874 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430700", "AFFGEOID": "1400000US06001430700", "GEOID": "06001430700", "NAME_x": "4307", "LSAD": "CT", "ALAND": 1322635, "AWATER": 0, "NAME_y": "Census Tract 4307, Alameda County, California", "c_race": 4140, "c_white": 2227, "c_black": 178, "c_asian": 874, "c_latinx": 609, "state_fips": 6, "county_fips": 1, "tract_fips": 430700, "med_rent": 1788.0, "med_hhinc": 100494.0, "c_tenants": 1415, "c_owners": 1122, "c_renters": 293, "c_movers": 4081, "c_stay": 3778, "c_movelocal": 213, "c_movecounty": 72, "c_movestate": 3, "c_moveabroad": 15, "c_commute": 2056, "c_car": 1512, "c_carpool": 42, "c_transit": 254, "c_bike": 10, "c_walk": 8, "year": 2018, "FIPS_11_digit": "06001430700", "p_white": 0.53792270531400965, "p_black": 0.042995169082125598, "p_asian": 0.21111111111111111, "p_latinx": 0.14710144927536231, "p_owners": 0.79293286219081272, "p_renters": 0.2070671378091872, "p_stay": 0.92575349179122757, "p_movelocal": 0.052193089928938903, "p_movecounty": 0.017642734623866601, "p_movestate": 0.00073511394266110002, "p_moveabroad": 0.0036755697133054998, "p_car": 0.7354085603112841, "p_carpool": 0.0204280155642023, "p_transit": 0.1235408560311284, "p_bike": 0.0048638132295719004, "p_walk": 0.0038910505836575 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091612, 37.710176 ], [ -122.088763, 37.710251 ], [ -122.084182, 37.710369 ], [ -122.082495, 37.710416 ], [ -122.074034, 37.709604 ], [ -122.074011, 37.706718 ], [ -122.074098, 37.704751 ], [ -122.074064, 37.701822 ], [ -122.075461, 37.701853 ], [ -122.082239, 37.701737 ], [ -122.083835, 37.701711 ], [ -122.085292, 37.701673 ], [ -122.088165, 37.701141 ], [ -122.088837, 37.702687 ], [ -122.090067, 37.706525 ], [ -122.090479, 37.707822 ], [ -122.091033, 37.708917 ], [ -122.092589, 37.70985 ], [ -122.091612, 37.710176 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "431100", "AFFGEOID": "1400000US06001431100", "GEOID": "06001431100", "NAME_x": "4311", "LSAD": "CT", "ALAND": 982920, "AWATER": 0, "NAME_y": "Census Tract 4311, Alameda County, California", "c_race": 3587, "c_white": 1222, "c_black": 469, "c_asian": 433, "c_latinx": 1190, "state_fips": 6, "county_fips": 1, "tract_fips": 431100, "med_rent": 1618.0, "med_hhinc": 75446.0, "c_tenants": 1410, "c_owners": 394, "c_renters": 1016, "c_movers": 3517, "c_stay": 2964, "c_movelocal": 182, "c_movecounty": 292, "c_movestate": 56, "c_moveabroad": 23, "c_commute": 1892, "c_car": 1373, "c_carpool": 122, "c_transit": 213, "c_bike": 0, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001431100", "p_white": 0.34067465848898798, "p_black": 0.13074993030387511, "p_asian": 0.1207136883189294, "p_latinx": 0.3317535545023696, "p_owners": 0.27943262411347519, "p_renters": 0.72056737588652486, "p_stay": 0.84276371907876035, "p_movelocal": 0.0517486494171168, "p_movecounty": 0.083025305658231394, "p_movestate": 0.0159226613591128, "p_moveabroad": 0.0065396644867785, "p_car": 0.72568710359408028, "p_carpool": 0.064482029598308593, "p_transit": 0.1125792811839323, "p_bike": 0.0, "p_walk": 0.0052854122621563996 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.073651, 37.684209 ], [ -122.073518, 37.686845 ], [ -122.073811, 37.690948 ], [ -122.069372, 37.691192 ], [ -122.06251, 37.6929 ], [ -122.062299, 37.692962 ], [ -122.059972, 37.69359 ], [ -122.059718, 37.692469 ], [ -122.058884, 37.692192 ], [ -122.062164, 37.685893 ], [ -122.063217, 37.685948 ], [ -122.065079, 37.685545 ], [ -122.066968, 37.683943 ], [ -122.068117, 37.684843 ], [ -122.070176, 37.684184 ], [ -122.07122, 37.683234 ], [ -122.07028, 37.681338 ], [ -122.072011, 37.680988 ], [ -122.073035, 37.682974 ], [ -122.073895, 37.683098 ], [ -122.073651, 37.684209 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432700", "AFFGEOID": "1400000US06001432700", "GEOID": "06001432700", "NAME_x": "4327", "LSAD": "CT", "ALAND": 828606, "AWATER": 0, "NAME_y": "Census Tract 4327, Alameda County, California", "c_race": 2852, "c_white": 1244, "c_black": 155, "c_asian": 449, "c_latinx": 784, "state_fips": 6, "county_fips": 1, "tract_fips": 432700, "med_rent": 1661.0, "med_hhinc": 86483.0, "c_tenants": 1037, "c_owners": 743, "c_renters": 294, "c_movers": 2852, "c_stay": 2596, "c_movelocal": 156, "c_movecounty": 66, "c_movestate": 26, "c_moveabroad": 8, "c_commute": 1353, "c_car": 803, "c_carpool": 116, "c_transit": 321, "c_bike": 37, "c_walk": 21, "year": 2018, "FIPS_11_digit": "06001432700", "p_white": 0.43618513323983171, "p_black": 0.054347826086956499, "p_asian": 0.15743338008415139, "p_latinx": 0.27489481065918647, "p_owners": 0.71648987463837999, "p_renters": 0.28351012536162001, "p_stay": 0.91023842917251041, "p_movelocal": 0.054698457223001401, "p_movecounty": 0.0231416549789621, "p_movestate": 0.0091164095371669002, "p_moveabroad": 0.0028050490883589998, "p_car": 0.5934959349593496, "p_carpool": 0.085735402808573502, "p_transit": 0.23725055432372499, "p_bike": 0.027346637102734599, "p_walk": 0.0155210643015521 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.148234, 37.729729 ], [ -122.147977, 37.731344 ], [ -122.140541, 37.731462 ], [ -122.138977, 37.730932 ], [ -122.138747, 37.730929 ], [ -122.138395, 37.729759 ], [ -122.137278, 37.72473 ], [ -122.135579, 37.722284 ], [ -122.13751, 37.723876 ], [ -122.141297, 37.722847 ], [ -122.145496, 37.72167 ], [ -122.146731, 37.724493 ], [ -122.147888, 37.727156 ], [ -122.148736, 37.729135 ], [ -122.148234, 37.729729 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433103", "AFFGEOID": "1400000US06001433103", "GEOID": "06001433103", "NAME_x": "4331.03", "LSAD": "CT", "ALAND": 690662, "AWATER": 0, "NAME_y": "Census Tract 4331.03, Alameda County, California", "c_race": 3993, "c_white": 432, "c_black": 756, "c_asian": 862, "c_latinx": 1857, "state_fips": 6, "county_fips": 1, "tract_fips": 433103, "med_rent": 1363.0, "med_hhinc": 58534.0, "c_tenants": 1522, "c_owners": 319, "c_renters": 1203, "c_movers": 3962, "c_stay": 3383, "c_movelocal": 408, "c_movecounty": 78, "c_movestate": 39, "c_moveabroad": 54, "c_commute": 2246, "c_car": 1649, "c_carpool": 210, "c_transit": 256, "c_bike": 8, "c_walk": 48, "year": 2018, "FIPS_11_digit": "06001433103", "p_white": 0.1081893313298271, "p_black": 0.18933132982719761, "p_asian": 0.21587778612572001, "p_latinx": 0.46506386175807662, "p_owners": 0.20959264126149799, "p_renters": 0.79040735873850199, "p_stay": 0.85386168601716306, "p_movelocal": 0.1029782937910146, "p_movecounty": 0.019687026754164502, "p_movestate": 0.0098435133770822004, "p_moveabroad": 0.0136294800605754, "p_car": 0.73419412288512909, "p_carpool": 0.093499554764024898, "p_transit": 0.113980409617097, "p_bike": 0.0035618878005341998, "p_walk": 0.021371326803205699 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.146793, 37.707869 ], [ -122.140029, 37.713389 ], [ -122.139752, 37.713203 ], [ -122.138601, 37.714242 ], [ -122.137254, 37.71329 ], [ -122.132205, 37.709768 ], [ -122.130737, 37.708653 ], [ -122.13015, 37.707594 ], [ -122.130093, 37.706408 ], [ -122.131804, 37.707604 ], [ -122.132915, 37.70838 ], [ -122.133962, 37.709107 ], [ -122.138738, 37.705293 ], [ -122.138651, 37.705068 ], [ -122.141893, 37.707302 ], [ -122.142377, 37.707679 ], [ -122.144077, 37.706209 ], [ -122.142381, 37.703541 ], [ -122.147152, 37.707695 ], [ -122.146793, 37.707869 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433400", "AFFGEOID": "1400000US06001433400", "GEOID": "06001433400", "NAME_x": "4334", "LSAD": "CT", "ALAND": 5474774, "AWATER": 2188972, "NAME_y": "Census Tract 4334, Alameda County, California", "c_race": 6244, "c_white": 1123, "c_black": 248, "c_asian": 3877, "c_latinx": 479, "state_fips": 6, "county_fips": 1, "tract_fips": 433400, "med_rent": 1862.0, "med_hhinc": 105457.0, "c_tenants": 2249, "c_owners": 1729, "c_renters": 520, "c_movers": 6225, "c_stay": 5772, "c_movelocal": 186, "c_movecounty": 226, "c_movestate": 41, "c_moveabroad": 0, "c_commute": 3142, "c_car": 2394, "c_carpool": 290, "c_transit": 389, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001433400", "p_white": 0.17985265855221011, "p_black": 0.039718129404228003, "p_asian": 0.62091607943625882, "p_latinx": 0.076713645099295305, "p_owners": 0.76878612716763006, "p_renters": 0.23121387283236991, "p_stay": 0.92722891566265064, "p_movelocal": 0.029879518072289099, "p_movecounty": 0.036305220883534099, "p_movestate": 0.0065863453815261002, "p_moveabroad": 0.0, "p_car": 0.76193507320178233, "p_carpool": 0.0922978994271164, "p_transit": 0.1238064926798217, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.191653, 37.695548 ], [ -122.18751, 37.696791 ], [ -122.186463, 37.69565 ], [ -122.181906, 37.697658 ], [ -122.167527, 37.703686 ], [ -122.165879, 37.701212 ], [ -122.1657, 37.700437 ], [ -122.163976, 37.69723 ], [ -122.162349, 37.692951 ], [ -122.162848, 37.692561 ], [ -122.163083, 37.692497 ], [ -122.162859, 37.690917 ], [ -122.162374, 37.689172 ], [ -122.162095, 37.6883 ], [ -122.160467, 37.685895 ], [ -122.155885, 37.679822 ], [ -122.15842, 37.679108 ], [ -122.154719, 37.675163 ], [ -122.154468, 37.674886 ], [ -122.15232, 37.672564 ], [ -122.154383, 37.671505 ], [ -122.161705, 37.667748 ], [ -122.165429, 37.672979 ], [ -122.166512300212005, 37.672750355342203 ], [ -122.166601579428999, 37.672874540276901 ], [ -122.170220788980004, 37.677908761220998 ], [ -122.170648, 37.678503 ], [ -122.171756439915001, 37.678927540912099 ], [ -122.178016, 37.681325 ], [ -122.184238168055998, 37.690293149660597 ], [ -122.184392351256008, 37.690515377346998 ], [ -122.184671, 37.690917 ], [ -122.188236, 37.690165 ], [ -122.193559771140997, 37.694377663976198 ], [ -122.191653, 37.695548 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435200", "AFFGEOID": "1400000US06001435200", "GEOID": "06001435200", "NAME_x": "4352", "LSAD": "CT", "ALAND": 2266084, "AWATER": 61587, "NAME_y": "Census Tract 4352, Alameda County, California", "c_race": 4529, "c_white": 1114, "c_black": 856, "c_asian": 1116, "c_latinx": 1145, "state_fips": 6, "county_fips": 1, "tract_fips": 435200, "med_rent": 1356.0, "med_hhinc": 104878.0, "c_tenants": 1472, "c_owners": 1236, "c_renters": 236, "c_movers": 4516, "c_stay": 4352, "c_movelocal": 130, "c_movecounty": 34, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 2261, "c_car": 1669, "c_carpool": 169, "c_transit": 188, "c_bike": 0, "c_walk": 17, "year": 2018, "FIPS_11_digit": "06001435200", "p_white": 0.24597041289467869, "p_black": 0.18900419518657541, "p_asian": 0.24641201148156319, "p_latinx": 0.25281519099138883, "p_owners": 0.83967391304347827, "p_renters": 0.1603260869565217, "p_stay": 0.96368467670504876, "p_movelocal": 0.028786536758192999, "p_movecounty": 0.0075287865367580998, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.73816895179124287, "p_carpool": 0.074745687748783707, "p_transit": 0.083149049093321506, "p_bike": 0.0, "p_walk": 0.0075187969924812 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.063788, 37.683879 ], [ -122.063217, 37.685948 ], [ -122.062164, 37.685893 ], [ -122.058884, 37.692192 ], [ -122.059718, 37.692469 ], [ -122.059972, 37.69359 ], [ -122.058061, 37.693915 ], [ -122.056963, 37.693962 ], [ -122.056443, 37.694548 ], [ -122.055014, 37.694607 ], [ -122.054958, 37.694236 ], [ -122.054485, 37.693768 ], [ -122.053386, 37.693636 ], [ -122.051961, 37.693582 ], [ -122.047651, 37.694379 ], [ -122.045253, 37.695682 ], [ -122.043964, 37.694486 ], [ -122.044492, 37.692442 ], [ -122.047274, 37.690937 ], [ -122.046777, 37.688896 ], [ -122.045355, 37.688136 ], [ -122.044267, 37.687325 ], [ -122.043736, 37.686717 ], [ -122.042032, 37.68206 ], [ -122.040572, 37.679631 ], [ -122.044395, 37.674993 ], [ -122.04829, 37.675993 ], [ -122.049032, 37.677089 ], [ -122.05052, 37.678766 ], [ -122.054331, 37.683964 ], [ -122.054631, 37.684565 ], [ -122.0581, 37.684233 ], [ -122.062599, 37.683877 ], [ -122.063823, 37.683755 ], [ -122.063788, 37.683879 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435700", "AFFGEOID": "1400000US06001435700", "GEOID": "06001435700", "NAME_x": "4357", "LSAD": "CT", "ALAND": 1325905, "AWATER": 0, "NAME_y": "Census Tract 4357, Alameda County, California", "c_race": 4923, "c_white": 1019, "c_black": 530, "c_asian": 690, "c_latinx": 2370, "state_fips": 6, "county_fips": 1, "tract_fips": 435700, "med_rent": 1764.0, "med_hhinc": 87500.0, "c_tenants": 1432, "c_owners": 1028, "c_renters": 404, "c_movers": 4833, "c_stay": 4390, "c_movelocal": 143, "c_movecounty": 48, "c_movestate": 9, "c_moveabroad": 243, "c_commute": 2174, "c_car": 1780, "c_carpool": 199, "c_transit": 71, "c_bike": 18, "c_walk": 22, "year": 2018, "FIPS_11_digit": "06001435700", "p_white": 0.20698760918139339, "p_black": 0.1076579321551899, "p_asian": 0.1401584399756246, "p_latinx": 0.48141377209018887, "p_owners": 0.71787709497206709, "p_renters": 0.28212290502793291, "p_stay": 0.90833850610386924, "p_movelocal": 0.029588247465342402, "p_movecounty": 0.0099317194289260998, "p_movestate": 0.0018621973929236, "p_moveabroad": 0.050279329608938501, "p_car": 0.81876724931002764, "p_carpool": 0.091536338546458096, "p_transit": 0.032658693652253899, "p_bike": 0.0082796688132474004, "p_walk": 0.0101195952161913 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.1254, 37.685828 ], [ -122.122193, 37.685863 ], [ -122.117395, 37.686013 ], [ -122.116825, 37.685647 ], [ -122.116683, 37.68435 ], [ -122.112614, 37.679615 ], [ -122.11235, 37.679314 ], [ -122.112082, 37.679009 ], [ -122.109728, 37.676414 ], [ -122.110726, 37.675744 ], [ -122.107193, 37.672659 ], [ -122.103865, 37.669756 ], [ -122.100231, 37.666572 ], [ -122.101184, 37.666442 ], [ -122.103352, 37.666519 ], [ -122.103427, 37.666655 ], [ -122.103594, 37.666856 ], [ -122.105603, 37.668581 ], [ -122.108272, 37.670907 ], [ -122.110254, 37.672604 ], [ -122.111599, 37.672032 ], [ -122.117534, 37.676558 ], [ -122.124274, 37.681095 ], [ -122.129, 37.684386 ], [ -122.1254, 37.685828 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437702", "AFFGEOID": "1400000US06001437702", "GEOID": "06001437702", "NAME_x": "4377.02", "LSAD": "CT", "ALAND": 371487, "AWATER": 0, "NAME_y": "Census Tract 4377.02, Alameda County, California", "c_race": 4469, "c_white": 160, "c_black": 245, "c_asian": 382, "c_latinx": 3456, "state_fips": 6, "county_fips": 1, "tract_fips": 437702, "med_rent": 1580.0, "med_hhinc": 63892.0, "c_tenants": 1126, "c_owners": 44, "c_renters": 1082, "c_movers": 4358, "c_stay": 4022, "c_movelocal": 195, "c_movecounty": 89, "c_movestate": 0, "c_moveabroad": 52, "c_commute": 1828, "c_car": 1312, "c_carpool": 276, "c_transit": 30, "c_bike": 13, "c_walk": 66, "year": 2018, "FIPS_11_digit": "06001437702", "p_white": 0.035802192884314098, "p_black": 0.054822107854106003, "p_asian": 0.085477735511300001, "p_latinx": 0.77332736630118593, "p_owners": 0.039076376554174001, "p_renters": 0.96092362344582605, "p_stay": 0.92290041303350157, "p_movelocal": 0.044745296007342797, "p_movecounty": 0.0204222120238641, "p_movestate": 0.0, "p_moveabroad": 0.0119320789352914, "p_car": 0.71772428884026263, "p_carpool": 0.15098468271334789, "p_transit": 0.016411378555798599, "p_bike": 0.0071115973741794, "p_walk": 0.036105032822757101 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.07847, 37.640942 ], [ -122.073967, 37.641109 ], [ -122.072466, 37.642087 ], [ -122.069543, 37.639504 ], [ -122.0717, 37.638279 ], [ -122.068989, 37.635925 ], [ -122.072114, 37.634332 ], [ -122.072327, 37.634598 ], [ -122.074725, 37.636712 ], [ -122.075885, 37.636457 ], [ -122.07847, 37.640942 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440100", "AFFGEOID": "1400000US06001440100", "GEOID": "06001440100", "NAME_x": "4401", "LSAD": "CT", "ALAND": 27751533, "AWATER": 0, "NAME_y": "Census Tract 4401, Alameda County, California", "c_race": 2660, "c_white": 1054, "c_black": 54, "c_asian": 979, "c_latinx": 507, "state_fips": 6, "county_fips": 1, "tract_fips": 440100, "med_rent": 2193.0, "med_hhinc": 79728.0, "c_tenants": 1119, "c_owners": 505, "c_renters": 614, "c_movers": 2616, "c_stay": 2317, "c_movelocal": 208, "c_movecounty": 61, "c_movestate": 5, "c_moveabroad": 25, "c_commute": 700, "c_car": 456, "c_carpool": 147, "c_transit": 24, "c_bike": 0, "c_walk": 23, "year": 2018, "FIPS_11_digit": "06001440100", "p_white": 0.39624060150375939, "p_black": 0.020300751879699201, "p_asian": 0.3680451127819549, "p_latinx": 0.19060150375939849, "p_owners": 0.45129579982126899, "p_renters": 0.54870420017873101, "p_stay": 0.8857033639143731, "p_movelocal": 0.079510703363914303, "p_movecounty": 0.023318042813455599, "p_movestate": 0.0019113149847094001, "p_moveabroad": 0.0095565749235474, "p_car": 0.65142857142857147, "p_carpool": 0.21, "p_transit": 0.034285714285714197, "p_bike": 0.0, "p_walk": 0.0328571428571428 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.030028, 37.628855 ], [ -122.027928, 37.628616 ], [ -122.023194, 37.631761 ], [ -122.022853, 37.632251 ], [ -122.022617, 37.632321 ], [ -122.022128, 37.632281 ], [ -122.021704, 37.63244 ], [ -122.021264, 37.632851 ], [ -122.020978, 37.633232 ], [ -122.020541, 37.633372 ], [ -122.019993, 37.63332 ], [ -122.019208, 37.633454 ], [ -122.018928, 37.63337 ], [ -122.017206, 37.632394 ], [ -122.014024, 37.631686 ], [ -122.013906, 37.631621 ], [ -122.006761, 37.627078 ], [ -122.005974, 37.627314 ], [ -122.002146, 37.627265 ], [ -121.999106, 37.629031 ], [ -121.998892, 37.630418 ], [ -121.996391, 37.6315 ], [ -121.991893, 37.63034 ], [ -121.991341, 37.630825 ], [ -121.989851, 37.633831 ], [ -121.987073, 37.634041 ], [ -121.983154, 37.634586 ], [ -121.981171, 37.635832 ], [ -121.978277, 37.639418 ], [ -121.9689, 37.643085 ], [ -121.967026, 37.643206 ], [ -121.963518, 37.640816 ], [ -121.962072, 37.638588 ], [ -121.960163, 37.636838 ], [ -121.958615, 37.636122 ], [ -121.954435, 37.635446 ], [ -121.951916, 37.633211 ], [ -121.950784, 37.63197 ], [ -121.94599, 37.628967 ], [ -121.943857, 37.626413 ], [ -121.943915, 37.626003 ], [ -121.943619, 37.620833 ], [ -121.944987, 37.617028 ], [ -121.941008, 37.613827 ], [ -121.941192, 37.612045 ], [ -121.942269, 37.610457 ], [ -121.945382, 37.609241 ], [ -121.945536, 37.60675 ], [ -121.946585, 37.605633 ], [ -121.948287, 37.603251 ], [ -121.947815, 37.601225 ], [ -121.945875, 37.598069 ], [ -121.947011, 37.597896 ], [ -121.950257, 37.598055 ], [ -121.951652, 37.597529 ], [ -121.957525, 37.590159 ], [ -121.96751, 37.596594 ], [ -121.981668, 37.604624 ], [ -121.988518, 37.600004 ], [ -121.988819, 37.598994 ], [ -121.993026, 37.596028 ], [ -122.001372, 37.589602 ], [ -122.015637, 37.602313 ], [ -122.01735, 37.603848 ], [ -122.020037, 37.606243 ], [ -122.017987, 37.607812 ], [ -122.016883, 37.609275 ], [ -122.017183, 37.610972 ], [ -122.01676, 37.61306 ], [ -122.017801, 37.616384 ], [ -122.020624, 37.619 ], [ -122.021874, 37.619292 ], [ -122.022523, 37.620842 ], [ -122.023793, 37.621754 ], [ -122.023606, 37.622919 ], [ -122.026618, 37.623005 ], [ -122.028028, 37.622776 ], [ -122.029623, 37.625082 ], [ -122.030028, 37.628855 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441402", "AFFGEOID": "1400000US06001441402", "GEOID": "06001441402", "NAME_x": "4414.02", "LSAD": "CT", "ALAND": 1634514, "AWATER": 0, "NAME_y": "Census Tract 4414.02, Alameda County, California", "c_race": 5436, "c_white": 990, "c_black": 133, "c_asian": 3588, "c_latinx": 487, "state_fips": 6, "county_fips": 1, "tract_fips": 441402, "med_rent": 2537.0, "med_hhinc": 153346.0, "c_tenants": 1675, "c_owners": 1243, "c_renters": 432, "c_movers": 5323, "c_stay": 4785, "c_movelocal": 239, "c_movecounty": 160, "c_movestate": 15, "c_moveabroad": 124, "c_commute": 2191, "c_car": 1658, "c_carpool": 151, "c_transit": 266, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441402", "p_white": 0.1821192052980132, "p_black": 0.024466519499632002, "p_asian": 0.66004415011037532, "p_latinx": 0.089587932303164003, "p_owners": 0.74208955223880602, "p_renters": 0.25791044776119398, "p_stay": 0.89892917527709937, "p_movelocal": 0.044899492767236503, "p_movecounty": 0.0300582378358068, "p_movestate": 0.0028179597971067999, "p_moveabroad": 0.023295134322750301, "p_car": 0.75673208580556828, "p_carpool": 0.068918302145139207, "p_transit": 0.121405750798722, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.050346, 37.583491 ], [ -122.048253, 37.585818 ], [ -122.045705, 37.587136 ], [ -122.041459, 37.588119 ], [ -122.038704, 37.587789 ], [ -122.038389, 37.587732 ], [ -122.03352, 37.586112 ], [ -122.02536, 37.578493 ], [ -122.0268, 37.576923 ], [ -122.028327, 37.57786 ], [ -122.031403, 37.580321 ], [ -122.033549, 37.581518 ], [ -122.035394, 37.581569 ], [ -122.037028, 37.580675 ], [ -122.041198, 37.575093 ], [ -122.045849, 37.577567 ], [ -122.049254, 37.581793 ], [ -122.049204, 37.58105 ], [ -122.050346, 37.583491 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442000", "AFFGEOID": "1400000US06001442000", "GEOID": "06001442000", "NAME_x": "4420", "LSAD": "CT", "ALAND": 8127968, "AWATER": 0, "NAME_y": "Census Tract 4420, Alameda County, California", "c_race": 3232, "c_white": 646, "c_black": 6, "c_asian": 2302, "c_latinx": 38, "state_fips": 6, "county_fips": 1, "tract_fips": 442000, "med_rent": 3501.0, "med_hhinc": 165114.0, "c_tenants": 1003, "c_owners": 930, "c_renters": 73, "c_movers": 3220, "c_stay": 3042, "c_movelocal": 60, "c_movecounty": 39, "c_movestate": 62, "c_moveabroad": 17, "c_commute": 1508, "c_car": 1116, "c_carpool": 131, "c_transit": 108, "c_bike": 10, "c_walk": 22, "year": 2018, "FIPS_11_digit": "06001442000", "p_white": 0.19987623762376239, "p_black": 0.0018564356435643, "p_asian": 0.71225247524752477, "p_latinx": 0.0117574257425742, "p_owners": 0.9272183449651048, "p_renters": 0.072781655034895296, "p_stay": 0.94472049689440996, "p_movelocal": 0.018633540372670801, "p_movecounty": 0.012111801242236001, "p_movestate": 0.019254658385093101, "p_moveabroad": 0.0052795031055899999, "p_car": 0.74005305039787794, "p_carpool": 0.086870026525198901, "p_transit": 0.071618037135278506, "p_bike": 0.0066312997347479996, "p_walk": 0.014588859416445599 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.959055, 37.567125 ], [ -121.957507, 37.569226 ], [ -121.9527, 37.570649 ], [ -121.949601, 37.5704 ], [ -121.947994, 37.569816 ], [ -121.94278, 37.570627 ], [ -121.93956, 37.570565 ], [ -121.935789, 37.570024 ], [ -121.933064, 37.571255 ], [ -121.931764, 37.572619 ], [ -121.932146, 37.573315 ], [ -121.925221, 37.571212 ], [ -121.923513, 37.569691 ], [ -121.923149, 37.568222 ], [ -121.919429, 37.567686 ], [ -121.918959, 37.565943 ], [ -121.919194, 37.561478 ], [ -121.923641, 37.559913 ], [ -121.923714, 37.559685 ], [ -121.924834, 37.557246 ], [ -121.918002, 37.56124 ], [ -121.915968, 37.560873 ], [ -121.915773, 37.555392 ], [ -121.916594, 37.554318 ], [ -121.918111, 37.551243 ], [ -121.91935, 37.548942 ], [ -121.919996, 37.54546 ], [ -121.920781, 37.543989 ], [ -121.924387, 37.540631 ], [ -121.939854, 37.54988 ], [ -121.945984, 37.553856 ], [ -121.955638, 37.55985 ], [ -121.957047, 37.560814 ], [ -121.95739, 37.561093 ], [ -121.961473, 37.565571 ], [ -121.959055, 37.567125 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443102", "AFFGEOID": "1400000US06001443102", "GEOID": "06001443102", "NAME_x": "4431.02", "LSAD": "CT", "ALAND": 2375918, "AWATER": 0, "NAME_y": "Census Tract 4431.02, Alameda County, California", "c_race": 4881, "c_white": 814, "c_black": 25, "c_asian": 3616, "c_latinx": 215, "state_fips": 6, "county_fips": 1, "tract_fips": 443102, "med_rent": 3442.0, "med_hhinc": 176818.0, "c_tenants": 1492, "c_owners": 1360, "c_renters": 132, "c_movers": 4860, "c_stay": 4556, "c_movelocal": 142, "c_movecounty": 46, "c_movestate": 30, "c_moveabroad": 86, "c_commute": 1942, "c_car": 1563, "c_carpool": 140, "c_transit": 80, "c_bike": 24, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001443102", "p_white": 0.16676910469166151, "p_black": 0.0051219012497438999, "p_asian": 0.74083179676295841, "p_latinx": 0.044048350747797498, "p_owners": 0.91152815013404842, "p_renters": 0.088471849865951704, "p_stay": 0.937448559670782, "p_movelocal": 0.029218106995884702, "p_movecounty": 0.0094650205761316001, "p_movestate": 0.0061728395061728001, "p_moveabroad": 0.017695473251028802, "p_car": 0.80484037075180226, "p_carpool": 0.072090628218331607, "p_transit": 0.041194644696189497, "p_bike": 0.0123583934088568, "p_walk": 0.0046343975283213001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.938228, 37.51507 ], [ -121.933753, 37.513908 ], [ -121.931146, 37.514323 ], [ -121.92616, 37.515087 ], [ -121.919252, 37.513607 ], [ -121.919759, 37.510454 ], [ -121.919646, 37.506684 ], [ -121.919461, 37.502066 ], [ -121.919391, 37.500449 ], [ -121.920248, 37.497728 ], [ -121.923012, 37.495572 ], [ -121.933667, 37.505038 ], [ -121.93466, 37.506223 ], [ -121.939515, 37.514759 ], [ -121.938228, 37.51507 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "443301", "AFFGEOID": "1400000US06001443301", "GEOID": "06001443301", "NAME_x": "4433.01", "LSAD": "CT", "ALAND": 1577682, "AWATER": 0, "NAME_y": "Census Tract 4433.01, Alameda County, California", "c_race": 4343, "c_white": 1096, "c_black": 157, "c_asian": 2643, "c_latinx": 232, "state_fips": 6, "county_fips": 1, "tract_fips": 443301, "med_rent": 2569.0, "med_hhinc": 163654.0, "c_tenants": 1272, "c_owners": 1116, "c_renters": 156, "c_movers": 4343, "c_stay": 4034, "c_movelocal": 121, "c_movecounty": 104, "c_movestate": 10, "c_moveabroad": 74, "c_commute": 1817, "c_car": 1392, "c_carpool": 145, "c_transit": 61, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001443301", "p_white": 0.25236011973290351, "p_black": 0.036150126640570997, "p_asian": 0.6085655077135621, "p_latinx": 0.053419295417913799, "p_owners": 0.87735849056603776, "p_renters": 0.1226415094339622, "p_stay": 0.92885102463734759, "p_movelocal": 0.027860925627446399, "p_movecounty": 0.023946580704581999, "p_movestate": 0.002302555836979, "p_moveabroad": 0.017038913193644901, "p_car": 0.7660979636763896, "p_carpool": 0.079801871216290496, "p_transit": 0.033571821684094602, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.921084, 37.474995 ], [ -121.916112, 37.477266 ], [ -121.914194, 37.478959 ], [ -121.916846, 37.482553 ], [ -121.915342, 37.483016 ], [ -121.913337, 37.482889 ], [ -121.910048, 37.472697 ], [ -121.905446, 37.466415 ], [ -121.903917, 37.46454 ], [ -121.911332, 37.462236 ], [ -121.912652, 37.46065 ], [ -121.918295, 37.470188 ], [ -121.921084, 37.474995 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444602", "AFFGEOID": "1400000US06001444602", "GEOID": "06001444602", "NAME_x": "4446.02", "LSAD": "CT", "ALAND": 5386831, "AWATER": 0, "NAME_y": "Census Tract 4446.02, Alameda County, California", "c_race": 4736, "c_white": 851, "c_black": 327, "c_asian": 2783, "c_latinx": 548, "state_fips": 6, "county_fips": 1, "tract_fips": 444602, "med_rent": 2302.0, "med_hhinc": 117132.0, "c_tenants": 1555, "c_owners": 1130, "c_renters": 425, "c_movers": 4623, "c_stay": 4231, "c_movelocal": 244, "c_movecounty": 64, "c_movestate": 37, "c_moveabroad": 47, "c_commute": 1946, "c_car": 1352, "c_carpool": 383, "c_transit": 107, "c_bike": 7, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001444602", "p_white": 0.1796875, "p_black": 0.0690456081081081, "p_asian": 0.58762668918918914, "p_latinx": 0.1157094594594594, "p_owners": 0.72668810289389063, "p_renters": 0.27331189710610931, "p_stay": 0.91520657581656917, "p_movelocal": 0.052779580359074103, "p_movecounty": 0.0138438243564784, "p_movestate": 0.0080034609560891007, "p_moveabroad": 0.0101665585117888, "p_car": 0.69475847893114084, "p_carpool": 0.19681397738951689, "p_transit": 0.054984583761562102, "p_bike": 0.0035971223021581998, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.014851, 37.502422 ], [ -122.011945, 37.50402 ], [ -122.012435, 37.50689 ], [ -122.01488, 37.509699 ], [ -122.012103, 37.515625 ], [ -122.008326, 37.524306 ], [ -122.007773, 37.524999 ], [ -122.005166, 37.528147 ], [ -122.00236, 37.529774 ], [ -121.987975, 37.522531 ], [ -121.987767, 37.522432 ], [ -121.98831, 37.521749 ], [ -121.989281, 37.520863 ], [ -121.994816, 37.513828 ], [ -121.995373, 37.51084 ], [ -121.99798, 37.50383 ], [ -121.99332, 37.499453 ], [ -121.997114, 37.500417 ], [ -121.998465, 37.499289 ], [ -122.000291, 37.494875 ], [ -122.005116, 37.495171 ], [ -122.00599, 37.49484 ], [ -122.0078, 37.497334 ], [ -122.009607, 37.497619 ], [ -122.012052, 37.496648 ], [ -122.013051, 37.498099 ], [ -122.01252, 37.499717 ], [ -122.014544, 37.499986 ], [ -122.015489, 37.501255 ], [ -122.014851, 37.502422 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450300", "AFFGEOID": "1400000US06001450300", "GEOID": "06001450300", "NAME_x": "4503", "LSAD": "CT", "ALAND": 3071984, "AWATER": 0, "NAME_y": "Census Tract 4503, Alameda County, California", "c_race": 5301, "c_white": 2597, "c_black": 96, "c_asian": 1077, "c_latinx": 1315, "state_fips": 6, "county_fips": 1, "tract_fips": 450300, "med_rent": 2626.0, "med_hhinc": 121131.0, "c_tenants": 1814, "c_owners": 1249, "c_renters": 565, "c_movers": 5249, "c_stay": 4668, "c_movelocal": 134, "c_movecounty": 326, "c_movestate": 114, "c_moveabroad": 7, "c_commute": 2819, "c_car": 2112, "c_carpool": 183, "c_transit": 265, "c_bike": 28, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001450300", "p_white": 0.48990756461045087, "p_black": 0.0181097906055461, "p_asian": 0.20316921335597049, "p_latinx": 0.2480664025655536, "p_owners": 0.6885336273428887, "p_renters": 0.3114663726571113, "p_stay": 0.8893122499523719, "p_movelocal": 0.025528672128024298, "p_movecounty": 0.062107068012954798, "p_movestate": 0.0217184225566774, "p_moveabroad": 0.0013335873499714, "p_car": 0.74920184462575379, "p_carpool": 0.064916637105356501, "p_transit": 0.094004966300106393, "p_bike": 0.0099326002128414005, "p_walk": 0.011706278822277399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.929385, 37.726199 ], [ -121.925909, 37.726944 ], [ -121.916421, 37.716369 ], [ -121.914426, 37.714193 ], [ -121.910233, 37.710437 ], [ -121.903945, 37.705858 ], [ -121.898803, 37.702011 ], [ -121.906606, 37.702327 ], [ -121.907178, 37.7021 ], [ -121.920518, 37.701999 ], [ -121.923303, 37.702837 ], [ -121.925083, 37.705506 ], [ -121.923506, 37.705893 ], [ -121.927053, 37.710193 ], [ -121.927599, 37.712295 ], [ -121.926721, 37.718558 ], [ -121.926664, 37.722133 ], [ -121.929372, 37.726078 ], [ -121.929385, 37.726199 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450601", "AFFGEOID": "1400000US06001450601", "GEOID": "06001450601", "NAME_x": "4506.01", "LSAD": "CT", "ALAND": 50504885, "AWATER": 0, "NAME_y": "Census Tract 4506.01, Alameda County, California", "c_race": 3633, "c_white": 2067, "c_black": 56, "c_asian": 1141, "c_latinx": 180, "state_fips": 6, "county_fips": 1, "tract_fips": 450601, "med_rent": 2146.0, "med_hhinc": 151940.0, "c_tenants": 1343, "c_owners": 1172, "c_renters": 171, "c_movers": 3623, "c_stay": 3041, "c_movelocal": 221, "c_movecounty": 96, "c_movestate": 86, "c_moveabroad": 179, "c_commute": 1836, "c_car": 1279, "c_carpool": 191, "c_transit": 213, "c_bike": 18, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450601", "p_white": 0.5689512799339389, "p_black": 0.0154142581888246, "p_asian": 0.31406551059730248, "p_latinx": 0.049545829892650703, "p_owners": 0.87267311988086371, "p_renters": 0.1273268801191362, "p_stay": 0.83935964670162844, "p_movelocal": 0.060999171956941697, "p_movecounty": 0.026497377863648901, "p_movestate": 0.023737234336185398, "p_moveabroad": 0.049406569141595302, "p_car": 0.69662309368191722, "p_carpool": 0.1040305010893246, "p_transit": 0.1160130718954248, "p_bike": 0.0098039215686274005, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.020917, 37.697684 ], [ -122.020384, 37.699987 ], [ -122.0212, 37.701492 ], [ -122.016488, 37.702942 ], [ -122.001277, 37.703728 ], [ -121.99859, 37.703539 ], [ -121.993682, 37.702371 ], [ -121.987177, 37.699931 ], [ -121.977662, 37.698542 ], [ -121.967972, 37.697374 ], [ -121.956222, 37.698612 ], [ -121.956217, 37.698699 ], [ -121.940096, 37.698806 ], [ -121.93813, 37.698628 ], [ -121.9354, 37.700297 ], [ -121.934962, 37.698517 ], [ -121.93442, 37.69615 ], [ -121.930286, 37.6888 ], [ -121.929348, 37.684932 ], [ -121.927366, 37.683159 ], [ -121.924956, 37.682263 ], [ -121.922988, 37.67982 ], [ -121.921208, 37.675606 ], [ -121.920706, 37.673796 ], [ -121.920169, 37.67303 ], [ -121.919256, 37.669768 ], [ -121.919128, 37.668037 ], [ -121.918121, 37.666579 ], [ -121.917897, 37.6663 ], [ -121.915721, 37.663663 ], [ -121.913485, 37.662115 ], [ -121.910923, 37.659714 ], [ -121.904035, 37.647546 ], [ -121.903502, 37.646977 ], [ -121.893142, 37.639039 ], [ -121.891114, 37.637362 ], [ -121.886674, 37.638665 ], [ -121.886192, 37.639007 ], [ -121.884418, 37.639949 ], [ -121.884125, 37.640149 ], [ -121.883816, 37.638814 ], [ -121.884141, 37.636753 ], [ -121.883979, 37.634821 ], [ -121.880307, 37.628436 ], [ -121.879919, 37.623533 ], [ -121.879844, 37.622518 ], [ -121.877017, 37.616246 ], [ -121.874996, 37.612128 ], [ -121.871836, 37.604228 ], [ -121.871677, 37.602474 ], [ -121.873128, 37.599284 ], [ -121.872779, 37.595969 ], [ -121.87101, 37.593744 ], [ -121.87004, 37.591663 ], [ -121.870752, 37.588838 ], [ -121.874798, 37.589693 ], [ -121.882646, 37.592853 ], [ -121.885748, 37.59254 ], [ -121.890172, 37.593445 ], [ -121.896168, 37.594001 ], [ -121.898468, 37.595333 ], [ -121.896368, 37.597333 ], [ -121.902768, 37.600633 ], [ -121.904468, 37.602133 ], [ -121.904768, 37.603733 ], [ -121.908568, 37.606433 ], [ -121.909269, 37.607933 ], [ -121.911469, 37.608633 ], [ -121.916969, 37.614633 ], [ -121.922069, 37.618633 ], [ -121.923969, 37.618933 ], [ -121.925116, 37.621902 ], [ -121.926176, 37.626579 ], [ -121.927621, 37.628664 ], [ -121.929236, 37.629112 ], [ -121.930061, 37.630303 ], [ -121.930989, 37.630538 ], [ -121.931614, 37.632273 ], [ -121.933054, 37.634121 ], [ -121.934286, 37.63507 ], [ -121.93525, 37.637818 ], [ -121.938675, 37.640191 ], [ -121.942667, 37.645675 ], [ -121.947103, 37.649947 ], [ -121.948119, 37.650584 ], [ -121.948351, 37.650797 ], [ -121.948331, 37.651185 ], [ -121.948596, 37.651644 ], [ -121.948926, 37.65208 ], [ -121.949532, 37.652484 ], [ -121.950177, 37.653398 ], [ -121.950658, 37.653614 ], [ -121.950796, 37.653514 ], [ -121.951939, 37.65222 ], [ -121.964277, 37.662192 ], [ -121.967282, 37.663328 ], [ -121.967832, 37.664394 ], [ -121.96729, 37.666915 ], [ -121.963853, 37.669844 ], [ -121.963473, 37.672006 ], [ -121.964067, 37.671479 ], [ -121.968192, 37.671554 ], [ -121.975038, 37.674202 ], [ -121.978374, 37.678117 ], [ -121.979341, 37.678999 ], [ -121.984045, 37.689127 ], [ -121.986149, 37.687744 ], [ -121.987834, 37.687778 ], [ -121.99136, 37.688906 ], [ -121.992702, 37.689898 ], [ -121.996292, 37.690228 ], [ -121.999591, 37.691013 ], [ -122.000913, 37.693091 ], [ -122.002391, 37.693953 ], [ -122.003264, 37.696008 ], [ -122.006025, 37.695493 ], [ -122.008228, 37.695674 ], [ -122.01226, 37.69454 ], [ -122.014432, 37.694906 ], [ -122.018904, 37.694776 ], [ -122.022511, 37.696014 ], [ -122.020917, 37.697684 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450742", "AFFGEOID": "1400000US06001450742", "GEOID": "06001450742", "NAME_x": "4507.42", "LSAD": "CT", "ALAND": 7777999, "AWATER": 360805, "NAME_y": "Census Tract 4507.42, Alameda County, California", "c_race": 5226, "c_white": 3033, "c_black": 43, "c_asian": 1260, "c_latinx": 654, "state_fips": 6, "county_fips": 1, "tract_fips": 450742, "med_rent": 2434.0, "med_hhinc": 149286.0, "c_tenants": 1944, "c_owners": 1620, "c_renters": 324, "c_movers": 5178, "c_stay": 4858, "c_movelocal": 118, "c_movecounty": 60, "c_movestate": 22, "c_moveabroad": 120, "c_commute": 2617, "c_car": 1963, "c_carpool": 168, "c_transit": 192, "c_bike": 18, "c_walk": 42, "year": 2018, "FIPS_11_digit": "06001450742", "p_white": 0.58036739380022961, "p_black": 0.0082280903176424995, "p_asian": 0.24110218140068879, "p_latinx": 0.12514351320321471, "p_owners": 0.83333333333333337, "p_renters": 0.1666666666666666, "p_stay": 0.9382000772499034, "p_movelocal": 0.022788721514098099, "p_movecounty": 0.011587485515643099, "p_movestate": 0.0042487446890691, "p_moveabroad": 0.023174971031286198, "p_car": 0.750095529231945, "p_carpool": 0.064195643867023297, "p_transit": 0.073366450133740893, "p_bike": 0.0068781047000381996, "p_walk": 0.0160489109667558 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.859189, 37.656278 ], [ -121.856732, 37.662793 ], [ -121.856078, 37.664308 ], [ -121.856064, 37.664343 ], [ -121.856027, 37.665289 ], [ -121.857871, 37.670438 ], [ -121.854463, 37.670816 ], [ -121.834984, 37.672957 ], [ -121.826737, 37.673841 ], [ -121.819614, 37.674599 ], [ -121.805381, 37.676172 ], [ -121.805453, 37.665181 ], [ -121.805485, 37.664095 ], [ -121.805612, 37.655952 ], [ -121.805653, 37.653828 ], [ -121.805666, 37.652199 ], [ -121.813989, 37.655374 ], [ -121.821149, 37.655485 ], [ -121.823709, 37.655512 ], [ -121.826792, 37.655508 ], [ -121.831205, 37.659692 ], [ -121.834729, 37.662474 ], [ -121.838641, 37.664723 ], [ -121.845747, 37.664899 ], [ -121.844945, 37.662365 ], [ -121.846234, 37.660485 ], [ -121.8433, 37.657777 ], [ -121.851376, 37.656813 ], [ -121.853562, 37.653506 ], [ -121.853765, 37.652523 ], [ -121.859951, 37.654809 ], [ -121.859189, 37.656278 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451102", "AFFGEOID": "1400000US06001451102", "GEOID": "06001451102", "NAME_x": "4511.02", "LSAD": "CT", "ALAND": 4777527, "AWATER": 0, "NAME_y": "Census Tract 4511.02, Alameda County, California", "c_race": 4036, "c_white": 3126, "c_black": 11, "c_asian": 381, "c_latinx": 345, "state_fips": 6, "county_fips": 1, "tract_fips": 451102, "med_rent": null, "med_hhinc": 178155.0, "c_tenants": 1371, "c_owners": 1346, "c_renters": 25, "c_movers": 4025, "c_stay": 3766, "c_movelocal": 116, "c_movecounty": 59, "c_movestate": 71, "c_moveabroad": 13, "c_commute": 1920, "c_car": 1609, "c_carpool": 130, "c_transit": 47, "c_bike": 0, "c_walk": 2, "year": 2018, "FIPS_11_digit": "06001451102", "p_white": 0.77452923686818631, "p_black": 0.0027254707631318002, "p_asian": 0.094400396432110997, "p_latinx": 0.085480673934588705, "p_owners": 0.98176513493800144, "p_renters": 0.018234865061998499, "p_stay": 0.93565217391304356, "p_movelocal": 0.0288198757763975, "p_movecounty": 0.0146583850931677, "p_movestate": 0.017639751552794999, "p_moveabroad": 0.0032298136645961999, "p_car": 0.83802083333333333, "p_carpool": 0.067708333333333301, "p_transit": 0.024479166666666601, "p_bike": 0.0, "p_walk": 0.0010416666666666001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.805653, 37.653828 ], [ -121.805612, 37.655952 ], [ -121.804795, 37.655978 ], [ -121.803716, 37.655988 ], [ -121.798518, 37.655984 ], [ -121.782983, 37.655998 ], [ -121.782848, 37.658529 ], [ -121.780358, 37.660768 ], [ -121.779097, 37.658982 ], [ -121.768049, 37.659146 ], [ -121.76806, 37.657523 ], [ -121.768068, 37.65663 ], [ -121.768099, 37.653816 ], [ -121.768095, 37.645319 ], [ -121.768075, 37.645195 ], [ -121.782653, 37.64519 ], [ -121.782919, 37.645229 ], [ -121.783194, 37.648693 ], [ -121.783407, 37.648268 ], [ -121.78378, 37.647892 ], [ -121.785451, 37.646821 ], [ -121.788401, 37.645148 ], [ -121.789506, 37.644469 ], [ -121.79615, 37.639766 ], [ -121.799119, 37.636918 ], [ -121.799393, 37.641757 ], [ -121.800733, 37.643869 ], [ -121.804702, 37.647204 ], [ -121.805547, 37.648873 ], [ -121.805666, 37.652199 ], [ -121.805653, 37.653828 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "981900", "AFFGEOID": "1400000US06001981900", "GEOID": "06001981900", "NAME_x": "9819", "LSAD": "CT", "ALAND": 3743443, "AWATER": 1420107, "NAME_y": "Census Tract 9819, Alameda County, California", "c_race": 60, "c_white": 53, "c_black": 0, "c_asian": 0, "c_latinx": 7, "state_fips": 6, "county_fips": 1, "tract_fips": 981900, "med_rent": 2659.0, "med_hhinc": 167813.0, "c_tenants": 31, "c_owners": 0, "c_renters": 31, "c_movers": 60, "c_stay": 56, "c_movelocal": 0, "c_movecounty": 0, "c_movestate": 4, "c_moveabroad": 0, "c_commute": 57, "c_car": 0, "c_carpool": 15, "c_transit": 18, "c_bike": 16, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001981900", "p_white": 0.8833333333333333, "p_black": 0.0, "p_asian": 0.0, "p_latinx": 0.1166666666666666, "p_owners": 0.0, "p_renters": 1.0, "p_stay": 0.93333333333333324, "p_movelocal": 0.0, "p_movecounty": 0.0, "p_movestate": 0.066666666666666596, "p_moveabroad": 0.0, "p_car": 0.0, "p_carpool": 0.26315789473684209, "p_transit": 0.31578947368421051, "p_bike": 0.2807017543859649, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.342253, 37.805558 ], [ -122.334118407598012, 37.810344845950098 ], [ -122.328704, 37.809858 ], [ -122.327803, 37.807658 ], [ -122.323932, 37.807979 ], [ -122.320197, 37.809318 ], [ -122.31208, 37.808658 ], [ -122.311129, 37.809043 ], [ -122.308546, 37.808287 ], [ -122.304866, 37.807896 ], [ -122.303339, 37.804684 ], [ -122.300389, 37.802657 ], [ -122.296858, 37.801922 ], [ -122.291101, 37.802526 ], [ -122.28867, 37.802755 ], [ -122.290031, 37.799622 ], [ -122.300868, 37.797369 ], [ -122.307743, 37.795816 ], [ -122.313212, 37.795303 ], [ -122.31468, 37.794728 ], [ -122.332138, 37.798751 ], [ -122.336717028471014, 37.800344932497495 ], [ -122.342015, 37.803868 ], [ -122.342253, 37.805558 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "401000", "AFFGEOID": "1400000US06001401000", "GEOID": "06001401000", "NAME_x": "4010", "LSAD": "CT", "ALAND": 1142646, "AWATER": 0, "NAME_y": "Census Tract 4010, Alameda County, California", "c_race": 6024, "c_white": 1906, "c_black": 2003, "c_asian": 269, "c_latinx": 1092, "state_fips": 6, "county_fips": 1, "tract_fips": 401000, "med_rent": 1617.0, "med_hhinc": 71685.0, "c_tenants": 2439, "c_owners": 849, "c_renters": 1590, "c_movers": 6006, "c_stay": 5247, "c_movelocal": 393, "c_movecounty": 249, "c_movestate": 117, "c_moveabroad": 0, "c_commute": 3541, "c_car": 1041, "c_carpool": 347, "c_transit": 1528, "c_bike": 226, "c_walk": 135, "year": 2018, "FIPS_11_digit": "06001401000", "p_white": 0.31640106241699861, "p_black": 0.33250332005312078, "p_asian": 0.044654714475431602, "p_latinx": 0.1812749003984063, "p_owners": 0.3480934809348093, "p_renters": 0.6519065190651907, "p_stay": 0.87362637362637363, "p_movelocal": 0.065434565434565398, "p_movecounty": 0.041458541458541401, "p_movestate": 0.0194805194805194, "p_moveabroad": 0.0, "p_car": 0.29398475007060149, "p_carpool": 0.097994916690200495, "p_transit": 0.43151652075684832, "p_bike": 0.063823778593617597, "p_walk": 0.038124823496187503 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.27872, 37.827188 ], [ -122.277956, 37.826993 ], [ -122.278343, 37.828522 ], [ -122.277556, 37.831276 ], [ -122.277821, 37.832304 ], [ -122.277204, 37.832216 ], [ -122.27641, 37.834279 ], [ -122.275896, 37.835661 ], [ -122.275638, 37.836447 ], [ -122.274641, 37.836408 ], [ -122.266653, 37.837482 ], [ -122.265631, 37.837636 ], [ -122.266494, 37.833405 ], [ -122.266895, 37.831339 ], [ -122.267828, 37.827044 ], [ -122.2683, 37.826485 ], [ -122.268563, 37.824462 ], [ -122.269649, 37.824812 ], [ -122.278611, 37.826878 ], [ -122.27872, 37.827188 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "403400", "AFFGEOID": "1400000US06001403400", "GEOID": "06001403400", "NAME_x": "4034", "LSAD": "CT", "ALAND": 660249, "AWATER": 602434, "NAME_y": "Census Tract 4034, Alameda County, California", "c_race": 4617, "c_white": 1872, "c_black": 1003, "c_asian": 1143, "c_latinx": 299, "state_fips": 6, "county_fips": 1, "tract_fips": 403400, "med_rent": 1322.0, "med_hhinc": 67658.0, "c_tenants": 2857, "c_owners": 264, "c_renters": 2593, "c_movers": 4556, "c_stay": 3546, "c_movelocal": 274, "c_movecounty": 510, "c_movestate": 206, "c_moveabroad": 20, "c_commute": 2986, "c_car": 849, "c_carpool": 198, "c_transit": 1161, "c_bike": 136, "c_walk": 480, "year": 2018, "FIPS_11_digit": "06001403400", "p_white": 0.40545808966861591, "p_black": 0.21724063244531081, "p_asian": 0.24756335282651071, "p_latinx": 0.064760667099848304, "p_owners": 0.092404620231011494, "p_renters": 0.90759537976898841, "p_stay": 0.77831431079894642, "p_movelocal": 0.060140474100087798, "p_movecounty": 0.11194029850746259, "p_movestate": 0.045215100965759397, "p_moveabroad": 0.0043898156277436002, "p_car": 0.28432685867381108, "p_carpool": 0.066309444072337506, "p_transit": 0.38881446751507032, "p_bike": 0.045545880776959098, "p_walk": 0.16075016744809109 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.266458, 37.802497 ], [ -122.264778, 37.805119 ], [ -122.266018, 37.806958 ], [ -122.262463, 37.810945 ], [ -122.260591, 37.810676 ], [ -122.260213, 37.810523 ], [ -122.258549, 37.809408 ], [ -122.256158, 37.809012 ], [ -122.256001, 37.807463 ], [ -122.252774, 37.808747 ], [ -122.250469, 37.808882 ], [ -122.249148, 37.808391 ], [ -122.250597, 37.805237 ], [ -122.253447, 37.803608 ], [ -122.254073, 37.802521 ], [ -122.254468, 37.801838 ], [ -122.254505, 37.800561 ], [ -122.258111, 37.799493 ], [ -122.259574, 37.798552 ], [ -122.262249, 37.799134 ], [ -122.263752, 37.7997 ], [ -122.267312, 37.801081 ], [ -122.266458, 37.802497 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404400", "AFFGEOID": "1400000US06001404400", "GEOID": "06001404400", "NAME_x": "4044", "LSAD": "CT", "ALAND": 4119672, "AWATER": 0, "NAME_y": "Census Tract 4044, Alameda County, California", "c_race": 5475, "c_white": 3705, "c_black": 99, "c_asian": 859, "c_latinx": 343, "state_fips": 6, "county_fips": 1, "tract_fips": 404400, "med_rent": 2727.0, "med_hhinc": 158239.0, "c_tenants": 2321, "c_owners": 2034, "c_renters": 287, "c_movers": 5430, "c_stay": 4747, "c_movelocal": 305, "c_movecounty": 132, "c_movestate": 87, "c_moveabroad": 159, "c_commute": 2990, "c_car": 1679, "c_carpool": 110, "c_transit": 568, "c_bike": 8, "c_walk": 30, "year": 2018, "FIPS_11_digit": "06001404400", "p_white": 0.67671232876712328, "p_black": 0.018082191780821901, "p_asian": 0.15689497716894971, "p_latinx": 0.062648401826483999, "p_owners": 0.87634640241275308, "p_renters": 0.1236535975872468, "p_stay": 0.8742173112338858, "p_movelocal": 0.056169429097605798, "p_movecounty": 0.0243093922651933, "p_movestate": 0.016022099447513798, "p_moveabroad": 0.029281767955801102, "p_car": 0.56153846153846154, "p_carpool": 0.036789297658862803, "p_transit": 0.1899665551839464, "p_bike": 0.0026755852842808999, "p_walk": 0.0100334448160535 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.231291, 37.850839 ], [ -122.226748, 37.849962 ], [ -122.224196, 37.851016 ], [ -122.22356, 37.852172 ], [ -122.224047, 37.853575 ], [ -122.223451, 37.85511 ], [ -122.221609, 37.855291 ], [ -122.222621, 37.857711 ], [ -122.22108, 37.860114 ], [ -122.219371, 37.859413 ], [ -122.219349, 37.857728 ], [ -122.216737, 37.856199 ], [ -122.213584, 37.855977 ], [ -122.21238, 37.857234 ], [ -122.208486, 37.85169 ], [ -122.204094, 37.851387 ], [ -122.200678, 37.847589 ], [ -122.195274, 37.843587 ], [ -122.195287, 37.842817 ], [ -122.20249, 37.843454 ], [ -122.206704, 37.841774 ], [ -122.209187, 37.841521 ], [ -122.210683, 37.83876 ], [ -122.211029, 37.837762 ], [ -122.212328, 37.834442 ], [ -122.214548, 37.832793 ], [ -122.215197, 37.831689 ], [ -122.215626, 37.832114 ], [ -122.2171, 37.832758 ], [ -122.219672, 37.836392 ], [ -122.224827, 37.841683 ], [ -122.227559, 37.845474 ], [ -122.228003, 37.848244 ], [ -122.230346, 37.848892 ], [ -122.234084, 37.852518 ], [ -122.231291, 37.850839 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406602", "AFFGEOID": "1400000US06001406602", "GEOID": "06001406602", "NAME_x": "4066.02", "LSAD": "CT", "ALAND": 414724, "AWATER": 0, "NAME_y": "Census Tract 4066.02, Alameda County, California", "c_race": 2795, "c_white": 329, "c_black": 421, "c_asian": 1095, "c_latinx": 792, "state_fips": 6, "county_fips": 1, "tract_fips": 406602, "med_rent": 1165.0, "med_hhinc": 54063.0, "c_tenants": 944, "c_owners": 310, "c_renters": 634, "c_movers": 2752, "c_stay": 2426, "c_movelocal": 143, "c_movecounty": 68, "c_movestate": 46, "c_moveabroad": 69, "c_commute": 1465, "c_car": 807, "c_carpool": 204, "c_transit": 359, "c_bike": 6, "c_walk": 34, "year": 2018, "FIPS_11_digit": "06001406602", "p_white": 0.11771019677996419, "p_black": 0.15062611806797849, "p_asian": 0.39177101967799638, "p_latinx": 0.28336314847942751, "p_owners": 0.32838983050847459, "p_renters": 0.67161016949152541, "p_stay": 0.88154069767441856, "p_movelocal": 0.0519622093023255, "p_movecounty": 0.0247093023255813, "p_movestate": 0.0167151162790697, "p_moveabroad": 0.025072674418604599, "p_car": 0.55085324232081911, "p_carpool": 0.13924914675767919, "p_transit": 0.24505119453924909, "p_bike": 0.0040955631399316999, "p_walk": 0.023208191126279799 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.217936, 37.795826 ], [ -122.216974, 37.798404 ], [ -122.216221, 37.800294 ], [ -122.214117, 37.799805 ], [ -122.208794, 37.798478 ], [ -122.21253, 37.794736 ], [ -122.214825, 37.791757 ], [ -122.216297, 37.793686 ], [ -122.218469, 37.794476 ], [ -122.217936, 37.795826 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "408100", "AFFGEOID": "1400000US06001408100", "GEOID": "06001408100", "NAME_x": "4081", "LSAD": "CT", "ALAND": 8935571, "AWATER": 0, "NAME_y": "Census Tract 4081, Alameda County, California", "c_race": 6108, "c_white": 2403, "c_black": 1395, "c_asian": 1222, "c_latinx": 674, "state_fips": 6, "county_fips": 1, "tract_fips": 408100, "med_rent": 2060.0, "med_hhinc": 135048.0, "c_tenants": 2697, "c_owners": 2215, "c_renters": 482, "c_movers": 6036, "c_stay": 5516, "c_movelocal": 305, "c_movecounty": 139, "c_movestate": 54, "c_moveabroad": 22, "c_commute": 3396, "c_car": 2352, "c_carpool": 326, "c_transit": 430, "c_bike": 0, "c_walk": 45, "year": 2018, "FIPS_11_digit": "06001408100", "p_white": 0.39341846758349708, "p_black": 0.22838899803536339, "p_asian": 0.20006548788474129, "p_latinx": 0.110347085789129, "p_owners": 0.82128290693362993, "p_renters": 0.17871709306636999, "p_stay": 0.91385023194168324, "p_movelocal": 0.050530152418820397, "p_movecounty": 0.023028495692511499, "p_movestate": 0.0089463220675944002, "p_moveabroad": 0.0036447978793903001, "p_car": 0.69257950530035339, "p_carpool": 0.095995288574793794, "p_transit": 0.1266195524146054, "p_bike": 0.0, "p_walk": 0.0132508833922261 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.185369, 37.798489 ], [ -122.17692, 37.794239 ], [ -122.175818, 37.794814 ], [ -122.173601, 37.797163 ], [ -122.170754, 37.796512 ], [ -122.170615, 37.800138 ], [ -122.168388, 37.799128 ], [ -122.168411, 37.80094 ], [ -122.17002, 37.801683 ], [ -122.170529, 37.804654 ], [ -122.16765, 37.805783 ], [ -122.165036, 37.805175 ], [ -122.164146, 37.802929 ], [ -122.161632, 37.801443 ], [ -122.162322, 37.800022 ], [ -122.159697, 37.800057 ], [ -122.158064, 37.797354 ], [ -122.15667, 37.796466 ], [ -122.152262, 37.796405 ], [ -122.152291, 37.793082 ], [ -122.143317, 37.793017 ], [ -122.143244, 37.790349 ], [ -122.141799, 37.789751 ], [ -122.143706, 37.787393 ], [ -122.134634, 37.778216 ], [ -122.134337, 37.778283 ], [ -122.133176, 37.777674 ], [ -122.131808, 37.775339 ], [ -122.128683, 37.769608 ], [ -122.131719, 37.770913 ], [ -122.135071, 37.770397 ], [ -122.136356, 37.769865 ], [ -122.138414, 37.769644 ], [ -122.142249, 37.77254 ], [ -122.144594, 37.773175 ], [ -122.147745, 37.771393 ], [ -122.150944, 37.770404 ], [ -122.153957, 37.7724 ], [ -122.155824, 37.772354 ], [ -122.156288, 37.772002 ], [ -122.158068, 37.773348 ], [ -122.165991, 37.777292 ], [ -122.17019, 37.779311 ], [ -122.17769, 37.783588 ], [ -122.178401, 37.783822 ], [ -122.178321, 37.784669 ], [ -122.177195, 37.787633 ], [ -122.181569, 37.794211 ], [ -122.184387, 37.797244 ], [ -122.185369, 37.798489 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "420400", "AFFGEOID": "1400000US06001420400", "GEOID": "06001420400", "NAME_x": "4204", "LSAD": "CT", "ALAND": 1107217, "AWATER": 1632801, "NAME_y": "Census Tract 4204, Alameda County, California", "c_race": 3164, "c_white": 1049, "c_black": 15, "c_asian": 1137, "c_latinx": 705, "state_fips": 6, "county_fips": 1, "tract_fips": 420400, "med_rent": 1702.0, "med_hhinc": 46959.0, "c_tenants": 1146, "c_owners": 0, "c_renters": 1146, "c_movers": 3003, "c_stay": 1764, "c_movelocal": 286, "c_movecounty": 497, "c_movestate": 96, "c_moveabroad": 360, "c_commute": 1238, "c_car": 399, "c_carpool": 213, "c_transit": 432, "c_bike": 61, "c_walk": 31, "year": 2018, "FIPS_11_digit": "06001420400", "p_white": 0.3315423514538558, "p_black": 0.0047408343868520003, "p_asian": 0.35935524652338813, "p_latinx": 0.222819216182048, "p_owners": 0.0, "p_renters": 1.0, "p_stay": 0.58741258741258739, "p_movelocal": 0.095238095238095205, "p_movecounty": 0.1655011655011655, "p_movestate": 0.031968031968031899, "p_moveabroad": 0.1198801198801198, "p_car": 0.32229402261712442, "p_carpool": 0.17205169628432951, "p_transit": 0.3489499192245557, "p_bike": 0.0492730210016155, "p_walk": 0.0250403877221324 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.326912, 37.889647548398003 ], [ -122.31185, 37.88947 ], [ -122.309345, 37.887682 ], [ -122.30688, 37.887214 ], [ -122.301821, 37.887615 ], [ -122.30068, 37.887725 ], [ -122.298249, 37.887758 ], [ -122.297909, 37.886679 ], [ -122.296891, 37.883498 ], [ -122.30708, 37.881879 ], [ -122.308361, 37.882183 ], [ -122.312820832862016, 37.881277077508898 ], [ -122.316153, 37.884915 ], [ -122.326912, 37.888712 ], [ -122.326912, 37.889647548398003 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "423800", "AFFGEOID": "1400000US06001423800", "GEOID": "06001423800", "NAME_x": "4238", "LSAD": "CT", "ALAND": 1072450, "AWATER": 0, "NAME_y": "Census Tract 4238, Alameda County, California", "c_race": 3016, "c_white": 2317, "c_black": 28, "c_asian": 288, "c_latinx": 228, "state_fips": 6, "county_fips": 1, "tract_fips": 423800, "med_rent": null, "med_hhinc": 177330.0, "c_tenants": 1297, "c_owners": 970, "c_renters": 327, "c_movers": 3002, "c_stay": 2557, "c_movelocal": 190, "c_movecounty": 80, "c_movestate": 115, "c_moveabroad": 60, "c_commute": 1384, "c_car": 616, "c_carpool": 94, "c_transit": 243, "c_bike": 139, "c_walk": 74, "year": 2018, "FIPS_11_digit": "06001423800", "p_white": 0.76823607427055707, "p_black": 0.0092838196286472007, "p_asian": 0.095490716180371304, "p_latinx": 0.075596816976127301, "p_owners": 0.74787972243639167, "p_renters": 0.25212027756360827, "p_stay": 0.85176548967355092, "p_movelocal": 0.063291139240506306, "p_movecounty": 0.026648900732844701, "p_movestate": 0.038307794803464301, "p_moveabroad": 0.019986675549633501, "p_car": 0.44508670520231208, "p_carpool": 0.067919075144508595, "p_transit": 0.17557803468208091, "p_bike": 0.10043352601156059, "p_walk": 0.053468208092485502 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.253099, 37.857088 ], [ -122.252299, 37.85741 ], [ -122.24539, 37.858087 ], [ -122.243876, 37.858118 ], [ -122.242347, 37.85761 ], [ -122.241715, 37.857248 ], [ -122.234761, 37.85779 ], [ -122.234185, 37.852543 ], [ -122.241914, 37.851909 ], [ -122.249473, 37.851448 ], [ -122.25096, 37.851159 ], [ -122.252503, 37.850826 ], [ -122.253099, 37.857088 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "427300", "AFFGEOID": "1400000US06001427300", "GEOID": "06001427300", "NAME_x": "4273", "LSAD": "CT", "ALAND": 1953882, "AWATER": 861367, "NAME_y": "Census Tract 4273, Alameda County, California", "c_race": 5084, "c_white": 1785, "c_black": 328, "c_asian": 2022, "c_latinx": 631, "state_fips": 6, "county_fips": 1, "tract_fips": 427300, "med_rent": 1830.0, "med_hhinc": 92461.0, "c_tenants": 1869, "c_owners": 1080, "c_renters": 789, "c_movers": 5025, "c_stay": 4655, "c_movelocal": 157, "c_movecounty": 125, "c_movestate": 45, "c_moveabroad": 43, "c_commute": 2474, "c_car": 1507, "c_carpool": 229, "c_transit": 318, "c_bike": 69, "c_walk": 85, "year": 2018, "FIPS_11_digit": "06001427300", "p_white": 0.35110149488591658, "p_black": 0.064516129032257993, "p_asian": 0.39771833202202989, "p_latinx": 0.1241148701809598, "p_owners": 0.5778491171749599, "p_renters": 0.4221508828250401, "p_stay": 0.92636815920397997, "p_movelocal": 0.031243781094527301, "p_movecounty": 0.024875621890547199, "p_movestate": 0.0089552238805969998, "p_moveabroad": 0.0085572139303482005, "p_car": 0.60913500404203713, "p_carpool": 0.092562651576394497, "p_transit": 0.12853678253839931, "p_bike": 0.0278900565885206, "p_walk": 0.034357316087308 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.27671, 37.777192 ], [ -122.276628, 37.779684 ], [ -122.276671, 37.788014 ], [ -122.27619, 37.78903 ], [ -122.275558, 37.789936 ], [ -122.274636, 37.791648 ], [ -122.27418, 37.791328 ], [ -122.26838, 37.788028 ], [ -122.259338, 37.784755 ], [ -122.256936, 37.785733 ], [ -122.251281, 37.779135 ], [ -122.251629, 37.77821 ], [ -122.253547, 37.775337 ], [ -122.255021, 37.774806 ], [ -122.257832, 37.776037 ], [ -122.258965, 37.77427 ], [ -122.260328, 37.774645 ], [ -122.263307, 37.774715 ], [ -122.265832, 37.774817 ], [ -122.269417, 37.774965 ], [ -122.270439, 37.774994 ], [ -122.276796, 37.775134 ], [ -122.27671, 37.777192 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430200", "AFFGEOID": "1400000US06001430200", "GEOID": "06001430200", "NAME_x": "4302", "LSAD": "CT", "ALAND": 5329284, "AWATER": 0, "NAME_y": "Census Tract 4302, Alameda County, California", "c_race": 6677, "c_white": 4089, "c_black": 248, "c_asian": 1572, "c_latinx": 495, "state_fips": 6, "county_fips": 1, "tract_fips": 430200, "med_rent": 2775.0, "med_hhinc": 126658.0, "c_tenants": 2411, "c_owners": 2228, "c_renters": 183, "c_movers": 6662, "c_stay": 6030, "c_movelocal": 238, "c_movecounty": 355, "c_movestate": 39, "c_moveabroad": 0, "c_commute": 3464, "c_car": 2334, "c_carpool": 366, "c_transit": 373, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001430200", "p_white": 0.61240077879287103, "p_black": 0.037142429234686199, "p_asian": 0.23543507563276919, "p_latinx": 0.074135090609555102, "p_owners": 0.9240978846951472, "p_renters": 0.075902115304852705, "p_stay": 0.90513359351546085, "p_movelocal": 0.035725007505253599, "p_movecounty": 0.0532873011107775, "p_movestate": 0.0058540978685079001, "p_moveabroad": 0.0, "p_car": 0.67378752886836024, "p_carpool": 0.1056581986143187, "p_transit": 0.1076789838337182, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.075264, 37.720742 ], [ -122.068095, 37.720581 ], [ -122.065563, 37.720173 ], [ -122.061692, 37.729551 ], [ -122.059932, 37.738777 ], [ -122.061508, 37.743685 ], [ -122.062206, 37.748429 ], [ -122.059215, 37.752652 ], [ -122.057818, 37.751015 ], [ -122.058244, 37.74976 ], [ -122.056625, 37.748057 ], [ -122.055664, 37.742898 ], [ -122.054405, 37.741431 ], [ -122.053652, 37.738173 ], [ -122.053943, 37.737388 ], [ -122.051923, 37.733388 ], [ -122.051322, 37.731152 ], [ -122.052325, 37.729427 ], [ -122.052706, 37.727185 ], [ -122.052146, 37.723867 ], [ -122.054208, 37.721428 ], [ -122.054534, 37.717846 ], [ -122.054334, 37.715113 ], [ -122.056541, 37.704204 ], [ -122.0554, 37.703809 ], [ -122.05787, 37.703751 ], [ -122.059219, 37.70389 ], [ -122.060579, 37.704023 ], [ -122.061196, 37.703886 ], [ -122.065057, 37.704265 ], [ -122.066723, 37.704396 ], [ -122.074098, 37.704751 ], [ -122.074011, 37.706718 ], [ -122.074034, 37.709604 ], [ -122.073944, 37.710875 ], [ -122.073844, 37.713986 ], [ -122.073729, 37.716736 ], [ -122.073793, 37.718748 ], [ -122.075264, 37.720742 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432800", "AFFGEOID": "1400000US06001432800", "GEOID": "06001432800", "NAME_x": "4328", "LSAD": "CT", "ALAND": 3649850, "AWATER": 0, "NAME_y": "Census Tract 4328, Alameda County, California", "c_race": 3835, "c_white": 1110, "c_black": 429, "c_asian": 1214, "c_latinx": 870, "state_fips": 6, "county_fips": 1, "tract_fips": 432800, "med_rent": 1683.0, "med_hhinc": 124531.0, "c_tenants": 1388, "c_owners": 1204, "c_renters": 184, "c_movers": 3803, "c_stay": 3578, "c_movelocal": 130, "c_movecounty": 67, "c_movestate": 12, "c_moveabroad": 16, "c_commute": 1984, "c_car": 1499, "c_carpool": 221, "c_transit": 116, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001432800", "p_white": 0.28943937418513688, "p_black": 0.111864406779661, "p_asian": 0.3165580182529335, "p_latinx": 0.22685788787483699, "p_owners": 0.86743515850144093, "p_renters": 0.13256484149855899, "p_stay": 0.94083618196160923, "p_movelocal": 0.034183539311070203, "p_movecounty": 0.017617670260320701, "p_movestate": 0.0031554036287141001, "p_moveabroad": 0.0042072048382855, "p_car": 0.75554435483870963, "p_carpool": 0.11139112903225799, "p_transit": 0.058467741935483798, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.138747, 37.730929 ], [ -122.134527, 37.734223 ], [ -122.131403, 37.733606 ], [ -122.131225, 37.733587 ], [ -122.130623, 37.733694 ], [ -122.130384, 37.733412 ], [ -122.130464, 37.732821 ], [ -122.130603, 37.732679 ], [ -122.132345, 37.731726 ], [ -122.127423, 37.72977 ], [ -122.126647, 37.727609 ], [ -122.123229, 37.727038 ], [ -122.122274, 37.727313 ], [ -122.120163, 37.728886 ], [ -122.118667, 37.728025 ], [ -122.117537, 37.725313 ], [ -122.112402, 37.72048 ], [ -122.104695, 37.714756 ], [ -122.108527, 37.713129 ], [ -122.111703, 37.71295 ], [ -122.112225, 37.713017 ], [ -122.113419, 37.713323 ], [ -122.115316, 37.713966 ], [ -122.115751, 37.714237 ], [ -122.116217, 37.714687 ], [ -122.117129, 37.716403 ], [ -122.117772, 37.717099 ], [ -122.118382, 37.717473 ], [ -122.119421, 37.717798 ], [ -122.120122, 37.717803 ], [ -122.121096, 37.717434 ], [ -122.121384, 37.717184 ], [ -122.121734, 37.716554 ], [ -122.121765, 37.716061 ], [ -122.120667, 37.711546 ], [ -122.122551, 37.708533 ], [ -122.124259, 37.709833 ], [ -122.125605, 37.710688 ], [ -122.127469, 37.71162 ], [ -122.128515, 37.712214 ], [ -122.128994, 37.712531 ], [ -122.130063, 37.713434 ], [ -122.130973, 37.714486 ], [ -122.131843, 37.716062 ], [ -122.133543, 37.719392 ], [ -122.135103, 37.72166 ], [ -122.135579, 37.722284 ], [ -122.137278, 37.72473 ], [ -122.138395, 37.729759 ], [ -122.138747, 37.730929 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "433700", "AFFGEOID": "1400000US06001433700", "GEOID": "06001433700", "NAME_x": "4337", "LSAD": "CT", "ALAND": 1316781, "AWATER": 0, "NAME_y": "Census Tract 4337, Alameda County, California", "c_race": 3539, "c_white": 620, "c_black": 332, "c_asian": 523, "c_latinx": 1979, "state_fips": 6, "county_fips": 1, "tract_fips": 433700, "med_rent": 1648.0, "med_hhinc": 76719.0, "c_tenants": 1056, "c_owners": 405, "c_renters": 651, "c_movers": 3441, "c_stay": 3133, "c_movelocal": 209, "c_movecounty": 99, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1862, "c_car": 1331, "c_carpool": 249, "c_transit": 172, "c_bike": 0, "c_walk": 21, "year": 2018, "FIPS_11_digit": "06001433700", "p_white": 0.17519073184515399, "p_black": 0.093811811246114707, "p_asian": 0.1477818592822831, "p_latinx": 0.55919751342187063, "p_owners": 0.38352272727272729, "p_renters": 0.61647727272727271, "p_stay": 0.91049113629758804, "p_movelocal": 0.060738157512351003, "p_movecounty": 0.028770706190061002, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.71482277121374871, "p_carpool": 0.13372717508055851, "p_transit": 0.092373791621911894, "p_bike": 0.0, "p_walk": 0.0112781954887218 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.130104, 37.686737 ], [ -122.130131, 37.69112 ], [ -122.128145, 37.69106 ], [ -122.127785, 37.690765 ], [ -122.127153, 37.690719 ], [ -122.118944, 37.68946 ], [ -122.114705, 37.688704 ], [ -122.111437, 37.688428 ], [ -122.105337, 37.689055 ], [ -122.09906, 37.689698 ], [ -122.099189, 37.690633 ], [ -122.097284, 37.69007 ], [ -122.09581, 37.689915 ], [ -122.094008, 37.690053 ], [ -122.094553, 37.689466 ], [ -122.096161, 37.688149 ], [ -122.096288, 37.68804 ], [ -122.09769, 37.68675 ], [ -122.100633, 37.685717 ], [ -122.106029, 37.685902 ], [ -122.108454, 37.684436 ], [ -122.113212, 37.686334 ], [ -122.116825, 37.685647 ], [ -122.117395, 37.686013 ], [ -122.122193, 37.685863 ], [ -122.1254, 37.685828 ], [ -122.129, 37.684386 ], [ -122.130022, 37.685112 ], [ -122.132347, 37.686709 ], [ -122.130104, 37.686737 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435800", "AFFGEOID": "1400000US06001435800", "GEOID": "06001435800", "NAME_x": "4358", "LSAD": "CT", "ALAND": 1303277, "AWATER": 0, "NAME_y": "Census Tract 4358, Alameda County, California", "c_race": 5510, "c_white": 915, "c_black": 91, "c_asian": 1283, "c_latinx": 2991, "state_fips": 6, "county_fips": 1, "tract_fips": 435800, "med_rent": 2105.0, "med_hhinc": 101705.0, "c_tenants": 1658, "c_owners": 1256, "c_renters": 402, "c_movers": 5435, "c_stay": 5191, "c_movelocal": 210, "c_movecounty": 8, "c_movestate": 26, "c_moveabroad": 0, "c_commute": 2962, "c_car": 2261, "c_carpool": 172, "c_transit": 289, "c_bike": 31, "c_walk": 30, "year": 2018, "FIPS_11_digit": "06001435800", "p_white": 0.16606170598911069, "p_black": 0.016515426497277601, "p_asian": 0.23284936479128851, "p_latinx": 0.54283121597096184, "p_owners": 0.75753920386007234, "p_renters": 0.2424607961399276, "p_stay": 0.95510579576816923, "p_movelocal": 0.0386384544618215, "p_movecounty": 0.0014719411223551001, "p_movestate": 0.0047838086476540004, "p_moveabroad": 0.0, "p_car": 0.76333558406482105, "p_carpool": 0.058068872383524602, "p_transit": 0.097569209993247794, "p_bike": 0.010465901417960799, "p_walk": 0.0101282916948008 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.138702, 37.684738 ], [ -122.136507, 37.684464 ], [ -122.135555, 37.684444 ], [ -122.135552, 37.684352 ], [ -122.134509, 37.684364 ], [ -122.131581, 37.685088 ], [ -122.129987, 37.684453 ], [ -122.129, 37.684386 ], [ -122.124274, 37.681095 ], [ -122.117534, 37.676558 ], [ -122.12355, 37.67421 ], [ -122.126205, 37.678394 ], [ -122.125833, 37.676176 ], [ -122.132929, 37.673297 ], [ -122.135038, 37.676622 ], [ -122.137002, 37.679616 ], [ -122.138702, 37.684738 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438201", "AFFGEOID": "1400000US06001438201", "GEOID": "06001438201", "NAME_x": "4382.01", "LSAD": "CT", "ALAND": 994906, "AWATER": 0, "NAME_y": "Census Tract 4382.01, Alameda County, California", "c_race": 4926, "c_white": 461, "c_black": 175, "c_asian": 1197, "c_latinx": 2733, "state_fips": 6, "county_fips": 1, "tract_fips": 438201, "med_rent": 2101.0, "med_hhinc": 69963.0, "c_tenants": 1182, "c_owners": 919, "c_renters": 263, "c_movers": 4907, "c_stay": 4541, "c_movelocal": 131, "c_movecounty": 47, "c_movestate": 142, "c_moveabroad": 46, "c_commute": 2018, "c_car": 1765, "c_carpool": 190, "c_transit": 36, "c_bike": 9, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001438201", "p_white": 0.093585058871295104, "p_black": 0.035525781567194402, "p_asian": 0.2429963459196102, "p_latinx": 0.55481120584652865, "p_owners": 0.77749576988155666, "p_renters": 0.22250423011844331, "p_stay": 0.92541267576930919, "p_movelocal": 0.0266965559404931, "p_movecounty": 0.0095781536580395003, "p_movestate": 0.028938251477481101, "p_moveabroad": 0.0093743631546768999, "p_car": 0.87462834489593655, "p_carpool": 0.094152626362735303, "p_transit": 0.017839444995044501, "p_bike": 0.0044598612487611001, "p_walk": 0.0044598612487611001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.084513, 37.631558 ], [ -122.077526, 37.631403 ], [ -122.07446, 37.631336 ], [ -122.073242, 37.631424 ], [ -122.072286, 37.63082 ], [ -122.071867, 37.624553 ], [ -122.073275, 37.618432 ], [ -122.071653, 37.617521 ], [ -122.07373, 37.617474 ], [ -122.073893, 37.616684 ], [ -122.074414, 37.617422 ], [ -122.079674, 37.624745 ], [ -122.084513, 37.631558 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440331", "AFFGEOID": "1400000US06001440331", "GEOID": "06001440331", "NAME_x": "4403.31", "LSAD": "CT", "ALAND": 1859242, "AWATER": 0, "NAME_y": "Census Tract 4403.31, Alameda County, California", "c_race": 3275, "c_white": 423, "c_black": 72, "c_asian": 1680, "c_latinx": 802, "state_fips": 6, "county_fips": 1, "tract_fips": 440331, "med_rent": 1995.0, "med_hhinc": 104015.0, "c_tenants": 894, "c_owners": 450, "c_renters": 444, "c_movers": 3259, "c_stay": 2993, "c_movelocal": 107, "c_movecounty": 113, "c_movestate": 14, "c_moveabroad": 32, "c_commute": 1233, "c_car": 785, "c_carpool": 151, "c_transit": 95, "c_bike": 7, "c_walk": 43, "year": 2018, "FIPS_11_digit": "06001440331", "p_white": 0.12916030534351139, "p_black": 0.021984732824427401, "p_asian": 0.51297709923664125, "p_latinx": 0.2448854961832061, "p_owners": 0.50335570469798663, "p_renters": 0.49664429530201343, "p_stay": 0.91837987112611241, "p_movelocal": 0.032832157103405903, "p_movecounty": 0.034673212641914697, "p_movestate": 0.0042957962565203997, "p_moveabroad": 0.0098189628720466004, "p_car": 0.63665855636658553, "p_carpool": 0.1224655312246553, "p_transit": 0.077047850770478502, "p_bike": 0.0056772100567721003, "p_walk": 0.034874290348742898 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.09239, 37.593747 ], [ -122.091557, 37.594814 ], [ -122.091741, 37.601123 ], [ -122.089057, 37.606513 ], [ -122.08829, 37.607486 ], [ -122.087429, 37.608193 ], [ -122.082241, 37.603713 ], [ -122.074482, 37.596914 ], [ -122.073773, 37.596434 ], [ -122.069993, 37.592375 ], [ -122.072253, 37.591093 ], [ -122.075163, 37.592426 ], [ -122.07609, 37.592285 ], [ -122.07757, 37.591673 ], [ -122.078051, 37.591591 ], [ -122.081177, 37.591604 ], [ -122.081, 37.593922 ], [ -122.084393, 37.594808 ], [ -122.091951, 37.592747 ], [ -122.09239, 37.593747 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442500", "AFFGEOID": "1400000US06001442500", "GEOID": "06001442500", "NAME_x": "4425", "LSAD": "CT", "ALAND": 1959819, "AWATER": 0, "NAME_y": "Census Tract 4425, Alameda County, California", "c_race": 7748, "c_white": 1430, "c_black": 375, "c_asian": 3379, "c_latinx": 1904, "state_fips": 6, "county_fips": 1, "tract_fips": 442500, "med_rent": 1999.0, "med_hhinc": 95323.0, "c_tenants": 2264, "c_owners": 1245, "c_renters": 1019, "c_movers": 7628, "c_stay": 6858, "c_movelocal": 557, "c_movecounty": 29, "c_movestate": 23, "c_moveabroad": 161, "c_commute": 3330, "c_car": 2382, "c_carpool": 375, "c_transit": 214, "c_bike": 59, "c_walk": 34, "year": 2018, "FIPS_11_digit": "06001442500", "p_white": 0.1845637583892617, "p_black": 0.048399586990191, "p_asian": 0.43611254517294779, "p_latinx": 0.2457408363448631, "p_owners": 0.54991166077738518, "p_renters": 0.45008833922261482, "p_stay": 0.89905610907184064, "p_movelocal": 0.073020450970110104, "p_movecounty": 0.0038017829050865002, "p_movestate": 0.0030152071316202999, "p_moveabroad": 0.021106449921342401, "p_car": 0.71531531531531534, "p_carpool": 0.1126126126126126, "p_transit": 0.064264264264264195, "p_bike": 0.017717717717717699, "p_walk": 0.010210210210210201 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.996816, 37.538418 ], [ -121.993279, 37.542744 ], [ -121.991011, 37.545522 ], [ -121.985519, 37.542647 ], [ -121.985194, 37.542626 ], [ -121.984225, 37.54406 ], [ -121.982594, 37.54556 ], [ -121.980866, 37.544669 ], [ -121.980761, 37.544614 ], [ -121.984127, 37.540398 ], [ -121.980069, 37.538483 ], [ -121.978861, 37.538885 ], [ -121.977002, 37.537862 ], [ -121.97596, 37.537218 ], [ -121.979179, 37.533257 ], [ -121.983044, 37.528437 ], [ -121.985797, 37.529846 ], [ -121.991774, 37.532928 ], [ -121.998519, 37.536371 ], [ -121.996816, 37.538418 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450400", "AFFGEOID": "1400000US06001450400", "GEOID": "06001450400", "NAME_x": "4504", "LSAD": "CT", "ALAND": 3156075, "AWATER": 0, "NAME_y": "Census Tract 4504, Alameda County, California", "c_race": 6879, "c_white": 3598, "c_black": 147, "c_asian": 1774, "c_latinx": 983, "state_fips": 6, "county_fips": 1, "tract_fips": 450400, "med_rent": 2502.0, "med_hhinc": 106060.0, "c_tenants": 2386, "c_owners": 1779, "c_renters": 607, "c_movers": 6781, "c_stay": 6060, "c_movelocal": 388, "c_movecounty": 164, "c_movestate": 89, "c_moveabroad": 80, "c_commute": 3415, "c_car": 2580, "c_carpool": 299, "c_transit": 235, "c_bike": 0, "c_walk": 63, "year": 2018, "FIPS_11_digit": "06001450400", "p_white": 0.52304113970053789, "p_black": 0.021369385085041399, "p_asian": 0.2578863206861462, "p_latinx": 0.1428986771333042, "p_owners": 0.7455993294216261, "p_renters": 0.25440067057837379, "p_stay": 0.89367349948385189, "p_movelocal": 0.057218699306886799, "p_movecounty": 0.024185223418374799, "p_movestate": 0.0131249078307034, "p_moveabroad": 0.0117976699601828, "p_car": 0.75549048316251832, "p_carpool": 0.087554904831625105, "p_transit": 0.068814055636895993, "p_bike": 0.0, "p_walk": 0.018448023426061399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.940195, 37.723484 ], [ -121.937003, 37.724247 ], [ -121.932825, 37.725436 ], [ -121.929372, 37.726078 ], [ -121.926664, 37.722133 ], [ -121.926721, 37.718558 ], [ -121.927599, 37.712295 ], [ -121.927053, 37.710193 ], [ -121.923506, 37.705893 ], [ -121.925083, 37.705506 ], [ -121.923303, 37.702837 ], [ -121.92309, 37.702355 ], [ -121.922584, 37.701134 ], [ -121.927523, 37.70006 ], [ -121.928986, 37.69973 ], [ -121.934962, 37.698517 ], [ -121.9354, 37.700297 ], [ -121.935454, 37.700535 ], [ -121.935788, 37.70209 ], [ -121.937038, 37.707581 ], [ -121.939488, 37.713904 ], [ -121.942383, 37.722946 ], [ -121.940195, 37.723484 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450745", "AFFGEOID": "1400000US06001450745", "GEOID": "06001450745", "NAME_x": "4507.45", "LSAD": "CT", "ALAND": 7292551, "AWATER": 0, "NAME_y": "Census Tract 4507.45, Alameda County, California", "c_race": 6286, "c_white": 1918, "c_black": 24, "c_asian": 3743, "c_latinx": 442, "state_fips": 6, "county_fips": 1, "tract_fips": 450745, "med_rent": 2035.0, "med_hhinc": 181964.0, "c_tenants": 2223, "c_owners": 1655, "c_renters": 568, "c_movers": 6286, "c_stay": 5450, "c_movelocal": 435, "c_movecounty": 153, "c_movestate": 135, "c_moveabroad": 113, "c_commute": 3398, "c_car": 2196, "c_carpool": 244, "c_transit": 595, "c_bike": 71, "c_walk": 27, "year": 2018, "FIPS_11_digit": "06001450745", "p_white": 0.30512249443207129, "p_black": 0.0038180082723512001, "p_asian": 0.59545020680878147, "p_latinx": 0.070314985682468897, "p_owners": 0.74448942869995505, "p_renters": 0.25551057130004501, "p_stay": 0.86700604517976454, "p_movelocal": 0.069201399936366495, "p_movecounty": 0.024339802736239199, "p_movestate": 0.021476296531975799, "p_moveabroad": 0.017976455615653801, "p_car": 0.64626250735726898, "p_carpool": 0.071806945261918706, "p_transit": 0.1751030017657445, "p_bike": 0.020894643908181201, "p_walk": 0.0079458505002941993 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.877938, 37.688952 ], [ -121.869089, 37.691918 ], [ -121.865073, 37.693666 ], [ -121.864237, 37.693942 ], [ -121.854239, 37.693933 ], [ -121.848858, 37.693868 ], [ -121.848734, 37.693867 ], [ -121.84792, 37.691827 ], [ -121.843379, 37.691103 ], [ -121.832514, 37.680518 ], [ -121.830528, 37.67901 ], [ -121.82683, 37.67632 ], [ -121.826737, 37.673841 ], [ -121.834984, 37.672957 ], [ -121.854463, 37.670816 ], [ -121.857871, 37.670438 ], [ -121.858811, 37.672626 ], [ -121.862924, 37.675541 ], [ -121.877311, 37.686155 ], [ -121.877843, 37.687959 ], [ -121.878146, 37.688893 ], [ -121.877938, 37.688952 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451501", "AFFGEOID": "1400000US06001451501", "GEOID": "06001451501", "NAME_x": "4515.01", "LSAD": "CT", "ALAND": 5053910, "AWATER": 0, "NAME_y": "Census Tract 4515.01, Alameda County, California", "c_race": 4751, "c_white": 3289, "c_black": 56, "c_asian": 429, "c_latinx": 649, "state_fips": 6, "county_fips": 1, "tract_fips": 451501, "med_rent": 1213.0, "med_hhinc": 117356.0, "c_tenants": 1781, "c_owners": 1104, "c_renters": 677, "c_movers": 4699, "c_stay": 4259, "c_movelocal": 341, "c_movecounty": 78, "c_movestate": 19, "c_moveabroad": 2, "c_commute": 2426, "c_car": 1808, "c_carpool": 147, "c_transit": 167, "c_bike": 70, "c_walk": 39, "year": 2018, "FIPS_11_digit": "06001451501", "p_white": 0.69227531046095558, "p_black": 0.0117869922121658, "p_asian": 0.090296779625341994, "p_latinx": 0.13660282045885069, "p_owners": 0.61987647389107248, "p_renters": 0.38012352610892758, "p_stay": 0.90636305596935518, "p_movelocal": 0.072568631623749699, "p_movecounty": 0.016599276441796099, "p_movestate": 0.0040434134922323001, "p_moveabroad": 0.00042562247286649998, "p_car": 0.74525968672712284, "p_carpool": 0.060593569661995, "p_transit": 0.068837592745259593, "p_bike": 0.0288540807914262, "p_walk": 0.016075845012365999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.765258, 37.679975 ], [ -121.755118, 37.679981 ], [ -121.751736, 37.679966 ], [ -121.748355, 37.679962 ], [ -121.736501, 37.679943 ], [ -121.733077, 37.67994 ], [ -121.726342, 37.679899 ], [ -121.71878, 37.679853 ], [ -121.71879, 37.67977 ], [ -121.718943, 37.665 ], [ -121.719109, 37.665003 ], [ -121.73674, 37.665129 ], [ -121.742411, 37.665328 ], [ -121.747967, 37.66886 ], [ -121.749722, 37.670019 ], [ -121.753915, 37.672695 ], [ -121.756982, 37.674645 ], [ -121.765258, 37.679975 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422000", "AFFGEOID": "1400000US06001422000", "GEOID": "06001422000", "NAME_x": "4220", "LSAD": "CT", "ALAND": 4498262, "AWATER": 5864363, "NAME_y": "Census Tract 4220, Alameda County, California", "c_race": 2071, "c_white": 1400, "c_black": 253, "c_asian": 115, "c_latinx": 141, "state_fips": 6, "county_fips": 1, "tract_fips": 422000, "med_rent": 2066.0, "med_hhinc": 91369.0, "c_tenants": 859, "c_owners": 221, "c_renters": 638, "c_movers": 1994, "c_stay": 1614, "c_movelocal": 207, "c_movecounty": 95, "c_movestate": 50, "c_moveabroad": 28, "c_commute": 1131, "c_car": 464, "c_carpool": 94, "c_transit": 214, "c_bike": 23, "c_walk": 118, "year": 2018, "FIPS_11_digit": "06001422000", "p_white": 0.67600193143408982, "p_black": 0.122163206180589, "p_asian": 0.055528730082085899, "p_latinx": 0.068083051665861899, "p_owners": 0.2572759022118743, "p_renters": 0.74272409778812576, "p_stay": 0.80942828485456364, "p_movelocal": 0.10381143430290871, "p_movecounty": 0.047642928786359, "p_movestate": 0.025075225677031, "p_moveabroad": 0.014042126379137401, "p_car": 0.41025641025641019, "p_carpool": 0.083112290008841697, "p_transit": 0.18921308576480991, "p_bike": 0.020335985853227202, "p_walk": 0.1043324491600353 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.325193, 37.874276 ], [ -122.318663, 37.875307 ], [ -122.313164, 37.870151 ], [ -122.308502, 37.87088 ], [ -122.311445, 37.879775 ], [ -122.312820832862016, 37.881277077508898 ], [ -122.308361, 37.882183 ], [ -122.30708, 37.881879 ], [ -122.296891, 37.883498 ], [ -122.295353, 37.878685 ], [ -122.300853, 37.877571 ], [ -122.299722, 37.874085 ], [ -122.297751, 37.867937 ], [ -122.296853, 37.865282 ], [ -122.295163, 37.860002 ], [ -122.293719, 37.860243 ], [ -122.289651, 37.861104 ], [ -122.288793, 37.858508 ], [ -122.288257, 37.856849 ], [ -122.286794, 37.852178 ], [ -122.286247, 37.850505 ], [ -122.288744, 37.850007 ], [ -122.292355, 37.849359 ], [ -122.295092, 37.848907 ], [ -122.296413, 37.848743 ], [ -122.298863, 37.848097 ], [ -122.299934, 37.847673 ], [ -122.301161573409999, 37.847362399484197 ], [ -122.301372, 37.855493 ], [ -122.308352, 37.862934 ], [ -122.316944, 37.858809 ], [ -122.318722, 37.866377 ], [ -122.325193, 37.874276 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "422800", "AFFGEOID": "1400000US06001422800", "GEOID": "06001422800", "NAME_x": "4228", "LSAD": "CT", "ALAND": 408571, "AWATER": 0, "NAME_y": "Census Tract 4228, Alameda County, California", "c_race": 9155, "c_white": 2687, "c_black": 361, "c_asian": 3953, "c_latinx": 1555, "state_fips": 6, "county_fips": 1, "tract_fips": 422800, "med_rent": 1499.0, "med_hhinc": 17933.0, "c_tenants": 1303, "c_owners": 26, "c_renters": 1277, "c_movers": 9148, "c_stay": 2628, "c_movelocal": 1986, "c_movecounty": 3173, "c_movestate": 900, "c_moveabroad": 461, "c_commute": 2780, "c_car": 284, "c_carpool": 94, "c_transit": 498, "c_bike": 77, "c_walk": 1520, "year": 2018, "FIPS_11_digit": "06001422800", "p_white": 0.29350081922446752, "p_black": 0.039432004369197103, "p_asian": 0.43178590933915889, "p_latinx": 0.1698525395958492, "p_owners": 0.019953952417497998, "p_renters": 0.98004604758250202, "p_stay": 0.28727590730214247, "p_movelocal": 0.21709663314385649, "p_movecounty": 0.34685177087888058, "p_movestate": 0.098382160034980307, "p_moveabroad": 0.050393528640139899, "p_car": 0.10215827338129491, "p_carpool": 0.0338129496402877, "p_transit": 0.179136690647482, "p_bike": 0.0276978417266187, "p_walk": 0.5467625899280576 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.26599, 37.867834 ], [ -122.261482, 37.868439 ], [ -122.259197, 37.86872 ], [ -122.254588, 37.869321 ], [ -122.254223, 37.866931 ], [ -122.253954, 37.865737 ], [ -122.258543, 37.865149 ], [ -122.260741, 37.864843 ], [ -122.265277, 37.864265 ], [ -122.265333, 37.864425 ], [ -122.26599, 37.867834 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "424002", "AFFGEOID": "1400000US06001424002", "GEOID": "06001424002", "NAME_x": "4240.02", "LSAD": "CT", "ALAND": 327217, "AWATER": 0, "NAME_y": "Census Tract 4240.02, Alameda County, California", "c_race": 2507, "c_white": 732, "c_black": 762, "c_asian": 265, "c_latinx": 588, "state_fips": 6, "county_fips": 1, "tract_fips": 424002, "med_rent": 1467.0, "med_hhinc": 75107.0, "c_tenants": 947, "c_owners": 458, "c_renters": 489, "c_movers": 2482, "c_stay": 2185, "c_movelocal": 151, "c_movecounty": 84, "c_movestate": 62, "c_moveabroad": 0, "c_commute": 1311, "c_car": 564, "c_carpool": 93, "c_transit": 355, "c_bike": 96, "c_walk": 68, "year": 2018, "FIPS_11_digit": "06001424002", "p_white": 0.29198244914240129, "p_black": 0.30394894295971281, "p_asian": 0.10570402871958511, "p_latinx": 0.23454327881930589, "p_owners": 0.48363252375923971, "p_renters": 0.51636747624076029, "p_stay": 0.8803384367445608, "p_movelocal": 0.060838033843674401, "p_movecounty": 0.0338436744560838, "p_movestate": 0.024979854955680902, "p_moveabroad": 0.0, "p_car": 0.43020594965675057, "p_carpool": 0.070938215102974794, "p_transit": 0.27078565980167812, "p_bike": 0.073226544622425602, "p_walk": 0.051868802440884799 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.286794, 37.852178 ], [ -122.281433, 37.85319 ], [ -122.279121, 37.853287 ], [ -122.278702, 37.851489 ], [ -122.278623, 37.851103 ], [ -122.278505, 37.850624 ], [ -122.278079, 37.848826 ], [ -122.277766, 37.847525 ], [ -122.277885, 37.847509 ], [ -122.279883, 37.84722 ], [ -122.281899, 37.846975 ], [ -122.283459, 37.850307 ], [ -122.284054, 37.850548 ], [ -122.286132, 37.850149 ], [ -122.286247, 37.850505 ], [ -122.286794, 37.852178 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "426200", "AFFGEOID": "1400000US06001426200", "GEOID": "06001426200", "NAME_x": "4262", "LSAD": "CT", "ALAND": 1358205, "AWATER": 0, "NAME_y": "Census Tract 4262, Alameda County, California", "c_race": 4904, "c_white": 3282, "c_black": 131, "c_asian": 791, "c_latinx": 324, "state_fips": 6, "county_fips": 1, "tract_fips": 426200, "med_rent": 3110.0, "med_hhinc": 178922.0, "c_tenants": 1719, "c_owners": 1441, "c_renters": 278, "c_movers": 4872, "c_stay": 4377, "c_movelocal": 201, "c_movecounty": 184, "c_movestate": 63, "c_moveabroad": 47, "c_commute": 2481, "c_car": 1231, "c_carpool": 326, "c_transit": 433, "c_bike": 55, "c_walk": 54, "year": 2018, "FIPS_11_digit": "06001426200", "p_white": 0.6692495921696574, "p_black": 0.026712887438825401, "p_asian": 0.16129690048939641, "p_latinx": 0.066068515497552993, "p_owners": 0.83827806864456078, "p_renters": 0.16172193135543919, "p_stay": 0.89839901477832518, "p_movelocal": 0.041256157635467902, "p_movecounty": 0.0377668308702791, "p_movestate": 0.0129310344827586, "p_moveabroad": 0.0096469622331691006, "p_car": 0.49617089883111648, "p_carpool": 0.1313986295848448, "p_transit": 0.17452640064490119, "p_bike": 0.0221684804514308, "p_walk": 0.0217654171704957 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.249295, 37.823722 ], [ -122.248118, 37.824815 ], [ -122.24768, 37.826241 ], [ -122.245476, 37.827538 ], [ -122.243358, 37.829833 ], [ -122.243288, 37.830063 ], [ -122.241087, 37.830439 ], [ -122.237048, 37.830823 ], [ -122.235254, 37.830534 ], [ -122.233608, 37.827547 ], [ -122.232279, 37.825085 ], [ -122.233816, 37.82304 ], [ -122.235835, 37.823307 ], [ -122.238009, 37.821645 ], [ -122.236608, 37.820221 ], [ -122.23931, 37.817841 ], [ -122.243481, 37.818659 ], [ -122.244206, 37.819034 ], [ -122.244722, 37.819119 ], [ -122.245205, 37.819394 ], [ -122.247573, 37.821569 ], [ -122.24939, 37.822846 ], [ -122.249295, 37.823722 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "430500", "AFFGEOID": "1400000US06001430500", "GEOID": "06001430500", "NAME_x": "4305", "LSAD": "CT", "ALAND": 2610319, "AWATER": 0, "NAME_y": "Census Tract 4305, Alameda County, California", "c_race": 6049, "c_white": 1795, "c_black": 1356, "c_asian": 1342, "c_latinx": 1169, "state_fips": 6, "county_fips": 1, "tract_fips": 430500, "med_rent": 1567.0, "med_hhinc": 81287.0, "c_tenants": 2073, "c_owners": 1394, "c_renters": 679, "c_movers": 5976, "c_stay": 5210, "c_movelocal": 496, "c_movecounty": 230, "c_movestate": 24, "c_moveabroad": 16, "c_commute": 2693, "c_car": 1947, "c_carpool": 340, "c_transit": 287, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001430500", "p_white": 0.29674326334931389, "p_black": 0.22416928417920309, "p_asian": 0.22185485204165969, "p_latinx": 0.1932550834848735, "p_owners": 0.67245537867824412, "p_renters": 0.32754462132175588, "p_stay": 0.87182061579651937, "p_movelocal": 0.082998661311914301, "p_movecounty": 0.038487282463186001, "p_movestate": 0.0040160642570280999, "p_moveabroad": 0.0026773761713519998, "p_car": 0.72298551800965472, "p_carpool": 0.12625324916450051, "p_transit": 0.10657259561826959, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.122551, 37.708533 ], [ -122.120667, 37.711546 ], [ -122.121765, 37.716061 ], [ -122.121734, 37.716554 ], [ -122.121384, 37.717184 ], [ -122.121096, 37.717434 ], [ -122.120122, 37.717803 ], [ -122.119421, 37.717798 ], [ -122.118382, 37.717473 ], [ -122.117772, 37.717099 ], [ -122.117129, 37.716403 ], [ -122.116217, 37.714687 ], [ -122.115751, 37.714237 ], [ -122.115316, 37.713966 ], [ -122.113419, 37.713323 ], [ -122.112225, 37.713017 ], [ -122.111703, 37.71295 ], [ -122.108527, 37.713129 ], [ -122.104695, 37.714756 ], [ -122.103364, 37.714755 ], [ -122.104997, 37.714445 ], [ -122.106285, 37.709765 ], [ -122.106733, 37.708827 ], [ -122.103494, 37.704007 ], [ -122.101788, 37.702543 ], [ -122.102302, 37.701319 ], [ -122.100757, 37.699993 ], [ -122.100159, 37.699928 ], [ -122.098965, 37.697659 ], [ -122.097813, 37.695507 ], [ -122.096752, 37.695533 ], [ -122.093352, 37.69109 ], [ -122.091819, 37.691834 ], [ -122.093315, 37.690762 ], [ -122.094008, 37.690053 ], [ -122.09581, 37.689915 ], [ -122.097284, 37.69007 ], [ -122.099189, 37.690633 ], [ -122.099981, 37.691037 ], [ -122.104167, 37.695511 ], [ -122.106223, 37.697824 ], [ -122.108362, 37.70009 ], [ -122.109474, 37.700945 ], [ -122.116647, 37.705303 ], [ -122.120937, 37.707318 ], [ -122.122551, 37.708533 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "434000", "AFFGEOID": "1400000US06001434000", "GEOID": "06001434000", "NAME_x": "4340", "LSAD": "CT", "ALAND": 1205929, "AWATER": 0, "NAME_y": "Census Tract 4340, Alameda County, California", "c_race": 5156, "c_white": 721, "c_black": 852, "c_asian": 900, "c_latinx": 2509, "state_fips": 6, "county_fips": 1, "tract_fips": 434000, "med_rent": 1256.0, "med_hhinc": 49403.0, "c_tenants": 1774, "c_owners": 594, "c_renters": 1180, "c_movers": 5064, "c_stay": 4667, "c_movelocal": 299, "c_movecounty": 7, "c_movestate": 27, "c_moveabroad": 64, "c_commute": 2112, "c_car": 1493, "c_carpool": 217, "c_transit": 119, "c_bike": 0, "c_walk": 119, "year": 2018, "FIPS_11_digit": "06001434000", "p_white": 0.13983708301008529, "p_black": 0.165244375484872, "p_asian": 0.1745539177657098, "p_latinx": 0.48661753297129551, "p_owners": 0.33483652762119498, "p_renters": 0.66516347237880491, "p_stay": 0.92160347551342803, "p_movelocal": 0.059044233807266901, "p_movecounty": 0.0013823064770932, "p_movestate": 0.0053317535545022998, "p_moveabroad": 0.0126382306477093, "p_car": 0.70691287878787878, "p_carpool": 0.1027462121212121, "p_transit": 0.056344696969696899, "p_bike": 0.0, "p_walk": 0.056344696969696899 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.119021, 37.691991 ], [ -122.118868, 37.698542 ], [ -122.117085, 37.697287 ], [ -122.115354, 37.696075 ], [ -122.113593, 37.694839 ], [ -122.111869, 37.693622 ], [ -122.106813, 37.697286 ], [ -122.106223, 37.697824 ], [ -122.104167, 37.695511 ], [ -122.099981, 37.691037 ], [ -122.099189, 37.690633 ], [ -122.09906, 37.689698 ], [ -122.105337, 37.689055 ], [ -122.111437, 37.688428 ], [ -122.114705, 37.688704 ], [ -122.118944, 37.68946 ], [ -122.118946, 37.690315 ], [ -122.119031, 37.691617 ], [ -122.119021, 37.691991 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436601", "AFFGEOID": "1400000US06001436601", "GEOID": "06001436601", "NAME_x": "4366.01", "LSAD": "CT", "ALAND": 1086052, "AWATER": 0, "NAME_y": "Census Tract 4366.01, Alameda County, California", "c_race": 6685, "c_white": 1048, "c_black": 820, "c_asian": 791, "c_latinx": 3650, "state_fips": 6, "county_fips": 1, "tract_fips": 436601, "med_rent": 1576.0, "med_hhinc": 72065.0, "c_tenants": 1856, "c_owners": 754, "c_renters": 1102, "c_movers": 6560, "c_stay": 6003, "c_movelocal": 403, "c_movecounty": 91, "c_movestate": 11, "c_moveabroad": 52, "c_commute": 2838, "c_car": 1942, "c_carpool": 297, "c_transit": 357, "c_bike": 8, "c_walk": 40, "year": 2018, "FIPS_11_digit": "06001436601", "p_white": 0.15676888556469709, "p_black": 0.1226626776364996, "p_asian": 0.1183246073298429, "p_latinx": 0.54599850411368733, "p_owners": 0.40625, "p_renters": 0.59375, "p_stay": 0.91509146341463399, "p_movelocal": 0.061432926829268202, "p_movecounty": 0.0138719512195121, "p_movestate": 0.0016768292682926001, "p_moveabroad": 0.0079268292682925998, "p_car": 0.68428470754052151, "p_carpool": 0.1046511627906976, "p_transit": 0.12579281183932339, "p_bike": 0.0028188865398167001, "p_walk": 0.0140944326990838 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.083358, 37.664295 ], [ -122.083302, 37.664395 ], [ -122.082336, 37.666154 ], [ -122.078774, 37.662231 ], [ -122.074284, 37.655967 ], [ -122.070021, 37.650546 ], [ -122.070242, 37.650505 ], [ -122.076872, 37.649415 ], [ -122.080061, 37.653092 ], [ -122.082473, 37.655991 ], [ -122.083272, 37.656907 ], [ -122.086718, 37.658182 ], [ -122.083358, 37.664295 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450200", "AFFGEOID": "1400000US06001450200", "GEOID": "06001450200", "NAME_x": "4502", "LSAD": "CT", "ALAND": 1620535, "AWATER": 0, "NAME_y": "Census Tract 4502, Alameda County, California", "c_race": 6100, "c_white": 2466, "c_black": 167, "c_asian": 2604, "c_latinx": 578, "state_fips": 6, "county_fips": 1, "tract_fips": 450200, "med_rent": 2459.0, "med_hhinc": 125435.0, "c_tenants": 2542, "c_owners": 1028, "c_renters": 1514, "c_movers": 5974, "c_stay": 4409, "c_movelocal": 857, "c_movecounty": 495, "c_movestate": 189, "c_moveabroad": 24, "c_commute": 3459, "c_car": 2408, "c_carpool": 440, "c_transit": 364, "c_bike": 16, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450200", "p_white": 0.4042622950819672, "p_black": 0.027377049180327798, "p_asian": 0.42688524590163929, "p_latinx": 0.094754098360655695, "p_owners": 0.40440597954366642, "p_renters": 0.59559402045633358, "p_stay": 0.73803146970204214, "p_movelocal": 0.14345497154335449, "p_movecounty": 0.082859055908938703, "p_movestate": 0.031637094074321997, "p_moveabroad": 0.0040174087713423998, "p_car": 0.69615495808037009, "p_carpool": 0.12720439433362241, "p_transit": 0.1052327262214512, "p_bike": 0.0046256143394043997, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.917372, 37.728955 ], [ -121.911147, 37.730318 ], [ -121.910459, 37.730393 ], [ -121.909471, 37.724803 ], [ -121.91017, 37.719242 ], [ -121.910233, 37.710437 ], [ -121.914426, 37.714193 ], [ -121.916421, 37.716369 ], [ -121.925909, 37.726944 ], [ -121.917372, 37.728955 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450605", "AFFGEOID": "1400000US06001450605", "GEOID": "06001450605", "NAME_x": "4506.05", "LSAD": "CT", "ALAND": 1777941, "AWATER": 0, "NAME_y": "Census Tract 4506.05, Alameda County, California", "c_race": 4010, "c_white": 2527, "c_black": 92, "c_asian": 867, "c_latinx": 324, "state_fips": 6, "county_fips": 1, "tract_fips": 450605, "med_rent": 2571.0, "med_hhinc": 147619.0, "c_tenants": 1512, "c_owners": 1195, "c_renters": 317, "c_movers": 3989, "c_stay": 3517, "c_movelocal": 197, "c_movecounty": 99, "c_movestate": 13, "c_moveabroad": 163, "c_commute": 1792, "c_car": 1185, "c_carpool": 161, "c_transit": 268, "c_bike": 8, "c_walk": 24, "year": 2018, "FIPS_11_digit": "06001450605", "p_white": 0.63017456359102242, "p_black": 0.022942643391521099, "p_asian": 0.21620947630922691, "p_latinx": 0.080798004987531105, "p_owners": 0.79034391534391535, "p_renters": 0.2096560846560846, "p_stay": 0.8816746051642016, "p_movelocal": 0.049385810980195503, "p_movecounty": 0.024818250188017001, "p_movestate": 0.0032589621459012002, "p_moveabroad": 0.0408623715216846, "p_car": 0.6612723214285714, "p_carpool": 0.08984375, "p_transit": 0.1495535714285714, "p_bike": 0.0044642857142857002, "p_walk": 0.0133928571428571 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.895708, 37.676733 ], [ -121.893416, 37.676759 ], [ -121.888014, 37.676747 ], [ -121.885048, 37.676734 ], [ -121.880449, 37.676743 ], [ -121.874014, 37.676726 ], [ -121.873425, 37.674934 ], [ -121.872684, 37.672741 ], [ -121.872735, 37.671412 ], [ -121.873456, 37.66739 ], [ -121.873804, 37.665485 ], [ -121.874035, 37.66477 ], [ -121.881932, 37.665809 ], [ -121.883752, 37.66746 ], [ -121.884242, 37.667948 ], [ -121.885472, 37.668757 ], [ -121.889368, 37.67093 ], [ -121.890373, 37.671861 ], [ -121.897046, 37.676009 ], [ -121.895708, 37.676733 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409800", "AFFGEOID": "1400000US06001409800", "GEOID": "06001409800", "NAME_x": "4098", "LSAD": "CT", "ALAND": 1790009, "AWATER": 0, "NAME_y": "Census Tract 4098, Alameda County, California", "c_race": 3519, "c_white": 671, "c_black": 1742, "c_asian": 187, "c_latinx": 526, "state_fips": 6, "county_fips": 1, "tract_fips": 409800, "med_rent": 1110.0, "med_hhinc": 79375.0, "c_tenants": 1308, "c_owners": 704, "c_renters": 604, "c_movers": 3494, "c_stay": 2923, "c_movelocal": 312, "c_movecounty": 259, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1503, "c_car": 979, "c_carpool": 144, "c_transit": 249, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001409800", "p_white": 0.19067917021881209, "p_black": 0.49502699630576869, "p_asian": 0.053140096618357398, "p_latinx": 0.14947428246660979, "p_owners": 0.53822629969418956, "p_renters": 0.46177370030581039, "p_stay": 0.83657698912421297, "p_movelocal": 0.089295935890097294, "p_movecounty": 0.074127074985689698, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.65136393878908849, "p_carpool": 0.095808383233532898, "p_transit": 0.16566866267465069, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.164202, 37.763043 ], [ -122.160831, 37.764682 ], [ -122.161219, 37.765433 ], [ -122.158553, 37.766029 ], [ -122.157946, 37.767845 ], [ -122.154381, 37.768779 ], [ -122.158891, 37.773429 ], [ -122.158068, 37.773348 ], [ -122.156288, 37.772002 ], [ -122.155169, 37.770856 ], [ -122.148141, 37.760488 ], [ -122.147737, 37.758759 ], [ -122.148211, 37.75686 ], [ -122.151206, 37.75364 ], [ -122.152102, 37.754142 ], [ -122.152735, 37.753693 ], [ -122.153547, 37.75241 ], [ -122.154381, 37.751643 ], [ -122.157388, 37.753833 ], [ -122.1604, 37.752903 ], [ -122.161409, 37.755639 ], [ -122.161979, 37.757225 ], [ -122.163427, 37.760987 ], [ -122.164942, 37.762685 ], [ -122.164202, 37.763043 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "421400", "AFFGEOID": "1400000US06001421400", "GEOID": "06001421400", "NAME_x": "4214", "LSAD": "CT", "ALAND": 474780, "AWATER": 0, "NAME_y": "Census Tract 4214, Alameda County, California", "c_race": 1642, "c_white": 1262, "c_black": 58, "c_asian": 188, "c_latinx": 59, "state_fips": 6, "county_fips": 1, "tract_fips": 421400, "med_rent": 1875.0, "med_hhinc": 148164.0, "c_tenants": 631, "c_owners": 543, "c_renters": 88, "c_movers": 1636, "c_stay": 1413, "c_movelocal": 109, "c_movecounty": 85, "c_movestate": 6, "c_moveabroad": 23, "c_commute": 864, "c_car": 448, "c_carpool": 90, "c_transit": 159, "c_bike": 36, "c_walk": 28, "year": 2018, "FIPS_11_digit": "06001421400", "p_white": 0.76857490864799027, "p_black": 0.035322777101096201, "p_asian": 0.11449451887941529, "p_latinx": 0.035931790499390902, "p_owners": 0.86053882725832009, "p_renters": 0.1394611727416798, "p_stay": 0.86369193154034229, "p_movelocal": 0.066625916870415594, "p_movecounty": 0.051955990220048903, "p_movestate": 0.0036674816625915999, "p_moveabroad": 0.0140586797066014, "p_car": 0.51851851851851849, "p_carpool": 0.1041666666666666, "p_transit": 0.18402777777777779, "p_bike": 0.041666666666666602, "p_walk": 0.032407407407407399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.276027, 37.88887 ], [ -122.272507, 37.889997 ], [ -122.272285, 37.890246 ], [ -122.267737, 37.893131 ], [ -122.267147, 37.892796 ], [ -122.267174, 37.890428 ], [ -122.26672, 37.88895 ], [ -122.266609, 37.886035 ], [ -122.269978, 37.885603 ], [ -122.272876, 37.885655 ], [ -122.274543, 37.884895 ], [ -122.274963, 37.885341 ], [ -122.275882, 37.88642 ], [ -122.276586, 37.888821 ], [ -122.276027, 37.88887 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440306", "AFFGEOID": "1400000US06001440306", "GEOID": "06001440306", "NAME_x": "4403.06", "LSAD": "CT", "ALAND": 674581, "AWATER": 0, "NAME_y": "Census Tract 4403.06, Alameda County, California", "c_race": 4341, "c_white": 409, "c_black": 332, "c_asian": 2938, "c_latinx": 376, "state_fips": 6, "county_fips": 1, "tract_fips": 440306, "med_rent": 2277.0, "med_hhinc": 90950.0, "c_tenants": 1037, "c_owners": 659, "c_renters": 378, "c_movers": 4286, "c_stay": 3990, "c_movelocal": 137, "c_movecounty": 63, "c_movestate": 19, "c_moveabroad": 77, "c_commute": 1252, "c_car": 826, "c_carpool": 189, "c_transit": 115, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001440306", "p_white": 0.094217922137756205, "p_black": 0.076480073715733704, "p_asian": 0.67680258005067961, "p_latinx": 0.086615987099746605, "p_owners": 0.63548698167791706, "p_renters": 0.36451301832208288, "p_stay": 0.9309379374708352, "p_movelocal": 0.031964535697620103, "p_movecounty": 0.0146990200653289, "p_movestate": 0.0044330377974801001, "p_moveabroad": 0.017965468968735399, "p_car": 0.65974440894568687, "p_carpool": 0.15095846645367411, "p_transit": 0.091853035143769898, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.074061, 37.584622 ], [ -122.072286, 37.58667 ], [ -122.069057, 37.590387 ], [ -122.068734, 37.591103 ], [ -122.064709, 37.587067 ], [ -122.064317, 37.586748 ], [ -122.062509, 37.585696 ], [ -122.062894, 37.5849 ], [ -122.067613, 37.579422 ], [ -122.067944, 37.579904 ], [ -122.072807, 37.582663 ], [ -122.074061, 37.584622 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441100", "AFFGEOID": "1400000US06001441100", "GEOID": "06001441100", "NAME_x": "4411", "LSAD": "CT", "ALAND": 15151114, "AWATER": 0, "NAME_y": "Census Tract 4411, Alameda County, California", "c_race": 4327, "c_white": 1979, "c_black": 52, "c_asian": 1182, "c_latinx": 784, "state_fips": 6, "county_fips": 1, "tract_fips": 441100, "med_rent": 1667.0, "med_hhinc": 98208.0, "c_tenants": 1657, "c_owners": 1241, "c_renters": 416, "c_movers": 4307, "c_stay": 4010, "c_movelocal": 160, "c_movecounty": 101, "c_movestate": 26, "c_moveabroad": 10, "c_commute": 1831, "c_car": 1392, "c_carpool": 120, "c_transit": 146, "c_bike": 11, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001441100", "p_white": 0.45736075803096832, "p_black": 0.012017564132193201, "p_asian": 0.27316847700485319, "p_latinx": 0.18118788999306679, "p_owners": 0.74894387447193722, "p_renters": 0.25105612552806278, "p_stay": 0.93104248897144182, "p_movelocal": 0.037148827490132298, "p_movecounty": 0.023450197353146001, "p_movestate": 0.0060366844671464999, "p_moveabroad": 0.0023218017181332001, "p_car": 0.7602403058438012, "p_carpool": 0.065537957400327695, "p_transit": 0.079737848170398695, "p_bike": 0.0060076460950299997, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.993026, 37.596028 ], [ -121.988819, 37.598994 ], [ -121.988518, 37.600004 ], [ -121.981668, 37.604624 ], [ -121.96751, 37.596594 ], [ -121.957525, 37.590159 ], [ -121.951652, 37.597529 ], [ -121.950257, 37.598055 ], [ -121.947011, 37.597896 ], [ -121.946658, 37.597716 ], [ -121.940099, 37.598869 ], [ -121.938382, 37.598148 ], [ -121.93752, 37.592858 ], [ -121.936076, 37.591036 ], [ -121.932767, 37.591732 ], [ -121.929968, 37.584781 ], [ -121.926968, 37.581904 ], [ -121.928569, 37.580714 ], [ -121.927569, 37.579622 ], [ -121.929737, 37.578755 ], [ -121.929928, 37.577629 ], [ -121.9312, 37.576054 ], [ -121.932351, 37.576397 ], [ -121.933169, 37.576034 ], [ -121.932146, 37.573315 ], [ -121.931764, 37.572619 ], [ -121.933064, 37.571255 ], [ -121.935789, 37.570024 ], [ -121.93956, 37.570565 ], [ -121.94278, 37.570627 ], [ -121.947994, 37.569816 ], [ -121.949601, 37.5704 ], [ -121.9527, 37.570649 ], [ -121.957507, 37.569226 ], [ -121.959055, 37.567125 ], [ -121.961473, 37.565571 ], [ -121.967952, 37.572756 ], [ -121.968904, 37.573771 ], [ -121.971528, 37.57658 ], [ -121.974777, 37.578287 ], [ -121.97775, 37.578874 ], [ -121.986573, 37.579594 ], [ -121.990327, 37.580687 ], [ -121.991186, 37.581193 ], [ -122.001372, 37.589602 ], [ -121.993026, 37.596028 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "441700", "AFFGEOID": "1400000US06001441700", "GEOID": "06001441700", "NAME_x": "4417", "LSAD": "CT", "ALAND": 2229701, "AWATER": 0, "NAME_y": "Census Tract 4417, Alameda County, California", "c_race": 8120, "c_white": 1837, "c_black": 344, "c_asian": 3988, "c_latinx": 1528, "state_fips": 6, "county_fips": 1, "tract_fips": 441700, "med_rent": 1769.0, "med_hhinc": 111502.0, "c_tenants": 2801, "c_owners": 1510, "c_renters": 1291, "c_movers": 7977, "c_stay": 7268, "c_movelocal": 321, "c_movecounty": 101, "c_movestate": 143, "c_moveabroad": 144, "c_commute": 2660, "c_car": 1963, "c_carpool": 259, "c_transit": 248, "c_bike": 15, "c_walk": 19, "year": 2018, "FIPS_11_digit": "06001441700", "p_white": 0.22623152709359601, "p_black": 0.042364532019704401, "p_asian": 0.4911330049261084, "p_latinx": 0.18817733990147781, "p_owners": 0.53909318100678327, "p_renters": 0.46090681899321673, "p_stay": 0.91111946847185643, "p_movelocal": 0.040240691989469703, "p_movecounty": 0.012661401529396999, "p_movestate": 0.017926538799047199, "p_moveabroad": 0.0180518992102294, "p_car": 0.73796992481203005, "p_carpool": 0.097368421052631507, "p_transit": 0.093233082706766904, "p_bike": 0.0056390977443609002, "p_walk": 0.0071428571428571001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.022895, 37.546533 ], [ -122.018861, 37.551426 ], [ -122.01598, 37.554921 ], [ -122.012436, 37.559589 ], [ -122.011693, 37.56059 ], [ -122.010656, 37.561845 ], [ -122.007128, 37.564636 ], [ -122.005128, 37.563368 ], [ -121.999575, 37.564144 ], [ -121.99709, 37.564076 ], [ -121.995937, 37.563041 ], [ -122.002072, 37.561336 ], [ -122.001229, 37.559969 ], [ -122.004618, 37.556952 ], [ -122.003776, 37.55651 ], [ -122.003709, 37.556474 ], [ -122.00424, 37.555839 ], [ -122.005383, 37.554468 ], [ -122.008628, 37.550415 ], [ -122.012574, 37.545809 ], [ -122.013712, 37.544194 ], [ -122.016558, 37.540277 ], [ -122.017348, 37.539133 ], [ -122.020081, 37.542769 ], [ -122.022895, 37.546533 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442200", "AFFGEOID": "1400000US06001442200", "GEOID": "06001442200", "NAME_x": "4422", "LSAD": "CT", "ALAND": 4209174, "AWATER": 0, "NAME_y": "Census Tract 4422, Alameda County, California", "c_race": 7196, "c_white": 1289, "c_black": 137, "c_asian": 5132, "c_latinx": 419, "state_fips": 6, "county_fips": 1, "tract_fips": 442200, "med_rent": 2849.0, "med_hhinc": 179679.0, "c_tenants": 2175, "c_owners": 1900, "c_renters": 275, "c_movers": 7185, "c_stay": 6932, "c_movelocal": 152, "c_movecounty": 79, "c_movestate": 0, "c_moveabroad": 22, "c_commute": 2897, "c_car": 2270, "c_carpool": 220, "c_transit": 238, "c_bike": 0, "c_walk": 34, "year": 2018, "FIPS_11_digit": "06001442200", "p_white": 0.17912729294052249, "p_black": 0.0190383546414674, "p_asian": 0.71317398554752642, "p_latinx": 0.058226792662590302, "p_owners": 0.87356321839080464, "p_renters": 0.12643678160919539, "p_stay": 0.96478775226165636, "p_movelocal": 0.021155184411969299, "p_movecounty": 0.0109951287404314, "p_movestate": 0.0, "p_moveabroad": 0.0030619345859429002, "p_car": 0.78356920952709697, "p_carpool": 0.075940628236106297, "p_transit": 0.082153952364515004, "p_bike": 0.0, "p_walk": 0.011736278909216399 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.954694, 37.533007 ], [ -121.953715, 37.533154 ], [ -121.953342, 37.533211 ], [ -121.953469, 37.535342 ], [ -121.94815, 37.541356 ], [ -121.94464, 37.545099 ], [ -121.939854, 37.54988 ], [ -121.924387, 37.540631 ], [ -121.926438, 37.53897 ], [ -121.933437, 37.535248 ], [ -121.936813, 37.533467 ], [ -121.941488, 37.53099 ], [ -121.944741, 37.528651 ], [ -121.945932, 37.526241 ], [ -121.945615, 37.524122 ], [ -121.939515, 37.514759 ], [ -121.943116, 37.513715 ], [ -121.945316, 37.512779 ], [ -121.951627, 37.524905 ], [ -121.953968, 37.529575 ], [ -121.954694, 37.533007 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450752", "AFFGEOID": "1400000US06001450752", "GEOID": "06001450752", "NAME_x": "4507.52", "LSAD": "CT", "ALAND": 17561371, "AWATER": 0, "NAME_y": "Census Tract 4507.52, Alameda County, California", "c_race": 6642, "c_white": 1325, "c_black": 336, "c_asian": 4105, "c_latinx": 653, "state_fips": 6, "county_fips": 1, "tract_fips": 450752, "med_rent": 3231.0, "med_hhinc": 207734.0, "c_tenants": 1880, "c_owners": 1634, "c_renters": 246, "c_movers": 6585, "c_stay": 6068, "c_movelocal": 246, "c_movecounty": 139, "c_movestate": 65, "c_moveabroad": 67, "c_commute": 3311, "c_car": 2159, "c_carpool": 332, "c_transit": 458, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001450752", "p_white": 0.19948810599217101, "p_black": 0.050587172538391997, "p_asian": 0.61803673592291475, "p_latinx": 0.098313760915386905, "p_owners": 0.86914893617021272, "p_renters": 0.1308510638297872, "p_stay": 0.92148823082763842, "p_movelocal": 0.037357630979498797, "p_movecounty": 0.021108580106302201, "p_movestate": 0.0098709187547456004, "p_moveabroad": 0.0101746393318147, "p_car": 0.65206886137118691, "p_carpool": 0.1002718212020537, "p_transit": 0.13832678948958019, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.881567, 37.737328 ], [ -121.873542, 37.739317 ], [ -121.870733, 37.740086 ], [ -121.850727, 37.744942 ], [ -121.831835, 37.749541 ], [ -121.812589, 37.754225 ], [ -121.811912, 37.751669 ], [ -121.813666, 37.74678 ], [ -121.81382, 37.74532 ], [ -121.809562, 37.741787 ], [ -121.809275, 37.738216 ], [ -121.808311, 37.735047 ], [ -121.808565, 37.731673 ], [ -121.809299, 37.728647 ], [ -121.808424, 37.725018 ], [ -121.808935, 37.723042 ], [ -121.808647, 37.718978 ], [ -121.80775, 37.716591 ], [ -121.804812, 37.710582 ], [ -121.805111, 37.709573 ], [ -121.804986, 37.707619 ], [ -121.805986, 37.704804 ], [ -121.806074, 37.702743 ], [ -121.808309, 37.701003 ], [ -121.823291, 37.701145 ], [ -121.82333, 37.708802 ], [ -121.823764, 37.713543 ], [ -121.824403, 37.71591 ], [ -121.824608, 37.719249 ], [ -121.825599, 37.722027 ], [ -121.827601, 37.725119 ], [ -121.830543, 37.727829 ], [ -121.834791, 37.729817 ], [ -121.836607, 37.731297 ], [ -121.837585, 37.733621 ], [ -121.842715, 37.733317 ], [ -121.844062, 37.732272 ], [ -121.846922, 37.733357 ], [ -121.848143, 37.732769 ], [ -121.850608, 37.734061 ], [ -121.851875, 37.734272 ], [ -121.855681, 37.732067 ], [ -121.857323, 37.730453 ], [ -121.863221, 37.730562 ], [ -121.860398, 37.729414 ], [ -121.858718, 37.727878 ], [ -121.858259, 37.726111 ], [ -121.856739, 37.725791 ], [ -121.855663, 37.72452 ], [ -121.853985, 37.725301 ], [ -121.852521, 37.725001 ], [ -121.851728, 37.721278 ], [ -121.854058, 37.720292 ], [ -121.852371, 37.718377 ], [ -121.851354, 37.716997 ], [ -121.852141, 37.714029 ], [ -121.857153, 37.716534 ], [ -121.859124, 37.71856 ], [ -121.862684, 37.717825 ], [ -121.865536, 37.718249 ], [ -121.867567, 37.716946 ], [ -121.872011, 37.716725 ], [ -121.872033, 37.724224 ], [ -121.873529, 37.729373 ], [ -121.872934, 37.729426 ], [ -121.874364, 37.731425 ], [ -121.881767, 37.736428 ], [ -121.881567, 37.737328 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451602", "AFFGEOID": "1400000US06001451602", "GEOID": "06001451602", "NAME_x": "4516.02", "LSAD": "CT", "ALAND": 3013437, "AWATER": 0, "NAME_y": "Census Tract 4516.02, Alameda County, California", "c_race": 6786, "c_white": 4733, "c_black": 112, "c_asian": 358, "c_latinx": 1316, "state_fips": 6, "county_fips": 1, "tract_fips": 451602, "med_rent": 1834.0, "med_hhinc": 93397.0, "c_tenants": 2772, "c_owners": 1584, "c_renters": 1188, "c_movers": 6709, "c_stay": 5916, "c_movelocal": 406, "c_movecounty": 203, "c_movestate": 64, "c_moveabroad": 120, "c_commute": 3379, "c_car": 2680, "c_carpool": 328, "c_transit": 87, "c_bike": 28, "c_walk": 58, "year": 2018, "FIPS_11_digit": "06001451602", "p_white": 0.69746536987916297, "p_black": 0.0165045682287061, "p_asian": 0.052755673445328603, "p_latinx": 0.1939286766872973, "p_owners": 0.5714285714285714, "p_renters": 0.42857142857142849, "p_stay": 0.88180056640333881, "p_movelocal": 0.060515725145327097, "p_movecounty": 0.0302578625726635, "p_movestate": 0.0095394246534504998, "p_moveabroad": 0.017886421225219801, "p_car": 0.79313406333234682, "p_carpool": 0.097070139094406593, "p_transit": 0.025747262503699301, "p_bike": 0.0082864752885468997, "p_walk": 0.017164841669132801 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.787481, 37.678106 ], [ -121.788118, 37.678954 ], [ -121.777436, 37.682187 ], [ -121.772433, 37.683644 ], [ -121.770212, 37.678725 ], [ -121.768739, 37.675598 ], [ -121.76872, 37.674435 ], [ -121.768637, 37.67257 ], [ -121.768256, 37.671953 ], [ -121.768084, 37.667795 ], [ -121.768082, 37.665713 ], [ -121.768084, 37.665636 ], [ -121.768049, 37.659146 ], [ -121.779097, 37.658982 ], [ -121.780358, 37.660768 ], [ -121.78035, 37.666568 ], [ -121.780391, 37.667105 ], [ -121.780448, 37.672916 ], [ -121.780181, 37.674042 ], [ -121.785234, 37.674912 ], [ -121.789153, 37.677892 ], [ -121.787481, 37.678106 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402900", "AFFGEOID": "1400000US06001402900", "GEOID": "06001402900", "NAME_x": "4029", "LSAD": "CT", "ALAND": 389348, "AWATER": 0, "NAME_y": "Census Tract 4029, Alameda County, California", "c_race": 1427, "c_white": 310, "c_black": 231, "c_asian": 542, "c_latinx": 227, "state_fips": 6, "county_fips": 1, "tract_fips": 402900, "med_rent": 957.0, "med_hhinc": 31932.0, "c_tenants": 899, "c_owners": 7, "c_renters": 892, "c_movers": 1422, "c_stay": 1097, "c_movelocal": 149, "c_movecounty": 101, "c_movestate": 58, "c_moveabroad": 17, "c_commute": 737, "c_car": 217, "c_carpool": 19, "c_transit": 374, "c_bike": 19, "c_walk": 82, "year": 2018, "FIPS_11_digit": "06001402900", "p_white": 0.21723896285914501, "p_black": 0.1618780658724597, "p_asian": 0.37981779957953749, "p_latinx": 0.15907498248072879, "p_owners": 0.0077864293659621001, "p_renters": 0.99221357063403781, "p_stay": 0.77144866385372712, "p_movelocal": 0.1047819971870604, "p_movecounty": 0.0710267229254571, "p_movestate": 0.040787623066103999, "p_moveabroad": 0.011954992967651099, "p_car": 0.29443690637720488, "p_carpool": 0.025780189959294399, "p_transit": 0.5074626865671642, "p_bike": 0.025780189959294399, "p_walk": 0.1112618724559023 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.271274, 37.804361 ], [ -122.266771, 37.811553 ], [ -122.265421, 37.811468 ], [ -122.262463, 37.810945 ], [ -122.266018, 37.806958 ], [ -122.264778, 37.805119 ], [ -122.266458, 37.802497 ], [ -122.268798, 37.803427 ], [ -122.271274, 37.804361 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404200", "AFFGEOID": "1400000US06001404200", "GEOID": "06001404200", "NAME_x": "4042", "LSAD": "CT", "ALAND": 2724004, "AWATER": 0, "NAME_y": "Census Tract 4042, Alameda County, California", "c_race": 3849, "c_white": 2422, "c_black": 244, "c_asian": 673, "c_latinx": 188, "state_fips": 6, "county_fips": 1, "tract_fips": 404200, "med_rent": 2674.0, "med_hhinc": 173864.0, "c_tenants": 1328, "c_owners": 1050, "c_renters": 278, "c_movers": 3796, "c_stay": 3240, "c_movelocal": 108, "c_movecounty": 234, "c_movestate": 44, "c_moveabroad": 170, "c_commute": 1688, "c_car": 942, "c_carpool": 103, "c_transit": 370, "c_bike": 39, "c_walk": 63, "year": 2018, "FIPS_11_digit": "06001404200", "p_white": 0.62925435177968303, "p_black": 0.063393089114055598, "p_asian": 0.17485061054819431, "p_latinx": 0.048843855546895298, "p_owners": 0.79066265060240959, "p_renters": 0.2093373493975903, "p_stay": 0.85353003161222341, "p_movelocal": 0.028451001053740699, "p_movecounty": 0.061643835616438297, "p_movestate": 0.011591148577449899, "p_moveabroad": 0.044783983140147497, "p_car": 0.55805687203791465, "p_carpool": 0.0610189573459715, "p_transit": 0.21919431279620849, "p_bike": 0.023104265402843601, "p_walk": 0.037322274881516501 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.25081, 37.837135 ], [ -122.239456, 37.840897 ], [ -122.237969, 37.840912 ], [ -122.236608, 37.841097 ], [ -122.235354, 37.842231 ], [ -122.231442, 37.842733 ], [ -122.227242, 37.842927 ], [ -122.224827, 37.841683 ], [ -122.219672, 37.836392 ], [ -122.2171, 37.832758 ], [ -122.218516, 37.832939 ], [ -122.221884, 37.832504 ], [ -122.224456, 37.830256 ], [ -122.227516, 37.832698 ], [ -122.227353, 37.832391 ], [ -122.229148, 37.833144 ], [ -122.237048, 37.830823 ], [ -122.241087, 37.830439 ], [ -122.243288, 37.830063 ], [ -122.246964, 37.833075 ], [ -122.248742, 37.831714 ], [ -122.250523, 37.833668 ], [ -122.25241, 37.834543 ], [ -122.25081, 37.837135 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "405000", "AFFGEOID": "1400000US06001405000", "GEOID": "06001405000", "NAME_x": "4050", "LSAD": "CT", "ALAND": 800370, "AWATER": 0, "NAME_y": "Census Tract 4050, Alameda County, California", "c_race": 3269, "c_white": 2036, "c_black": 351, "c_asian": 368, "c_latinx": 291, "state_fips": 6, "county_fips": 1, "tract_fips": 405000, "med_rent": 1493.0, "med_hhinc": 150913.0, "c_tenants": 1457, "c_owners": 1045, "c_renters": 412, "c_movers": 3183, "c_stay": 2824, "c_movelocal": 197, "c_movecounty": 114, "c_movestate": 22, "c_moveabroad": 26, "c_commute": 1959, "c_car": 896, "c_carpool": 227, "c_transit": 421, "c_bike": 50, "c_walk": 37, "year": 2018, "FIPS_11_digit": "06001405000", "p_white": 0.62282043438360357, "p_black": 0.1073722851024778, "p_asian": 0.1125726521872132, "p_latinx": 0.089018048332823493, "p_owners": 0.71722717913520928, "p_renters": 0.28277282086479061, "p_stay": 0.88721332076657244, "p_movelocal": 0.0618912975180647, "p_movecounty": 0.035815268614514603, "p_movestate": 0.0069117185045553999, "p_moveabroad": 0.0081683945962928006, "p_car": 0.45737621235324138, "p_carpool": 0.1158754466564573, "p_transit": 0.21490556406329761, "p_bike": 0.025523226135783499, "p_walk": 0.0188871873404798 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.243289, 37.811055 ], [ -122.2372, 37.807052 ], [ -122.234992, 37.8072 ], [ -122.233008, 37.806888 ], [ -122.23106, 37.807199 ], [ -122.227693, 37.808099 ], [ -122.222502, 37.81103 ], [ -122.221698, 37.81267 ], [ -122.220433, 37.813439 ], [ -122.215174, 37.812276 ], [ -122.215582, 37.811513 ], [ -122.217092, 37.810192 ], [ -122.218192, 37.809146 ], [ -122.22174, 37.807758 ], [ -122.224827, 37.806307 ], [ -122.228892, 37.804571 ], [ -122.230803, 37.802906 ], [ -122.23117, 37.802605 ], [ -122.233397, 37.804375 ], [ -122.235416, 37.805624 ], [ -122.241982, 37.808552 ], [ -122.246504, 37.809841 ], [ -122.243289, 37.811055 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "406601", "AFFGEOID": "1400000US06001406601", "GEOID": "06001406601", "NAME_x": "4066.01", "LSAD": "CT", "ALAND": 747404, "AWATER": 0, "NAME_y": "Census Tract 4066.01, Alameda County, California", "c_race": 5042, "c_white": 726, "c_black": 1077, "c_asian": 1172, "c_latinx": 1696, "state_fips": 6, "county_fips": 1, "tract_fips": 406601, "med_rent": 1410.0, "med_hhinc": 54073.0, "c_tenants": 1694, "c_owners": 599, "c_renters": 1095, "c_movers": 5005, "c_stay": 4551, "c_movelocal": 363, "c_movecounty": 91, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 2253, "c_car": 1434, "c_carpool": 189, "c_transit": 422, "c_bike": 0, "c_walk": 10, "year": 2018, "FIPS_11_digit": "06001406601", "p_white": 0.1439904799682665, "p_black": 0.21360571201903999, "p_asian": 0.23244744149147159, "p_latinx": 0.33637445458151521, "p_owners": 0.35360094451003538, "p_renters": 0.64639905548996457, "p_stay": 0.90929070929070921, "p_movelocal": 0.072527472527472506, "p_movecounty": 0.018181818181818101, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.63648468708388817, "p_carpool": 0.083888149134487305, "p_transit": 0.1873058144695961, "p_bike": 0.0, "p_walk": 0.0044385264092321004 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.21253, 37.794736 ], [ -122.208794, 37.798478 ], [ -122.208027, 37.7986 ], [ -122.203371, 37.796096 ], [ -122.200653, 37.793713 ], [ -122.203203, 37.792197 ], [ -122.204783, 37.791252 ], [ -122.2068, 37.790069 ], [ -122.209819, 37.788303 ], [ -122.211104, 37.789688 ], [ -122.211685, 37.790305 ], [ -122.214825, 37.791757 ], [ -122.21253, 37.794736 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407200", "AFFGEOID": "1400000US06001407200", "GEOID": "06001407200", "NAME_x": "4072", "LSAD": "CT", "ALAND": 715069, "AWATER": 0, "NAME_y": "Census Tract 4072, Alameda County, California", "c_race": 6894, "c_white": 688, "c_black": 570, "c_asian": 866, "c_latinx": 4576, "state_fips": 6, "county_fips": 1, "tract_fips": 407200, "med_rent": 1114.0, "med_hhinc": 41761.0, "c_tenants": 1895, "c_owners": 418, "c_renters": 1477, "c_movers": 6797, "c_stay": 5757, "c_movelocal": 730, "c_movecounty": 151, "c_movestate": 59, "c_moveabroad": 100, "c_commute": 3293, "c_car": 1380, "c_carpool": 469, "c_transit": 1041, "c_bike": 54, "c_walk": 157, "year": 2018, "FIPS_11_digit": "06001407200", "p_white": 0.099796924862199002, "p_black": 0.082680591818972998, "p_asian": 0.1256164780968958, "p_latinx": 0.66376559326950968, "p_owners": 0.2205804749340369, "p_renters": 0.77941952506596301, "p_stay": 0.84699131969986763, "p_movelocal": 0.10740032367220829, "p_movecounty": 0.022215683389730699, "p_movestate": 0.0086803001324113008, "p_moveabroad": 0.0147123731057819, "p_car": 0.41907075614940781, "p_carpool": 0.1424233221986031, "p_transit": 0.3161251138779228, "p_bike": 0.016398420892802901, "p_walk": 0.0476768903735195 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.224719, 37.779772 ], [ -122.2239, 37.781409 ], [ -122.222729, 37.783749 ], [ -122.219322, 37.782476 ], [ -122.2191, 37.7822 ], [ -122.218657, 37.780838 ], [ -122.218004, 37.780207 ], [ -122.216665, 37.779038 ], [ -122.215354, 37.777833 ], [ -122.214748, 37.777317 ], [ -122.213859, 37.776521 ], [ -122.211734, 37.774681 ], [ -122.214794, 37.772376 ], [ -122.218938, 37.774348 ], [ -122.220855, 37.77526 ], [ -122.225803, 37.777643 ], [ -122.224719, 37.779772 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "409200", "AFFGEOID": "1400000US06001409200", "GEOID": "06001409200", "NAME_x": "4092", "LSAD": "CT", "ALAND": 716800, "AWATER": 0, "NAME_y": "Census Tract 4092, Alameda County, California", "c_race": 3577, "c_white": 149, "c_black": 1127, "c_asian": 229, "c_latinx": 1961, "state_fips": 6, "county_fips": 1, "tract_fips": 409200, "med_rent": 1555.0, "med_hhinc": 52734.0, "c_tenants": 949, "c_owners": 461, "c_renters": 488, "c_movers": 3553, "c_stay": 3339, "c_movelocal": 69, "c_movecounty": 145, "c_movestate": 0, "c_moveabroad": 0, "c_commute": 1412, "c_car": 1031, "c_carpool": 191, "c_transit": 120, "c_bike": 0, "c_walk": 4, "year": 2018, "FIPS_11_digit": "06001409200", "p_white": 0.041655018171652201, "p_black": 0.31506849315068491, "p_asian": 0.064020128599384898, "p_latinx": 0.54822476935979869, "p_owners": 0.48577449947312962, "p_renters": 0.51422550052687044, "p_stay": 0.93976920911905437, "p_movelocal": 0.019420208274697402, "p_movecounty": 0.040810582606248202, "p_movestate": 0.0, "p_moveabroad": 0.0, "p_car": 0.73016997167138808, "p_carpool": 0.13526912181303111, "p_transit": 0.084985835694050896, "p_bike": 0.0, "p_walk": 0.0028328611898016999 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.184167, 37.726529 ], [ -122.179316, 37.73413 ], [ -122.179782, 37.736267 ], [ -122.177295, 37.73403 ], [ -122.17404, 37.73119 ], [ -122.17043, 37.727836 ], [ -122.170401, 37.727756 ], [ -122.171436, 37.727883 ], [ -122.172764, 37.726807 ], [ -122.174203, 37.726604 ], [ -122.175386, 37.725329 ], [ -122.180256, 37.725615 ], [ -122.18157, 37.725319 ], [ -122.183159, 37.725395 ], [ -122.184167, 37.726529 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437101", "AFFGEOID": "1400000US06001437101", "GEOID": "06001437101", "NAME_x": "4371.01", "LSAD": "CT", "ALAND": 49043236, "AWATER": 7227924, "NAME_y": "Census Tract 4371.01, Alameda County, California", "c_race": 7343, "c_white": 991, "c_black": 468, "c_asian": 3294, "c_latinx": 1669, "state_fips": 6, "county_fips": 1, "tract_fips": 437101, "med_rent": 2101.0, "med_hhinc": 111278.0, "c_tenants": 1939, "c_owners": 1622, "c_renters": 317, "c_movers": 7295, "c_stay": 6625, "c_movelocal": 463, "c_movecounty": 195, "c_movestate": 12, "c_moveabroad": 0, "c_commute": 3722, "c_car": 2717, "c_carpool": 433, "c_transit": 203, "c_bike": 25, "c_walk": 9, "year": 2018, "FIPS_11_digit": "06001437101", "p_white": 0.1349584638431158, "p_black": 0.063734168595941706, "p_asian": 0.4485904943483589, "p_latinx": 0.22729129783467239, "p_owners": 0.83651366683857653, "p_renters": 0.16348633316142341, "p_stay": 0.90815627141877997, "p_movelocal": 0.063468128855380404, "p_movecounty": 0.026730637422892299, "p_movestate": 0.0016449623029471999, "p_moveabroad": 0.0, "p_car": 0.72998387963460509, "p_carpool": 0.11633530360021491, "p_transit": 0.054540569586243898, "p_bike": 0.0067168189145620002, "p_walk": 0.0024180548092423001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.162676, 37.667297 ], [ -122.160859, 37.664481 ], [ -122.146976, 37.664431 ], [ -122.144476, 37.661531 ], [ -122.141891, 37.661356 ], [ -122.143759, 37.663352 ], [ -122.140802, 37.663134 ], [ -122.134816, 37.663278 ], [ -122.13096, 37.66513 ], [ -122.128175, 37.665131 ], [ -122.128029, 37.667889 ], [ -122.120641, 37.669602 ], [ -122.120098, 37.668712 ], [ -122.118141, 37.665596 ], [ -122.116484, 37.662806 ], [ -122.113675, 37.65826 ], [ -122.110413, 37.653156 ], [ -122.120239, 37.653223 ], [ -122.119919, 37.645611 ], [ -122.119868, 37.644227 ], [ -122.119759, 37.642007 ], [ -122.119073, 37.64047 ], [ -122.113391, 37.635202 ], [ -122.110392, 37.632901 ], [ -122.110054, 37.632353 ], [ -122.109322, 37.631228 ], [ -122.106412, 37.631456 ], [ -122.104309, 37.632253 ], [ -122.102285, 37.628754 ], [ -122.101752, 37.624854 ], [ -122.099827, 37.624076 ], [ -122.09348, 37.62425 ], [ -122.092858, 37.62448 ], [ -122.090451, 37.620556 ], [ -122.088444, 37.617285 ], [ -122.083905, 37.609872 ], [ -122.085956, 37.609107 ], [ -122.087429, 37.608193 ], [ -122.08829, 37.607486 ], [ -122.089057, 37.606513 ], [ -122.091741, 37.601123 ], [ -122.091557, 37.594814 ], [ -122.09239, 37.593747 ], [ -122.091951, 37.592747 ], [ -122.091485, 37.590001 ], [ -122.090926, 37.589037 ], [ -122.091011, 37.584893 ], [ -122.096532, 37.582925 ], [ -122.095674, 37.579841 ], [ -122.089731, 37.578719 ], [ -122.087007, 37.578753 ], [ -122.085922, 37.574228 ], [ -122.083137, 37.57529 ], [ -122.082784, 37.574574 ], [ -122.085725, 37.573205 ], [ -122.083894, 37.569793 ], [ -122.084326, 37.568039 ], [ -122.086062, 37.566568 ], [ -122.08916, 37.564285 ], [ -122.089615, 37.562107 ], [ -122.090542, 37.56116 ], [ -122.093694, 37.561883 ], [ -122.095498, 37.564332 ], [ -122.097838, 37.564575 ], [ -122.099355, 37.562148 ], [ -122.102842, 37.563468 ], [ -122.107544, 37.561019 ], [ -122.108464, 37.562094 ], [ -122.107553, 37.565835 ], [ -122.109515, 37.567902 ], [ -122.117721, 37.571102 ], [ -122.122586, 37.571097 ], [ -122.124954, 37.570055 ], [ -122.130211, 37.563942 ], [ -122.132333636126006, 37.562189139871002 ], [ -122.133924, 37.562885 ], [ -122.136184, 37.568187 ], [ -122.144396, 37.581866 ], [ -122.147014, 37.588411 ], [ -122.14688, 37.599454 ], [ -122.146704905987008, 37.602126540738297 ], [ -122.14636, 37.607391 ], [ -122.151396, 37.620542 ], [ -122.152905, 37.640771 ], [ -122.153918289744013, 37.6434842271332 ], [ -122.162802519462005, 37.667273013369702 ], [ -122.162676, 37.667297 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442900", "AFFGEOID": "1400000US06001442900", "GEOID": "06001442900", "NAME_x": "4429", "LSAD": "CT", "ALAND": 2066533, "AWATER": 0, "NAME_y": "Census Tract 4429, Alameda County, California", "c_race": 7814, "c_white": 2280, "c_black": 220, "c_asian": 3447, "c_latinx": 1434, "state_fips": 6, "county_fips": 1, "tract_fips": 442900, "med_rent": 2240.0, "med_hhinc": 115060.0, "c_tenants": 2277, "c_owners": 1630, "c_renters": 647, "c_movers": 7801, "c_stay": 7130, "c_movelocal": 152, "c_movecounty": 253, "c_movestate": 99, "c_moveabroad": 167, "c_commute": 2814, "c_car": 2081, "c_carpool": 330, "c_transit": 188, "c_bike": 19, "c_walk": 28, "year": 2018, "FIPS_11_digit": "06001442900", "p_white": 0.29178397747632451, "p_black": 0.028154594317890899, "p_asian": 0.44113130278986429, "p_latinx": 0.183516764781162, "p_owners": 0.71585419411506368, "p_renters": 0.28414580588493632, "p_stay": 0.91398538648891159, "p_movelocal": 0.019484681451096001, "p_movecounty": 0.032431739520574203, "p_movestate": 0.012690680681963801, "p_moveabroad": 0.021407511857454101, "p_car": 0.73951670220326937, "p_carpool": 0.1172707889125799, "p_transit": 0.066808813077469706, "p_bike": 0.0067519545131485004, "p_walk": 0.0099502487562189001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.987048, 37.523532 ], [ -121.98498, 37.526076 ], [ -121.983044, 37.528437 ], [ -121.97905, 37.52639 ], [ -121.97119, 37.522437 ], [ -121.969001, 37.522484 ], [ -121.96828, 37.51978 ], [ -121.967607, 37.517235 ], [ -121.967085, 37.516216 ], [ -121.965139, 37.512916 ], [ -121.962883, 37.509343 ], [ -121.967456, 37.507453 ], [ -121.982543, 37.519422 ], [ -121.983809, 37.520338 ], [ -121.987767, 37.522432 ], [ -121.987048, 37.523532 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "450604", "AFFGEOID": "1400000US06001450604", "GEOID": "06001450604", "NAME_x": "4506.04", "LSAD": "CT", "ALAND": 2112939, "AWATER": 0, "NAME_y": "Census Tract 4506.04, Alameda County, California", "c_race": 5577, "c_white": 3338, "c_black": 27, "c_asian": 1412, "c_latinx": 557, "state_fips": 6, "county_fips": 1, "tract_fips": 450604, "med_rent": 2375.0, "med_hhinc": 161964.0, "c_tenants": 1887, "c_owners": 1440, "c_renters": 447, "c_movers": 5555, "c_stay": 4932, "c_movelocal": 354, "c_movecounty": 137, "c_movestate": 77, "c_moveabroad": 55, "c_commute": 2617, "c_car": 1928, "c_carpool": 96, "c_transit": 232, "c_bike": 25, "c_walk": 74, "year": 2018, "FIPS_11_digit": "06001450604", "p_white": 0.59852967545275237, "p_black": 0.0048413125336201996, "p_asian": 0.25318271472117621, "p_latinx": 0.099874484489869103, "p_owners": 0.76311605723370435, "p_renters": 0.23688394276629571, "p_stay": 0.88784878487848784, "p_movelocal": 0.063726372637263703, "p_movecounty": 0.0246624662466246, "p_movestate": 0.013861386138613801, "p_moveabroad": 0.0099009900990098994, "p_car": 0.73672143675964841, "p_carpool": 0.036683225066870398, "p_transit": 0.0886511272449369, "p_bike": 0.0095529231944974993, "p_walk": 0.028276652655712602 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.903403, 37.680281 ], [ -121.890448, 37.684739 ], [ -121.886835, 37.686248 ], [ -121.886279, 37.686485 ], [ -121.878146, 37.688893 ], [ -121.877843, 37.687959 ], [ -121.877311, 37.686155 ], [ -121.874014, 37.676726 ], [ -121.880449, 37.676743 ], [ -121.885048, 37.676734 ], [ -121.888014, 37.676747 ], [ -121.893416, 37.676759 ], [ -121.895708, 37.676733 ], [ -121.897046, 37.676009 ], [ -121.898383, 37.676847 ], [ -121.899969, 37.677855 ], [ -121.902178, 37.679256 ], [ -121.903403, 37.680281 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "404102", "AFFGEOID": "1400000US06001404102", "GEOID": "06001404102", "NAME_x": "4041.02", "LSAD": "CT", "ALAND": 230172, "AWATER": 0, "NAME_y": "Census Tract 4041.02, Alameda County, California", "c_race": 2605, "c_white": 1799, "c_black": 105, "c_asian": 323, "c_latinx": 260, "state_fips": 6, "county_fips": 1, "tract_fips": 404102, "med_rent": 1482.0, "med_hhinc": 80077.0, "c_tenants": 1591, "c_owners": 260, "c_renters": 1331, "c_movers": 2552, "c_stay": 2036, "c_movelocal": 321, "c_movecounty": 72, "c_movestate": 114, "c_moveabroad": 9, "c_commute": 1412, "c_car": 695, "c_carpool": 75, "c_transit": 342, "c_bike": 71, "c_walk": 70, "year": 2018, "FIPS_11_digit": "06001404102", "p_white": 0.69059500959692899, "p_black": 0.040307101727447198, "p_asian": 0.1239923224568138, "p_latinx": 0.099808061420345401, "p_owners": 0.16341923318667501, "p_renters": 0.83658076681332494, "p_stay": 0.79780564263322884, "p_movelocal": 0.1257836990595611, "p_movecounty": 0.028213166144200601, "p_movestate": 0.044670846394984302, "p_moveabroad": 0.0035266457680250001, "p_car": 0.49220963172804533, "p_carpool": 0.053116147308781801, "p_transit": 0.2422096317280453, "p_bike": 0.0502832861189801, "p_walk": 0.049575070821529697 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.256203, 37.828483 ], [ -122.252453, 37.826373 ], [ -122.251202, 37.8273 ], [ -122.249353, 37.828701 ], [ -122.247605, 37.826763 ], [ -122.24768, 37.826241 ], [ -122.248118, 37.824815 ], [ -122.249295, 37.823722 ], [ -122.250981, 37.823407 ], [ -122.253357, 37.825164 ], [ -122.253441, 37.825715 ], [ -122.256742, 37.827628 ], [ -122.256203, 37.828483 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "407300", "AFFGEOID": "1400000US06001407300", "GEOID": "06001407300", "NAME_x": "4073", "LSAD": "CT", "ALAND": 2370939, "AWATER": 209263, "NAME_y": "Census Tract 4073, Alameda County, California", "c_race": 2440, "c_white": 385, "c_black": 193, "c_asian": 340, "c_latinx": 1425, "state_fips": 6, "county_fips": 1, "tract_fips": 407300, "med_rent": 1664.0, "med_hhinc": 47935.0, "c_tenants": 774, "c_owners": 176, "c_renters": 598, "c_movers": 2436, "c_stay": 1972, "c_movelocal": 344, "c_movecounty": 87, "c_movestate": 0, "c_moveabroad": 33, "c_commute": 1222, "c_car": 558, "c_carpool": 255, "c_transit": 225, "c_bike": 12, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001407300", "p_white": 0.15778688524590159, "p_black": 0.079098360655737707, "p_asian": 0.1393442622950819, "p_latinx": 0.58401639344262291, "p_owners": 0.22739018087855289, "p_renters": 0.77260981912144699, "p_stay": 0.80952380952380953, "p_movelocal": 0.14121510673234811, "p_movecounty": 0.035714285714285698, "p_movestate": 0.0, "p_moveabroad": 0.013546798029556601, "p_car": 0.4566284779050736, "p_carpool": 0.20867430441898521, "p_transit": 0.1841243862520458, "p_bike": 0.0098199672667756994, "p_walk": 0.0270049099836333 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.224904, 37.764563 ], [ -122.223756, 37.765579 ], [ -122.21714, 37.770585 ], [ -122.214794, 37.772376 ], [ -122.210778, 37.770479 ], [ -122.207008, 37.768703 ], [ -122.20368, 37.767126 ], [ -122.199502, 37.765149 ], [ -122.205584, 37.760863 ], [ -122.200822, 37.756782 ], [ -122.202509, 37.756077 ], [ -122.201102, 37.754884 ], [ -122.205176, 37.754231 ], [ -122.207537, 37.753148 ], [ -122.214852, 37.761468 ], [ -122.218112, 37.759656 ], [ -122.223481, 37.754702 ], [ -122.224213, 37.762813 ], [ -122.224904, 37.764563 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "424001", "AFFGEOID": "1400000US06001424001", "GEOID": "06001424001", "NAME_x": "4240.01", "LSAD": "CT", "ALAND": 507529, "AWATER": 0, "NAME_y": "Census Tract 4240.01, Alameda County, California", "c_race": 4151, "c_white": 1989, "c_black": 908, "c_asian": 366, "c_latinx": 619, "state_fips": 6, "county_fips": 1, "tract_fips": 424001, "med_rent": 1521.0, "med_hhinc": 72739.0, "c_tenants": 1473, "c_owners": 405, "c_renters": 1068, "c_movers": 4117, "c_stay": 3367, "c_movelocal": 353, "c_movecounty": 196, "c_movestate": 172, "c_moveabroad": 29, "c_commute": 2499, "c_car": 912, "c_carpool": 212, "c_transit": 731, "c_bike": 207, "c_walk": 165, "year": 2018, "FIPS_11_digit": "06001424001", "p_white": 0.4791616477957118, "p_black": 0.21874247169356781, "p_asian": 0.088171524933750897, "p_latinx": 0.1491206938087207, "p_owners": 0.27494908350305491, "p_renters": 0.72505091649694497, "p_stay": 0.81782851590964289, "p_movelocal": 0.085742045178528001, "p_movecounty": 0.047607481175613302, "p_movestate": 0.041777993684721799, "p_moveabroad": 0.0070439640514938003, "p_car": 0.36494597839135651, "p_carpool": 0.084833933573429304, "p_transit": 0.29251700680272108, "p_bike": 0.0828331332533013, "p_walk": 0.066026410564225604 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.279121, 37.853287 ], [ -122.271161, 37.854268 ], [ -122.270961, 37.852484 ], [ -122.270814, 37.850667 ], [ -122.27117, 37.849701 ], [ -122.271852, 37.847251 ], [ -122.271236, 37.846465 ], [ -122.2758, 37.845867 ], [ -122.276188, 37.847734 ], [ -122.277766, 37.847525 ], [ -122.278079, 37.848826 ], [ -122.278505, 37.850624 ], [ -122.278623, 37.851103 ], [ -122.278702, 37.851489 ], [ -122.279121, 37.853287 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "431000", "AFFGEOID": "1400000US06001431000", "GEOID": "06001431000", "NAME_x": "4310", "LSAD": "CT", "ALAND": 954199, "AWATER": 0, "NAME_y": "Census Tract 4310, Alameda County, California", "c_race": 2912, "c_white": 940, "c_black": 164, "c_asian": 981, "c_latinx": 665, "state_fips": 6, "county_fips": 1, "tract_fips": 431000, "med_rent": 1612.0, "med_hhinc": 72308.0, "c_tenants": 1084, "c_owners": 439, "c_renters": 645, "c_movers": 2832, "c_stay": 2327, "c_movelocal": 327, "c_movecounty": 129, "c_movestate": 28, "c_moveabroad": 21, "c_commute": 1444, "c_car": 911, "c_carpool": 174, "c_transit": 235, "c_bike": 0, "c_walk": 46, "year": 2018, "FIPS_11_digit": "06001431000", "p_white": 0.32280219780219782, "p_black": 0.056318681318681299, "p_asian": 0.3368818681318681, "p_latinx": 0.22836538461538461, "p_owners": 0.40498154981549811, "p_renters": 0.59501845018450183, "p_stay": 0.82168079096045199, "p_movelocal": 0.1154661016949152, "p_movecounty": 0.045550847457627101, "p_movestate": 0.0098870056497174993, "p_moveabroad": 0.0074152542372881002, "p_car": 0.63088642659279781, "p_carpool": 0.1204986149584487, "p_transit": 0.16274238227146809, "p_bike": 0.0, "p_walk": 0.031855955678670299 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091819, 37.691834 ], [ -122.089691, 37.692899 ], [ -122.086335, 37.694423 ], [ -122.082996, 37.695366 ], [ -122.080958, 37.69563 ], [ -122.077186, 37.695659 ], [ -122.074671, 37.69566 ], [ -122.073974, 37.695616 ], [ -122.073132, 37.695476 ], [ -122.066555, 37.693216 ], [ -122.062442, 37.693508 ], [ -122.06251, 37.6929 ], [ -122.069372, 37.691192 ], [ -122.073811, 37.690948 ], [ -122.077092, 37.690916 ], [ -122.079569, 37.690892 ], [ -122.093315, 37.690762 ], [ -122.091819, 37.691834 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435102", "AFFGEOID": "1400000US06001435102", "GEOID": "06001435102", "NAME_x": "4351.02", "LSAD": "CT", "ALAND": 4225658, "AWATER": 0, "NAME_y": "Census Tract 4351.02, Alameda County, California", "c_race": 6245, "c_white": 1958, "c_black": 888, "c_asian": 1234, "c_latinx": 1730, "state_fips": 6, "county_fips": 1, "tract_fips": 435102, "med_rent": 2019.0, "med_hhinc": 112905.0, "c_tenants": 1618, "c_owners": 1143, "c_renters": 475, "c_movers": 6214, "c_stay": 4957, "c_movelocal": 438, "c_movecounty": 627, "c_movestate": 98, "c_moveabroad": 94, "c_commute": 2860, "c_car": 1639, "c_carpool": 195, "c_transit": 356, "c_bike": 26, "c_walk": 355, "year": 2018, "FIPS_11_digit": "06001435102", "p_white": 0.3135308246597277, "p_black": 0.14219375500400319, "p_asian": 0.19759807846277019, "p_latinx": 0.27702161729383501, "p_owners": 0.70642768850432636, "p_renters": 0.29357231149567359, "p_stay": 0.79771483746379146, "p_movelocal": 0.070485999356292198, "p_movecounty": 0.1009011908593498, "p_movestate": 0.015770840038622402, "p_moveabroad": 0.0151271322819439, "p_car": 0.57307692307692304, "p_carpool": 0.068181818181818094, "p_transit": 0.1244755244755244, "p_bike": 0.0090909090909090003, "p_walk": 0.1241258741258741 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.065103, 37.65165 ], [ -122.061135, 37.654309 ], [ -122.059529, 37.654122 ], [ -122.057005, 37.652741 ], [ -122.055206, 37.652632 ], [ -122.057031, 37.65554 ], [ -122.059694, 37.656996 ], [ -122.059903, 37.658564 ], [ -122.063073, 37.65916 ], [ -122.058749, 37.660017 ], [ -122.060494, 37.660287 ], [ -122.061411, 37.66062 ], [ -122.065639, 37.664047 ], [ -122.060868, 37.665709 ], [ -122.05743, 37.665059 ], [ -122.055612, 37.663999 ], [ -122.053837, 37.661906 ], [ -122.050913, 37.661718 ], [ -122.04839, 37.662652 ], [ -122.045212, 37.660971 ], [ -122.039159, 37.658404 ], [ -122.035979, 37.658562 ], [ -122.030611, 37.656325 ], [ -122.029447, 37.656389 ], [ -122.027474, 37.656088 ], [ -122.024051, 37.661241 ], [ -122.018337, 37.658771 ], [ -122.017143, 37.655555 ], [ -122.017398, 37.65423 ], [ -122.02127, 37.655102 ], [ -122.022747, 37.656361 ], [ -122.025246, 37.654378 ], [ -122.029921, 37.65411 ], [ -122.034094, 37.655325 ], [ -122.033075, 37.652196 ], [ -122.036193, 37.64847 ], [ -122.038254, 37.649588 ], [ -122.039123, 37.648521 ], [ -122.034942, 37.646124 ], [ -122.035972, 37.645532 ], [ -122.037193, 37.645718 ], [ -122.039832, 37.646829 ], [ -122.049562, 37.646505 ], [ -122.050933, 37.647465 ], [ -122.055455, 37.650687 ], [ -122.062241, 37.649918 ], [ -122.063118, 37.648698 ], [ -122.064598, 37.648266 ], [ -122.066939, 37.651218 ], [ -122.065103, 37.65165 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "438000", "AFFGEOID": "1400000US06001438000", "GEOID": "06001438000", "NAME_x": "4380", "LSAD": "CT", "ALAND": 2422521, "AWATER": 0, "NAME_y": "Census Tract 4380, Alameda County, California", "c_race": 4119, "c_white": 1152, "c_black": 162, "c_asian": 1131, "c_latinx": 1518, "state_fips": 6, "county_fips": 1, "tract_fips": 438000, "med_rent": 2034.0, "med_hhinc": 88684.0, "c_tenants": 1144, "c_owners": 710, "c_renters": 434, "c_movers": 4088, "c_stay": 3860, "c_movelocal": 53, "c_movecounty": 78, "c_movestate": 97, "c_moveabroad": 0, "c_commute": 1545, "c_car": 1093, "c_carpool": 268, "c_transit": 165, "c_bike": 0, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001438000", "p_white": 0.27967953386744349, "p_black": 0.039329934450109197, "p_asian": 0.27458120903131827, "p_latinx": 0.36853605243991261, "p_owners": 0.62062937062937062, "p_renters": 0.37937062937062938, "p_stay": 0.94422700587084163, "p_movelocal": 0.012964774951076299, "p_movecounty": 0.0190802348336594, "p_movestate": 0.023727984344422699, "p_moveabroad": 0.0, "p_car": 0.70744336569579291, "p_carpool": 0.173462783171521, "p_transit": 0.10679611650485429, "p_bike": 0.0, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.04277, 37.627904 ], [ -122.040405, 37.628959 ], [ -122.039879, 37.629171 ], [ -122.032314, 37.628442 ], [ -122.031588, 37.628606 ], [ -122.030028, 37.628855 ], [ -122.029623, 37.625082 ], [ -122.028028, 37.622776 ], [ -122.026618, 37.623005 ], [ -122.023606, 37.622919 ], [ -122.023793, 37.621754 ], [ -122.022523, 37.620842 ], [ -122.021874, 37.619292 ], [ -122.020624, 37.619 ], [ -122.017801, 37.616384 ], [ -122.01676, 37.61306 ], [ -122.017183, 37.610972 ], [ -122.016883, 37.609275 ], [ -122.017987, 37.607812 ], [ -122.020037, 37.606243 ], [ -122.02324, 37.609048 ], [ -122.028079, 37.613329 ], [ -122.029599, 37.614671 ], [ -122.03422, 37.618708 ], [ -122.034275, 37.618756 ], [ -122.036627, 37.620803 ], [ -122.038298, 37.622279 ], [ -122.044644, 37.627777 ], [ -122.04277, 37.627904 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444301", "AFFGEOID": "1400000US06001444301", "GEOID": "06001444301", "NAME_x": "4443.01", "LSAD": "CT", "ALAND": 2576466, "AWATER": 0, "NAME_y": "Census Tract 4443.01, Alameda County, California", "c_race": 3789, "c_white": 1355, "c_black": 231, "c_asian": 837, "c_latinx": 1119, "state_fips": 6, "county_fips": 1, "tract_fips": 444301, "med_rent": 2424.0, "med_hhinc": 117619.0, "c_tenants": 1140, "c_owners": 818, "c_renters": 322, "c_movers": 3777, "c_stay": 3396, "c_movelocal": 64, "c_movecounty": 305, "c_movestate": 0, "c_moveabroad": 12, "c_commute": 1414, "c_car": 1154, "c_carpool": 111, "c_transit": 51, "c_bike": 13, "c_walk": 17, "year": 2018, "FIPS_11_digit": "06001444301", "p_white": 0.35761414621272097, "p_black": 0.060965954077592997, "p_asian": 0.22090261282660331, "p_latinx": 0.29532858273950913, "p_owners": 0.71754385964912282, "p_renters": 0.28245614035087718, "p_stay": 0.89912629070691019, "p_movelocal": 0.016944665078104298, "p_movecounty": 0.080751919512840803, "p_movestate": 0.0, "p_moveabroad": 0.0031771247021445, "p_car": 0.8161244695898161, "p_carpool": 0.078500707213578505, "p_transit": 0.036067892503536002, "p_bike": 0.0091937765205091001, "p_walk": 0.012022630834512001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.067333, 37.540231 ], [ -122.064476, 37.542386 ], [ -122.05518, 37.549454 ], [ -122.054192, 37.544693 ], [ -122.053514, 37.541471 ], [ -122.052755, 37.540059 ], [ -122.044662, 37.533296 ], [ -122.047843, 37.530852 ], [ -122.053132, 37.528198 ], [ -122.057956, 37.527149 ], [ -122.062406, 37.528734 ], [ -122.065316, 37.535965 ], [ -122.066627, 37.538675 ], [ -122.067333, 37.540231 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "451403", "AFFGEOID": "1400000US06001451403", "GEOID": "06001451403", "NAME_x": "4514.03", "LSAD": "CT", "ALAND": 674529, "AWATER": 0, "NAME_y": "Census Tract 4514.03, Alameda County, California", "c_race": 2281, "c_white": 1338, "c_black": 47, "c_asian": 240, "c_latinx": 591, "state_fips": 6, "county_fips": 1, "tract_fips": 451403, "med_rent": 2298.0, "med_hhinc": 100066.0, "c_tenants": 805, "c_owners": 601, "c_renters": 204, "c_movers": 2210, "c_stay": 1905, "c_movelocal": 189, "c_movecounty": 67, "c_movestate": 16, "c_moveabroad": 33, "c_commute": 1186, "c_car": 966, "c_carpool": 85, "c_transit": 33, "c_bike": 19, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001451403", "p_white": 0.58658483121437965, "p_black": 0.020604997807978899, "p_asian": 0.1052170100832968, "p_latinx": 0.25909688733011838, "p_owners": 0.74658385093167701, "p_renters": 0.25341614906832299, "p_stay": 0.86199095022624439, "p_movelocal": 0.0855203619909502, "p_movecounty": 0.030316742081447901, "p_movestate": 0.0072398190045247996, "p_moveabroad": 0.0149321266968325, "p_car": 0.81450252951096125, "p_carpool": 0.071669477234401299, "p_transit": 0.027824620573355802, "p_bike": 0.016020236087689699, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.790813, 37.689012 ], [ -121.790473, 37.692199 ], [ -121.785379, 37.694207 ], [ -121.784084, 37.69552 ], [ -121.783389, 37.695066 ], [ -121.781355, 37.693888 ], [ -121.775941, 37.69131 ], [ -121.775667, 37.690491 ], [ -121.780541, 37.689032 ], [ -121.783379, 37.688289 ], [ -121.784161, 37.688337 ], [ -121.790821, 37.688359 ], [ -121.790813, 37.689012 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "435300", "AFFGEOID": "1400000US06001435300", "GEOID": "06001435300", "NAME_x": "4353", "LSAD": "CT", "ALAND": 1288754, "AWATER": 0, "NAME_y": "Census Tract 4353, Alameda County, California", "c_race": 4757, "c_white": 1267, "c_black": 1120, "c_asian": 688, "c_latinx": 1306, "state_fips": 6, "county_fips": 1, "tract_fips": 435300, "med_rent": 1540.0, "med_hhinc": 72444.0, "c_tenants": 1676, "c_owners": 636, "c_renters": 1040, "c_movers": 4740, "c_stay": 4197, "c_movelocal": 342, "c_movecounty": 163, "c_movestate": 10, "c_moveabroad": 28, "c_commute": 2577, "c_car": 1747, "c_carpool": 230, "c_transit": 214, "c_bike": 53, "c_walk": 113, "year": 2018, "FIPS_11_digit": "06001435300", "p_white": 0.26634433466470459, "p_black": 0.2354425057809543, "p_asian": 0.1446289678368719, "p_latinx": 0.27454277906243429, "p_owners": 0.37947494033412887, "p_renters": 0.62052505966587113, "p_stay": 0.88544303797468349, "p_movelocal": 0.072151898734177197, "p_movecounty": 0.034388185654008398, "p_movestate": 0.0021097046413502, "p_moveabroad": 0.0059071729957805002, "p_car": 0.67792006208769884, "p_carpool": 0.089251067132324405, "p_transit": 0.083042297244858301, "p_bike": 0.020566550252231201, "p_walk": 0.043849437330228898 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.076789, 37.679023 ], [ -122.073225, 37.681981 ], [ -122.072011, 37.680988 ], [ -122.07028, 37.681338 ], [ -122.07122, 37.683234 ], [ -122.070176, 37.684184 ], [ -122.068117, 37.684843 ], [ -122.066968, 37.683943 ], [ -122.065079, 37.685545 ], [ -122.063217, 37.685948 ], [ -122.063788, 37.683879 ], [ -122.063823, 37.683755 ], [ -122.062599, 37.683877 ], [ -122.0581, 37.684233 ], [ -122.054631, 37.684565 ], [ -122.054331, 37.683964 ], [ -122.05052, 37.678766 ], [ -122.057966, 37.679962 ], [ -122.058204, 37.679919 ], [ -122.064333, 37.678044 ], [ -122.065, 37.677927 ], [ -122.066059, 37.67775 ], [ -122.066804, 37.677619 ], [ -122.070581, 37.676333 ], [ -122.072224, 37.675764 ], [ -122.073895, 37.675209 ], [ -122.077308, 37.678623 ], [ -122.076789, 37.679023 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "437400", "AFFGEOID": "1400000US06001437400", "GEOID": "06001437400", "NAME_x": "4374", "LSAD": "CT", "ALAND": 861187, "AWATER": 0, "NAME_y": "Census Tract 4374, Alameda County, California", "c_race": 3428, "c_white": 503, "c_black": 118, "c_asian": 756, "c_latinx": 1957, "state_fips": 6, "county_fips": 1, "tract_fips": 437400, "med_rent": 1961.0, "med_hhinc": 82212.0, "c_tenants": 959, "c_owners": 761, "c_renters": 198, "c_movers": 3339, "c_stay": 3185, "c_movelocal": 94, "c_movecounty": 56, "c_movestate": 0, "c_moveabroad": 4, "c_commute": 1407, "c_car": 1122, "c_carpool": 111, "c_transit": 61, "c_bike": 18, "c_walk": 14, "year": 2018, "FIPS_11_digit": "06001437400", "p_white": 0.14673278879813301, "p_black": 0.034422403733955602, "p_asian": 0.220536756126021, "p_latinx": 0.57088681446907819, "p_owners": 0.79353493222106364, "p_renters": 0.20646506777893639, "p_stay": 0.95387840670859536, "p_movelocal": 0.0281521413596885, "p_movecounty": 0.016771488469601602, "p_movestate": 0.0, "p_moveabroad": 0.0011979634621143999, "p_car": 0.79744136460554371, "p_carpool": 0.078891257995735597, "p_transit": 0.043354655294953803, "p_bike": 0.012793176972281399, "p_walk": 0.0099502487562189001 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.091829, 37.648688 ], [ -122.092375, 37.647174 ], [ -122.089599, 37.647238 ], [ -122.084583, 37.648285 ], [ -122.083491, 37.648448 ], [ -122.083513, 37.639593 ], [ -122.083642, 37.636955 ], [ -122.084323, 37.63694 ], [ -122.086765, 37.63688 ], [ -122.087898, 37.636326 ], [ -122.090665, 37.640183 ], [ -122.09389, 37.644795 ], [ -122.091829, 37.648688 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "440301", "AFFGEOID": "1400000US06001440301", "GEOID": "06001440301", "NAME_x": "4403.01", "LSAD": "CT", "ALAND": 4279528, "AWATER": 0, "NAME_y": "Census Tract 4403.01, Alameda County, California", "c_race": 7579, "c_white": 1359, "c_black": 227, "c_asian": 3171, "c_latinx": 2406, "state_fips": 6, "county_fips": 1, "tract_fips": 440301, "med_rent": 1722.0, "med_hhinc": 95313.0, "c_tenants": 2253, "c_owners": 1439, "c_renters": 814, "c_movers": 7487, "c_stay": 6737, "c_movelocal": 317, "c_movecounty": 183, "c_movestate": 147, "c_moveabroad": 103, "c_commute": 2448, "c_car": 1771, "c_carpool": 267, "c_transit": 204, "c_bike": 37, "c_walk": 0, "year": 2018, "FIPS_11_digit": "06001440301", "p_white": 0.1793112547829529, "p_black": 0.029951180894577101, "p_asian": 0.41839292782689008, "p_latinx": 0.31745612877688351, "p_owners": 0.63870395028850424, "p_renters": 0.3612960497114957, "p_stay": 0.89982636570054764, "p_movelocal": 0.0423400560972352, "p_movecounty": 0.0244423667690663, "p_movestate": 0.019634032322692601, "p_moveabroad": 0.013757179110458101, "p_car": 0.72344771241830064, "p_carpool": 0.10906862745098039, "p_transit": 0.083333333333333301, "p_bike": 0.0151143790849673, "p_walk": 0.0 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.063242, 37.604685 ], [ -122.059375, 37.603907 ], [ -122.05869, 37.606028 ], [ -122.051683, 37.606006 ], [ -122.043305, 37.605956 ], [ -122.042777, 37.61165 ], [ -122.041447, 37.61164 ], [ -122.034819, 37.605962 ], [ -122.030938, 37.605927 ], [ -122.034387, 37.608962 ], [ -122.031063, 37.608957 ], [ -122.02324, 37.609048 ], [ -122.020037, 37.606243 ], [ -122.020977, 37.605895 ], [ -122.026204, 37.605945 ], [ -122.028333, 37.60513 ], [ -122.029415, 37.601381 ], [ -122.029778, 37.600605 ], [ -122.030616, 37.595445 ], [ -122.032578, 37.594402 ], [ -122.033573, 37.591381 ], [ -122.034523, 37.59077 ], [ -122.03965, 37.592186 ], [ -122.043872, 37.593345 ], [ -122.047311, 37.594296 ], [ -122.051653, 37.595503 ], [ -122.055063, 37.596447 ], [ -122.056626, 37.596897 ], [ -122.061052, 37.598688 ], [ -122.065495, 37.604911 ], [ -122.063242, 37.604685 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "442302", "AFFGEOID": "1400000US06001442302", "GEOID": "06001442302", "NAME_x": "4423.02", "LSAD": "CT", "ALAND": 963013, "AWATER": 0, "NAME_y": "Census Tract 4423.02, Alameda County, California", "c_race": 6012, "c_white": 1196, "c_black": 413, "c_asian": 3306, "c_latinx": 662, "state_fips": 6, "county_fips": 1, "tract_fips": 442302, "med_rent": 1685.0, "med_hhinc": 73344.0, "c_tenants": 2238, "c_owners": 601, "c_renters": 1637, "c_movers": 5922, "c_stay": 5120, "c_movelocal": 463, "c_movecounty": 157, "c_movestate": 33, "c_moveabroad": 149, "c_commute": 2141, "c_car": 1564, "c_carpool": 215, "c_transit": 186, "c_bike": 0, "c_walk": 66, "year": 2018, "FIPS_11_digit": "06001442302", "p_white": 0.19893546240851631, "p_black": 0.068695941450432396, "p_asian": 0.54990019960079839, "p_latinx": 0.1101131071190951, "p_owners": 0.2685433422698838, "p_renters": 0.73145665773011614, "p_stay": 0.86457277946639643, "p_movelocal": 0.078183046268152603, "p_movecounty": 0.026511313745356299, "p_movestate": 0.0055724417426545004, "p_moveabroad": 0.025160418777440002, "p_car": 0.73049976646426906, "p_carpool": 0.10042036431574029, "p_transit": 0.0868752919196637, "p_bike": 0.0, "p_walk": 0.030826716487622599 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -121.968944, 37.532073 ], [ -121.965459, 37.536376 ], [ -121.963998, 37.538062 ], [ -121.961338, 37.541128 ], [ -121.960601, 37.541672 ], [ -121.959556, 37.541198 ], [ -121.954346, 37.541835 ], [ -121.953715, 37.533154 ], [ -121.954694, 37.533007 ], [ -121.957909, 37.532632 ], [ -121.959109, 37.532872 ], [ -121.963589, 37.532982 ], [ -121.966472, 37.530763 ], [ -121.968944, 37.532073 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "444302", "AFFGEOID": "1400000US06001444302", "GEOID": "06001444302", "NAME_x": "4443.02", "LSAD": "CT", "ALAND": 22310824, "AWATER": 0, "NAME_y": "Census Tract 4443.02, Alameda County, California", "c_race": 4692, "c_white": 721, "c_black": 210, "c_asian": 1246, "c_latinx": 2242, "state_fips": 6, "county_fips": 1, "tract_fips": 444302, "med_rent": 1816.0, "med_hhinc": 87227.0, "c_tenants": 1322, "c_owners": 666, "c_renters": 656, "c_movers": 4683, "c_stay": 4470, "c_movelocal": 88, "c_movecounty": 77, "c_movestate": 41, "c_moveabroad": 7, "c_commute": 1215, "c_car": 921, "c_carpool": 170, "c_transit": 29, "c_bike": 22, "c_walk": 33, "year": 2018, "FIPS_11_digit": "06001444302", "p_white": 0.1536658141517476, "p_black": 0.0447570332480818, "p_asian": 0.26555839727195218, "p_latinx": 0.47783461210571188, "p_owners": 0.50378214826021184, "p_renters": 0.49621785173978822, "p_stay": 0.9545163356822548, "p_movelocal": 0.018791373051462699, "p_movecounty": 0.016442451420029799, "p_movestate": 0.0087550715353405008, "p_moveabroad": 0.0014947683109118, "p_car": 0.75802469135802464, "p_carpool": 0.139917695473251, "p_transit": 0.023868312757201599, "p_bike": 0.018106995884773599, "p_walk": 0.0271604938271604 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.11144457163401, 37.510851038560197 ], [ -122.109113, 37.513053 ], [ -122.103929, 37.520176 ], [ -122.10193, 37.52262 ], [ -122.093759, 37.529653 ], [ -122.092433, 37.530552 ], [ -122.090044, 37.531776 ], [ -122.085917, 37.532852 ], [ -122.078125, 37.534114 ], [ -122.073527, 37.535913 ], [ -122.071144, 37.537376 ], [ -122.067333, 37.540231 ], [ -122.066627, 37.538675 ], [ -122.065316, 37.535965 ], [ -122.062406, 37.528734 ], [ -122.057956, 37.527149 ], [ -122.053132, 37.528198 ], [ -122.047843, 37.530852 ], [ -122.044662, 37.533296 ], [ -122.041936, 37.531053 ], [ -122.040007, 37.529433 ], [ -122.037187, 37.527311 ], [ -122.029818, 37.523848 ], [ -122.029716, 37.523801 ], [ -122.012103, 37.515625 ], [ -122.01488, 37.509699 ], [ -122.012435, 37.50689 ], [ -122.011945, 37.50402 ], [ -122.014851, 37.502422 ], [ -122.015489, 37.501255 ], [ -122.014544, 37.499986 ], [ -122.01252, 37.499717 ], [ -122.013051, 37.498099 ], [ -122.012052, 37.496648 ], [ -122.009607, 37.497619 ], [ -122.0078, 37.497334 ], [ -122.00599, 37.49484 ], [ -122.009986, 37.493627 ], [ -122.010785, 37.492352 ], [ -122.009747, 37.488982 ], [ -122.011987, 37.485652 ], [ -122.013813, 37.481647 ], [ -122.0198, 37.484589 ], [ -122.023141, 37.484693 ], [ -122.024849, 37.48325 ], [ -122.025852, 37.478979 ], [ -122.028182, 37.478769 ], [ -122.030858, 37.481568 ], [ -122.031495, 37.488435 ], [ -122.030965, 37.490136 ], [ -122.033931, 37.492501 ], [ -122.035386, 37.494691 ], [ -122.039203, 37.495089 ], [ -122.043376, 37.495874 ], [ -122.052606, 37.499278 ], [ -122.052393, 37.500242 ], [ -122.057788, 37.501106 ], [ -122.055628, 37.506777 ], [ -122.057339, 37.511731 ], [ -122.058288, 37.51572 ], [ -122.063063, 37.51489 ], [ -122.067158, 37.513481 ], [ -122.069033, 37.517733 ], [ -122.070185, 37.517866 ], [ -122.072554, 37.516844 ], [ -122.074302, 37.516242 ], [ -122.077208, 37.515458 ], [ -122.079978, 37.514799 ], [ -122.079567, 37.516013 ], [ -122.080861, 37.516609 ], [ -122.082839, 37.514484 ], [ -122.08553, 37.514167 ], [ -122.087861, 37.513193 ], [ -122.089497, 37.513611 ], [ -122.088326, 37.516847 ], [ -122.09228, 37.518493 ], [ -122.09326, 37.520987 ], [ -122.098329, 37.522612 ], [ -122.101522, 37.521337 ], [ -122.101243, 37.518249 ], [ -122.110922, 37.509413 ], [ -122.111424603333006, 37.510201580279897 ], [ -122.11144457163401, 37.510851038560197 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "402600", "AFFGEOID": "1400000US06001402600", "GEOID": "06001402600", "NAME_x": "4026", "LSAD": "CT", "ALAND": 318843, "AWATER": 0, "NAME_y": "Census Tract 4026, Alameda County, California", "c_race": 1196, "c_white": 183, "c_black": 289, "c_asian": 553, "c_latinx": 139, "state_fips": 6, "county_fips": 1, "tract_fips": 402600, "med_rent": 887.0, "med_hhinc": 23409.0, "c_tenants": 618, "c_owners": 78, "c_renters": 540, "c_movers": 1196, "c_stay": 1034, "c_movelocal": 54, "c_movecounty": 36, "c_movestate": 30, "c_moveabroad": 42, "c_commute": 539, "c_car": 219, "c_carpool": 84, "c_transit": 146, "c_bike": 13, "c_walk": 61, "year": 2018, "FIPS_11_digit": "06001402600", "p_white": 0.15301003344481601, "p_black": 0.241638795986622, "p_asian": 0.4623745819397993, "p_latinx": 0.1162207357859531, "p_owners": 0.12621359223300971, "p_renters": 0.87378640776699024, "p_stay": 0.86454849498327757, "p_movelocal": 0.0451505016722408, "p_movecounty": 0.030100334448160501, "p_movestate": 0.0250836120401337, "p_moveabroad": 0.035117056856187198, "p_car": 0.40630797773654909, "p_carpool": 0.15584415584415581, "p_transit": 0.27087198515769939, "p_bike": 0.024118738404452601, "p_walk": 0.1131725417439703 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.28274, 37.803675 ], [ -122.280965, 37.808301 ], [ -122.278678, 37.807284 ], [ -122.277122, 37.806707 ], [ -122.275979, 37.806222 ], [ -122.279564, 37.800449 ], [ -122.279687, 37.800256 ], [ -122.283322, 37.8017 ], [ -122.28274, 37.803675 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "432501", "AFFGEOID": "1400000US06001432501", "GEOID": "06001432501", "NAME_x": "4325.01", "LSAD": "CT", "ALAND": 1361846, "AWATER": 0, "NAME_y": "Census Tract 4325.01, Alameda County, California", "c_race": 4851, "c_white": 892, "c_black": 353, "c_asian": 2049, "c_latinx": 1403, "state_fips": 6, "county_fips": 1, "tract_fips": 432501, "med_rent": 1664.0, "med_hhinc": 61932.0, "c_tenants": 1427, "c_owners": 656, "c_renters": 771, "c_movers": 4838, "c_stay": 4267, "c_movelocal": 361, "c_movecounty": 122, "c_movestate": 18, "c_moveabroad": 70, "c_commute": 2381, "c_car": 1569, "c_carpool": 360, "c_transit": 263, "c_bike": 30, "c_walk": 101, "year": 2018, "FIPS_11_digit": "06001432501", "p_white": 0.18387961245104101, "p_black": 0.072768501339929903, "p_asian": 0.42238713667285088, "p_latinx": 0.2892187177901463, "p_owners": 0.45970567624386821, "p_renters": 0.54029432375613173, "p_stay": 0.88197602315006196, "p_movelocal": 0.074617610582885394, "p_movecounty": 0.025217031831335199, "p_movestate": 0.003720545680033, "p_moveabroad": 0.0144687887556841, "p_car": 0.65896682066358669, "p_carpool": 0.1511969760604788, "p_transit": 0.1104577908441831, "p_bike": 0.0125997480050399, "p_walk": 0.042419151616967597 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.175144, 37.719418 ], [ -122.173941, 37.720025 ], [ -122.17306, 37.720345 ], [ -122.170496, 37.721032 ], [ -122.168104, 37.721626 ], [ -122.16724, 37.721836 ], [ -122.164245, 37.722651 ], [ -122.159808, 37.718776 ], [ -122.15892, 37.717986 ], [ -122.155593, 37.715082 ], [ -122.166672, 37.710422 ], [ -122.17056, 37.713131 ], [ -122.176734, 37.718964 ], [ -122.175144, 37.719418 ] ] ] } }, +{ "type": "Feature", "properties": { "STATEFP": "06", "COUNTYFP": "001", "TRACTCE": "436401", "AFFGEOID": "1400000US06001436401", "GEOID": "06001436401", "NAME_x": "4364.01", "LSAD": "CT", "ALAND": 3116602, "AWATER": 0, "NAME_y": "Census Tract 4364.01, Alameda County, California", "c_race": 7776, "c_white": 2602, "c_black": 1164, "c_asian": 1511, "c_latinx": 1980, "state_fips": 6, "county_fips": 1, "tract_fips": 436401, "med_rent": 1542.0, "med_hhinc": 85920.0, "c_tenants": 2945, "c_owners": 1669, "c_renters": 1276, "c_movers": 7645, "c_stay": 6651, "c_movelocal": 716, "c_movecounty": 234, "c_movestate": 19, "c_moveabroad": 25, "c_commute": 3723, "c_car": 2816, "c_carpool": 217, "c_transit": 351, "c_bike": 22, "c_walk": 113, "year": 2018, "FIPS_11_digit": "06001436401", "p_white": 0.33461934156378598, "p_black": 0.1496913580246913, "p_asian": 0.19431584362139909, "p_latinx": 0.25462962962962959, "p_owners": 0.56672325976230897, "p_renters": 0.43327674023769103, "p_stay": 0.86998037933289729, "p_movelocal": 0.093655984303466305, "p_movecounty": 0.030608240680183099, "p_movestate": 0.0024852844996729002, "p_moveabroad": 0.0032701111837801999, "p_car": 0.75637926403438083, "p_carpool": 0.058286328229922101, "p_transit": 0.094278807413376298, "p_bike": 0.0059092130002686002, "p_walk": 0.030351866774106898 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.080719, 37.668796 ], [ -122.079989, 37.669775 ], [ -122.077989, 37.670841 ], [ -122.076015, 37.671876 ], [ -122.07749, 37.673104 ], [ -122.073895, 37.675209 ], [ -122.072224, 37.675764 ], [ -122.070581, 37.676333 ], [ -122.066804, 37.677619 ], [ -122.066059, 37.67775 ], [ -122.065, 37.677927 ], [ -122.064333, 37.678044 ], [ -122.058204, 37.679919 ], [ -122.057966, 37.679962 ], [ -122.05052, 37.678766 ], [ -122.049032, 37.677089 ], [ -122.05233, 37.674004 ], [ -122.054587, 37.673672 ], [ -122.055763, 37.673401 ], [ -122.056135, 37.671076 ], [ -122.054303, 37.670838 ], [ -122.052503, 37.670166 ], [ -122.051948, 37.668487 ], [ -122.054798, 37.667879 ], [ -122.058259, 37.667188 ], [ -122.059028, 37.666282 ], [ -122.060868, 37.665709 ], [ -122.065639, 37.664047 ], [ -122.068875, 37.665191 ], [ -122.075918, 37.66289 ], [ -122.078024, 37.665503 ], [ -122.080635, 37.66864 ], [ -122.080719, 37.668796 ] ] ] } } +] +} diff --git a/notebook_data/parcels/parcel_pts_rand30pct.geojson b/data/parcels/parcel_pts_rand30pct.geojson similarity index 100% rename from notebook_data/parcels/parcel_pts_rand30pct.geojson rename to data/parcels/parcel_pts_rand30pct.geojson diff --git a/notebook_data/parcels/parcel_pts_rand30pct.geojson.zip b/data/parcels/parcel_pts_rand30pct.geojson.zip similarity index 100% rename from notebook_data/parcels/parcel_pts_rand30pct.geojson.zip rename to data/parcels/parcel_pts_rand30pct.geojson.zip diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.CPG b/data/protected_areas/CPAD_2020a_Units.CPG similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.CPG rename to data/protected_areas/CPAD_2020a_Units.CPG diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.dbf b/data/protected_areas/CPAD_2020a_Units.dbf similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.dbf rename to data/protected_areas/CPAD_2020a_Units.dbf diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.prj b/data/protected_areas/CPAD_2020a_Units.prj similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.prj rename to data/protected_areas/CPAD_2020a_Units.prj diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.sbn b/data/protected_areas/CPAD_2020a_Units.sbn similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.sbn rename to data/protected_areas/CPAD_2020a_Units.sbn diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.sbx b/data/protected_areas/CPAD_2020a_Units.sbx similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.sbx rename to data/protected_areas/CPAD_2020a_Units.sbx diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.shp b/data/protected_areas/CPAD_2020a_Units.shp similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.shp rename to data/protected_areas/CPAD_2020a_Units.shp diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.shp.xml b/data/protected_areas/CPAD_2020a_Units.shp.xml similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.shp.xml rename to data/protected_areas/CPAD_2020a_Units.shp.xml diff --git a/notebook_data/protected_areas/CPAD_2020a_Units.shx b/data/protected_areas/CPAD_2020a_Units.shx similarity index 100% rename from notebook_data/protected_areas/CPAD_2020a_Units.shx rename to data/protected_areas/CPAD_2020a_Units.shx diff --git a/notebook_data/raster/nlcd2011_sf.tif b/data/raster/nlcd2011_sf.tif similarity index 100% rename from notebook_data/raster/nlcd2011_sf.tif rename to data/raster/nlcd2011_sf.tif diff --git a/notebook_data/transportation/BerkeleyBikeBlvds.geojson b/data/transportation/BerkeleyBikeBlvds.geojson similarity index 100% rename from notebook_data/transportation/BerkeleyBikeBlvds.geojson rename to data/transportation/BerkeleyBikeBlvds.geojson diff --git a/notebook_data/transportation/Passenger_Rail_Stations_2019.zip b/data/transportation/Passenger_Rail_Stations_2019.zip similarity index 100% rename from notebook_data/transportation/Passenger_Rail_Stations_2019.zip rename to data/transportation/Passenger_Rail_Stations_2019.zip diff --git a/notebook_data/transportation/Passenger_Railways_2019.zip b/data/transportation/Passenger_Railways_2019.zip similarity index 100% rename from notebook_data/transportation/Passenger_Railways_2019.zip rename to data/transportation/Passenger_Railways_2019.zip diff --git a/notebook_data/transportation/bart.csv b/data/transportation/bart.csv similarity index 100% rename from notebook_data/transportation/bart.csv rename to data/transportation/bart.csv diff --git a/notebook_data/transportation/bart_logo.png b/data/transportation/bart_logo.png similarity index 100% rename from notebook_data/transportation/bart_logo.png rename to data/transportation/bart_logo.png diff --git a/notebook_data/us_states/us_states.dbf b/data/us_states/us_states.dbf similarity index 100% rename from notebook_data/us_states/us_states.dbf rename to data/us_states/us_states.dbf diff --git a/notebook_data/us_states/us_states.prj b/data/us_states/us_states.prj similarity index 100% rename from notebook_data/us_states/us_states.prj rename to data/us_states/us_states.prj diff --git a/notebook_data/us_states/us_states.shp b/data/us_states/us_states.shp similarity index 100% rename from notebook_data/us_states/us_states.shp rename to data/us_states/us_states.shp diff --git a/notebook_data/us_states/us_states.shx b/data/us_states/us_states.shx similarity index 100% rename from notebook_data/us_states/us_states.shx rename to data/us_states/us_states.shx diff --git a/notebook_data/us_states/us_states.zip b/data/us_states/us_states.zip similarity index 100% rename from notebook_data/us_states/us_states.zip rename to data/us_states/us_states.zip diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 87267ea..0000000 --- a/environment.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: geo_env -channels: - - conda-forge - - defaults -dependencies: - - jupyterlab - - numpy - - geopandas - - pandas - - numpy - - matplotlib - - rasterio - - rasterstats - - rioxarray - - statsmodels - - scikit-learn - - scipy - - libpysal - - tqdm - - pip - - geojson - - descartes - - folium - - pysal - - mapclassify - - seaborn - - geopy - - tobler - - osmnx diff --git a/assets/images/NLCD_Colour_Classification_Update.jpg b/images/NLCD_Colour_Classification_Update.jpg similarity index 100% rename from assets/images/NLCD_Colour_Classification_Update.jpg rename to images/NLCD_Colour_Classification_Update.jpg diff --git a/assets/images/anaconda1_navigator_home.png b/images/anaconda1_navigator_home.png similarity index 100% rename from assets/images/anaconda1_navigator_home.png rename to images/anaconda1_navigator_home.png diff --git a/assets/images/anaconda2_base_open_teriminal.png b/images/anaconda2_base_open_teriminal.png similarity index 100% rename from assets/images/anaconda2_base_open_teriminal.png rename to images/anaconda2_base_open_teriminal.png diff --git a/assets/images/anaconda3_the terminal.png b/images/anaconda3_the terminal.png similarity index 100% rename from assets/images/anaconda3_the terminal.png rename to images/anaconda3_the terminal.png diff --git a/assets/images/anaconda4_commands_from_geopandas_webpage.png b/images/anaconda4_commands_from_geopandas_webpage.png similarity index 100% rename from assets/images/anaconda4_commands_from_geopandas_webpage.png rename to images/anaconda4_commands_from_geopandas_webpage.png diff --git a/assets/images/anaconda_download_instructions.png b/images/anaconda_download_instructions.png similarity index 100% rename from assets/images/anaconda_download_instructions.png rename to images/anaconda_download_instructions.png diff --git a/assets/images/anaconda_navigator_launch.png b/images/anaconda_navigator_launch.png similarity index 100% rename from assets/images/anaconda_navigator_launch.png rename to images/anaconda_navigator_launch.png diff --git a/assets/images/cherry_blossom_rotator.jpg b/images/cherry_blossom_rotator.jpg similarity index 100% rename from assets/images/cherry_blossom_rotator.jpg rename to images/cherry_blossom_rotator.jpg diff --git a/assets/images/discussion.png b/images/discussion.png similarity index 100% rename from assets/images/discussion.png rename to images/discussion.png diff --git a/assets/images/dlab_logo.png b/images/dlab_logo.png similarity index 100% rename from assets/images/dlab_logo.png rename to images/dlab_logo.png diff --git a/assets/images/fig_create.jpg b/images/fig_create.jpg similarity index 100% rename from assets/images/fig_create.jpg rename to images/fig_create.jpg diff --git a/assets/images/fig_create2.jpg b/images/fig_create2.jpg similarity index 100% rename from assets/images/fig_create2.jpg rename to images/fig_create2.jpg diff --git a/assets/images/fig_create3.png b/images/fig_create3.png similarity index 100% rename from assets/images/fig_create3.png rename to images/fig_create3.png diff --git a/assets/images/fig_create4.png b/images/fig_create4.png similarity index 100% rename from assets/images/fig_create4.png rename to images/fig_create4.png diff --git a/assets/images/fig_create5.png b/images/fig_create5.png similarity index 100% rename from assets/images/fig_create5.png rename to images/fig_create5.png diff --git a/assets/images/light_bulb.png b/images/light_bulb.png similarity index 100% rename from assets/images/light_bulb.png rename to images/light_bulb.png diff --git a/assets/images/percept_cmap.png b/images/percept_cmap.png similarity index 100% rename from assets/images/percept_cmap.png rename to images/percept_cmap.png diff --git a/lessons/01_introduction_geospatial_data.md b/lessons/01_introduction_geospatial_data.md new file mode 100644 index 0000000..3ae59da --- /dev/null +++ b/lessons/01_introduction_geospatial_data.md @@ -0,0 +1,3 @@ +# Introduction to Geospatial Data + +We'll begin today's workshop with an overview of geospatial data via a slide deck. [Click here](https://docs.google.com/presentation/d/1vDWfqAVKhOMVBC6U-uussHo6Nk7Q33PQ5uQ9iTG2S8I/edit?usp=sharing) to access the slides for the introduction. \ No newline at end of file diff --git a/02_Introduction_to_GeoPandas.ipynb b/lessons/02_introduction_to_geopandas.ipynb similarity index 52% rename from 02_Introduction_to_GeoPandas.ipynb rename to lessons/02_introduction_to_geopandas.ipynb index 9665383..385fd4b 100644 --- a/02_Introduction_to_GeoPandas.ipynb +++ b/lessons/02_introduction_to_geopandas.ipynb @@ -4,49 +4,31 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Lesson 2. Introduction to Geopandas\n", + "# Introduction to GeoPandas\n", "\n", - "In this lesson we'll learn about a package that is core to using geospatial data in Python. We'll go through the structure of the data (it's not too different from regular DataFrames!), geometries, shapefiles, and how to save your hard work.\n", + "In this lesson, we'll learn about a package that is core to using geospatial data in Python: GeoPandas. We'll explore the structure of geospatial data (which, turns out, is not too different from DataFrames!), including geometries, shapefiles, and how to save your hard work.\n", "\n", - "- 2.1 What is GeoPandas?\n", - "- 2.2 Read in a shapefile\n", - "- 2.3 Explore the GeoDataFrame\n", - "- 2.4 Plot the GeoDataFrame\n", - "- 2.5 Subset the GeoDataFrame\n", - "- 2.6 Save your data\n", - "- 2.7 Recap\n", - "- **Exercise**: IO, Manipulation, and Mapping\n", "\n", - "
\n", - "\n", - " Instructor Notes\n", - "\n", - "- Datasets used\n", - " - 'notebook_data/california_counties/CaliforniaCounties.shp'\n", - " - 'notebook_data/census/Places/cb_2018_06_place_500k.zip'\n", + "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.1 What is GeoPandas?\n", - "\n", - "### GeoPandas and related Geospatial Packages\n", - "\n", - "[GeoPandas](http://geopandas.org/) is a relatively new package that makes it easier to work with geospatial data in Python. In the last few years it has grown more powerful and stable. This is really great because previously it was quite complex to work with geospatial data in Python. GeoPandas is now the go-to package for working with `vector` geospatial data in Python. \n", + "## What is GeoPandas?\n", "\n", - "> **Protip**: If you work with `raster` data you will want to checkout the [rasterio](https://rasterio.readthedocs.io/en/latest/) package. We will not cover raster data in this tutorial.\n", + "[GeoPandas](http://geopandas.org/) is a relatively new package that makes it easier to work with geospatial data in Python. In the last few years it has grown more powerful and stable, allow Python to practioners to more easily and flexibly work with geospatial data in Python, which had been difficult in the past. GeoPandas is now the go-to package for working with `vector` geospatial data in Python. \n", "\n", - "### GeoPandas = pandas + geo\n", - "GeoPandas gives you access to all of the functionality of [pandas](https://pandas.pydata.org/), which is the primary data analysis tool for working with tabular data in Python. GeoPandas extends pandas with attributes and methods for working with geospatial data.\n", + "> **Protip**: If you work with `raster` data, check out the [rasterio](https://rasterio.readthedocs.io/en/latest/) package. We will not cover raster data in this tutorial.\n", "\n", - "\n" + "GeoPandas gives you access to all of the functionality of [pandas](https://pandas.pydata.org/), which is the primary data analysis tool for working with tabular data in Python. GeoPandas extends pandas with attributes and methods for working with geospatial data. So, if you're familiar with pandas, working with geospatial data is a natural next step." ] }, { @@ -55,7 +37,17 @@ "source": [ "### Import Libraries\n", "\n", - "Let's start by importing the libraries that we will use." + "Let's start by importing the libraries that we will use. If you haven't already, you can install GeoPandas within this notebook:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Install GeoPandas if you don't have it yet\n", + "%pip install geopandas" ] }, { @@ -67,8 +59,8 @@ "import pandas as pd\n", "import geopandas as gpd\n", "\n", - "import matplotlib # base python plotting library\n", - "import matplotlib.pyplot as plt # submodule of matplotlib\n", + "import matplotlib # Base python plotting library\n", + "import matplotlib.pyplot as plt # Submodule of matplotlib\n", "\n", "# To display plots, maps, charts etc in the notebook\n", "%matplotlib inline " @@ -78,7 +70,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.2 Read in a shapefile\n", + "### Read in a Shapefile\n", "\n", "As we discussed in the initial geospatial overview, a *shapefile* is one type of geospatial data that holds vector data. \n", "\n", @@ -86,21 +78,16 @@ "\n", "The tricky thing to remember about shapefiles is that they're actually a collection of 3 to 9+ files together. Here's a list of all the files that can make up a shapefile:\n", " \n", - ">`shp`: The main file that stores the feature geometry\n", - ">\n", - ">`shx`: The index file that stores the index of the feature geometry \n", - ">\n", - ">`dbf`: The dBASE table that stores the attribute information of features \n", - ">\n", - ">`prj`: The file that stores the coordinate system information. (should be required!)\n", - ">\n", - ">`xml`: Metadata —Stores information about the shapefile.\n", - ">\n", - ">`cpg`: Specifies the code page for identifying the character set to be used.\n", + "* `shp`: The main file that stores the feature geometry\n", + "* `shx`: The index file that stores the index of the feature geometry \n", + "* `dbf`: The dBASE table that stores the attribute information of features \n", + "* `prj`: The file that stores the coordinate system information. (should be required!)\n", + "* `xml`: Metadata: Stores information about the shapefile.\n", + "* `cpg`: Specifies the code page for identifying the character set to be used.\n", "\n", "But it remains the most commonly used file format for vector spatial data, and it's really easy to visualize in one go!\n", "\n", - "Let's try it out with California counties, and use `geopandas` for the first time. `gpd.read_file` is a flexible function that let's you read in many different types of geospatial data." + "Let's try it out with California counties, and use GeoPandas for the first time. We can use a flexible function called `gpd.read_file` to read in many different types of geospatial data. When using it, we'll specify the `shp` file:" ] }, { @@ -110,7 +97,7 @@ "outputs": [], "source": [ "# Read in the counties shapefile\n", - "counties = gpd.read_file('notebook_data/california_counties/CaliforniaCounties.shp')" + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')" ] }, { @@ -134,19 +121,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.3 Explore the GeoDataFrame\n", - "\n", - "Before we get in too deep, let's discuss what a *GeoDataFrame* is and how it's different from `pandas` *DataFrames*.\n", + "## Exploring the GeoPandas GeoDataFrame\n", "\n", - "### The GeoPandas GeoDataFrame\n", + "Before we get in too deep, let's discuss what a *GeoDataFrame* is and how it's different from a pandas *DataFrame*.\n", "\n", - "A [GeoPandas GeoDataFrame](https://geopandas.org/data_structures.html#geodataframe), or `gdf` for short, is just like a pandas dataframe (`df`) but with an extra geometry column and methods & attributes that work on that column. I repeat because it's important:\n", + "A [GeoPandas GeoDataFrame](https://geopandas.org/data_structures.html#geodataframe), or `gdf` for short, is just like a pandas DataFrame (`df`) but with an extra geometry column as well as accompanying methods and attributes that work on that column. Let's emphasize this point, because it's important:\n", "\n", - "> `A GeoPandas GeoDataFrame is a pandas DataFrame with a geometry column and methods & attributes that work on that column.`\n", + "> A [GeoPandas GeoDataFrame](https://geopandas.org/data_structures.html#geodataframe), or `gdf` for short, is just like a pandas DataFrame (`df`) but with an extra geometry column as well as accompanying methods and attributes that work on that column.\n", "\n", - "> This means all the methods and attributes of a pandas DataFrame also work on a Geopandas GeoDataFrame!!\n", + "This means all the methods and attributes of a pandas DataFrame also work on a GeoPandas GeoDataFrame!\n", "\n", - "With that in mind, let's start exploring out dataframe just like we would do in `pandas`." + "With that in mind, let's start exploring our dataframe just like we would do in pandas." ] }, { @@ -185,62 +170,54 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It looks like we have a good amount of information about the total population for different years and the densities, as well as race, age, and occupancy info." + "It looks like we have a good amount of information about the total population for different years and the densities, as well as race, age, and occupancy info. Notice at the end - just like we promised - a geometry column containing many numbers. Let's explore what this means, next." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.4 Plot the GeoDataFrame\n", + "## Plot the GeoDataFrame\n", "\n", - "We're able to plot our GeoDataFrame because of the extra `geometry` column.\n", + "We're able to plot our GeoDataFrame because of the extra `geometry` column. What exactly does this column provide?\n", "\n", - "### Geopandas Geometries\n", - "There are three main types of geometries that can be associated with your geodataframe: points, lines and polygons:\n", + "### GeoPandas Geometries\n", "\n", - "\n", + "There are three main types of geometries that can be associated with your GeoDataFrame: points, lines and polygons.\n", "\n", - "In the geodataframe these geometries are encoded in a format known as [Well-Known Text (WKT)](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry). For example:\n", + "\n", "\n", - "> - POINT (30 10)\n", - "> - LINESTRING (30 10, 10 30, 40 40)\n", - "> - POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))\n", - ">\n", - "> *where coordinates are separated by a space and coordinate pairs by a comma*\n", + "In the GeoDataFrame, these geometries are encoded in a format known as [Well-Known Text (WKT)](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry). Consider the following examples:\n", "\n", - "Your geodataframe may also include the variants **multipoints, multilines, and multipolgyons** if the row-level feature of interest is comprised of multiple parts. For example, a geodataframe of states, where one row represents one state, would have a POLYGON geometry for Utah but MULTIPOLYGON for Hawaii, which includes many islands.\n", + "- POINT (30 10)\n", + "- LINESTRING (30 10, 10 30, 40 40)\n", + "- POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))\n", "\n", - "> It's ok to mix and match geometries of the same family, e.g., POLYGON and MULTIPOLYGON, in the same geodatafame.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ + "In each case, coordinates are separated by a spaces, and coordinate pairs are separated by commas.\n", "\n", - " **Question** What kind of geometry would a roads geodataframe have? What about one that includes landmarks in the San Francisco Bay Area?\n", + "Your geodataframe may also include the variants **multipoints, multilines, and multipolgyons** if the row-level feature of interest is comprised of multiple parts. For example, a GeoDataFrame of states, where one row represents one state, would have a POLYGON geometry for Utah but MULTIPOLYGON for Hawaii, which includes many islands.\n", "\n", - "\n" + "Note that, it's OK to mix and match geometries of the same family, e.g., POLYGON and MULTIPOLYGON, in the same GeoDataFrame." ] }, { - "cell_type": "raw", + "cell_type": "markdown", "metadata": {}, "source": [ - "Your response here:\n", + "---\n", "\n", + "### Challenge 1\n", "\n", + "What kind of geometry would a GeoDataFrame containing roads have? What about one that includes landmarks in the San Francisco Bay Area?\n", "\n", - "\n" + "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "You can check the types of geometries in a geodataframe or a subset of the geodataframe by combining the `type` and `unique` methods." + "You can check the types of geometries in a GeoDataFrame or a subset of the GeoDataFrame by combining the `type` and `unique` methods:" ] }, { @@ -249,7 +226,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Let's check what geometries we have in our counties geodataframe\n", + "# Let's check what geometries we have in our counties GeoDataFrame\n", "counties['geometry'].head()" ] }, @@ -286,7 +263,6 @@ "outputs": [], "source": [ "# We can run the following line of code to get more info about the parameters we can specify:\n", - "\n", "?counties.plot" ] }, @@ -297,7 +273,7 @@ "outputs": [], "source": [ "# Make the figure size bigger\n", - "counties.plot(figsize=(6,9))" + "counties.plot(figsize=(6, 9))" ] }, { @@ -306,19 +282,20 @@ "metadata": {}, "outputs": [], "source": [ - "counties.plot(figsize=(6,9), \n", - " edgecolor='grey', # grey colored border lines\n", - " facecolor='pink' , # fill in our counties as pink\n", - " linewidth=2) # make the linedwith a width of 2" + "# Customize our plot further\n", + "counties.plot(figsize=(6, 9), \n", + " edgecolor='grey', # Grey colored border lines\n", + " facecolor='pink', # Fill in our counties as pink\n", + " linewidth=2) # Make the linewidth larger" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.5 Subset the GeoDataframe\n", + "## Subset the GeoDataframe\n", "\n", - "Since we'll be focusing on Berkeley later in the workshop, let's subset our GeoDataFrame to just be for Alameda County." + "Since we'll be focusing on Berkeley later in the workshop, let's subset Alameda County from our GeoDataFrame:" ] }, { @@ -335,7 +312,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It looks like Alameda county is specified as \"Alameda\" in this dataset." + "It looks like Alameda county is specified as \"Alameda\" in this dataset.\n", + "\n", + "So, let's create a new GeoDataFrame called `alameda_county` that is a subset of our counties GeoDataFrame:" ] }, { @@ -344,14 +323,7 @@ "metadata": {}, "outputs": [], "source": [ - "counties" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can create a new geodataframe called `alameda_county` that is a subset of our counties geodataframe." + "alameda_county = counties.loc[counties['NAME'] == 'Alameda'].copy().reset_index(drop=True)" ] }, { @@ -360,7 +332,7 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county = counties.loc[counties['NAME'] == 'Alameda'].copy().reset_index(drop=True)" + "alameda_county" ] }, { @@ -369,7 +341,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Plot our newly subsetted geodataframe\n", + "# Plot our newly subsetted GeoDataFrame\n", "alameda_county.plot()" ] }, @@ -379,7 +351,7 @@ "source": [ "Nice! Looks like we have what we were looking for.\n", "\n", - "*FYI*: You can also make dynamic plots of one or more county without saving to a new gdf." + "You can also make dynamic plots of one or more county without saving to a new GeoDataFrame:" ] }, { @@ -388,25 +360,28 @@ "metadata": {}, "outputs": [], "source": [ - "bay_area_counties = ['Alameda', 'Contra Costa', 'Marin', 'Napa', 'San Francisco', \n", - " 'San Mateo', 'Santa Clara', 'Santa Cruz', 'Solano', 'Sonoma']\n", - "counties.loc[counties['NAME'].isin(bay_area_counties)].plot()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.6 Save your Data" + "bay_area_counties = ['Alameda',\n", + " 'Contra Costa',\n", + " 'Marin',\n", + " 'Napa',\n", + " 'San Francisco', \n", + " 'San Mateo',\n", + " 'Santa Clara',\n", + " 'Santa Cruz',\n", + " 'Solano',\n", + " 'Sonoma']\n", + "counties.loc[counties['NAME'].isin(bay_area_counties)].plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "## Save Your Data\n", + "\n", "Let's not forget to save out our Alameda County geodataframe `alameda_county`. This way we won't need to repeat the processing steps and attribute join we did above.\n", "\n", - "We can save it as a shapefile." + "We can save it as a shapefile:" ] }, { @@ -415,17 +390,18 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county.to_file(\"outdata/alameda_county.shp\")" + "alameda_county.to_file(\"../data/outdata/alameda_county.shp\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "One of the problems of saving to a shapefile is that our column names get truncated to 10 characters (a shapefile limitation.) \n", + "One of the problems of saving to a shapefile is that our column names get truncated to 10 characters (this is a shapefile limitation). \n", "\n", - "Instead of renaming all columns with obscure names that are less than 10 characters, we can save our GeoDataFrame to a spatial data file format that does not have this limation - [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) or [GPKG](https://en.wikipedia.org/wiki/GeoPackage) (geopackage) file.\n", - "- These formats have the added benefit of outputting only one file in contrast tothe multi-file shapefile format." + "Instead of renaming all columns with obscure names that are less than 10 characters, we can save our GeoDataFrame to spatial data file formats that do not have this limation, such as [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) or [GPKG](https://en.wikipedia.org/wiki/GeoPackage) (geopackage) files.\n", + "\n", + "These formats have the added benefit of outputting only one file in contrast to the multi-file shapefile format." ] }, { @@ -434,7 +410,7 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county.to_file(\"outdata/alameda_county.json\", driver=\"GeoJSON\")" + "alameda_county.to_file(\"../data/outdata/alameda_county.json\", driver=\"GeoJSON\")" ] }, { @@ -443,14 +419,14 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county.to_file(\"outdata/alameda_county.gpkg\", driver=\"GPKG\")" + "alameda_county.to_file(\"../data/outdata/alameda_county.gpkg\", driver=\"GPKG\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "You can read these in, just as you would a shapefile with `gpd.read_file`" + "You can read these in, just as you would a shapefile with `gpd.read_file`:" ] }, { @@ -459,8 +435,8 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county_test = gpd.read_file(\"outdata/alameda_county.gpkg\")\n", - "alameda_county_test.plot()" + "alameda_county_test2 = gpd.read_file(\"../data/outdata/alameda_county.json\")\n", + "alameda_county_test2.plot()" ] }, { @@ -469,8 +445,8 @@ "metadata": {}, "outputs": [], "source": [ - "alameda_county_test2 = gpd.read_file(\"outdata/alameda_county.json\")\n", - "alameda_county_test2.plot()" + "alameda_county_test = gpd.read_file(\"../data/outdata/alameda_county.gpkg\")\n", + "alameda_county_test.plot()" ] }, { @@ -487,11 +463,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.7 Recap\n", + "## Overview\n", + "\n", + "In this lesson, we learned about:\n", "\n", - "In this lesson we learned about...\n", - "- The `geopandas` package \n", - "- Reading in shapefiles \n", + "- The `geopandas` package\n", + "- Reading in shapefiles\n", " - `gpd.read_file`\n", "- GeoDataFrame structures\n", " - `shape`, `head`, `columns`\n", @@ -507,21 +484,22 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Exercise: IO, Manipulation, and Mapping\n", + "---\n", "\n", - "Now you'll get a chance to practice the operations we learned above.\n", + "### Challenge 2: IO, Manipulation, and Mapping\n", "\n", - "In the following cell, compose code to:\n", + "Now, you'll get a chance to practice the operations we learned above.\n", "\n", - "1. Read in the California places data (`notebook_data/census/Places/cb_2018_06_place_500k.zip`)\n", - "2. Subset the data to Berkeley\n", - "3. Plot, and customize as desired\n", - "4. Save out as a shapefile (`outdata/berkeley_places.shp`)\n", + "In the following cell, compose code to:\n", "\n", + "1. Read in the California places data (`../data/census/Places/cb_2018_06_place_500k.zip`).\n", + "2. Subset \"Berkeley\" from the data.\n", + "3. Plot, and customize as desired.\n", + "4. Save out as a shapefile (`berkeley_places.shp`).\n", "\n", - "*Note: pulling in a zipped shapefile has the same syntax as just pulling in a shapefile. The only difference is that insead of just putting in the filepath you'll want to write `zip://notebook_data/census/Places/cb_2018_06_place_500k.zip`*\n", + "*Note: pulling in a zipped shapefile has the same syntax as just pulling in a shapefile. The only difference is that insead of just putting in the filepath, you'll want to write `zip://../data/census/Places/cb_2018_06_place_500k.zip`*\n", "\n", - "To see the solution, double-click the Markdown cell below." + "---" ] }, { @@ -530,57 +508,13 @@ "metadata": {}, "outputs": [], "source": [ - "# YOUR CODE HERE\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Double-click to see solution!\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "
\n", - "
 D-Lab @ University of California - Berkeley
\n", - "
 Team Geo
\n", - "
\n", - " \n", - "\n" + "# YOUR CODE HERE\n" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -594,7 +528,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/lessons/03_crs_map_projections.ipynb b/lessons/03_crs_map_projections.ipynb new file mode 100644 index 0000000..6adec84 --- /dev/null +++ b/lessons/03_crs_map_projections.ipynb @@ -0,0 +1,662 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Coordinate Reference Systems (CRS) and Map Projections\n", + "\n", + "Building off of what we learned in the previous notebook, we'll now approach an integral aspect of geospatial data: Coordinate Reference Systems.\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import Shapefiles\n", + "\n", + "Let's go ahead and bring back in our California county shapefile. As before, we can read the file in using `gpd.read_file` and plot it right away:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')\n", + "counties.plot(color='darkgreen')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Even if we have an awesome map like this, sometimes we want to have more geographical context, or we just want additional information. We're going to try **overlaying** our counties GeoDataFrame on a United States shapefile.\n", + "\n", + "We'll proceed in a similar manner with the US States shapefile: import the GeoDataFrame, examine it, and plot:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read in states shapefile\n", + "states = gpd.read_file('../data/us_states/us_states.shp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Look at the first few rows\n", + "states.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Count how many rows and columns we have\n", + "states.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the states data\n", + "states.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You might have noticed that our plot extends beyond the 50 states (which we also saw when we executed the `shape` method). Let's double check what states we have included in our data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "states['STATE'].values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Beyond the 50 states we seem to have American Samoa, Puerto Rico, Guam, Commonwealth of the Northern Mariana Islands, and United States Virgin Islands included in this geodataframe. To make our map cleaner, let's limit the states to the 48 contiguous states (so, we'll also exclude Alaska and Hawaii)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define list of non-contiguous states\n", + "non_contiguous_us = ['American Samoa',\n", + " 'Puerto Rico',\n", + " 'Guam',\n", + " 'Commonwealth of the Northern Mariana Islands',\n", + " 'United States Virgin Islands',\n", + " 'Alaska',\n", + " 'Hawaii']\n", + "# Subselect GeoDataFrame according to above list\n", + "states_limited = states.loc[~states['STATE'].isin(non_contiguous_us)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot it\n", + "states_limited.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To prepare for our mapping overlay, let's make our states a nice, light grey color:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "states_limited.plot(color='lightgrey', figsize=(10,10))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting Multiple Geometries\n", + "\n", + "Now that we have both GeoDataFrames in our environment, we can plot both in the same figure.\n", + "\n", + "To do this, we're going to obtain a matplotlib Axes object (`ax`). We'll then explicitly add each layer to it by providing the `ax=ax` argument to the `plot` method.\n", + "\n", + "This is the *object-oriented* approach to using matplotlib. It may be new to you, but it's very powerful, since it lets you directly choose which subplot you modify." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create figure and axis object\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot counties first\n", + "counties.plot(color='darkgreen', ax=ax)\n", + "# Plot states next\n", + "states_limited.plot(color='lightgrey', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oh no, what happened here?\n", + "\n", + "If you look at the numbers we have on the $x$ and $y$ axes in our two plots, you'll see that the county data has much larger numbers than our states data. It's represented in some different type of unit other than decimal degrees! \n", + "\n", + "In fact, that means if we zoom in really close into our plot we'll probably see the states data plotted. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create figure and axis object\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot counties first\n", + "counties.plot(color='darkgreen', ax=ax)\n", + "# Plot states next\n", + "states_limited.plot(color='lightgrey', ax=ax)\n", + "# Change limits of axes\n", + "ax.set_xlim(-140, -50)\n", + "ax.set_ylim(20, 50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a key issue that you'll have to resolve time and time again when working with geospatial data!\n", + "\n", + "It all revolves around **coordinate reference systems** and **projections**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coordinate Reference Systems (CRS)\n", + "\n", + "A Coordinate Reference System (CRS) describes how the coordinates in a geospatial dataset relate to locations on the surface of the earth. \n", + "\n", + "A **geographic CRS** consists of: \n", + "- A 3D model of the shape of the earth (a **datum**), approximated as a sphere or spheroid (e.g., an ellipsoid),\n", + "- The **units** of the coordinate system (e.g, decimal degrees, meters, feet), and \n", + "- The **origin** (i.e., the 0,0 location), specified as the meeting of the **equator** and the **prime meridian**.\n", + "\n", + "A **projected CRS** consists of:\n", + "- A geographic CRS, and\n", + "- A **map projection** and related parameters used to transform the geographic coordinates to `2D` space.\n", + " - A map projection is a mathematical model used to transform coordinate data\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### There are Many, Many CRSs\n", + "\n", + "Theoretically, the number of CRSs is unlimited!\n", + "\n", + "Why? There are two main reasons: i) There are many different definitions of the shape of the earth (treating it as a sphere is just too simple!) and ii) There are many different ways to cast its surface onto 2 dimensions. Our understanding of the Earth's shape and our ability to measure it has changed greatly over time.\n", + "\n", + "**So, why are we even bothering with these CRSs?**\n", + "\n", + "- You need to know the data about your data (or `metadata`) to use it appropriately.\n", + "- All projected CRSs introduce distortion in shape, area, and/or distance. Understanding what CRS best maintains the characteristics you need for your area of interest and your analysis is important.\n", + "- Some analysis methods expect geospatial data to be in a projected CRS\n", + " - For example, GeoPandas expects a GeoDataFrame to be in a projected CRS for area or distance based analyses.\n", + "- Some Python libraries, but not all, implement dynamic reprojection from the input CRS to the required CRS and assume a specific CRS (WGS84) when a CRS is not explicitly defined.\n", + "- Most Python spatial libraries, including GeoPandas, require geospatial data to be in the same CRS if they are being analysed together.\n", + "\n", + "**That's a lot: what are the basics we need to remember?**\n", + "\n", + "- What CRSs are used in your study area and what are their main characteristics?\n", + "- How to identify, or `get`, the CRS of a GeoDataFrame.\n", + "- How to **set** the CRS of geodataframe (i.e. define the projection).\n", + "- Hot to **transform** the CRS of a GeoDataFrame (i.e. reproject the data).\n", + "\n", + "### EPSG Codes and Commonly Used CRSs\n", + "\n", + "CRSs are typically referenced by an [EPSG code](http://wiki.gis.com/wiki/index.php/European_Petroleum_Survey_Group). \n", + "\n", + "It's important to know the commonly used CRSs and their EPSG codes for your geographic area of interest. \n", + "\n", + "For example, below is a list of commonly used CRSs for California geospatial data along with their EPSG codes.\n", + "\n", + "**Geographic CRSs**\n", + "\n", + "* `4326: WGS84` (units decimal degrees): The most commonly used geographic CRS.\n", + "* `4269: NAD83` (units decimal degrees): The geographic CRS customized to best fit the USA. This is used by all Census geographic data.\n", + "\n", + "`NAD83 (EPSG:4269)` is approximately the same as `WGS84 (EPSG:4326)`, although locations can differ by up to 1 meter in the continental USA and elsewhere up to 3 meters. That is not a big issue with, for example, Census tract data as these data are only accurate within 7 meters.\n", + "\n", + "**Projected CRSs**\n", + "\n", + "* `5070: CONUS NAD83` (units meters): Projected CRS for mapping the entire contiguous USA (CONUS).\n", + "* `3857: Web Mercator` (units meters): Conformal (shape preserving) CRS used as the default in web mapping.\n", + "* `3310: CA Albers Equal Area, NAD83` (units meters): Projected CRS for CA statewide mapping and spatial analysis.\n", + "* `26910: UTM Zone 10N, NAD83` (units meters): Projected CRS for northern CA mapping & analysis.\n", + "* `26911: UTM Zone 11N, NAD83` (units meters): Projected CRS for Southern CA mapping & analysis.\n", + "* `102641 to 102646: CA State Plane zones 1-6, NAD83` (units feet): Projected CRS used for local analysis.\n", + "\n", + "You can find the full CRS details on [this website](https://www.spatialreference.org)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Working with CRSs in GeoPandas\n", + "\n", + "Now that we've covered some of the basics, let's turn back to the code. Even though there are a lot of details, GeoPandas actually makes it pretty easy to work with CRSs!\n", + "\n", + "### Identifying the CRS of a GeoDataFrame\n", + "\n", + "GeoPandas GeoDataFrames have a `crs` attribute that returns the CRS of the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "states_limited.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we can clearly see from those two printouts (even if we don't understand all the content!),\n", + "the CRSs of our two datasets are different! **This explains why we couldn't overlay them correctly!**\n", + "\n", + "\n", + "The above CRS definition specifies:\n", + "- the name of the CRS (`WGS84`), \n", + "- the axis units (`degree`),\n", + "- the shape (`datum`),\n", + "- the origin (`Prime Meridian`, and the equator),\n", + "- and the area for which it is best suited (`World`)\n", + "\n", + "Some additional terms worth noting:\n", + "- `geocentric`: latitude and longitude assume a spherical (round) model of the shape of the earth.\n", + "- `geodetic`: latitude and longitude assume a spheriodal (ellipsoidal) model, which is closer to the true shape.\n", + "- `geodesy`: is the study of the shape of the earth.\n", + "\n", + "**NOTE**: If you print a `crs` call, Python will just display the EPSG code used to initiate the CRS object. Depending on your versions of GeoPandas and its dependencies, this may or may not look different from what we just saw above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print(states_limited.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "### Setting the CRS\n", + "\n", + "You can also set the CRS of a GeoDataFrame using the `crs` attribute. You should set the CRS if is not defined or if you think it is incorrectly defined.\n", + "\n", + "> In desktop GIS terminology, setting the CRS is called **defining the CRS**.\n", + "\n", + "As an example, let's set the CRS of our data to `None`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First, set the CRS to None\n", + "states_limited.crs = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check it again\n", + "states_limited.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Makes sense: if a variable has a null value (`None`), then displaying it without printing it won't display anything!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check it again\n", + "print(states_limited.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll set it back to its correct CRS:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set it to 4326\n", + "states_limited.crs = \"epsg:4326\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Show it\n", + "states_limited.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NOTE**: You can set the CRS to anything you like, but **that doesn't make it correct**! This is because setting the CRS does not change the coordinate data. It just tells the software how to interpret it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Transforming or Reprojecting the CRS\n", + "\n", + "You can transform the CRS of a GeoDataFrame with the `to_crs` method.\n", + "\n", + "> In desktop GIS terminology transforming the CRS is called **projecting the data** (or **reprojecting the data**).\n", + "\n", + "When you do this, you should save the output to a new GeoDataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "states_limited_utm10 = states_limited.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, take a look at the new CRS:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "states_limited_utm10.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see the result immediately by plotting the data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot geographic gdf\n", + "states_limited.plot();\n", + "plt.axis('square');\n", + "\n", + "# Plot UTM gdf\n", + "states_limited_utm10.plot();\n", + "plt.axis('square')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Reflecting on CRSs\n", + "\n", + "1. What two key differences do you see between the two plots above?\n", + "2. Do either of these plotted USA maps look good?\n", + "3. Try looking at the common CRS EPSG codes above and see if any of them look better for the whole country than what we have now. Then try transforming the states data to the CRS that you think would be best and plotting it. (Use the code cell two cells below.)\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting States and Counties Together\n", + "\n", + "Now that we know what a CRS is and how we can set them, let's turn back to our original issue. We're going to match up our counties GeoDataFrame's CRS to the states GeoDataFrame's CRS." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert counties data to WGS 84\n", + "counties_wgs84 = counties.to_crs(\"epsg:4326\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties_wgs84.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot it together!\n", + "fig, ax = plt.subplots(figsize=(10,10))\n", + "states_limited.plot(color='lightgrey', edgecolor='black', ax=ax)\n", + "counties_wgs84.plot(color='darkgreen', edgecolor='gray', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we know that the best CRS to plot the contiguous US from the above question is 5070, let's also transform and plot everything in that CRS." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties_conus = counties.to_crs(\"epsg:5070\")\n", + "states_limited_conus = states_limited.to_crs(\"epsg:5070\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create figure and axis objects\n", + "fig, ax = plt.subplots(figsize=(10,10))\n", + "# Plot the EPSG:5070 projections\n", + "states_limited_conus.plot(color='lightgrey', edgecolor='black', ax=ax)\n", + "counties_conus.plot(color='darkgreen', edgecolor='gray', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "--- \n", + "### Challenge 2: CRS Management\n", + "\n", + "Now it's time to take a crack and managing the CRS of a new dataset. In the code cell below, write code to:\n", + "\n", + "1. Bring in the CA places data (`../data/census/Places/cb_2018_06_place_500k.zip`)\n", + "2. Check if the CRS is EPSG code 26910. If not, transform the CRS.\n", + "3. Plot the California counties and places together.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/04_more_data_more_maps.ipynb b/lessons/04_more_data_more_maps.ipynb new file mode 100644 index 0000000..f18b76b --- /dev/null +++ b/lessons/04_more_data_more_maps.ipynb @@ -0,0 +1,512 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# More Data, More Maps!\n", + "\n", + "Now that we know how to pull in data, check and transform Coordinate Reference Systems (CRS), and plot GeoDataFrames together, let's practice doing the same thing with other geometry types. In this notebook we'll be bringing in maps of bike boulevards and schools, which will prime us to think about spatial relationship questions.\n", + "\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Berkeley Bike Boulevards\n", + "\n", + "We're going to bring in data bike boulevards in Berkeley. Note two things that are different from our previous data:\n", + "\n", + "- We're importing a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) this time, and not a shapefile.\n", + "- We have a **line** geometry GeoDataFrame, while our county and states data had **polygon** geometries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds = gpd.read_file('../data/transportation/BerkeleyBikeBlvds.geojson')\n", + "bike_blvds.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As usual, we'll want to do our typical data exploration..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our bike boulevard data includes the following information:\n", + "\n", + "- `BB_STRNAM`: Bike boulevard street name\n", + "- `BB_STRID`: Bike boulevard street ID\n", + "- `BB_FRO`: Bike boulevard origin street\n", + "- `BB_TO`: Bike boulevard end street\n", + "- `BB_SECID`: Bike boulevard section id\n", + "- `DIR_`: Cardinal directions the bike boulevard runs\n", + "- `Status`: Status on whether the bike boulevard exists\n", + "- `ALT_bikeCA`: Unclear what this column indicates\n", + "- `Shape_len`: Length of the boulevard in meters \n", + "- `len_km`: Length of the boulevard in kilometers\n", + "- `geometry`: Our standard geometry column for GeoDataFrames" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's go ahead and check out the CRS that comes with the GeoDataFrame:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's tranform our CRS to NAD83 / UTM Zone 10N that we used in the last lesson." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10 = bike_blvds.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: \n", + "\n", + "The GeoDataFrame has 211 samples, indicating 211 lines. However, when we plot the GeoDataFrame, we only see 8 bike boulevards. How do we explain the discrepancy?\n", + "\n", + "You may find it helpful to look closely at the GeoDataFrame, or even plot subsets of it. You could even plot the entire GeoDataFrame, and then plot a subset of it on top of the original plot, but with a different color.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Alameda County Schools\n", + "\n", + "Alright! Now that we have our bike boulevard data squared away, we're going to bring in our Alameda County school data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "schools_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_df.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wait, does this look right? Always be sure to check the data that you import. Is it what you expect?\n", + "\n", + "This is not a GeoDataFrame! A couple of clues to figure that out are..\n", + "\n", + "1. We're pulling in a Comma Separated Value (CSV) file, which is not a geospatial data format.\n", + "2. There is no geometry column (although we do have latitude and longitude values)\n", + "\n", + "Although our school data is not starting off as a GeoDataFrame, we actually have the tools and information to make it one. Using the `gpd.GeoDataFrame` constructor, we can transform our plain DataFrame into a GeoDataFrame (specifying the geometry information and then the CRS)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf = gpd.GeoDataFrame(data=schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(schools_gdf.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Assign a CRS\n", + "schools_gdf.crs = \"epsg:4326\"\n", + "schools_gdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You'll notice that the shape is the same from what we had as a dataframe, just with the added `geometry` column." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "schools_gdf.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And with it being a GeoDataFrame, we can plot it as we did for our other data sets.\n", + "Notice that we have our first **point** geometry GeoDataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll want to transform the CRS, so that we can later plot it with our bike boulevard data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf_utm10 = schools_gdf.to_crs(\"epsg:26910\")\n", + "schools_gdf_utm10.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Lesson 2, we discussed that you can save out GeoDataFrames in multiple file formats. You could opt for a GeoJSON, a shapefile, etc. For point data sets, we have the additional option to save it out as a CSV since the geometry isn't complicated." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Even More Data!\n", + "\n", + "Let's play around with another GeoDataFrame with point geometry.\n", + "\n", + "In the code cell provided below, compose code to:\n", + "\n", + "1. Read in the parcel points data (`../data/parcels/parcel_pts_rand30pct.geojson`).\n", + "2. Transform the CRS to EPSG:26910.\n", + "3. Plot and customize as desired!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Map Overlays with Matplotlib\n", + "\n", + "No matter what geometry type we have for our GeoDataFrame, we can create overlay plots.\n", + "\n", + "Since we've already done the legwork of transforming our CRS, we can go ahead and plot them together." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "bike_blvds_utm10.plot(ax=ax, color='red')\n", + "schools_gdf_utm10.plot(ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to answer questions like *\"What schools are close to bike boulevards in Berkeley?\"*, the above plot isn't super helpful, since the extent covers all of Alameda county.\n", + "\n", + "Luckily, GeoDataFrames have an easy method to extract the minimium and maximum values for both x and y, so we can use that information to set the bounds for our plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x_min, y_min, x_max, y_max = bike_blvds.total_bounds\n", + "print(x_min, y_min, x_max, y_max)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using `set_xlim()` and `set_ylim()`, we can zoom in to see if there are schools proximal to the bike boulevards." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create figure and axis objects\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot geometries\n", + "bike_blvds_utm10.plot(ax=ax, color='red')\n", + "schools_gdf_utm10.plot(ax=ax)\n", + "# Set bounds\n", + "ax.set_xlim(x_min, x_max)\n", + "ax.set_ylim(y_min, y_max)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "In this lesson, we learned a several new skills:\n", + "- We Transformed an a-spatial dataframe into a geospatial one.\n", + " - `gpd.GeoDataFrame`\n", + "- We worked with point and line GeoDataFrames.\n", + "- We overlayed point and line GeoDataFrames.\n", + "- We limited the extent of a map.\n", + " - `total_bounds`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Overlay Mapping\n", + "\n", + "Let's take some time to practice reading in and reconciling new datasets, then mapping them together.\n", + "\n", + "In the code cell provided below, write code to:\n", + "\n", + "1. Import your Berkeley places shapefile (and don't forget to check/transform the crs!) (`../data/berkeley/BerkeleyCityLimits.shp`).\n", + "2. Overlay the parcel points on top of the bike boulevards.\n", + "3. Create the same plot but limit it to the extent of Berkeley city limits.\n", + "\n", + "***BONUS***: Add the Berkeley outline to your last plot!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A Teaser for Day 2...\n", + "\n", + "You may be wondering if and how we could make our maps more interesting and informative than what we've seen so far.\n", + "\n", + "To give you a tantalizing taste of Day 2, the answer is: Yes, we can! And here's how!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = schools_gdf_utm10.plot(column='Org',\n", + " cmap='winter', \n", + " markersize=35,\n", + " edgecolor='black',\n", + " linewidth=0.5,\n", + " alpha=1,\n", + " figsize=(9, 9),\n", + " legend=True)\n", + "ax.set_title('Public and Private Schools, Alameda County')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/05_data_driven_mapping.ipynb b/lessons/05_data_driven_mapping.ipynb new file mode 100644 index 0000000..a310b7b --- /dev/null +++ b/lessons/05_data_driven_mapping.ipynb @@ -0,0 +1,718 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data-driven Mapping\n", + "\n", + "*Data-driven mapping* refers to the process of using data values to determine the symbology of mapped features. Color, shape, and size are the three most common symbology types used in data-driven mapping.\n", + "Data-driven maps are often refered to as thematic maps.\n", + "\n", + "There are two primary types of maps used to convey data values:\n", + "\n", + "- **Choropleth maps**: set the color of areas (polygons) by data value.\n", + "- **Point symbol maps**: set the color or size of points by data value.\n", + "\n", + "We will discuss both of these types of maps in more detail in this lesson.\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Choropleth Maps\n", + "\n", + "Choropleth maps are the most common type of thematic map.\n", + "\n", + "Let's take a look at how we can use a GeoDataFrame to make a choropleth map. We'll start by reloading our counties dataset from Day 1." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a plain map of our polygons." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, for comparison, let's create a choropleth map by setting the color of the county based on the values in the population per square mile (`POP12_SQMI`) column." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.plot(column='POP12_SQMI', figsize=(10, 10))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's really the heart of it. To set the color of the features based on the values in a column, we set the `column` argument to the column name in the GeoDataFrame.\n", + "\n", + "> **Protip:** You can quickly right-click on the plot and save to a file or open in a new browser window.\n", + "\n", + "By default, map colors are linearly scaled to data values. This is called a `proportional color map`. The great thing about `proportional color maps` is that you can visualize the full range of data values.\n", + "\n", + "We can also add a legend, and even tweak its display." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.plot(column='POP12_SQMI', figsize=(10, 10), legend=True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's customize this even further!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.plot(column='POP12_SQMI',\n", + " figsize=(10, 10),\n", + " legend=True,\n", + " legend_kwds={'label': \"Population Density per mile$^2$\",\n", + " 'orientation': \"horizontal\"})\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Plotting Different Columns\n", + "\n", + "Why are we plotting `POP12_SQMI` instead of `POP2012`? What do each of the two columns tell us?\n", + "\n", + "Try plotting `POP2012`, instead. What does this look like?\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Note: Types of Color Maps\n", + "\n", + "There are a few different types of color maps (or color palettes), each of which has a different purpose:\n", + "\n", + "- *diverging*: a \"diverging\" set of colors are used so emphasize mid-range values as well as extremes.\n", + "- *sequential*: usually with a single color hue to emphasize changes in magnitude, where darker colors typically mean higher values\n", + "- *qualitative*: a diverse set of colors to identify categories and avoid implying quantitative significance.\n", + "\n", + "\n", + "\n", + "> **Pro-tip**: You can actually see all your color map options if you misspell what you put in `cmap` and try to run-in. Try it out!\n", + "\n", + "> **Pro-tip**: Sites like [ColorBrewer](https://colorbrewer2.org/#type=sequential&scheme=Blues&n=3) let you play around with different types of color maps. If you want to create your own, [The Python Graph Gallery](https://python-graph-gallery.com/python-colors/) is a way to see what your Python color options are." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Things to Keep in Mind When Creating Visualization\n", + "\n", + "### Types of Choropleth Data\n", + "\n", + "There are several types of quantitative data variables that can be used to create a choropleth map. Let's consider these in terms of the ACS data.\n", + "\n", + "- **Count**: counts, aggregated by feature\n", + " - *e.g. population within a census tract*\n", + "- **Density**: count, aggregated by feature, normalized by feature area\n", + " - *e.g. population per square mile within a census tract*\n", + "- **Proportions / Percentages**: value in a specific category divided by total value across in all categories\n", + " - *e.g. proportion of the tract population that is white compared to the total tract population*\n", + "- **Rates / Ratios**: value in one category divided by value in another category\n", + " - *e.g. homeowner-to-renter ratio would be calculated as the number of homeowners (c_owners/ c_renters)*\n", + " \n", + "### Interpretability of Plotted Data\n", + "\n", + "The goal of a choropleth map is to use color to visualize the spatial distribution of a quantitative variable.\n", + "\n", + "Brighter or richer colors are typically used to signify higher values.\n", + "\n", + "A big problem with choropleth maps is that our eyes are drawn to the color of larger areas, even if the values being mapped in one or more smaller areas are more important.\n", + "\n", + "We see just this sort of problem in our population-density map. \n", + "\n", + "***Why does our map not look that interesting?*** Take a look at the histogram below, then consider the following question." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.hist(counties['POP12_SQMI'], bins=40)\n", + "plt.title('Population Density per mile$^2$')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What county does that outlier represent? What problem does that pose?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classification Schemes\n", + "\n", + "Let's try to make our map more interpretable!\n", + "\n", + "The common alternative to a proportionial color map is to use a **classification scheme** to create a **graduated color map**. This is the standard way to create a **choropleth map**.\n", + "\n", + "A **classification scheme** is a method for binning continuous data values into 4-7 classes (the default is 5) and map those classes to a color palette. \n", + "\n", + "The commonly used classifications schemes include:\n", + "\n", + "- **Equal intervals**\n", + " - Equal-size data ranges (e.g., values within 0-10, 10-20, 20-30, etc.).\n", + " - Pros:\n", + " - Best for data spread across entire range of values.\n", + " - Easily understood by map readers.\n", + " - Cons:\n", + " - Avoid if you have highly skewed data or a few big outliers.\n", + " \n", + "- **Quantiles**\n", + " - Equal number of observations in each bin\n", + " - Pros:\n", + " - Looks nice, because it best spreads colors across full set of data values.\n", + " - Thus, it's often the default scheme for mapping software.\n", + " - Cons:\n", + " - Bins ranges based on the number of observations, not on the data values.\n", + " - Thus, different classes can have very similar or very different values.\n", + " \n", + "- **Natural breaks**\n", + " - Minimizes within-class variance and maximize between-class differences.\n", + " - Typical method is `'fisher-jenks'`.\n", + " - Pros:\n", + " - Great for exploratory data analysis, because it can identify natural groupings.\n", + " - Cons:\n", + " - Class breaks are best fit to one dataset, so the same bins can't always be used for multiple years.\n", + " \n", + "- **Manual** \n", + " - Classifications are user-defined.\n", + " - Pros: \n", + " - Especially useful if you want to slightly change the breaks produced by another scheme.\n", + " - Can be used as a fixed set of breaks to compare data over time.\n", + " - Cons:\n", + " - More work involved." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Classification Schemes and GeoDataFrames\n", + "\n", + "Classification schemes can be implemented using the geodataframe `plot` method by setting a value for the **scheme** argument. This requires the [pysal](https://pysal.org/) and [mapclassify](https://pysal.org/mapclassify) libraries to be installed in your Python environment. \n", + "\n", + "Here is a list of the `classification schemes` names that we will use:\n", + "\n", + "- `equalinterval`\n", + "- `quantiles`\n", + "- `fisherjenks`\n", + "- `naturalbreaks`\n", + "- `userdefined`.\n", + "\n", + "For more information about these classification schemes, see the [pysal mapclassifiers web page](https://pysal.org/mapclassify/api.html) or check out the help docs.\n", + "\n", + "Let's redo the last map using the `quantile` classification scheme." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot population density\n", + "fig, ax = plt.subplots(figsize=(10, 5)) \n", + "counties.plot(column='POP12_SQMI', \n", + " scheme=\"quantiles\",\n", + " legend=True,\n", + " ax=ax)\n", + "ax.set_title(\"Population Density per Square Mile\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is different about the code? About the output map?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### User Defined Classification Schemes\n", + "\n", + "You may get pretty close to your final map without being completely satisfied. In this case, you can manually define a classification scheme.\n", + "\n", + "Let's customize our map with a `user-defined` classification scheme where we manually set the breaks for the bins using the `classification_kwds` argument." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(14, 8)) \n", + "counties.plot(column='POP12_SQMI',\n", + " legend=True, \n", + " cmap=\"RdYlGn\", \n", + " scheme='user_defined', \n", + " classification_kwds={'bins': [50, 100, 200, 300, 400]},\n", + " ax=ax)\n", + "ax.set_title(\"Population Density per Square Mile\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we are customizing our plot, we can also edit our legend to specify and format the text so that it's easier to read.\n", + "\n", + "- We'll use `legend_labels_list` to customize the labels for group in the legend." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(14, 8)) \n", + "counties.plot(column='POP12_SQMI',\n", + " legend=True, \n", + " cmap=\"RdYlGn\", \n", + " scheme='user_defined', \n", + " classification_kwds={'bins': [50, 100, 200, 300, 400]},\n", + " ax=ax)\n", + "ax.set_title(\"Population Density per Square Mile\")\n", + "\n", + "# Create the labels for the legend\n", + "legend_labels_list = ['<50',\n", + " '50 to 100',\n", + " '100 to 200',\n", + " '200 to 300',\n", + " '300 to 400',\n", + " '>400']\n", + "\n", + "# Apply the labels to the plot\n", + "for idx, label in enumerate(ax.get_legend().get_texts()):\n", + " label.set_text(legend_labels_list[idx])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plotting a Ratio\n", + "\n", + "If we look at the columns in our dataset, we see we have a number of variables from which we can calculate proportions, rates, etc.\n", + "\n", + "Let's try that out:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(15, 6)) \n", + "# Plot percent Hispanic as choropleth\n", + "counties.plot(column=(100 * counties['HISPANIC'] / counties['POP2012']), \n", + " legend=True, \n", + " cmap=\"Blues\", \n", + " scheme='user_defined', \n", + " classification_kwds={'bins': [20, 40, 60, 80]},\n", + " edgecolor=\"grey\",\n", + " linewidth=0.5,\n", + " ax=ax)\n", + "\n", + "legend_labels_list = ['<20%',\n", + " '20% - 40%',\n", + " '40% - 60%',\n", + " '60% - 80%',\n", + " '80% - 100%']\n", + "\n", + "# Apply the labels to the plot\n", + "for idx, label in enumerate(ax.get_legend().get_texts()):\n", + " label.set_text(legend_labels_list[idx])\n", + "\n", + "ax.set_title(\"Percent Hispanic Population\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Reflecting on Chloropleth Maps\n", + "\n", + "1. What new options and operations have we added to our code?\n", + "2. Based on our code, what title would you give this plot to describe what it displays?\n", + "3. How many bins do we specify in the `legend_labels_list` object, and how many bins are in the map legend? Why?\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Point Maps\n", + "\n", + "Choropleth maps are great, but mapping using point symbols enables us to visualize our spatial data in another way. \n", + "\n", + "If you know both mapping methods you can expand how much information you can show in one map. \n", + "\n", + "For example, point maps are a great way to map `counts` because the varying sizes of areas are deemphasized.\n", + "\n", + "Let's read in some point data on Alameda County schools." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "schools_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We got it from a plain CSV file, so let's convert it to a GeoDataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf = gpd.GeoDataFrame(schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "schools_gdf.crs = \"epsg:4326\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can map it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.plot()\n", + "plt.title('Alameda County Schools')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Proportional Color Maps\n", + "\n", + "**Proportional color maps** linearly scale the `color` of a point symbol by the data values.\n", + "\n", + "Let's try this by creating a map of `API`. API stands for *Academic Performance Index*, which is a measurement system that looks at the performance of an individual school." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.plot(column=\"API\",\n", + " cmap=\"gist_heat\", \n", + " edgecolor=\"grey\",\n", + " figsize=(10, 8),\n", + " legend=True)\n", + "plt.title(\"Alameda County, School API scores\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you see that continuous color bar in the legend, you know that the mapping of data values to colors is not classified." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Graduated Color Maps\n", + "\n", + "We can also create **graduated color maps** by binning data values before associating them with colors. These are just like choropleth maps, except that the term \"choropleth\" is only used with polygon data. \n", + "\n", + "Graduated color maps use the same syntax as the choropleth maps above: you create them by setting a value for `scheme`. \n", + "\n", + "Below, we copy the code we used above to create a choropleth, but we change the name of the GeoDataFrame to use the point geometry." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize = (15, 6)) \n", + "\n", + "# Plot percent non-white with graduated colors\n", + "schools_gdf.plot(column='API', \n", + " legend=True, \n", + " cmap=\"Blues\",\n", + " scheme='user_defined', \n", + " classification_kwds={'bins':[0, 200, 400, 600, 800]},\n", + " edgecolor=\"grey\",\n", + " #markersize=60,\n", + " linewidth=0.5,\n", + " ax=ax)\n", + "\n", + "# Create a custom legend\n", + "legend_labels_list = ['0',\n", + " '< 200',\n", + " '< 400',\n", + " '< 600',\n", + " '< 800',\n", + " '>= 800']\n", + "\n", + "# Apply the labels to the plot\n", + "for idx, label in enumerate(ax.get_legend().get_texts()):\n", + " label.set_text(legend_labels_list[idx])\n", + "\n", + "ax.set_title(\"Alameda County, School API scores\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf['API'].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, the syntax for a choropleth and graduated color map is the same,\n", + "although some options only apply to one or the other.\n", + "\n", + "For example, uncomment the `markersize` parameter above to see how you can further customize a graduated color map." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Graduated Symbol Maps\n", + "\n", + "`Graduated symbol maps` are also a great method for mapping points. These are just like graduated color maps, but instead of associating symbol color with data values, they associate point size. Similarly, graduated symbol maps use `classification schemes` to set the size of point symbols. \n", + "\n", + "> We demonstrate how to make graduated symbol maps along with some other mapping techniques in the `Optional Mapping notebook` which we encourage you to explore on your own. (***Coming Soon***)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mapping Categorical Data\n", + "\n", + "Mapping categorical data, also called qualitative data, is a bit more straightforward. There is no need to scale or classify data values. The goal of the color map is to provide a contrasting set of colors so as to clearly delineate different categories. Here's a point-based example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.plot(column='Org', categorical=True, legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Data-Driven Mapping\n", + "\n", + "Point and polygons are not the only geometry-types that we can use in data-driven mapping!\n", + "\n", + "Run the next cell to load a dataset containing Berkeley's bicycle boulevards (which we'll be using more in the following notebook).\n", + "\n", + "Then, in the following cell, write your own code to:\n", + "\n", + "1. Plot the bike boulevards;\n", + "2. Color them by status (find the correct column in the head of the dataframe, displayed below);\n", + "3. Color them using a fitting, good-looking qualitative colormap that you choose from [The Matplotlib Colormap Reference](https://matplotlib.org/3.1.1/gallery/color/colormap_reference.html);\n", + "4. Set the line width to 5 (check the plot method's documentation to find the right argument for this!);\n", + "4. Add the argument `figsize=(15, 15)`, to make your map nice and big and visible!\n", + " \n", + "Using this map, answer the following questions:\n", + "\n", + "1. What does that map indicate about the status of the Berkeley bike boulevards?\n", + "2. What does that map indicate about the status of your Berkeley bike-boulevard *dataset*?\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/06_spatial_queries.ipynb b/lessons/06_spatial_queries.ipynb new file mode 100644 index 0000000..edfcf5d --- /dev/null +++ b/lessons/06_spatial_queries.ipynb @@ -0,0 +1,768 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Spatial Queries\n", + "\n", + "In spatial analysis, our goal is not just to make nice maps, but to actually run analyses that leverage the explicitly spatial nature of our data. The process of doing this is known as **spatial analysis**.\n", + "\n", + "To construct spatial analyses, we string together series of spatial operations in such a way that the end result answers our question of interest. There are many such spatial operations. These are known as **spatial queries**.\n", + "\n", + "These queries can be divided into:\n", + "\n", + "- **Measurement queries**\n", + " - What is feature A's **length**?\n", + " - What is feature A's **area**?\n", + " - What is feature A's **perimeter**?\n", + " - What is feature A's **distance** from feature B?\n", + "- **Relationship queries**\n", + " - Is feature A **within** feature B?\n", + " - Does feature A **intersect** with feature B?\n", + " - Does feature A **cross** feature B?\n", + " \n", + "Spatial queries are not limited to the examples we've shown here.\n", + "\n", + "We'll work through examples of each of those types of queries. Then, we'll see an example of a very common spatial analysis that is a conceptual amalgam of those two types: **proximity analysis**.\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load and Prep Some Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's read in our Census tracts data again:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts = gpd.read_file(\"zip://../data/census/Tracts/cb_2013_06_tract_500k.zip\")\n", + "census_tracts.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we'll grab just the Alameda Country tracts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac = census_tracts.loc[census_tracts['COUNTYFP'] == '001'].reset_index(drop=True)\n", + "census_tracts_ac.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Measurement Queries\n", + "\n", + "We'll start off with some simple measurement queries.\n", + "\n", + "For example, here's how we can get the areas of each of our Census tracts:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac.area" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Okay! We got...numbers?\n", + "\n", + "What do those numbers mean? What are our units? And if we're not sure, how might be find out?\n", + "\n", + "Let's take a look at our CRS:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ah-ha! We're working in an unprojected CRS, with units of decimal degrees.\n", + "\n", + "**When doing spatial analysis, we will almost always want to work in a projected CRS that has natural distance units, such as meters!**\n", + "\n", + "Time to project!\n", + "\n", + "As previously, we'll use UTM Zone 10N with a NAD83 data. This is a good choice for our region of interest." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10 = census_tracts_ac.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's try our area calculation again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.area" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That looks much more reasonable! What are our units, now?\n", + "\n", + "You may have noticed that our Census tracts already have an area column in them.\n", + "\n", + "Let's do a confidence check on our results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Calculate the area for the 0th feature\n", + "census_tracts_ac_utm10.area[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the area for the 0th feature according to its 'ALAND' attribute\n", + "census_tracts['ALAND'][0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check equivalence of the calculated areas and the 'ALAND' column\n", + "census_tracts_ac_utm10['ALAND'].values == census_tracts_ac_utm10.area" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What explains this disagreement? Are the calculated areas incorrect?\n", + "\n", + "We can also sum the area for Alameda county by adding `.sum()` to the end of our area calculation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.area.sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can actually look up how large Alameda County is to check our work. The county is 739 miles2, which is around 1,914,001,213 meters2. I'd say we're pretty close!\n", + "\n", + "As it turns out, we can similarly use another attribute to get the features' lengths.\n", + "\n", + "**NOTE**: In this case, given we're dealing with polygons, this is equivalent to getting the features' perimeters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.length" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "## Relationship Queries\n", + "\n", + "[Spatial relationship queries](https://en.wikipedia.org/wiki/Spatial_relation) consider how two geometries or sets of geometries relate to one another in space. \n", + "\n", + "\n", + "\n", + "Here is a list of the most commonly used GeoPandas methods to test spatial relationships:\n", + "\n", + "- [within](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.within)\n", + "- [contains](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.contains) (the inverse of `within`)\n", + "- [intersects](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.intersects)\n", + "\n", + "There several other GeoPandas spatial relationship predicates, but they are more complex to properly employ. For example, the following two operations only work with geometries that are completely aligned.\n", + "\n", + "- [touches](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.touches)\n", + "- [equals](http://geopandas.org/reference.html?highlight=distance#geopandas.GeoSeries.equals)\n", + "\n", + "All of these methods takes the form:\n", + "\n", + " Geoseries.(geometry)\n", + " \n", + "For example:\n", + "\n", + " Geoseries.contains(geometry)\n", + "\n", + "Let's load a new dataset to demonstrate these queries.\n", + "\n", + "This is a dataset containing all the protected areas (parks and the like) in California." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parks = gpd.read_file('../data/protected_areas/CPAD_2020a_Units.shp')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Does this need to be reprojected too?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parks.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Yes it does!\n", + "\n", + "Let's reproject it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parks_utm10 = parks.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One common use for spatial queries is for spatial subsetting of data.\n", + "\n", + "In our case, let's use `intersects` to find all of the parks that have land in Alameda County.\n", + "\n", + "But before we do that, let's take another look at our geometries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.geometry.type.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because we nave Census tracts, each of these rows is either a Polygon or a MultiPolygon. For our relationship query, we can actually simplify our geometry to be one polygon by using `unary_union`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts_ac_utm10.geometry.unary_union" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(census_tracts_ac_utm10.geometry.unary_union)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can go ahead and conduct our operation `intersects`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parks_in_ac = parks_utm10.intersects(census_tracts_ac_utm10.geometry.unary_union)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we scroll the resulting GeoDataFrame to the right, we'll see that the `COUNTY` column of our resulting subset gives us a good confidence check on our results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parks_in_ac" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pas_utm10[parks_in_ac].head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So does this overlay plot!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot Census tracts\n", + "ax = census_tracts_ac_utm10.plot(color='gray', figsize=(12, 16))\n", + "# Plot parks\n", + "parks_utm10[parks_in_ac].plot(ax=ax,\n", + " column='ACRES',\n", + " cmap='summer',\n", + " legend=True,\n", + " edgecolor='black',\n", + " linewidth=0.4, \n", + " alpha=0.8,\n", + " legend_kwds={'label': \"acres\", 'orientation': \"horizontal\"})\n", + "ax.set_title('Protected areas in Alameda County, colored by area', size=18)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Spatial Relationship Query\n", + "\n", + "Let's use a spatial relationship query to create a new dataset containing Berkeley schools!\n", + "\n", + "Run the next two cells to load datasets containing Berkeley's city boundary and Alameda County's\n", + "schools and to reproject them to EPSG: 26910.\n", + "\n", + "Then in the following cell, write your own code to:\n", + "\n", + "1. Subset the schools for only those `within` Berkeley.\n", + "2. Plot the Berkeley boundary and then the schools as an overlay map.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the Berkeley boundary\n", + "berkeley = gpd.read_file(\"../data/berkeley/BerkeleyCityLimits.shp\")\n", + "# Transform to EPSG:26910\n", + "berkeley_utm10 = berkeley.to_crs(\"epsg:26910\")\n", + "# Look at GeoDataFrame\n", + "berkeley_utm10.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the Alameda County schools CSV\n", + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "# Convert it to a GeoDataFrame\n", + "schools_gdf = gpd.GeoDataFrame(schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "# Define its unprojected (EPSG:4326) CRS\n", + "schools_gdf.crs = \"epsg:4326\"\n", + "# Transform to EPSG:26910\n", + "schools_gdf_utm10 = schools_gdf.to_crs(\"epsg:26910\")\n", + "# Look at GeoDataFrame\n", + "schools_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Proximity Analysis\n", + "\n", + "Now that we've seen the basic idea of spatial measurement and relationship queries, let's take a look at a common analysis that combines those concepts: **promximity analysis**.\n", + "\n", + "Proximity analysis seeks to identify all features in a focal feature set that are within some maximum distance of features in a reference feature set.\n", + "\n", + "A common workflow for this analysis is:\n", + "\n", + "1. Buffer (i.e. add a margin around) the reference dataset, out to the maximum distance.\n", + "2. Run a spatial relationship query to find all focal features that intersect (or are within) the buffer.\n", + "\n", + "Let's read in our bike boulevard data again. We'll find out which of our Berkeley schools are within a block's distance (200 m) of the boulevards." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds = gpd.read_file('../data/transportation/BerkeleyBikeBlvds.geojson')\n", + "bike_blvds.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course, we need to reproject the boulevards to our projected CRS." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10 = bike_blvds.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create our 200 meter bike boulevard buffers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_buf = bike_blvds_utm10.buffer(distance=200)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_buf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's overlay everything." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot Berkeley city boundary\n", + "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", + "# Plot buffer\n", + "bike_blvds_buf.plot(color='pink', ax=ax, alpha=0.5)\n", + "# Plot bicycle boulevards\n", + "bike_blvds_utm10.plot(ax=ax)\n", + "# Plot Berkeley schools\n", + "berkeley_schools.plot(color='purple',ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! Looks like we're all ready to run our intersection to complete the proximity analysis.\n", + "\n", + "**NOTE**: In order to subset with our buffers, we need to call the `unary_union` attribute of the buffer object. This gives us a single unified polygon, rather than a series of multipolygons representing buffers around each of the points in our multilines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_near_blvds = berkeley_schools.within(bike_blvds_buf.unary_union)\n", + "blvd_schools = berkeley_schools[schools_near_blvds]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's overlay again, to see if the schools we subsetted make sense." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot Berkeley city boundary\n", + "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", + "# Plot buffer\n", + "bike_blvds_buf.plot(color='pink', ax=ax, alpha=0.5)\n", + "# Plot bicycle boulevards\n", + "bike_blvds_utm10.plot(ax=ax)\n", + "# Plot Berkeley schools\n", + "berkeley_schools.plot(color='purple',ax=ax)\n", + "# Plot schools within buffer \n", + "blvd_schools.plot(color='yellow', markersize=50, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to find the shortest distance from one school to the bike boulevards, we can use the `distance` function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "berkeley_schools.distance(bike_blvds_utm10.unary_union)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Proximity Analysis\n", + "\n", + "Now it's your turn to try out a proximity analysis!\n", + "\n", + "Run the next cell to load BART-system data, reproject it to EPSG: 26910, and subset it to Berkeley.\n", + "\n", + "Then in the following cell, write your own code to find all schools within walking distance (1 km) of a BART station.\n", + "\n", + "As a reminder, let's break this into steps:\n", + "\n", + "1. Buffer your Berkeley BART stations to 1 km (**HINT**: remember your units!).\n", + "2. Use the schools' `within` attribute to check whether or not they're within the buffers (**HINT**: don't forget the `unary_union`!).\n", + "3. Subset the Berkeley schools using the object returned by your spatial relationship query.\n", + "4. As always, plot your results for a good visual check!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the BART stations from CSV\n", + "bart_stations = pd.read_csv('../data/transportation/bart.csv')\n", + "# Convert to a GeoDataFrame\n", + "bart_stations_gdf = gpd.GeoDataFrame(bart_stations, \n", + " geometry=gpd.points_from_xy(bart_stations.lon, bart_stations.lat))\n", + "# Define its unprojected (EPSG:4326) CRS\n", + "bart_stations_gdf.crs = \"epsg:4326\"\n", + "# Transform to UTM Zone 10 N (EPSG:26910)\n", + "bart_stations_gdf_utm10 = bart_stations_gdf.to_crs(\"epsg:26910\")\n", + "# Subset to Berkeley\n", + "berkeley_bart = bart_stations_gdf_utm10[bart_stations_gdf_utm10.within(berkeley_utm10.unary_union)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/07_joins_and_aggregation.ipynb b/lessons/07_joins_and_aggregation.ipynb new file mode 100644 index 0000000..362670b --- /dev/null +++ b/lessons/07_joins_and_aggregation.ipynb @@ -0,0 +1,897 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Attribute and Spatial Joins\n", + "\n", + "Now that we understand the logic of spatial relationship queries, let's take a look at another fundamental spatial operation that relies on them.\n", + "\n", + "This operation, called a **spatial join**, is the process by which we can leverage the spatial relationships between distinct datasets to merge their information into a new, synthetic dataset.\n", + "\n", + "This operation can be thought as the spatial equivalent of an **attribute join**, in which multiple tabular datasets can be merged by aligning matching values in a common column that they both contain. If you've done data wrangling in Python with pandas, you've probably performed an attribute join at some point!\n", + "\n", + "Thus, we'll start by developing an understanding of this operation first!\n", + "\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data Input and Preparation\n", + "\n", + "Let's read in a table of data from the US Census' 5-year American Community Survey (ACS5)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read in the ACS5 data for CA into a pandas DataFrame.\n", + "# Note: We force the FIPS_11_digit to be read in as a string to preserve any leading zeroes.\n", + "acs5_df = pd.read_csv(\"../data/census/ACS5yr/census_variables_CA.csv\", dtype={'FIPS_11_digit': str})\n", + "acs5_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Brief summary of the data**:\n", + "\n", + "Below is a table of the variables in this table. They were combined from \n", + "different ACS 5 year tables.\n", + "\n", + "A few things to note:\n", + "- Variables that start with `c_` are counts.\n", + "- Variables that start with `med_` are medians.\n", + "- Variables that end in `_moe` are margin of error estimates.\n", + "- Variables that start with `_p` are proportions calcuated from the counts divided by the table denominator (the total count for whom that variable was assessed).\n", + "\n", + "\n", + "| Variable | Description |\n", + "|-----------------|-------------------------------------------------|\n", + "|`c_race` |Total population \n", + "|`c_white` |Total white non-Latinx\n", + "| `c_black` | Total black and African American non-Latinx\n", + "| `c_asian` | Total Asian non-Latinx\n", + "| `c_latinx` | Total Latinx\n", + "| `state_fips` | State level FIPS code\n", + "| `county_fips` | County level FIPS code\n", + "| `tract_fips` |Tracts level FIPS code\n", + "| `med_rent` |Median rent\n", + "| `med_hhinc` |Median household income\n", + "| `c_tenants` |Total tenants\n", + "| `c_owners` |Total owners\n", + "| `c_renters` |Total renters\n", + "| `c_movers` |Total number of people who moved\n", + "| `c_stay` |Total number of people who stayed\n", + "| `c_movelocal` |Number of people who moved locally\n", + "| `c_movecounty` |Number of people who moved counties\n", + "| `c_movestate` | Number of people who moved states\n", + "| `c_moveabroad` |Number of people who moved abroad\n", + "| `c_commute` |Total number of commuters\n", + "| `c_car` | Number of commuters who use a car\n", + "| `c_carpool` | Number of commuters who carpool\n", + "| `c_transit` |Number of commuters who use public transit\n", + "| `c_bike` |Number of commuters who bike\n", + "| `c_walk` |Number of commuters who bike\n", + "| `year` | ACS data year\n", + "| `FIPS_11_digit` | 11-digit FIPS code\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're going to drop all of our `moe` columns by identifying all of those that end with `_moe`. We can do that in two steps, first by using `filter` to identify columns that contain the string `_moe`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "moe_cols = acs5_df.filter(like='_moe', axis=1).columns\n", + "moe_cols" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "acs5_df.drop(moe_cols, axis=1, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And lastly, let's grab only the rows for year 2018 and county FIPS code 1 (Alameda County)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "acs5_df_ac = acs5_df[(acs5_df['year'] == 2018) & (acs5_df['county_fips'] == 1)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's read in the Census tracts again!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_gdf = gpd.read_file(\"zip://../data/census/Tracts/cb_2013_06_tract_500k.zip\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_gdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Pull out the tracts within Alameda county\n", + "tracts_gdf_ac = tracts_gdf[tracts_gdf['COUNTYFP'] == '001']\n", + "tracts_gdf_ac.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Attribute Joins\n", + "\n", + "We just mapped the Census tracts. But what makes a map powerful is when you map the data associated with the locations within the map. So, let's take a stab at performing an attribute join between the GeoDataFrame of tracts, and the DataFrame of ACS data.\n", + "\n", + "Why do we need to do this? Let's reflect on the current DataFrames we're working with\n", + "\n", + "- `tracts_gdf_ac` contains polygon data in a GeoDataFrame. However, as we saw in the `head` of that dataset, there are no attributes of interest!\n", + "- `acs5_df_ac` contains 2018 ACS data from a CSV file (`census_variables_CA.csv`), imported and read in as a pandas DataFrame. However, they have no geometries!\n", + "\n", + "In order to map the ACS data we need to associate it with the tracts. Let's do that now, by joining the columns from `acs5_df_ac` to the columns of `tracts_gdf_ac` using a common column as the key for matching rows. This process is called an **attribute join**. There are several ways we can go about performing this join.\n", + "\n", + "\n", + "\n", + "The image above gives us a nice conceptual summary of the types of joins we could run.\n", + "\n", + "Before we begin, let's reflect on a couple points:\n", + "\n", + "1. In general, why might we choose one type of join over another?\n", + "2. In our case, do we want an inner, left, right, or outer (AKA 'full') join? \n", + "\n", + "> **NOTE**: You can read more about merging in `geopandas` [here](http://geopandas.org/mergingdata.html#attribute-joins).\n", + "\n", + "Now, let's perform the join! Let's take a look at the common column in both our DataFrames." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_gdf_ac['GEOID'].head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "acs5_df_ac['FIPS_11_digit'].head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that they are **not named the same thing**. \n", + " \n", + "That's okay! We just need to know that they contain the same information.\n", + "\n", + "Also note that they are **not in the same order**. \n", + " \n", + "That's not only okay... that's the point! If they were in the same order already then we could just join them side by side, without having Python find and line up the matching rows from each!\n", + "\n", + "Let's do a `left` join to keep all of the Census tracts in Alameda County and only the ACS data for those tracts.\n", + "\n", + "> **NOTE**: To figure out how to do this we could always take a peek at the documentation by calling\n", + "`?tracts_gdf_ac.merge`, or `help(tracts_gdf_ac)`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Left join keeps all tracts and the ACS data for those tracts\n", + "tracts_acs_gdf_ac = tracts_gdf_ac.merge(acs5_df_ac,\n", + " left_on='GEOID',\n", + " right_on='FIPS_11_digit',\n", + " how='left')\n", + "tracts_acs_gdf_ac.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check that we have all the variables we have in our dataset now." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "list(tracts_acs_gdf_ac.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confidence check: in this case, how many rows and columns should we have?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"Rows and columns in the Alameda County Census tract GeoDataFrame: {tracts_gdf_ac.shape}\")\n", + "print(f\"Row and columns in the ACS5 2018 data: {acs5_df_ac.shape}\")\n", + "print(f\"Rows and columns in the Alameda County Census tract GeoDataFrame joined to the ACS data: {tracts_acs_gdf_ac.shape}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's save out our merged data so we can use it in the final notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_acs_gdf_ac.to_file('../data/outdata/tracts_acs_gdf_ac.json', driver='GeoJSON')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Choropleth Map\n", + "\n", + "We can now make choropleth maps using our attribute-joined GeoDataFrame. Go ahead and pick one variable to color the map, then map it. You can go back to lesson 5 if you need a refresher on how to make this!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spatial Joins\n", + "\n", + "Great! We've wrapped our heads around the concept of an attribute join. Now, let's extend that concept to its spatially explicit equivalent: the **spatial join**!\n", + "\n", + "To start, we'll read in some other data: The Alameda County schools data. Then, we'll work with that data and our `tracts_acs_gdf_ac` data together." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Import schools data\n", + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "# Convert to GeoDataFrame\n", + "schools_gdf = gpd.GeoDataFrame(schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "# Convert CRS\n", + "schools_gdf.crs = \"epsg:4326\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check if we have to transform the schools to match the `tracts_acs_gdf_ac` CRS." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f'schools_gdf CRS: {schools_gdf.crs}')\n", + "print(f'tracts_acs_gdf_ac CRS: {tracts_acs_gdf_ac.crs}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Yes, we do! Let's do that.\n", + "\n", + "Note that, we didn't even necessarily have to check whether they different. The syntax below will work in all cases, and allows us not to have to type out the EPSG code ourselves!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf = schools_gdf.to_crs(tracts_acs_gdf_ac.crs)\n", + "\n", + "print(f'schools_gdf CRS: {schools_gdf.crs}')\n", + "print(f'tracts_acs_gdf_ac CRS: {tracts_acs_gdf_ac.crs}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're ready to combine the datasets in an analysis. In this case, we want to get data from the Census tract within which each school is located.\n", + "\n", + "How can we do that? The two datasets don't share a common column to use for a join." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_acs_gdf_ac.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, they do have a shared relationship by way of space! \n", + "\n", + "So, we'll use a spatial relationship query to figure out the Census tract that each school is in, then associate the tract's data with that school (as additional data in the school's row). This is a **spatial join**!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Census Tract Data Associated with Each School\n", + "\n", + "In this case, let's say we're interested in the relationship between the median household income in a Census tract (`tracts_acs_gdf_ac['med_hhinc']`) and a school's Academic Performance Index (`schools_gdf['API']`).\n", + "\n", + "To start, let's take a look at the distributions of our two variables of interest." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_acs_gdf_ac.hist('med_hhinc')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf.hist('API')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oh, right! There are schools with no reported APIs (i.e. API == 0)! Let's drop those. We'll do this in the interest of pedagogy for this workshop, but it's also worth keeping in mind: what do we lose by dropping those schools? How might that impact the results of our analysis?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf_api = schools_gdf[schools_gdf['API'] > 0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf_api.hist('API')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, maybe we think there ought to be some correlation between the two variables? As a first pass at this possibility, let's overlay the two datasets, coloring each one by its variable of interest. This should give us a sense of whether or not similar values co-occur." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = tracts_acs_gdf_ac.plot(column='med_hhinc',\n", + " cmap='cividis',\n", + " figsize=(18, 18),\n", + " legend=True,\n", + " legend_kwds={'label': \"median household income ($)\",\n", + " 'orientation': \"horizontal\"})\n", + "schools_gdf_api.plot(column='API',\n", + " cmap='cividis',\n", + " edgecolor='black',\n", + " alpha=1,\n", + " ax=ax,\n", + " legend=True,\n", + " legend_kwds={'label': \"API\",\n", + " 'orientation': \"horizontal\"})\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Spatially Joining the Schools and Census Tracts\n", + "\n", + "Though it's hard to say for sure, it certainly looks possible. It would be ideal to scatter the variables! But in order to do that, we need to know the median household income in each school's tract, which means we definitely need our **spatial join**!\n", + "\n", + "We'll first take a look at the documentation for the spatial join function, `gpd.sjoin`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "help(gpd.sjoin)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looks like the key arguments to consider are:\n", + "\n", + "- The two GeoDataFrames (**`left_df`** and **`right_df`**);\n", + "- The type of join to run (**`how`**), which can take the values `left`, `right`, or `inner`;\n", + "- The spatial relationship query to use (**`op`**).\n", + "\n", + "A couple things to note:\n", + "\n", + "- By default, `sjoin` is an inner join. It keeps the data from both GeoDataFrames only where the locations spatially intersect.\n", + "- By default, `sjoin` maintains the geometry of first geodataframe input to the operation. \n", + "\n", + "So, before we move on, let's think about how we'll conduct this analysis.\n", + "\n", + "1. Which GeoDataFrame are we joining onto which (i.e. which one is getting the other one's data added to it)?\n", + "2. What happened to 'outer' as a join type?\n", + "3. Thus, in our operation, which GeoDataFrame should be the `left_df`, which should be the `right_df`, and `how` do we want our join to run?\n", + "\n", + "Alright! Let's run our join!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_jointracts = gpd.sjoin(left_df=schools_gdf_api,\n", + " right_df=tracts_acs_gdf_ac,\n", + " how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_jointracts.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Confidence Checks\n", + "\n", + "As always, we want to perform a confidence check on our intermediate result before we rush ahead.\n", + "\n", + "One way to do that is to introspect the structure of the result object a bit.\n", + "\n", + "1. What type of object should that have given us?\n", + "2. What should the dimensions of that object be, and why?\n", + "3. If we wanted a visual check of our results (i.e. a plot or map), what could we do?\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Confirmed! The output of the `sjoin` operation is a GeoDataFrame (`schools_jointracts`) with:\n", + "- A row for each school that is located inside a census tract (all of them are).\n", + "- The **point geometry** of that school.\n", + "- All of the attribute data columns (non-geometry columns) from both input GeoDataFrames.\n", + "\n", + "Let's also take a look at an overlay map of the schools on the tracts. If we color the schools categorically by their tracts IDs, then we should see that all schools within a given tract polygon are the same color.\n", + "\n", + "We're only going to plot a few of the schools, because we don't have enough colors on the color wheel for each unique tract:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = tracts_acs_gdf_ac.plot(color='white',\n", + " edgecolor='black',\n", + " figsize=(18, 18))\n", + "schools_jointracts.iloc[:16].plot(column='GEOID', ax=ax, legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Assessing the Relationship between Median Household Income and API\n", + "\n", + "Fantastic! That looks right!\n", + "\n", + "Now, we can create that scatter plot we were thinking about!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(6, 6))\n", + "ax.scatter(schools_jointracts.med_hhinc, schools_jointracts.API)\n", + "ax.set_xlabel('Median Household Income (Dollars)')\n", + "ax.set_ylabel('Academic Performance Index')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wow! Just as we suspected based on our overlay map,\n", + "there's a pretty obvious, strong, and positive correlation\n", + "between median household income in a school's tract\n", + "and the school's API." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Aggregation\n", + "\n", + "We just saw that a spatial join in one way to leverage the spatial relationship between two datasets in order to create a new dataset,\n", + "\n", + "An **aggregation** is another way we can generate new data from this relationship. In this case, for each feature in one dataset we find all the features in another dataset that satisfy our chosen spatial relationship query with it (e.g. within, intersects), then aggregate them using some summary function (e.g. count, mean)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Calculating Aggregated School Counts\n", + "\n", + "Let's take this for a spin with our data. We'll count all the schools within each Census tract.\n", + "\n", + "Note that we've already done the first step of spatially joining the data from the aggregating features\n", + "(the tracts) onto the data to be aggregated (our schools).\n", + "\n", + "The next step is to group our GeoDataFrame by Census tract, and then summarize our data by group. We do this using the DataFrame method `groupy`.\n", + "\n", + "To get the correct count, lets rejoin our schools on our tracts, this time keeping all schools (not just those with positive APIs, as before)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_jointracts = gpd.sjoin(schools_gdf, tracts_acs_gdf_ac, how='left')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's perform the `groupby` operation.\n", + "\n", + "When aggregating by count, we'll get the counts for every column, which will be the same. So, we'll just select the `GEOID` and `Site` columns at the end." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_countsbytract = schools_jointracts.groupby('GEOID', as_index=False).count()[['GEOID','Site']]\n", + "print(f\"Counts, rows and columns: {schools_countsbytract.shape}\")\n", + "print(f\"Tracts, rows and columns: {tracts_acs_gdf_ac.shape}\")\n", + "\n", + "# Take a look at the data\n", + "schools_countsbytract.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Obtaining Tract Polygons with School Counts\n", + "\n", + "The above `groupby` and `count` operations give us the counts we wanted.\n", + "\n", + "- We have 263 (of 361) Census tracts that contain at least one school.\n", + "- We have the number of schools within each of those tracts.\n", + "\n", + "But, the output of `groupby` is a plain DataFrame, and not a GeoDataFrame.\n", + "\n", + "If we want a GeoDataFrame, then we have two options:\n", + "\n", + "1. We could join the `groupby` output to `tracts_acs_gdf_ac` by the attribute `GEOID`.\n", + "2. We could start over, using the GeoDataFrame `dissolve` method, which we can think of as a spatial `groupby`.\n", + "\n", + "Since we already know how to do an attribute join, we'll do the `dissolve`!\n", + "\n", + "First, let's run a new spatial join." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_joinschools = gpd.sjoin(left_df=schools_gdf,\n", + " right_df=tracts_acs_gdf_ac,\n", + " how='right')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_joinschools.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's run the dissolve!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_schoolcounts = tracts_joinschools[['GEOID', 'Site', 'geometry']].dissolve(by='GEOID', aggfunc='count')\n", + "print(f\"Counts, rows and columns: {tracts_schoolcounts.shape}\")\n", + "\n", + "tracts_schoolcounts.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nice! Let's break that down.\n", + "\n", + "- The `dissolve` operation requires a geometry column and a grouping column (in our case, `'GEOID'`). Any geometries within the **same group** will be dissolved if they have the same geometry or nested geometries. \n", + " \n", + "- The `aggfunc`, or aggregation function, of the dissolve operation will be applied to all numeric columns in the input geodataframe (unless the function is `count` in which case it will count rows). \n", + "\n", + "Check out the Geopandas documentation on [dissolve](https://geopandas.org/aggregation_with_dissolve.html?highlight=dissolve) for more information.\n", + "\n", + "Now, let' reflect:\n", + "\n", + "1. Above, we selected three columns from the input GeoDataFrame to create a subset as input to the dissolve operation. Why?\n", + "2. Why did we run a new spatial join? What would have happened if we had used the `schools_jointracts` object instead?\n", + "3. What explains the dimensions of the new object (361, 2)?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mapping the Spatial Join Output\n", + "\n", + "Because our `sjoin` plus `dissolve` pipeline outputs a GeoDataFrame, we can now easily map the school count by Census tract!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize = (14, 8)) \n", + "\n", + "# Display the output of our spatial join\n", + "tracts_schoolcounts.plot(ax=ax,\n", + " column='Site', \n", + " scheme=\"user_defined\",\n", + " classification_kwds={'bins': list(range(9))},\n", + " cmap=\"PuRd_r\",\n", + " edgecolor=\"grey\",\n", + " legend=True, \n", + " legend_kwds={'title': 'Number of schools'})\n", + "schools_gdf.plot(ax=ax,\n", + " color='cyan',\n", + " markersize=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Aggregation\n", + "\n", + "What is the mean API of each Census tract?\n", + "\n", + "As we mentioned, the spatial aggregation workflow that we just put together above could have been used not to generate a new count variable, but also to generate any other new variable the results from calling an aggregation function on an attribute column.\n", + "\n", + "In this case, we want to calculate and map the mean API of the schools in each Census tract.\n", + "\n", + "Copy and paste code from above where useful, then tweak and/or add to that code. Do the following:\n", + "\n", + "1. Join the schools onto the tracts (**HINT**: make sure to decide whether or not you want to include schools with API = 0!).\n", + "2. Dissolves that joined object by the tract IDs, giving you a new GeoDataFrame with each tract's mean API (**HINT**: because this is now a different calculation, different problems may arise and need handling!).\n", + "3. Plot the tracts, colored by API scores (**HINT**: overlay the schools points again, visualizing them in a way that will help you visually check your results!).\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# YOUR CODE HERE\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/lessons/08_putting_it_all_together.ipynb b/lessons/08_putting_it_all_together.ipynb new file mode 100644 index 0000000..992ee58 --- /dev/null +++ b/lessons/08_putting_it_all_together.ipynb @@ -0,0 +1,287 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Putting it All Together\n", + "\n", + "For this last lesson, we'll practice going through a full workflow!\n", + "\n", + "We'll answer the question:\n", + "\n", + "## **What is the total grocery-store sales volume of each Census tract?**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The Workflow\n", + "\n", + "Here's a set of steps that we will implement in the labeled cells below:\n", + "\n", + "**Importing Datasets**\n", + "\n", + "- Read in the joined tracts/ACS data\n", + "- Read the grocery data CSV into a pandas DataFrame (it lives at `'../data/other/ca_grocery_stores_2019_wgs84.csv`).\n", + "- Convert it to a GeoDataFrame.\n", + "- Define its CRS (EPSG:4326).\n", + "- Transform it to match the CRS of `tracts_acs_gdf_ac`.\n", + "- Examine the transformed GeoDataFrame\n", + "\n", + "**Spatial Join and Dissolve**\n", + "\n", + "- Join the two datasets in such a way that you can then...\n", + "- Group by tract and calculate the total grocery-store sales volume.\n", + "- Don't forget to check the dimensions, contents, and any other relevant aspects of your results.\n", + "\n", + "**Plot and Review**\n", + "\n", + "- Plot the tracts, coloring them by total grocery-store sales volume.\n", + "- Plot the grocery stores on top.\n", + "- Bonus points for devising a nice visualization scheme that helps you heuristically check your results!\n", + "\n", + "**We've written out some of the code for you, but you'll need to replace the ellipses with the correct\n", + "content.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Datasets\n", + "\n", + "We first need to prepare our data by loading the joined tracts/ACS data and grocery data, and conduct our usual steps to make there they have the same CRS.\n", + "\n", + "- Read in the joined tracts/ACS data\n", + "- Read the grocery data CSV into a pandas DataFrame (it lives at `'../data/other/ca_grocery_stores_2019_wgs84.csv`).\n", + "- Convert it to a GeoDataFrame.\n", + "- Define its CRS (EPSG:4326).\n", + "- Transform it to match the CRS of `tracts_acs_gdf_ac`.\n", + "- Examine the transformed GeoDataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read in the joined tracts/ACS data\n", + "tracts_acs_gdf_ac = gpd.read_file(...)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read the grocery data CSV into a pandas DataFrame\n", + "grocery_pts_df = pd.read_csv(...)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert it to a GeoDataFrame\n", + "grocery_pts_gdf = gpd.GeoDataFrame(grocery_pts_df, \n", + " geometry=gpd.points_from_xy(..., ...))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define its CRS\n", + "# Use EPSG:4326\n", + "grocery_pts_gdf.crs = ..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform it to match the CRS of tracts_acs_gdf_ac\n", + "grocery_pts_gdf.to_crs(..., inplace=...)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Examine transformed GeoDataFrame\n", + "grocery_pts_gdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spatial Join and Dissolve\n", + "\n", + "Now that we have our data and they're in the same projection, we're going to conduct an *attribute join* to bring together the two datasets. From there we'll be able to actually *aggregate* our data to count the total sales volume.\n", + "\n", + "Complete the following steps:\n", + "\n", + "- Join the two datasets in such a way that you can then...\n", + "- Group by tract and calculate the total grocery-store sales volume.\n", + "- Don't forget to check the dimensions, contents, and any other relevant aspects of your results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Join the two datasets\n", + "tracts_joingrocery = gpd.sjoin(..., ..., how=...)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Group by tract and calculate the total grocery-store sales volume\n", + "tracts_totsalesvol = tracts_joingrocery[['GEOID','geometry','SALESVOL']].dissolve(by=...,\n", + " aggfunc=...,\n", + " as_index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Don't forget to check the dimensions, contents, and any other relevant aspects of your results\n", + "print(f'Dimensions of result: {...}')\n", + "print(f'Dimesions of Census tracts: {...}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check the result\n", + "tracts_totsalesvol.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot and Review\n", + "\n", + "With any type of geospatial analysis you do, it's always nice to plot and visualize your results to check your work and start to understand the full story of your analysis.\n", + "\n", + "Complete the following:\n", + "\n", + "- Plot the tracts, coloring them by total grocery-store sales volume.\n", + "- Plot the grocery stores on top.\n", + "- Bonus points for devising a nice visualization scheme that helps you heuristically check your results!\n", + "\n", + "We've broken these steps into three individual cells," + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Subset the stores for only those within our tracts, to keep map within region of interest\n", + "grocery_pts_gdf_ac = grocery_pts_gdf[...]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the figure and axes\n", + "fig, ax = plt.subplots(figsize = (20,20)) \n", + "# Plot the tracts, coloring by total SALESVOL\n", + "tracts_totsalesvol.plot(ax=ax,\n", + " column=...,\n", + " scheme=\"quantiles\",\n", + " cmap=\"autumn\",\n", + " edgecolor=\"grey\",\n", + " legend=True,\n", + " legend_kwds={'title': ...})\n", + "\n", + "# Add the grocery stores, coloring by SALESVOL, for a visual check\n", + "grocery_pts_gdf_ac.plot(ax=ax,\n", + " column=...,\n", + " cmap=...,\n", + " linewidth=...,\n", + " markersize=...,\n", + " legend=True,\n", + " legend_kwds={'label': ...,\n", + " 'orientation': 'horizontal',\n", + " 'pad': 0.05})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# You Made It! Thanks for Joining Us for Python Geospatial Fundamentals!\n", + "\n", + "" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/09_ON_YOUR_OWN_A_Full_Workflow.ipynb b/lessons/09_on_your_own_a_full_workflow.ipynb similarity index 100% rename from 09_ON_YOUR_OWN_A_Full_Workflow.ipynb rename to lessons/09_on_your_own_a_full_workflow.ipynb diff --git a/10_OPTIONAL_Fetching_Data.ipynb b/lessons/10_optional_fetching_data.ipynb similarity index 100% rename from 10_OPTIONAL_Fetching_Data.ipynb rename to lessons/10_optional_fetching_data.ipynb diff --git a/11_OPTIONAL_Basemap_with_Contextily.ipynb b/lessons/11_optional_basemap_with_contextily.ipynb similarity index 100% rename from 11_OPTIONAL_Basemap_with_Contextily.ipynb rename to lessons/11_optional_basemap_with_contextily.ipynb diff --git a/12_OPTIONAL_Interactive_Mapping_with_Folium.ipynb b/lessons/12_optional_interactive_mapping_with_folium.ipynb similarity index 100% rename from 12_OPTIONAL_Interactive_Mapping_with_Folium.ipynb rename to lessons/12_optional_interactive_mapping_with_folium.ipynb diff --git a/13_OPTIONAL_geocoding.ipynb b/lessons/13_optional_geocoding.ipynb similarity index 100% rename from 13_OPTIONAL_geocoding.ipynb rename to lessons/13_optional_geocoding.ipynb diff --git a/14_OPTIONAL_Plotting_and_Mapping_with_Altair.ipynb b/lessons/14_optional_plotting_and_mapping_with_altair.ipynb similarity index 100% rename from 14_OPTIONAL_Plotting_and_Mapping_with_Altair.ipynb rename to lessons/14_optional_plotting_and_mapping_with_altair.ipynb diff --git a/15_OPTIONAL_Voronoi_Tessellation.ipynb b/lessons/15_optional_voronoi_tessellations.ipynb similarity index 100% rename from 15_OPTIONAL_Voronoi_Tessellation.ipynb rename to lessons/15_optional_voronoi_tessellations.ipynb diff --git a/16_OPTIONAL_Introduction_to_Raster_Data.ipynb b/lessons/16_optional_raster_data.ipynb similarity index 100% rename from 16_OPTIONAL_Introduction_to_Raster_Data.ipynb rename to lessons/16_optional_raster_data.ipynb diff --git a/99_Questions_Answers.md b/lessons/99_Questions_Answers.md similarity index 100% rename from 99_Questions_Answers.md rename to lessons/99_Questions_Answers.md diff --git a/older_versions.zip b/older_versions.zip deleted file mode 100644 index 395f5f2..0000000 Binary files a/older_versions.zip and /dev/null differ diff --git a/outdata/.DS_Store b/outdata/.DS_Store deleted file mode 100644 index 4898a3f..0000000 Binary files a/outdata/.DS_Store and /dev/null differ diff --git a/requirements.txt b/requirements.txt index bd430ef..7b5c26f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ -geopandas==0.3.0 -matplotlib==2.2.3 -numpy==1.14.5 -pandas==0.23.4 -numpy==1.14.5 -shapely==1.6.4 +numpy>=1.22.0 +pandas>=1.3.0 +matplotlib>=3.4.0 +geopandas>=0.10.0 +shapely>=1.8.0 diff --git a/solutions/02_introduction_to_geopandas_solutions.ipynb b/solutions/02_introduction_to_geopandas_solutions.ipynb new file mode 100644 index 0000000..d33225b --- /dev/null +++ b/solutions/02_introduction_to_geopandas_solutions.ipynb @@ -0,0 +1,151 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to GeoPandas Solutions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read in the counties shapefile\n", + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alameda_county = counties.loc[counties['NAME'] == 'Alameda'].copy().reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1\n", + "\n", + "What kind of geometry would a GeoDataFrame containing roads have? What about one that includes landmarks in the San Francisco Bay Area?\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- A GeoDataFrame containing roads would likely contain lines.\n", + "- A GeoDataFrame containing landmarks would likely contain points, if it were identifying the locations of the landmarks. However, it could also contain polygons if, say, it gave the boundaries of the landmarks." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: IO, Manipulation, and Mapping\n", + "\n", + "Now, you'll get a chance to practice the operations we learned above.\n", + "\n", + "In the following cell, compose code to:\n", + "\n", + "1. Read in the California places data (`../data/census/Places/cb_2018_06_place_500k.zip`).\n", + "2. Subset \"Berkeley\" from the data.\n", + "3. Plot, and customize as desired.\n", + "4. Save out as a shapefile (`berkeley_places.shp`).\n", + "\n", + "*Note: pulling in a zipped shapefile has the same syntax as just pulling in a shapefile. The only difference is that insead of just putting in the filepath, you'll want to write `zip://../data/census/Places/cb_2018_06_place_500k.zip`*\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Step 1: Read in the California places data\n", + "california_places = gpd.read_file('zip://../data/census/Places/cb_2018_06_place_500k.zip')\n", + "california_places.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Step 2: Subset the data to Berkeley\n", + "berkeley_places = california_places[california_places['NAME'] == 'Berkeley'].copy().reset_index(drop=True)\n", + "berkeley_places.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Step 3: Plot and customize\\n\",\n", + "berkeley_places.plot(edgecolor='grey', color='lightgreen')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Step 4: Save to a shapefile\n", + "berkeley_places.to_file(\"../data/outdata/berkeley_places.shp\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/03_crs_map_projections_solutions.ipynb b/solutions/03_crs_map_projections_solutions.ipynb new file mode 100644 index 0000000..be52836 --- /dev/null +++ b/solutions/03_crs_map_projections_solutions.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Coordinate Reference Systems (CRS) and Map Projections Solutions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')\n", + "states = gpd.read_file('../data/us_states/us_states.shp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define list of non-contiguous states\n", + "non_contiguous_us = ['American Samoa',\n", + " 'Puerto Rico',\n", + " 'Guam',\n", + " 'Commonwealth of the Northern Mariana Islands',\n", + " 'United States Virgin Islands',\n", + " 'Alaska',\n", + " 'Hawaii']\n", + "# Subselect GeoDataFrame according to above list\n", + "states_limited = states.loc[~states['STATE'].isin(non_contiguous_us)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Reflecting on CRSs\n", + "\n", + "1. What two key differences do you see between the two plots above?\n", + "2. Do either of these plotted USA maps look good?\n", + "3. Try looking at the common CRS EPSG codes above and see if any of them look better for the whole country than what we have now. Then try transforming the states data to the CRS that you think would be best and plotting it. (Use the code cell two cells below.)\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. The UTM projection exhibits some curvature: it seems to be closer to the 3-D representation, relative to WGS 84 CRS.\n", + "2. The first one looks a little warped, while the second one seems to have better proportions for each state. However, the second one is oriented differently than we typically expect US maps to be." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's use EPSG:5070, which is supposed to be good for CONUS\n", + "states_limited_conus = states_limited.to_crs(\"epsg:5070\")\n", + "states_limited_conus.plot()\n", + "plt.axis('square')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "--- \n", + "### Challenge 2: CRS Management\n", + "\n", + "Now it's time to take a crack and managing the CRS of a new dataset. In the code cell below, write code to:\n", + "\n", + "1. Bring in the CA places data (`../data/census/Places/cb_2018_06_place_500k.zip`)\n", + "2. Check if the CRS is EPSG code 26910. If not, transform the CRS.\n", + "3. Plot the California counties and places together.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Bring in the CA places data\n", + "california_places = gpd.read_file('zip://../data/census/Places/cb_2018_06_place_500k.zip')\n", + "california_places.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 2. Check and transform the CRS if needed\n", + "california_places.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "california_places_utm10 = california_places.to_crs(\"epsg:26910\")\n", + "california_places_utm10.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties_utm10 = counties.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true, + "tags": [] + }, + "outputs": [], + "source": [ + "# 3. Plot the California counties and places together\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "counties_utm10.plot(color='lightgrey', ax=ax)\n", + "california_places_utm10.plot(color='purple', ax=ax)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/04_more_data_more_maps_solutions.ipynb b/solutions/04_more_data_more_maps_solutions.ipynb new file mode 100644 index 0000000..3416f4d --- /dev/null +++ b/solutions/04_more_data_more_maps_solutions.ipynb @@ -0,0 +1,275 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# More Data, More Maps Solutions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds = gpd.read_file('../data/transportation/BerkeleyBikeBlvds.geojson')\n", + "bike_blvds_utm10 = bike_blvds.to_crs(\"epsg:26910\")\n", + "\n", + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "schools_gdf = gpd.GeoDataFrame(data=schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "schools_gdf_utm10 = schools_gdf.to_crs(\"epsg:26910\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: \n", + "\n", + "The GeoDataFrame has 211 samples, indicating 211 lines. However, when we plot the GeoDataFrame, we only see 8 bike boulevards. How do we explain the discrepancy?\n", + "\n", + "You may find it helpful to look closely at the GeoDataFrame, or even plot subsets of it. You could even plot the entire GeoDataFrame, and then plot a subset of it on top of the original plot, but with a different color.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds_utm10.head(50)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# We'll plot individual street names separately, with different colors\n", + "fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n", + "bike_blvds_utm10.plot(ax=ax)\n", + "bike_blvds_utm10.iloc[:3].plot(color='orange', ax=ax)\n", + "bike_blvds_utm10.iloc[3:4].plot(color='red', ax=ax)\n", + "bike_blvds_utm10.iloc[5:43].plot(color='brown', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, we can see that a single \"bike boulevard\" is actually composed of different streets. Furthermore, the individual samples are broken down across blocks. So, the one bicycle boulevard we're highlighting above is broken down block-by-block in the samples of the GeoDataFrame." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Even More Data!\n", + "\n", + "Let's play around with another GeoDataFrame with point geometry.\n", + "\n", + "In the code cell provided below, compose code to:\n", + "\n", + "1. Read in the parcel points data (`../data/parcels/parcel_pts_rand30pct.geojson`).\n", + "2. Transform the CRS to EPSG:26910.\n", + "3. Plot and customize as desired!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Read in the parcel points data\n", + "parcel_pts_gdf = gpd.read_file('../data/parcels/parcel_pts_rand30pct.geojson')\n", + "parcel_pts_gdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Take a look at existing CRS\n", + "parcel_pts_gdf.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 2. Transform the CRS to EPSG:26910.\n", + "parcel_pts_gdf_utm10 = parcel_pts_gdf.to_crs(\"epsg:26910\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 3. Plot and customize!\n", + "parcel_pts_gdf.plot(markersize=5,\n", + " color='violet',\n", + " edgecolor='black',\n", + " linewidth=0.5,\n", + " alpha=0.3,\n", + " figsize=(6, 6))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parcel_pts_gdf_utm10.plot(markersize=5,\n", + " color='limegreen',\n", + " edgecolor='black',\n", + " linewidth=0.5,\n", + " alpha=0.3,\n", + " figsize=(6, 6))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Overlay Mapping\n", + "\n", + "Let's take some time to practice reading in and reconciling new datasets, then mapping them together.\n", + "\n", + "In the code cell provided below, write code to:\n", + "\n", + "1. Import your Berkeley places shapefile (and don't forget to check/transform the crs!) (`../data/berkeley/BerkeleyCityLimits.shp`).\n", + "2. Overlay the parcel points on top of the bike boulevards.\n", + "3. Create the same plot but limit it to the extent of Berkeley city limits.\n", + "\n", + "***BONUS***: Add the Berkeley outline to your last plot!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Import your Berkeley places shapefile\n", + "berkeley_places = gpd.read_file(\"../data/berkeley/BerkeleyCityLimits.shp\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(berkeley_places.crs)\n", + "berkeley_places_utm10 = berkeley_places.to_crs(\"epsg:26910\")\n", + "print(berkeley_places_utm10.crs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 2. Overlay the parcel points on top of the bike boulevards\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "bike_blvds_utm10.plot(ax=ax, color='black')\n", + "parcel_pts_gdf_utm10.plot(ax=ax, color='orange', markersize=5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# 3. Create the same plot but limit it to the extent of Berkeley city limits\n", + "# Obtain bounds\n", + "x_min, y_min, x_max, y_max = berkeley_places_utm10.total_bounds\n", + "# Create figures\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot geometries\n", + "bike_blvds_utm10.plot(ax=ax, color='black')\n", + "parcel_pts_gdf_utm10.plot(ax=ax, color='orange', markersize=5)\n", + "# Set bounds\n", + "ax.set_xlim(x_min, x_max)\n", + "ax.set_ylim(y_min, y_max)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# BONUS: Add the Berkeley outline to your last plot\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Add on Berkeley city bounds as the bottom layer\n", + "berkeley_places_utm10.plot(ax=ax, color='grey')\n", + "bike_blvds_utm10.plot(ax=ax, color='black')\n", + "parcel_pts_gdf_utm10.plot(ax=ax, color='orange', markersize=5)\n", + "ax.set_xlim(x_min, x_max)\n", + "ax.set_ylim(y_min, y_max)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/05_data_driven_mapping_solutions.ipynb b/solutions/05_data_driven_mapping_solutions.ipynb new file mode 100644 index 0000000..54484ad --- /dev/null +++ b/solutions/05_data_driven_mapping_solutions.ipynb @@ -0,0 +1,216 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data-driven Mapping" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties = gpd.read_file('../data/california_counties/CaliforniaCounties.shp')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Plotting Different Columns\n", + "\n", + "Why are we plotting `POP12_SQMI` instead of `POP2012`? What do each of the two columns tell us?\n", + "\n", + "Try plotting `POP2012`, instead. What does this look like?\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting population per square meter conveys density. When we plot total population, Los Angeles and the surrounding areas tend to dominate the plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counties.plot(column='POP2012',\n", + " figsize=(10, 10),\n", + " legend=True,\n", + " legend_kwds={'label': \"Population\",\n", + " 'orientation': \"horizontal\"})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Classification Schemes and GeoDataFrames\n", + "\n", + "Classification schemes can be implemented using the geodataframe `plot` method by setting a value for the **scheme** argument. This requires the [pysal](https://pysal.org/) and [mapclassify](https://pysal.org/mapclassify) libraries to be installed in your Python environment. \n", + "\n", + "Here is a list of the `classification schemes` names that we will use:\n", + "\n", + "- `equalinterval`\n", + "- `quantiles`\n", + "- `fisherjenks`\n", + "- `naturalbreaks`\n", + "- `userdefined`.\n", + "\n", + "For more information about these classification schemes, see the [pysal mapclassifiers web page](https://pysal.org/mapclassify/api.html) or check out the help docs.\n", + "\n", + "Let's redo the last map using the `quantile` classification scheme." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot population density\n", + "fig, ax = plt.subplots(figsize=(10, 5)) \n", + "counties.plot(column='POP12_SQMI', \n", + " scheme=\"quantiles\",\n", + " legend=True,\n", + " ax=ax)\n", + "ax.set_title(\"Population Density per Square Mile\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is different about the code? About the output map?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Reflecting on Chloropleth Maps\n", + "\n", + "1. What new options and operations have we added to our code?\n", + "2. Based on our code, what title would you give this plot to describe what it displays?\n", + "3. How many bins do we specify in the `legend_labels_list` object, and how many bins are in the map legend? Why?\n", + "\n", + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. We added an edge color as well as a line width specification.\n", + "2. \"Californians Identifying as Hispanic Largely Live in Southern California\"\n", + "3. We specified 5 bins, but only 4 are shown in the legend. This is because there are no counties that are 80% - 100% Hispanic." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Data-Driven Mapping\n", + "\n", + "Point and polygons are not the only geometry-types that we can use in data-driven mapping!\n", + "\n", + "Run the next cell to load a dataset containing Berkeley's bicycle boulevards (which we'll be using more in the following notebook).\n", + "\n", + "Then, in the following cell, write your own code to:\n", + "\n", + "1. Plot the bike boulevards;\n", + "2. Color them by status (find the correct column in the head of the dataframe, displayed below);\n", + "3. Color them using a fitting, good-looking qualitative colormap that you choose from [The Matplotlib Colormap Reference](https://matplotlib.org/3.1.1/gallery/color/colormap_reference.html);\n", + "4. Set the line width to 5 (check the plot method's documentation to find the right argument for this!);\n", + "4. Add the argument `figsize=(15, 15)`, to make your map nice and big and visible!\n", + " \n", + "Using this map, answer the following questions:\n", + "\n", + "1. What does that map indicate about the status of the Berkeley bike boulevards?\n", + "2. What does that map indicate about the status of your Berkeley bike-boulevard *dataset*?\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds = gpd.read_file('../data/transportation/BerkeleyBikeBlvds.geojson')\n", + "bike_blvds.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bike_blvds.plot(column='Status',\n", + " cmap='Dark2',\n", + " linewidth=5,\n", + " legend=True,\n", + " figsize=(15, 15))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All bike boulevards exist, but it seems like there are some typos in our DataFrame!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/06_spatial_queries_solutions.ipynb b/solutions/06_spatial_queries_solutions.ipynb new file mode 100644 index 0000000..a4a6abe --- /dev/null +++ b/solutions/06_spatial_queries_solutions.ipynb @@ -0,0 +1,423 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Spatial Queries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "census_tracts = gpd.read_file(\"zip://../data/census/Tracts/cb_2013_06_tract_500k.zip\")\n", + "census_tracts_ac = census_tracts.loc[census_tracts['COUNTYFP'] == '001'].reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Spatial Relationship Query\n", + "\n", + "Let's use a spatial relationship query to create a new dataset containing Berkeley schools!\n", + "\n", + "Run the next two cells to load datasets containing Berkeley's city boundary and Alameda County's\n", + "schools and to reproject them to EPSG: 26910.\n", + "\n", + "Then in the following cell, write your own code to:\n", + "\n", + "1. Subset the schools for only those `within` Berkeley.\n", + "2. Plot the Berkeley boundary and then the schools as an overlay map.\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CNTY_FIPSgeometry
0001POLYGON ((564128.016 4195462.498, 564144.135 4...
\n", + "
" + ], + "text/plain": [ + " CNTY_FIPS geometry\n", + "0 001 POLYGON ((564128.016 4195462.498, 564144.135 4..." + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load the Berkeley boundary\n", + "berkeley = gpd.read_file(\"../data/berkeley/BerkeleyCityLimits.shp\")\n", + "# Transform to EPSG:26910\n", + "berkeley_utm10 = berkeley.to_crs(\"epsg:26910\")\n", + "# Look at GeoDataFrame\n", + "berkeley_utm10.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
XYSiteAddressCityStateTypeAPIOrggeometry
0-122.23876137.744764Amelia Earhart Elementary400 Packet Landing RdAlamedaCAES933PublicPOINT (-122.23876 37.74476)
1-122.25185637.738999Bay Farm Elementary200 Aughinbaugh WayAlamedaCAES932PublicPOINT (-122.25186 37.73900)
2-122.25891537.762058Donald D. Lum Elementary1801 Sandcreek WayAlamedaCAES853PublicPOINT (-122.25892 37.76206)
3-122.23484137.765250Edison Elementary2700 Buena Vista AveAlamedaCAES927PublicPOINT (-122.23484 37.76525)
4-122.23807837.753964Frank Otis Elementary3010 Fillmore StAlamedaCAES894PublicPOINT (-122.23808 37.75396)
\n", + "
" + ], + "text/plain": [ + " X Y Site Address \\\n", + "0 -122.238761 37.744764 Amelia Earhart Elementary 400 Packet Landing Rd \n", + "1 -122.251856 37.738999 Bay Farm Elementary 200 Aughinbaugh Way \n", + "2 -122.258915 37.762058 Donald D. Lum Elementary 1801 Sandcreek Way \n", + "3 -122.234841 37.765250 Edison Elementary 2700 Buena Vista Ave \n", + "4 -122.238078 37.753964 Frank Otis Elementary 3010 Fillmore St \n", + "\n", + " City State Type API Org geometry \n", + "0 Alameda CA ES 933 Public POINT (-122.23876 37.74476) \n", + "1 Alameda CA ES 932 Public POINT (-122.25186 37.73900) \n", + "2 Alameda CA ES 853 Public POINT (-122.25892 37.76206) \n", + "3 Alameda CA ES 927 Public POINT (-122.23484 37.76525) \n", + "4 Alameda CA ES 894 Public POINT (-122.23808 37.75396) " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Load the Alameda County schools CSV\n", + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "# Convert it to a GeoDataFrame\n", + "schools_gdf = gpd.GeoDataFrame(schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "# Define its unprojected (EPSG:4326) CRS\n", + "schools_gdf.crs = \"epsg:4326\"\n", + "# Transform to EPSG:26910\n", + "schools_gdf_utm10 = schools_gdf.to_crs(\"epsg:26910\")\n", + "# Look at GeoDataFrame\n", + "schools_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the Boolean mask indicating which schools are in Berkeley\n", + "schools_in_berkeley = schools_gdf_utm10.within(berkeley_utm10.geometry.squeeze())\n", + "# Use that series to subset the schools for only those that are in Berkeley\n", + "berkeley_schools = schools_gdf_utm10[schools_in_berkeley]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ff839O2r0+kwd+5c/P7775o5f/zxByIiIgAAs2fPhqIouHTpkjput9tx7949TTv27TbSvsPBvr1c6dva2oqkpCTodDqcO3dO/YlHD/bVctc1LCLqU6fZuNdI+27fvh137txBTU2N+gIA+/fvR0FBAQD27csd1+/9+/fR2dmpPs5g314j7Tt58mSYTKYh57Cv1miu4fz8fCxduhShoaGa42zsgn9la4kR2LJli5SWlsqjR4/kt99+kyVLlkhgYKA8fvxY2traZMuWLVJWVib19fVy9epVsVqtMmnSJGltbVVv4+jRo1JeXi61tbVy/Phx0ev1snnzZs15UlJS5IMPPpDy8nIpLy+X2NjYQbdTXLhwoVRVVcnly5fFbDZrtlN8+fKlGI1GyczMlLt378qZM2ckKChoTG+nOFRfEZEzZ86Ioihy+PBhsdls8s0338i4cePkl19+UW9j/fr1Yjab5fLly1JVVSULFiwYdFtx9nWtr91ul+rqajly5IgAkGvXrkl1dbVm+3z2da1va2urWCwWiY2NldraWs22q7x+u422cV1dnXz55Zdy69YtefLkiZSVlUlaWpro9XrN1sKe2tgd9xH9wcm24uw78r61tbWye/duqaiokPr6eiksLJT3339fZs2axfsIcc/1u3//fgkKCpJTp06JzWaTnTt3ip+fn7qLpojn9hVx332EzWYTLy8vuXDhwqDn8eTGrhhzC6aMjAwJDw8XRVHEZDJJenq63L9/X0RE2tvbJSkpSUJDQ0VRFHnvvfdk1apV0tDQoLmNbdu2idFoFEVRJCoqSvbt2zdge8Pm5mbJysqSwMBACQwMlKysrAHbNz958kQWL14s48ePF71eLxs2bNBsnSgicufOHfnoo4/E19dXwsLCJDc3d0xvpThU3x75+fkydepU8fPzk7i4OPnpp58042/evJENGzaIXq+X8ePHy5IlSwZ8DNjX9b45OTkCYMBLQUGBOod9Xevbs1X7YC/19fXqPE/tKzL6xo2NjZKamioGg0EURRGz2Swff/yxulVtD09t7I77iP4GWzCxr2t9GxoaZN68eaLX60Wn08mUKVPk888/13zDSoR9R3v95uXlidlslnfeeUesVuuAB/ue2lfEfY137NghZrNZ8zdI+/Lkxq7wEvl//HO8REREREREozfmf4eJiIiIiIjov8IFExERERERkRNcMBERERERETnBBRMREREREZETXDARERERERE5wQUTERERERGRE1wwEREREREROcEFExERERERkRNcMBERERERETnBBRMREREREZETXDARERERERE5wQUTERERERGRE38BkEcBO0TrpFYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a fig with one axis object\n", + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot the Berkeley border\n", + "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", + "# Add the Berkeley schools\n", + "berkeley_schools.plot(color='purple', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Proximity Analysis\n", + "\n", + "Now it's your turn to try out a proximity analysis!\n", + "\n", + "Run the next cell to load BART-system data, reproject it to EPSG: 26910, and subset it to Berkeley.\n", + "\n", + "Then in the following cell, write your own code to find all schools within walking distance (1 km) of a BART station.\n", + "\n", + "As a reminder, let's break this into steps:\n", + "\n", + "1. Buffer your Berkeley BART stations to 1 km (**HINT**: remember your units!).\n", + "2. Use the schools' `within` attribute to check whether or not they're within the buffers (**HINT**: don't forget the `unary_union`!).\n", + "3. Subset the Berkeley schools using the object returned by your spatial relationship query.\n", + "4. As always, plot your results for a good visual check!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the BART stations from CSV\n", + "bart_stations = pd.read_csv('../data/transportation/bart.csv')\n", + "# Convert to a GeoDataFrame\n", + "bart_stations_gdf = gpd.GeoDataFrame(bart_stations, \n", + " geometry=gpd.points_from_xy(bart_stations.lon, bart_stations.lat))\n", + "# Define its unprojected (EPSG:4326) CRS\n", + "bart_stations_gdf.crs = \"epsg:4326\"\n", + "# Transform to UTM Zone 10 N (EPSG:26910)\n", + "bart_stations_gdf_utm10 = bart_stations_gdf.to_crs(\"epsg:26910\")\n", + "# Subset to Berkeley\n", + "berkeley_bart = bart_stations_gdf_utm10[bart_stations_gdf_utm10.within(berkeley_utm10.unary_union)]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Buffer the BART stations to 1 km\n", + "bart_buf = berkeley_bart.buffer(distance=1000)\n", + "# Check whether or not each school is within a buffer\n", + "schools_near_bart = berkeley_schools.within(bart_buf.unary_union)\n", + "bart_schools = berkeley_schools[schools_near_bart]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAALRCAYAAABoEiOeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC94klEQVR4nOz9e3BkZ30n/r+fc07fTnfr0rpLI83Nxjc8huBgYogrKdh1bCplU9lld2F3WdduXE6ZLBSbAnz5bgE/l01qA4k3VOKY2pDYXsK3UmyYvXzBZMkGF7jsGpu4zNqEjK3xjEZ3qaW+ne7T5/L8/tCoPRpJrZbU3ef2flEqZtpnWh/N6NLv83mezyOklBJERERERES0jeJ1AURERERERH7FwERERERERLQLBiYiIiIiIqJdMDARERERERHtgoGJiIiIiIhoFwxMREREREREu2BgIiIiIiIi2gUDExERERER0S4YmIiIiIiIiHbBwERERERERLSLSAam5557Dr/+67+O8fFxCCHwne98Z9/PIaXE7/3e7+Ed73gHEokEJicn8eijj7a/WCIiIiIi8ozmdQFeqFQquOmmm3DPPffgN37jNw70HJ/61Kfw/e9/H7/3e7+HG2+8EYVCASsrK22ulIiIiIiIvCSklNLrIrwkhMBf/dVf4e677248Vq/X8fDDD+O//tf/ivX1dbzzne/E7/7u7+JXfuVXAAA/+9nPcOrUKfzf//t/cc0113hTOBERERERdVwkl+Tt5Z577sGPf/xjfOtb38Krr76Kf/pP/yl+7dd+DWfPngUA/I//8T9w4sQJ/M//+T9x/PhxHDt2DP/u3/075PN5jysnIiIiIqJ2YmC6wptvvom/+Iu/wF/+5V/il3/5l3Hy5En8zu/8Dj7wgQ/gG9/4BgBgenoa58+fx1/+5V/iqaeewp/92Z/h5Zdfxj/5J//E4+qJiIiIiKidIrmHqZmf/OQnkFLiHe94x5bHTdPEwMAAAMB1XZimiaeeeqpx3X/5L/8F73nPe/Dzn/+cy/SIiIiIiEKCgekKrutCVVW8/PLLUFV1y3/LZDIAgLGxMWiatiVUXXfddQCACxcuMDAREREREYUEA9MV3v3ud8NxHCwtLeGXf/mXd7zm/e9/P2zbxptvvomTJ08CAP7hH/4BAHD06NGu1UpERERERJ0VySl55XIZb7zxBoCNgPTVr34Vv/qrv4pcLoepqSn8y3/5L/HjH/8YX/nKV/Dud78bKysr+Ju/+RvceOONuPPOO+G6Ln7xF38RmUwGf/AHfwDXdXH//fejp6cH3//+9z3+6IiIiIiIqF0iGZj+9m//Fr/6q7+67fFPfOIT+LM/+zNYloVHHnkETz31FGZnZzEwMIBf+qVfwhe/+EXceOONAIC5uTn89m//Nr7//e8jnU7jjjvuwFe+8hXkcrlufzhERERERNQhkQxMREREREREreBYcSIiIiIiol0wMBEREREREe0iUlPyXNfF3NwcstkshBBel0NERERERB6RUqJUKmF8fByKsnsfKVKBaW5uDpOTk16XQUREREREPjEzM4MjR47s+t8jFZiy2SyAjb+Unp4ej6shIiIiIiKvFItFTE5ONjLCbiIVmDaX4fX09DAwERERERHRnlt1OPSBiIiIiIhoFwxMREREREREu2BgIiIiIiIi2gUDExERERER0S4YmIiIiIiIiHbBwERERERERLQLBiYiIiIiIqJdMDARERERERHtgoGJiIiIiIhoFwxMREREREREu2BgIiIiIiIi2gUDExERERER0S4YmIiIiIiIiHbBwERERERERLQLBiYiIiIiIqJdMDARERERERHtgoGJiIiIiIhoFwxMREREREREu2BgIiIiIiIi2gUDExERERER0S4YmIiIiIiIiHbBwERERERERLQLBiYiIiIiIqJdMDARERERERHtgoGJiIiIiIhoFwxMREREREREu2BgIiIiCjnbtr0ugYgosDSvCyAiIqL2chwH5XIZlUoF5XIZ9Xodo6OjGBwc9Lo0IqLAYWAiIiIKONd1YRhGIyBVq9Vt16yurqK/vx+qqnpQIRFRcDEwERERBYyUEqZpolwuNzpJUspdr1cUBUePHmVYIiI6AAYmIiKiALAsa0tA2s++pCNHjiCZTHawOiKi8GJgIiIi8ikpJdbW1rC6ugrTNA/0HLFYDNlsts2VERFFBwMTERGRD1WrVczNze24H2k/+vr6IIRoU1VERNHDwEREROQjjuNgaWkJq6urbXm+lZUV6LrOLhMR0QHxHCYiIiKfKJfLeOONN9oWloCNZX3nz59HoVBo23MSEUUJO0xEREQecxwHi4uLyOfzHXsfMzMzcBwHuVyuY++DiCiMGJiIiIg8VKlUMDs7i3q93vH3NTc3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V1dXlntCRERERETZFMsJYjlCMkWVMHV3dwMAJkyYkOWeEBERERFRLuju7obP50t6XMjDpVQFxDRNfPnll5g5cyZ2794Nr9eb7S4VpK6uLkyYMIExThPGN70Y3/RifNOL8U0/xji9GN/0YnwTSSnR3d2NmpoaKErylUpFNcKkKApqa2sBAF6vlxdKmjHG6cX4phfjm16Mb3oxvunHGKcX45tejO+3RhpZimHRByIiIiIioiSYMBERERERESVRdAmTzWbDbbfdBpvNlu2uFCzGOL0Y3/RifNOL8U0vxjf9GOP0YnzTi/FNTVEVfSAiIiIiIhqLohthIiIiIiIiGi0mTEREREREREkwYSIiIiIiIkqCCRMREREREVESOZcw3X777RBCJNyqqqrix3/4wx8OO37CCScknGPr1q0499xzUV5eDq/Xix/84AfYu3dvQpv29nZccskl8Pl88Pl8uOSSS9DR0ZHQZteuXTj77LPhcrlQVlaGa665BgMDAwltNm3ahAULFsDhcKC2thZ33nkncrmOxuHiCwCff/45zjnnHPh8Png8HpxwwgnYtWtX/HgoFMLPf/5zlJWVweVy4ZxzzsHXX3+dcA7GN/X4rlixAqeccgq8Xi+EEMPiBjC+qcb3wIED+PnPf45p06bB6XRi4sSJuOaaa9DZ2ZlwjmKNL2DNNfzTn/4UU6ZMgcPhQHl5OZYsWYIvvvgi4RzFGmMr4hsjpcTixYshhMBLL72UcIzxTT2+p5xyyrBzXHjhhQnnYHzHd/2uWbMGp556KlwuF0pKSnDKKaegr68vfrxY4wuMP8Y7duwY9vjY7bnnnoufo5hjnBKZY2677TZ55JFHypaWlvittbU1fvyyyy6TZ5xxRsLxtra2+PGenh45efJkee6558qNGzfKjRs3yiVLlsjvfOc7MhqNxtudccYZctasWXL16tVy9erVctasWfKss86KH49EInLWrFnye9/7nly/fr1ctWqVrKmpkVdffXW8TWdnp6ysrJQXXnih3LRpk3z++eelx+ORv/nNb9IcpdQdLr5btmyRgUBA3njjjXL9+vVy69at8o9//KPcu3dvvM2VV14pa2tr5apVq+T69evl9773PTlnzhwZiUTibRjf1ON73333yaamJtnU1CQByPb29mHPw/imFt9NmzbJ8847T77yyityy5Yt8q233pKNjY3y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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 10))\n", + "# Plot the Berkeley boundary (for reference)\n", + "berkeley_utm10.plot(color='lightgrey', ax=ax)\n", + "# plot the BART stations (for reference)\n", + "berkeley_bart.plot(color='green', ax=ax)\n", + "# add the BART buffers (for check)\n", + "bart_buf.plot(color='lightgreen', ax=ax, alpha=0.5)\n", + "# add all Berkeley schools (for reference)\n", + "berkeley_schools.plot(ax=ax)\n", + "# add the schools near BART (for check)\n", + "bart_schools.plot(color='yellow', markersize=50, ax=ax)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/07_joins_and_aggregation_solutions.ipynb b/solutions/07_joins_and_aggregation_solutions.ipynb new file mode 100644 index 0000000..ab900f8 --- /dev/null +++ b/solutions/07_joins_and_aggregation_solutions.ipynb @@ -0,0 +1,279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Attribute and Spatial Joins Solutions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "acs5_df = pd.read_csv(\"../data/census/ACS5yr/census_variables_CA.csv\", dtype={'FIPS_11_digit': str})\n", + "acs5_df_ac = acs5_df[(acs5_df['year'] == 2018) & (acs5_df['county_fips'] == 1)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_gdf = gpd.read_file(\"zip://../data/census/Tracts/cb_2013_06_tract_500k.zip\")\n", + "tracts_gdf_ac = tracts_gdf[tracts_gdf['COUNTYFP'] == '001']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts_acs_gdf_ac = tracts_gdf_ac.merge(acs5_df_ac,\n", + " left_on='GEOID',\n", + " right_on='FIPS_11_digit',\n", + " how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Import schools data\n", + "schools_df = pd.read_csv('../data/alco_schools.csv')\n", + "# Convert to GeoDataFrame\n", + "schools_gdf = gpd.GeoDataFrame(schools_df, \n", + " geometry=gpd.points_from_xy(schools_df.X, schools_df.Y))\n", + "# Convert CRS\n", + "schools_gdf.crs = \"epsg:4326\"\n", + "schools_gdf = schools_gdf.to_crs(tracts_acs_gdf_ac.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 1: Choropleth Map\n", + "\n", + "We can now make choropleth maps using our attribute-joined GeoDataFrame. Go ahead and pick one variable to color the map, then map it. You can go back to lesson 5 if you need a refresher on how to make this!\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 5)) \n", + "tracts_acs_gdf_ac.plot(column='p_renters', \n", + " scheme=\"quantiles\",\n", + " legend=True,\n", + " ax=ax,\n", + " cmap='magma')\n", + "ax.set_title(\"Percentage of Renters\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 2: Confidence Checks\n", + "\n", + "As always, we want to perform a confidence check on our intermediate result before we rush ahead.\n", + "\n", + "One way to do that is to introspect the structure of the result object a bit.\n", + "\n", + "1. What type of object should that have given us?\n", + "2. What should the dimensions of that object be, and why?\n", + "3. If we wanted a visual check of our results (i.e. a plot or map), what could we do?\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_gdf_api = schools_gdf[schools_gdf['API'] > 0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_jointracts = gpd.sjoin(left_df=schools_gdf_api,\n", + " right_df=tracts_acs_gdf_ac,\n", + " how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "type(schools_jointracts)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(schools_gdf.shape)\n", + "print(tracts_acs_gdf_ac.shape)\n", + "print(schools_jointracts.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "schools_jointracts.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = tracts_acs_gdf_ac.plot(color='white',\n", + " edgecolor='black',\n", + " figsize=(18, 18))\n", + "schools_jointracts.iloc[:16].plot(column='GEOID', ax=ax, legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "### Challenge 3: Aggregation\n", + "\n", + "What is the mean API of each Census tract?\n", + "\n", + "As we mentioned, the spatial aggregation workflow that we just put together above could have been used not to generate a new count variable, but also to generate any other new variable the results from calling an aggregation function on an attribute column.\n", + "\n", + "In this case, we want to calculate and map the mean API of the schools in each Census tract.\n", + "\n", + "Copy and paste code from above where useful, then tweak and/or add to that code. Do the following:\n", + "\n", + "1. Join the schools onto the tracts (**HINT**: make sure to decide whether or not you want to include schools with API = 0!).\n", + "2. Dissolves that joined object by the tract IDs, giving you a new GeoDataFrame with each tract's mean API (**HINT**: because this is now a different calculation, different problems may arise and need handling!).\n", + "3. Plot the tracts, colored by API scores (**HINT**: overlay the schools points again, visualizing them in a way that will help you visually check your results!).\n", + "\n", + "---" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Join the schools onto the tracts (excluding 0 API schools)\n", + "tracts_joinschools_api = gpd.sjoin(left_df=schools_gdf_api,\n", + " right_df=tracts_acs_gdf_ac,\n", + " how='right')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Dissolve the tracts by GEOID, using 'API' as the column we'll aggregate and 'mean' as our aggfunc\n", + "tracts_mean_api = tracts_joinschools_api[['GEOID', 'API', 'geometry']].dropna(how='any').dissolve(by='GEOID', aggfunc='mean')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Plot the tracts, coloring them by mean API\n", + "fig, ax = plt.subplots(figsize = (20, 20)) \n", + "tracts_mean_api.plot(ax=ax,\n", + " column='API', \n", + " scheme='equalinterval',\n", + " cmap=\"plasma\",\n", + " edgecolor=\"grey\",\n", + " legend=True,\n", + " legend_kwds={'title': 'Mean API'})\n", + "# Add the schools, coloring them by API (so we can check that the mean APIs we calculated are resonable)\n", + "schools_gdf_api.plot(ax=ax,\n", + " column='API',\n", + " cmap='plasma',\n", + " edgecolor='black',\n", + " linewidth=0.3,\n", + " markersize=25,\n", + " legend=True,\n", + " legend_kwds={'label': \"API (schools)\",\n", + " 'orientation': \"horizontal\",\n", + " 'location': 'bottom',\n", + " 'shrink': 0.75,\n", + " 'pad': 0.05})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/solutions/08_putting_it_all_together_solutions.ipynb b/solutions/08_putting_it_all_together_solutions.ipynb new file mode 100644 index 0000000..a294538 --- /dev/null +++ b/solutions/08_putting_it_all_together_solutions.ipynb @@ -0,0 +1,244 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Putting it All Together Solutions?\n", + "\n", + "For this last lesson, we'll practice going through a full workflow!\n", + "\n", + "We'll answer the question:\n", + "\n", + "## **What is the total grocery-store sales volume of each Census tract?**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas as gpd\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Importing Datasets\n", + "\n", + "We first need to prepare our data by loading the joined tracts/ACS data and grocery data, and conduct our usual steps to make there they have the same CRS.\n", + "\n", + "- Read in the joined tracts/ACS data\n", + "- Read the grocery data CSV into a pandas DataFrame (it lives at `'../data/other/ca_grocery_stores_2019_wgs84.csv`).\n", + "- Convert it to a GeoDataFrame.\n", + "- Define its CRS (EPSG:4326).\n", + "- Transform it to match the CRS of `tracts_acs_gdf_ac`.\n", + "- Examine the transformed GeoDataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read in the joined tracts/ACS data\n", + "tracts_acs_gdf_ac = gpd.read_file('../data/outdata/tracts_acs_gdf_ac.json')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Read the grocery data CSV into a pandas DataFrame\n", + "grocery_pts_df = pd.read_csv('../data/other/ca_grocery_stores_2019_wgs84.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert it to a GeoDataFrame\n", + "grocery_pts_gdf = gpd.GeoDataFrame(grocery_pts_df, \n", + " geometry=gpd.points_from_xy(grocery_pts_df.X, grocery_pts_df.Y))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define its CRS\n", + "grocery_pts_gdf.crs = \"epsg:4326\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Transform it to match the CRS of tracts_acs_gdf_ac\n", + "grocery_pts_gdf.to_crs(tracts_acs_gdf_ac.crs, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Examine transformed GeoDataFrame\n", + "grocery_pts_gdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spatial Join and Dissolve\n", + "\n", + "Now that we have our data and they're in the same projection, we're going to conduct an *attribute join* to bring together the two datasets. From there we'll be able to actually *aggregate* our data to count the total sales volume.\n", + "\n", + "Complete the following steps:\n", + "\n", + "- Join the two datasets in such a way that you can then...\n", + "- Group by tract and calculate the total grocery-store sales volume.\n", + "- Don't forget to check the dimensions, contents, and any other relevant aspects of your results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Join the two datasets\n", + "tracts_joingrocery = gpd.sjoin(tracts_acs_gdf_ac, grocery_pts_gdf, how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Group by tract and calculate the total grocery-store sales volume\n", + "tracts_totsalesvol = tracts_joingrocery[['GEOID','geometry','SALESVOL']].dissolve(by='GEOID',\n", + " aggfunc=\"sum\",\n", + " as_index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Don't forget to check the dimensions, contents, and any other relevant aspects of your results\n", + "print(f'Dimensions of result: {tracts_totsalesvol.shape}')\n", + "print(f'Dimesions of Census tracts: {tracts_acs_gdf_ac.shape}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Check the result\n", + "tracts_totsalesvol.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot and Review\n", + "\n", + "With any type of geospatial analysis you do, it's always nice to plot and visualize your results to check your work and start to understand the full story of your analysis.\n", + "\n", + "Complete the following:\n", + "\n", + "- Plot the tracts, coloring them by total grocery-store sales volume.\n", + "- Plot the grocery stores on top.\n", + "- Bonus points for devising a nice visualization scheme that helps you heuristically check your results!\n", + "\n", + "We've broken these steps into three individual cells," + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Subset the stores for only those within our tracts, to keep map within region of interest\n", + "grocery_pts_gdf_ac = grocery_pts_gdf[grocery_pts_gdf.within(tracts_acs_gdf_ac.unary_union)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the figure and axes\n", + "fig, ax = plt.subplots(figsize = (20,20)) \n", + "# Plot the tracts, coloring by total SALESVOL\n", + "tracts_totsalesvol.plot(ax=ax,\n", + " column='SALESVOL',\n", + " scheme=\"quantiles\",\n", + " cmap=\"viridis_r\",\n", + " edgecolor=\"grey\",\n", + " legend=True,\n", + " legend_kwds={'title': 'Total Grocery Store Sales Volume (Dollars)'})\n", + "\n", + "# Add the grocery stores, coloring by SALESVOL, for a visual check\n", + "grocery_pts_gdf_ac.plot(ax=ax,\n", + " column='SALESVOL',\n", + " cmap='Greys_r',\n", + " linewidth=0.3,\n", + " markersize=25,\n", + " legend=True,\n", + " legend_kwds={'label': 'Sales Volume, Individual Stores (Dollars)',\n", + " 'orientation': \"horizontal\",\n", + " 'pad': 0.05})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}