| --- |
| title: GIS322FinalProject |
| sdk: docker |
| app_port: 7860 |
| pinned: false |
| --- |
| |
|
|
| # Urban Vegetation Dashboard β Maricopa County, AZ |
|
|
| Christian Anderson |
| GIS 322 |
| Spring 2026 |
| Instructor: Debayan Mandal |
|
|
| --- |
|
|
| ## Description |
|
|
| This interactive Solara dashboard explores the relationship between NDVI vegetation index, tree equity scores, and U.S. Census demographics at the block-group level across Maricopa County, Arizona. Users can visualize a bivariate choropleth map comparing greenness to demographic variables (Income, % Minority), toggle a Tree Equity Score overlay, and inspect a summary statistics table and chart of the top 15 block groups most in need of tree canopy investment. |
|
|
| --- |
|
|
| ## Screenshot |
|
|
|  |
|
|
| --- |
|
|
| ## Data Sources |
|
|
| | Dataset | Source | License | |
| |---|---|---| |
| | NDVI (vegetation index) | [Google Earth Engine](https://earthengine.google.com) β Landsat/Sentinel composites | Free for research/education | |
| | Block-group demographics | [U.S. Census Bureau ACS 5-Year Estimates](https://api.census.gov) | Public domain | |
| | Tree Equity Scores | [American Forests β Tree Equity Score](https://treeequityscore.org/map/) | Free download | |
| | Block-group boundaries | [U.S. Census TIGER/Line Shapefiles](https://www.census.gov/geographies/mapping-files/time-series/geo/tiger-line-file.html) | Public domain | |
|
|
| --- |
|
|
| ## Environment Setup |
|
|
| ### 1. Virtual environment |
| ```anaconda prompt |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 2. Census API key *(free)* |
| Sign up at https://api.census.gov/data/key_signup.html, then either paste your key into `data_pipeline.py` when defining CENSUS_API_KEY |
|
|
| ### 3. Google Earth Engine *(free for students)* |
| 1. Sign up at https://earthengine.google.com with your Google account. |
| 2. Authenticate in anaconda prompt: |
| ``` |
| python -c "import ee; ee.Authenticate()" |
| ``` |
| 3. Create a project at https://console.cloud.google.com (free tier). |
| 4. Paste your project ID into `data_pipeline.py` where it says ee.Initialize(project="gis322final"). |
|
|
| ### 4. Tree Equity Scores *(free)* |
| 1. Go to https://treeequityscore.org/map/ |
| 2. Click **Download Data** β Arizona β Shapefile |
| 3. Save to `data/raw/az_tes.shp` |
|
|
| ### 5. Build the database |
| Run this once (~5 min) to fetch and process all data into `processed_dashboard.db`: |
| ```anaconda prompt |
| python data_pipeline.py |
| ``` |
|
|
| --- |
|
|
| ## Run Instructions |
|
|
| ```anaconda prompt |
| solara run app.py |
| ``` |
|
|
| --- |
|
|
| ## Project Files |
|
|
| | File | Purpose | |
| |---|---| |
| | `data_pipeline.py` | Run once to fetch data and build `processed_dashboard.db` | |
| | `app.py` | Solara dashboard β launch with `solara run app.py` | |
| | `dashboard_helpers.py` | Map and chart builder functions used by `app.py` | |
| | `requirements.txt` | Python dependencies | |
| | `data/raw/` | Place downloaded raw files here | |