https://github.com/urbanmorph/notf
Neighbourhoods of the Future
https://github.com/urbanmorph/notf
Last synced: 14 days ago
JSON representation
Neighbourhoods of the Future
- Host: GitHub
- URL: https://github.com/urbanmorph/notf
- Owner: urbanmorph
- Created: 2025-10-20T09:20:09.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-06-02T14:13:06.000Z (about 1 month ago)
- Last Synced: 2026-06-02T15:27:21.872Z (about 1 month ago)
- Language: HTML
- Homepage: https://notf-one.vercel.app
- Size: 199 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NOTF - Neighbourhoods of the Future
**Live site:** https://urbanmorph.github.io/notf/
A collaborative platform for building inclusive, resilient, and people-first neighbourhoods through systems thinking, community engagement, and data-driven insights.
## Structure
- `docs/` - GitHub Pages website (built from website/)
- `data/` - Network data (members, communities, asks/offers)
- `scripts/` - Automation scripts
- `website/` - Website source files
- `website/public/assets/data/climate/` - Ward-level climate data (Bengaluru)
- `supporting documents/` - Project documentation and data processing scripts
## Local Development
```bash
# Install dependencies
cd website
npm install
# Run development server
npm start
# Build for production
npm run build
# Copy to docs for GitHub Pages
cp -r _site/* ../docs/
```
## Data Management
```bash
# Add new member
cp data/members/organizations/_TEMPLATE.yaml data/members/organizations/new-org.yaml
# Validate data
python3 scripts/validate_data.py data/
# Find matches
python3 scripts/match_asks_offers.py
# Generate weekly digest
python3 scripts/weekly_digest.py
```
## GitHub Pages Setup
1. Go to repository Settings > Pages
2. Set Source to "Deploy from a branch"
3. Select branch: `main` and folder: `/docs`
4. Save
---
## π Ward-Level Climate Data
### Overview
NOTF provides open ward-level climate baseline data for Indian cities, starting with **Bengaluru (369 wards)** and **Mumbai (227 wards)**. This granular data enables communities, policymakers, and researchers to track climate action progress at the neighbourhood level.
**Coverage:**
- **Bengaluru:** 7 climate sectors Γ 369 wards = 2,583 data points
- β
Energy & Buildings (100% coverage)
- β
Waste Management (100% coverage)
- β οΈ Transportation (partial data)
- β οΈ Air Quality (16 monitoring stations)
- β οΈ Water Resources (zone-level)
- β
Urban Greening (100% coverage)
- β οΈ Disaster Resilience (flood risk 100%, heat partial)
- **Mumbai:** 2 climate sectors Γ 227 wards = 454 data points
- β
Energy & Buildings (100% coverage)
- β
Waste Management (100% coverage)
- β³ Transportation (pending)
- β³ Air Quality (pending)
- β³ Water Resources (pending)
- β³ Urban Greening (pending)
- β³ Disaster Resilience (pending)
**Data Quality:**
- Bengaluru: β
β
β
ββ (63%) - See [`DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/DATA_SOURCES_AND_CREDITS.md)
- Mumbai: β
β
β
ββ (60%) - See [`MUMBAI_DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/MUMBAI_DATA_SOURCES_AND_CREDITS.md)
---
### π₯ Download Climate Datasets
#### Bengaluru (369 Wards)
**Option 1: Full Dataset (3.8 MB)**
```bash
# Clone repository
git clone https://github.com/urbanmorph/notf.git
cd notf/website/public/assets/data/climate/bengaluru/
# All files:
# - city_climate.json (10 KB) - City-level aggregates
# - ward_index.json (96 KB) - Ward metadata
# - climate_central.json (621 KB) - 63 wards
# - climate_east.json (492 KB) - 50 wards
# - climate_west.json (1.1 MB) - 112 wards
# - climate_north.json (709 KB) - 72 wards
# - climate_south.json (709 KB) - 72 wards
```
**Option 2: Direct Download Links**
```bash
# City summary (10 KB)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/city_climate.json
# Ward index (96 KB)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/ward_index.json
# Corporation data (download specific corporation or all 5)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_central.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_east.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_west.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_north.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_south.json
```
**Option 3: Python Script**
```python
import json
import requests
# Load city summary
city_data = requests.get(
'https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/city_climate.json'
).json()
print(f"Total wards: {city_data['total_wards']}")
print(f"Total population: {city_data['total_population']:,}")
# Load specific corporation
central_wards = requests.get(
'https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/bengaluru/climate_central.json'
).json()
for ward in central_wards['wards']:
print(f"{ward['ward_name']}: {ward['population']:,} people")
```
#### Mumbai (227 Wards)
**Option 1: Full Dataset (2.4 MB)**
```bash
# Clone repository
git clone https://github.com/urbanmorph/notf.git
cd notf/website/public/assets/data/climate/mumbai/
# All files:
# - city_climate.json (10 KB) - City-level aggregates
# - ward_index.json (60 KB) - Ward metadata
# - climate_south.json (221 KB) - 21 wards
# - climate_central.json (369 KB) - 35 wards
# - climate_western.json (463 KB) - 44 wards
# - climate_eastern.json (515 KB) - 49 wards
# - climate_northern.json (820 KB) - 78 wards
```
**Option 2: Direct Download Links**
```bash
# City summary (10 KB)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/city_climate.json
# Ward index (60 KB)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/ward_index.json
# Zone data (download specific zone or all 5)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_south.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_central.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_western.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_eastern.json
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_northern.json
```
**Option 3: Python Script**
```python
import json
import requests
# Load city summary
city_data = requests.get(
'https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/city_climate.json'
).json()
print(f"Total wards: {city_data['total_wards']}")
print(f"Total population: {city_data['total_population']:,}")
# Load specific zone
south_wards = requests.get(
'https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/climate/mumbai/climate_south.json'
).json()
for ward in south_wards['wards']:
print(f"{ward['ward_name']}: {ward['population']:,} people")
```
**Documentation:**
- [`MUMBAI_DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/MUMBAI_DATA_SOURCES_AND_CREDITS.md) - Comprehensive data source documentation
- [`MUMBAI_227_WARDS_DATA_RESEARCH.md`](supporting%20documents/MUMBAI_227_WARDS_DATA_RESEARCH.md) - Ward data research findings
---
### π License: CC BY-NC-SA 4.0
**You are free to:**
- β
**Share** β copy and redistribute the material in any medium or format
- β
**Adapt** β remix, transform, and build upon the material
**Under the following terms:**
- **Attribution (BY)** β You must give appropriate credit, provide a link to the license, and indicate if changes were made
- **NonCommercial (NC)** β You may not use the material for commercial purposes
- **ShareAlike (SA)** β If you remix, transform, or build upon the material, you must distribute your contributions under the same license
**Full License:** https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
---
### π How to Cite
#### Academic Citation (APA)
```
Neighbourhoods of the Future. (2026). Ward-Level Climate Baseline Data for Bengaluru.
Retrieved from https://github.com/urbanmorph/notf/tree/main/website/public/assets/data/climate/bengaluru
Licensed under CC BY-NC-SA 4.0.
```
#### Data Attribution (Required)
When using this data in reports, visualizations, or derivative works, include:
```
Data Source: Neighbourhoods of the Future (NOTF)
GitHub: https://github.com/urbanmorph/notf
License: CC BY-NC-SA 4.0
Original Sources: Census of India 2011, OpenCity.in, BBMP, KSPCB
```
#### BibTeX
```bibtex
@dataset{notf_bengaluru_climate_2026,
author = {{Neighbourhoods of the Future}},
title = {Ward-Level Climate Baseline Data for Bengaluru},
year = {2026},
publisher = {GitHub},
url = {https://github.com/urbanmorph/notf},
license = {CC-BY-NC-SA-4.0}
}
```
---
### π Data Sources & Credits
All data compiled from authoritative government and research sources. Full documentation available in [`DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/DATA_SOURCES_AND_CREDITS.md).
#### Primary Data Providers
**Government Agencies:**
- **Census of India 2011** - Population, households, demographics (β
β
β
β
β 75%)
- **BBMP (Bruhat Bengaluru Mahanagara Palike)** - Waste management, tree census, ward boundaries (β
β
β
ββ 65%)
- **KSPCB (Karnataka State Pollution Control Board)** - Air quality monitoring network (β
β
β
β
β 80%)
- **BESCOM** - Electricity consumption estimates (β
β
βββ 50%)
- **KREDL (Karnataka Renewable Energy Development Limited)** - Renewable energy data (β
β
β
β
β 85%)
- **BWSSB (Bangalore Water Supply and Sewerage Board)** - Water supply data (β
β
β
ββ 60%)
- **BMTC (Bangalore Metropolitan Transport Corporation)** - Public transport coverage (β
β
β
β
β 75%)
**Research & Data Portals:**
- **OpenCity.in** - Urban data portal aggregating official government datasets
- [Bengaluru Household Consumption Expenditure Survey 2022-23](https://data.opencity.in/dataset/bengaluru-household-consumption-expenditure-survey-2022-23)
- [Karnataka Renewable Energy Data](https://data.opencity.in/dataset/karnataka-renewable-energy-data)
- [Solid Waste Management](https://data.opencity.in/dataset/solid-waste-management)
- [List of Dry Waste Collection Centres](https://data.opencity.in/dataset/list-of-dry-waste-collection-centres-in-bengaluru)
- [Bengaluru Air Quality Data (2017-2023)](https://data.opencity.in/dataset/bengaluru-air-quality-data)
- [BMTC Bus Stops and Routes by Ward](https://data.opencity.in/dataset/bus-stops-and-routes-map-by-ward)
- **IISc (Indian Institute of Science)** - Urban research, water resources, urban heat studies
- **Praja Foundation** - Civic data analysis, waste management monitoring
- **IGBC/GRIHA** - Green building certifications
**Data Licensing:**
- OpenCity.in: Open Database License (ODbL)
- Government data: Government Open Data License - India (GODL)
- Census data: Public domain
**Confidence Scores:**
- β
β
β
β
β
(85-100%) - High quality, verified, recent data
- β
β
β
β
β (70-84%) - Good quality, some limitations
- β
β
β
ββ (55-69%) - Medium quality, estimates or proxy data
- β
β
βββ (40-54%) - Limited quality, significant gaps
- β
ββββ (25-39%) - Low quality, placeholder estimates
---
### π§ Data Processing Scripts
Python scripts for generating ward-level climate data are available in [`supporting documents/scripts/processing/`](supporting%20documents/scripts/processing/):
1. **`split_corporation_data.py`** - Split 3.5 MB baseline JSON into 5 corporation files
2. **`generate_ward_index.py`** - Extract ward metadata for routing
3. **`generate_city_summary.py`** - Calculate city-level aggregates and rankings
4. **`generate_ward_pages.py`** - Generate 738 static HTML ward pages
5. **`add_source_metadata.py`** - Add OpenCity.in source attributions
```bash
# Run data pipeline
cd "supporting documents/scripts/processing"
python3 split_corporation_data.py
python3 generate_ward_index.py
python3 generate_city_summary.py
python3 add_source_metadata.py
python3 generate_ward_pages.py
```
---
### πΊοΈ Ward Boundaries (GeoJSON)
```bash
# Bengaluru ward boundaries
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/boundaries/bengaluru-wards.geojson
# Mumbai ward boundaries (227 electoral wards)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/boundaries/mumbai-electoral-wards.geojson
# Mumbai administrative wards (24 wards - legacy)
wget https://raw.githubusercontent.com/urbanmorph/notf/main/website/public/assets/data/boundaries/mumbai-wards.geojson
```
**Format:** GeoJSON (RFC 7946)
**Projection:** WGS84 (EPSG:4326)
**Sources:**
- Bengaluru: OpenCity.in + BBMP official boundaries
- Mumbai: DataMeet Municipal Spatial Data (CC BY-SA 2.5 India) + MCGM
---
### π Data Structure
#### City Summary (`city_climate.json`)
```json
{
"city": "Bengaluru",
"total_wards": 369,
"total_population": 8402887,
"last_updated": "2026-01-23",
"sectors": {
"energy_buildings": {
"clean_cooking": {
"average": 16.2,
"distribution": {"high": 0, "medium": 38, "low": 331},
"top_5": [...],
"bottom_5": [...],
"data_source": {
"provider": "Census 2011 + OpenCity.in",
"url": "https://data.opencity.in/dataset/...",
"confidence_score": 0.64,
"confidence_stars": "β
β
β
ββ",
"methodology": "...",
"limitations": [...]
}
}
}
}
}
```
#### Ward Data (`climate_*.json`)
```json
{
"corporation": "South",
"ward_count": 72,
"wards": [
{
"ward_id": 42,
"ward_name": "Jayanagar 4th Block",
"ward_name_local": "ΰ²ΰ²―ನΰ²ΰ²° 4ನೠಬΰ³ΰ²²ΰ²Ύΰ²ΰ³",
"slug": "jayanagar-4th-block",
"corporation": "South",
"population": 18542,
"energy_buildings": {
"solid_fuel_households": {
"value": 12.5,
"percentage": 12.5,
"confidence": 0.64,
"source": "Census 2011",
"data_source": {
"provider": "Census 2011 + OpenCity.in",
"url": "...",
"confidence_score": 0.64,
"methodology": "...",
"limitations": [...]
}
}
}
}
]
}
```
---
### π Future Cities
**Planned for 2026:**
- Delhi (272 wards)
- Chennai (200 wards)
- Hyderabad (150 wards)
- Pune (144 wards)
**Contribute:** If you have ward-level climate data for other Indian cities, please open an issue or submit a pull request.
---
### β οΈ Data Limitations & Validation
**Known Limitations:**
1. **Data Age** - Census 2011 is 15 years old; population estimates extrapolated
2. **Ward Boundaries** - Some wards reorganized since 2011
3. **Incomplete Coverage** - Only Energy & Waste sectors have 100% ward-level data
4. **Estimates** - Many metrics use city averages applied uniformly (electricity, renewable energy)
5. **Informal Sector** - Waste segregation by informal workers not captured
**Validation Process:**
- Cross-referenced with official government portals
- Spot checks on 10% random sample
- Peer review by urban planning researchers
- BBMP/KSPCB officials consulted
**Report Data Issues:**
- GitHub Issues: https://github.com/urbanmorph/notf/issues
- Email: data@neighbourhoodsofthefuture.org
---
### π Additional Documentation
- **Full Methodology:** [`DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/DATA_SOURCES_AND_CREDITS.md)
- **Mumbai Data Sources:** [`MUMBAI_DATA_SOURCES_AND_CREDITS.md`](supporting%20documents/MUMBAI_DATA_SOURCES_AND_CREDITS.md)
- **Implementation Progress:** [`WARD_DASHBOARD_FINAL_SUMMARY.md`](supporting%20documents/WARD_DASHBOARD_FINAL_SUMMARY.md)
- **Architecture:** [`ARCHITECTURE.md`](ARCHITECTURE.md)
---
## Contact
Nudge Unit: nudge-unit@notf.in