lukiod commited on
Commit
5bfe767
·
1 Parent(s): 9dcd2cc

Deploy India Growth Metrics Dashboard

Browse files
Files changed (5) hide show
  1. README.md +130 -9
  2. app.py +232 -0
  3. data/india_growth_metrics.csv +38 -0
  4. data/timeseries.csv +334 -0
  5. requirements.txt +8 -0
README.md CHANGED
@@ -1,12 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
- title: Codeclash
3
- emoji: 🐢
4
- colorFrom: yellow
5
- colorTo: gray
6
- sdk: gradio
7
- sdk_version: 5.34.2
8
- app_file: app.py
9
- pinned: false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
1
+ # 🇮🇳 Decode India: Smart AI-Enhanced Dashboard for Growth Metrics
2
+
3
+ A powerful interactive dashboard that visualizes and analyzes growth metrics for 35 major Indian cities using AI, time series forecasting, and cluster-based insights.
4
+
5
+ ## 🚀 Live Demo
6
+
7
+ **🌐 View the live dashboard**: [Hugging Face Spaces](https://huggingface.co/spaces/your-username/decode-india-dashboard)
8
+
9
+ ---
10
+
11
+ ## 🚀 Features
12
+
13
+ - 📊 **Compare Development Metrics**: Visual comparisons between cities on metrics like health, education, infrastructure, etc.
14
+ - 🔁 **Time Series Forecasting**: Uses ARIMA models to predict future values for selected indicators.
15
+ - 🌐 **Radar Chart Visualization**: View cities' SDG performance across multiple indicators.
16
+ - 🧠 **AI-Powered Insights**: Automatically highlights strongest and weakest areas for each city.
17
+ - 🌍 **Twin City Matching**: Suggests cities with similar developmental patterns.
18
+ - 🎯 **Clustering**: KMeans-based segmentation to group cities with similar development profiles.
19
+ - 🧮 **Correlation Analysis**: Examine relationships between key indicators.
20
+
21
+ ---
22
+
23
+ ## 📁 Project Structure
24
+ ```
25
+ Decode-India/
26
+
27
+ ├── app.py # Main Dash application
28
+ ├── data/
29
+ │ ├── india_growth_metrics.csv # City-wide metrics data
30
+ │ └── timeseries.csv # Year-wise data (2015–2023) for forecasting
31
+ ├── requirements.txt # Python dependencies
32
+ └── README.md # Instructions and documentation
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 🌟 Deploy on Hugging Face Spaces (Recommended)
38
+
39
+ ### Step 1: Create Hugging Face Account
40
+ 1. Go to [huggingface.co](https://huggingface.co) and sign up
41
+ 2. Verify your email address
42
+
43
+ ### Step 2: Create a New Space
44
+ 1. Click on your profile → "New Space"
45
+ 2. Choose settings:
46
+ - **Owner**: Your username
47
+ - **Space name**: `decode-india-dashboard`
48
+ - **Space SDK**: **Gradio** (we'll use this for Dash)
49
+ - **License**: MIT
50
+ - **Visibility**: Public
51
+
52
+ ### Step 3: Upload Your Code
53
+ 1. Clone the space repository:
54
+ ```bash
55
+ git clone https://huggingface.co/spaces/your-username/decode-india-dashboard
56
+ cd decode-india-dashboard
57
+ ```
58
+
59
+ 2. Copy your files:
60
+ ```bash
61
+ # Copy all your project files
62
+ cp -r /path/to/your/project/* .
63
+ ```
64
+
65
+ 3. Push to Hugging Face:
66
+ ```bash
67
+ git add .
68
+ git commit -m "Initial deployment"
69
+ git push
70
+ ```
71
+
72
+ ### Step 4: Your App is Live!
73
+ Your dashboard will be available at:
74
+ `https://huggingface.co/spaces/your-username/decode-india-dashboard`
75
+
76
  ---
77
+
78
+ ## ⚙️ How to Run the Dashboard Locally
79
+
80
+ ### 1️⃣ Clone the Repository
81
+
82
+ ```bash
83
+ git clone https://github.com/your-username/Decode-India.git
84
+ cd Decode-India
85
+ ```
86
+ ### Create & Activate a Virtual Environment
87
+ python -m venv .venv
88
+ # Activate the environment:
89
+ # On Windows
90
+ ```bash
91
+ .venv\Scripts\activate
92
+ ```
93
+ # On macOS/Linux
94
+ ```bash
95
+ source .venv/bin/activate
96
+ ```
97
+ ### Install Required Dependencies
98
+ ```bash
99
+ pip install -r requirements.txt
100
+ ```
101
+ Or install individually:
102
+ ```bash
103
+ pip install dash pandas plotly numpy scikit-learn statsmodels
104
+ ```
105
+ ### Add the Data Files
106
+ Place the following files in the data/ folder:
107
+
108
+ india_growth_metrics.csv – Contains city-wise growth indicators.
109
+
110
+ timeseries.csv – Contains yearly data for each city for time series analysis (2015–2023)
111
+
112
+ ### Run the Application
113
+ ```bash
114
+ python app.py
115
+ ```
116
+
117
+ ### View in Browser
118
+ Visit:
119
+
120
+ ```bash
121
+ http://127.0.0.1:8050/
122
+ ```
123
+
124
  ---
125
 
126
+ ## 🎯 Alternative Deployment Options
127
+
128
+ See [DEPLOYMENT.md](DEPLOYMENT.md) for other deployment options including:
129
+ - Railway
130
+ - Render
131
+ - Heroku
132
+ - Docker
133
+ - VPS/Cloud servers
app.py ADDED
@@ -0,0 +1,232 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import plotly.express as px
4
+ import plotly.graph_objects as go
5
+ from sklearn.cluster import KMeans
6
+ from sklearn.preprocessing import StandardScaler
7
+ import numpy as np
8
+ import statsmodels.api as sm
9
+ import os
10
+
11
+ # Load main metrics
12
+ df = pd.read_csv("data/india_growth_metrics.csv")
13
+ df.columns = df.columns.str.strip()
14
+ cities = df['City'].unique()
15
+ metrics = df.columns[1:-1] # Exclude City and Gini Coefficient
16
+
17
+ # Cluster setup
18
+ scaler = StandardScaler()
19
+ cluster_data = scaler.fit_transform(df[metrics])
20
+ kmeans = KMeans(n_clusters=4, random_state=0).fit(cluster_data)
21
+ df['Cluster'] = kmeans.labels_
22
+
23
+ def create_bar_chart(selected_cities, selected_metric):
24
+ """Create bar chart for selected cities and metric"""
25
+ if not selected_cities or not selected_metric:
26
+ return None
27
+
28
+ filtered = df[df['City'].isin(selected_cities)]
29
+ fig = px.bar(filtered, x='City', y=selected_metric, color='City',
30
+ title=f"{selected_metric} Comparison")
31
+ return fig
32
+
33
+ def create_radar_chart(selected_cities):
34
+ """Create radar chart for selected cities"""
35
+ if not selected_cities:
36
+ return None
37
+
38
+ radar_df = df[df['City'].isin(selected_cities)].set_index('City')
39
+ melted = radar_df[metrics].reset_index().melt(id_vars='City', var_name='Metric', value_name='Value')
40
+ fig = px.line_polar(melted, r='Value', theta='Metric', color='City',
41
+ line_close=True, title="Radar View")
42
+ fig.update_traces(fill='toself')
43
+ return fig
44
+
45
+ def create_correlation_matrix(selected_cities):
46
+ """Create correlation matrix for selected cities"""
47
+ if not selected_cities:
48
+ return None
49
+
50
+ corr = df[df['City'].isin(selected_cities)][metrics].corr()
51
+ fig = px.imshow(corr, text_auto=True, title="Correlation Matrix")
52
+ return fig
53
+
54
+ def generate_ai_insights(selected_cities):
55
+ """Generate AI insights for selected cities"""
56
+ if not selected_cities:
57
+ return "Please select cities to generate insights."
58
+
59
+ insights = []
60
+ for city in selected_cities:
61
+ city_data = df[df['City'] == city]
62
+ if not city_data.empty:
63
+ highest = city_data[metrics].idxmax(axis=1).values[0]
64
+ lowest = city_data[metrics].idxmin(axis=1).values[0]
65
+ insights.append(f"🏙️ **{city}** excels in **{highest}** but needs improvement in **{lowest}**.")
66
+
67
+ return "\n".join(insights) if insights else "No insights available."
68
+
69
+ def find_twin_cities(selected_cities):
70
+ """Find twin cities for selected cities"""
71
+ if not selected_cities:
72
+ return "Please select cities to find twin cities."
73
+
74
+ twin_info = []
75
+ for city in selected_cities:
76
+ city_data = df[df['City'] == city]
77
+ if not city_data.empty:
78
+ city_vec = city_data[metrics].values
79
+ df_temp = df.copy()
80
+ df_temp['distance'] = np.linalg.norm(df_temp[metrics].values - city_vec, axis=1)
81
+ nearest = df_temp[df_temp['City'] != city].sort_values('distance').iloc[0]['City']
82
+ twin_info.append(f"🏙️ **{city}**'s most similar city is **{nearest}**.")
83
+
84
+ return "\n".join(twin_info) if twin_info else "No twin cities found."
85
+
86
+ def create_time_series(selected_metric, selected_city):
87
+ """Create time series forecast for selected metric and city"""
88
+ if not selected_metric or not selected_city:
89
+ return None
90
+
91
+ try:
92
+ time_df = pd.read_csv("data/timeseries.csv", encoding='utf-8-sig')
93
+ time_df.columns = time_df.columns.str.strip()
94
+ time_df['City'] = time_df['City'].str.strip()
95
+
96
+ fig = go.Figure()
97
+ city_df = time_df[time_df['City'] == selected_city].sort_values('Year')
98
+ city_df['Year'] = pd.to_datetime(city_df['Year'], format='%Y')
99
+
100
+ if selected_metric in city_df.columns:
101
+ ts = city_df.set_index('Year')[selected_metric]
102
+ fig.add_trace(go.Scatter(x=ts.index, y=ts.values, mode='lines+markers',
103
+ name=selected_metric))
104
+ try:
105
+ model = sm.tsa.ARIMA(ts, order=(1, 1, 0)).fit()
106
+ forecast = model.get_forecast(steps=3)
107
+ forecast_index = pd.date_range(start=ts.index[-1] + pd.offsets.YearBegin(),
108
+ periods=3, freq='YS')
109
+ forecast_series = pd.Series(forecast.predicted_mean.values, index=forecast_index)
110
+ fig.add_trace(go.Scatter(x=forecast_series.index, y=forecast_series.values,
111
+ mode='lines+markers', name=f"{selected_metric} Forecast",
112
+ line=dict(dash='dash')))
113
+ except:
114
+ pass
115
+
116
+ fig.update_layout(title=f"Time Series Forecast: {selected_metric} in {selected_city}",
117
+ xaxis_title='Year')
118
+ return fig
119
+ except Exception as e:
120
+ return None
121
+
122
+ def create_cluster_view(metric):
123
+ """Create cluster visualization"""
124
+ if not metric:
125
+ return None
126
+
127
+ fig = px.scatter(df, x=metric, y='Gini Coefficient', color='Cluster',
128
+ hover_data=['City'], title="City Clustering")
129
+ return fig
130
+
131
+ # Create Gradio interface
132
+ with gr.Blocks(title="India Growth Metrics Dashboard", theme=gr.themes.Soft()) as demo:
133
+ gr.Markdown("# 🇮🇳 Decode India: Smart AI-Enhanced Dashboard for Growth Metrics")
134
+ gr.Markdown("A powerful interactive dashboard that visualizes and analyzes growth metrics for 35 major Indian cities using AI, time series forecasting, and cluster-based insights.")
135
+
136
+ with gr.Row():
137
+ with gr.Column(scale=1):
138
+ gr.Markdown("### 📊 Dashboard Controls")
139
+
140
+ city_selector = gr.Dropdown(
141
+ choices=list(cities),
142
+ value=list(cities[:3]),
143
+ label="Select Cities",
144
+ multiselect=True
145
+ )
146
+
147
+ metric_selector = gr.Dropdown(
148
+ choices=list(metrics),
149
+ value=metrics[0],
150
+ label="Select Metric"
151
+ )
152
+
153
+ time_series_city = gr.Dropdown(
154
+ choices=list(cities),
155
+ value=cities[0],
156
+ label="Select City for Time Series"
157
+ )
158
+
159
+ with gr.Row():
160
+ with gr.Column(scale=1):
161
+ gr.Markdown("### 📈 Bar Chart Comparison")
162
+ bar_chart = gr.Plot(label="Bar Chart")
163
+
164
+ with gr.Column(scale=1):
165
+ gr.Markdown("### 🌐 Radar Chart")
166
+ radar_chart = gr.Plot(label="Radar Chart")
167
+
168
+ with gr.Row():
169
+ with gr.Column(scale=1):
170
+ gr.Markdown("### 🧮 Correlation Matrix")
171
+ correlation_matrix = gr.Plot(label="Correlation Matrix")
172
+
173
+ with gr.Column(scale=1):
174
+ gr.Markdown("### 🎯 City Clustering")
175
+ cluster_view = gr.Plot(label="Cluster View")
176
+
177
+ with gr.Row():
178
+ with gr.Column(scale=1):
179
+ gr.Markdown("### 📈 Time Series Forecast")
180
+ time_series = gr.Plot(label="Time Series")
181
+
182
+ with gr.Column(scale=1):
183
+ gr.Markdown("### 🧠 AI Insights")
184
+ ai_insights = gr.Markdown(label="AI Insights")
185
+
186
+ with gr.Row():
187
+ with gr.Column(scale=1):
188
+ gr.Markdown("### 🌍 Twin City Recommendations")
189
+ twin_cities = gr.Markdown(label="Twin Cities")
190
+
191
+ # Event handlers
192
+ def update_charts(cities, metric):
193
+ return (
194
+ create_bar_chart(cities, metric),
195
+ create_radar_chart(cities),
196
+ create_correlation_matrix(cities),
197
+ create_cluster_view(metric),
198
+ generate_ai_insights(cities),
199
+ find_twin_cities(cities)
200
+ )
201
+
202
+ def update_time_series(metric, city):
203
+ return create_time_series(metric, city)
204
+
205
+ # Connect inputs to outputs
206
+ city_selector.change(
207
+ update_charts,
208
+ inputs=[city_selector, metric_selector],
209
+ outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, ai_insights, twin_cities]
210
+ )
211
+
212
+ metric_selector.change(
213
+ update_charts,
214
+ inputs=[city_selector, metric_selector],
215
+ outputs=[bar_chart, radar_chart, correlation_matrix, cluster_view, ai_insights, twin_cities]
216
+ )
217
+
218
+ time_series_city.change(
219
+ update_time_series,
220
+ inputs=[metric_selector, time_series_city],
221
+ outputs=[time_series]
222
+ )
223
+
224
+ metric_selector.change(
225
+ update_time_series,
226
+ inputs=[metric_selector, time_series_city],
227
+ outputs=[time_series]
228
+ )
229
+
230
+ # Launch the app
231
+ if __name__ == "__main__":
232
+ demo.launch()
data/india_growth_metrics.csv ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ City,Population Growth Rate,Education Index,Health Index,Infrastructure Quality Index,Digital Penetration Rate,Green Cover %,Employment Rate,Gini Coefficient
2
+ Delhi,2.5,0.82,0.78,0.81,0.88,20.5,72.1,0.35
3
+ Mumbai,2.3,0.84,0.76,0.79,0.91,18.3,70.5,0.37
4
+ Bangalore,2.7,0.87,0.80,0.83,0.95,24.1,74.2,0.34
5
+ Hyderabad,2.6,0.85,0.79,0.82,0.93,22.9,73.0,0.36
6
+ Chennai,2.4,0.83,0.77,0.80,0.89,19.8,71.3,0.35
7
+ Kolkata,2.2,0.80,0.75,0.76,0.86,21.4,69.9,0.38
8
+ Ahmedabad,2.5,0.81,0.74,0.78,0.87,20.0,70.2,0.37
9
+ Pune,2.6,0.86,0.79,0.81,0.92,23.0,72.5,0.34
10
+ Jaipur,2.3,0.78,0.72,0.75,0.84,18.7,68.4,0.39
11
+ Lucknow,2.1,0.76,0.70,0.72,0.82,17.2,67.1,0.40
12
+ Kanpur,2.0,0.75,0.69,0.70,0.80,16.8,66.5,0.41
13
+ Nagpur,2.4,0.82,0.76,0.77,0.88,21.1,70.0,0.36
14
+ Indore,2.5,0.83,0.77,0.78,0.89,20.5,70.8,0.35
15
+ Bhopal,2.3,0.80,0.74,0.76,0.85,19.2,69.3,0.37
16
+ Patna,2.0,0.74,0.68,0.69,0.78,15.9,65.0,0.42
17
+ Ranchi,2.1,0.75,0.69,0.70,0.79,16.2,65.7,0.41
18
+ Raipur,2.2,0.76,0.70,0.71,0.80,16.5,66.1,0.40
19
+ Chandigarh,2.6,0.88,0.82,0.84,0.94,25.0,75.2,0.33
20
+ Amritsar,2.3,0.80,0.74,0.76,0.86,20.3,69.7,0.36
21
+ Surat,2.7,0.84,0.77,0.79,0.90,22.0,71.8,0.35
22
+ Vadodara,2.5,0.82,0.75,0.77,0.88,21.3,70.6,0.36
23
+ Nashik,2.4,0.81,0.74,0.76,0.87,20.7,70.1,0.37
24
+ Faridabad,2.3,0.80,0.73,0.75,0.85,19.5,69.2,0.38
25
+ Meerut,2.2,0.79,0.72,0.74,0.83,18.9,68.0,0.39
26
+ Rajkot,2.5,0.83,0.76,0.78,0.89,21.0,71.0,0.36
27
+ Varanasi,2.1,0.77,0.70,0.72,0.81,17.4,66.8,0.40
28
+ Madurai,2.3,0.80,0.73,0.75,0.85,19.1,69.0,0.37
29
+ Coimbatore,2.4,0.82,0.75,0.77,0.87,20.0,70.3,0.36
30
+ Jodhpur,2.2,0.78,0.71,0.73,0.83,18.2,67.9,0.39
31
+ Gwalior,2.1,0.76,0.69,0.71,0.80,17.0,66.0,0.40
32
+ Agra,2.2,0.77,0.70,0.72,0.82,17.8,67.2,0.39
33
+ Thiruvananthapuram,2.5,0.89,0.84,0.85,0.95,26.1,76.0,0.32
34
+ Vijayawada,2.4,0.81,0.74,0.76,0.86,19.9,70.0,0.37
35
+ Visakhapatnam,2.5,0.83,0.76,0.78,0.88,21.1,71.2,0.36
36
+ Ludhiana,2.3,0.79,0.72,0.74,0.84,18.8,68.5,0.38
37
+ Jamshedpur,2.2,0.78,0.71,0.73,0.83,18.0,67.7,0.39
38
+ Hubli,2.3,0.79,0.72,0.74,0.84,18.5,68.2,0.38
data/timeseries.csv ADDED
@@ -0,0 +1,334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ City,Year,Population Growth Rate,Education Index,Health Index,Infrastructure Quality Index
2
+ Delhi,2015,2.50,0.80,0.75,0.78
3
+ Delhi,2016,2.52,0.81,0.76,0.79
4
+ Delhi,2017,2.54,0.82,0.77,0.80
5
+ Delhi,2018,2.56,0.83,0.78,0.81
6
+ Delhi,2019,2.58,0.84,0.79,0.82
7
+ Delhi,2020,2.60,0.85,0.80,0.83
8
+ Delhi,2021,2.62,0.86,0.81,0.84
9
+ Delhi,2022,2.64,0.87,0.82,0.85
10
+ Delhi,2023,2.66,0.88,0.83,0.86
11
+ Mumbai,2015,2.30,0.79,0.72,0.75
12
+ Mumbai,2016,2.32,0.80,0.73,0.76
13
+ Mumbai,2017,2.34,0.81,0.74,0.77
14
+ Mumbai,2018,2.36,0.82,0.75,0.78
15
+ Mumbai,2019,2.38,0.83,0.76,0.79
16
+ Mumbai,2020,2.40,0.84,0.77,0.80
17
+ Mumbai,2021,2.42,0.85,0.78,0.81
18
+ Mumbai,2022,2.44,0.86,0.79,0.82
19
+ Mumbai,2023,2.46,0.87,0.80,0.83
20
+ Bangalore,2015,2.70,0.81,0.76,0.78
21
+ Bangalore,2016,2.72,0.82,0.77,0.79
22
+ Bangalore,2017,2.74,0.83,0.78,0.80
23
+ Bangalore,2018,2.76,0.84,0.79,0.81
24
+ Bangalore,2019,2.78,0.85,0.80,0.82
25
+ Bangalore,2020,2.80,0.86,0.81,0.83
26
+ Bangalore,2021,2.82,0.87,0.82,0.84
27
+ Bangalore,2022,2.84,0.88,0.83,0.85
28
+ Bangalore,2023,2.86,0.89,0.84,0.86
29
+ Hyderabad,2015,2.60,0.80,0.75,0.76
30
+ Hyderabad,2016,2.62,0.81,0.76,0.77
31
+ Hyderabad,2017,2.64,0.82,0.77,0.78
32
+ Hyderabad,2018,2.66,0.83,0.78,0.79
33
+ Hyderabad,2019,2.68,0.84,0.79,0.80
34
+ Hyderabad,2020,2.70,0.85,0.80,0.81
35
+ Hyderabad,2021,2.72,0.86,0.81,0.82
36
+ Hyderabad,2022,2.74,0.87,0.82,0.83
37
+ Hyderabad,2023,2.76,0.88,0.83,0.84
38
+ Chennai,2015,2.40,0.78,0.74,0.74
39
+ Chennai,2016,2.42,0.79,0.75,0.75
40
+ Chennai,2017,2.44,0.80,0.76,0.76
41
+ Chennai,2018,2.46,0.81,0.77,0.77
42
+ Chennai,2019,2.48,0.82,0.78,0.78
43
+ Chennai,2020,2.50,0.83,0.79,0.79
44
+ Chennai,2021,2.52,0.84,0.80,0.80
45
+ Chennai,2022,2.54,0.85,0.81,0.81
46
+ Chennai,2023,2.56,0.86,0.82,0.82
47
+ Ahmedabad,2015,2.50,0.76,0.70,0.72
48
+ Ahmedabad,2016,2.52,0.77,0.71,0.73
49
+ Ahmedabad,2017,2.54,0.78,0.72,0.74
50
+ Ahmedabad,2018,2.56,0.79,0.73,0.75
51
+ Ahmedabad,2019,2.58,0.80,0.74,0.76
52
+ Ahmedabad,2020,2.60,0.81,0.75,0.77
53
+ Ahmedabad,2021,2.62,0.82,0.76,0.78
54
+ Ahmedabad,2022,2.64,0.83,0.77,0.79
55
+ Ahmedabad,2023,2.66,0.84,0.78,0.80
56
+ Pune,2015,2.40,0.79,0.74,0.75
57
+ Pune,2016,2.42,0.80,0.75,0.76
58
+ Pune,2017,2.44,0.81,0.76,0.77
59
+ Pune,2018,2.46,0.82,0.77,0.78
60
+ Pune,2019,2.48,0.83,0.78,0.79
61
+ Pune,2020,2.50,0.84,0.79,0.80
62
+ Pune,2021,2.52,0.85,0.80,0.81
63
+ Pune,2022,2.54,0.86,0.81,0.82
64
+ Pune,2023,2.56,0.87,0.82,0.83
65
+ Jaipur,2015,2.30,0.74,0.70,0.71
66
+ Jaipur,2016,2.32,0.75,0.71,0.72
67
+ Jaipur,2017,2.34,0.76,0.72,0.73
68
+ Jaipur,2018,2.36,0.77,0.73,0.74
69
+ Jaipur,2019,2.38,0.78,0.74,0.75
70
+ Jaipur,2020,2.40,0.79,0.75,0.76
71
+ Jaipur,2021,2.42,0.80,0.76,0.77
72
+ Jaipur,2022,2.44,0.81,0.77,0.78
73
+ Jaipur,2023,2.46,0.82,0.78,0.79
74
+ Lucknow,2015,2.20,0.72,0.68,0.70
75
+ Lucknow,2016,2.22,0.73,0.69,0.71
76
+ Lucknow,2017,2.24,0.74,0.70,0.72
77
+ Lucknow,2018,2.26,0.75,0.71,0.73
78
+ Lucknow,2019,2.28,0.76,0.72,0.74
79
+ Lucknow,2020,2.30,0.77,0.73,0.75
80
+ Lucknow,2021,2.32,0.78,0.74,0.76
81
+ Lucknow,2022,2.34,0.79,0.75,0.77
82
+ Lucknow,2023,2.36,0.80,0.76,0.78
83
+ Kanpur,2015,2.00,0.70,0.65,0.67
84
+ Kanpur,2016,2.02,0.71,0.66,0.68
85
+ Kanpur,2017,2.04,0.72,0.67,0.69
86
+ Kanpur,2018,2.06,0.73,0.68,0.70
87
+ Kanpur,2019,2.08,0.74,0.69,0.71
88
+ Kanpur,2020,2.10,0.75,0.70,0.72
89
+ Kanpur,2021,2.12,0.76,0.71,0.73
90
+ Kanpur,2022,2.14,0.77,0.72,0.74
91
+ Kanpur,2023,2.16,0.78,0.73,0.75
92
+ Nagpur,2015,2.30,0.76,0.71,0.73
93
+ Nagpur,2016,2.32,0.77,0.72,0.74
94
+ Nagpur,2017,2.34,0.78,0.73,0.75
95
+ Nagpur,2018,2.36,0.79,0.74,0.76
96
+ Nagpur,2019,2.38,0.80,0.75,0.77
97
+ Nagpur,2020,2.40,0.81,0.76,0.78
98
+ Nagpur,2021,2.42,0.82,0.77,0.79
99
+ Nagpur,2022,2.44,0.83,0.78,0.80
100
+ Nagpur,2023,2.46,0.84,0.79,0.81
101
+ Indore,2015,2.50,0.78,0.73,0.74
102
+ Indore,2016,2.52,0.79,0.74,0.75
103
+ Indore,2017,2.54,0.80,0.75,0.76
104
+ Indore,2018,2.56,0.81,0.76,0.77
105
+ Indore,2019,2.58,0.82,0.77,0.78
106
+ Indore,2020,2.60,0.83,0.78,0.79
107
+ Indore,2021,2.62,0.84,0.79,0.80
108
+ Indore,2022,2.64,0.85,0.80,0.81
109
+ Indore,2023,2.66,0.86,0.81,0.82
110
+ Bhopal,2015,2.30,0.74,0.69,0.71
111
+ Bhopal,2016,2.32,0.75,0.70,0.72
112
+ Bhopal,2017,2.34,0.76,0.71,0.73
113
+ Bhopal,2018,2.36,0.77,0.72,0.74
114
+ Bhopal,2019,2.38,0.78,0.73,0.75
115
+ Bhopal,2020,2.40,0.79,0.74,0.76
116
+ Bhopal,2021,2.42,0.80,0.75,0.77
117
+ Bhopal,2022,2.44,0.81,0.76,0.78
118
+ Bhopal,2023,2.46,0.82,0.77,0.79
119
+ Patna,2015,2.00,0.68,0.64,0.65
120
+ Patna,2016,2.02,0.69,0.65,0.66
121
+ Patna,2017,2.04,0.70,0.66,0.67
122
+ Patna,2018,2.06,0.71,0.67,0.68
123
+ Patna,2019,2.08,0.72,0.68,0.69
124
+ Patna,2020,2.10,0.73,0.69,0.70
125
+ Patna,2021,2.12,0.74,0.70,0.71
126
+ Patna,2022,2.14,0.75,0.71,0.72
127
+ Patna,2023,2.16,0.76,0.72,0.73
128
+ Ranchi,2015,2.10,0.69,0.65,0.66
129
+ Ranchi,2016,2.12,0.70,0.66,0.67
130
+ Ranchi,2017,2.14,0.71,0.67,0.68
131
+ Ranchi,2018,2.16,0.72,0.68,0.69
132
+ Ranchi,2019,2.18,0.73,0.69,0.70
133
+ Ranchi,2020,2.20,0.74,0.70,0.71
134
+ Ranchi,2021,2.22,0.75,0.71,0.72
135
+ Ranchi,2022,2.24,0.76,0.72,0.73
136
+ Ranchi,2023,2.26,0.77,0.73,0.74
137
+ Raipur,2015,2.20,0.70,0.66,0.67
138
+ Raipur,2016,2.22,0.71,0.67,0.68
139
+ Raipur,2017,2.24,0.72,0.68,0.69
140
+ Raipur,2018,2.26,0.73,0.69,0.70
141
+ Raipur,2019,2.28,0.74,0.70,0.71
142
+ Raipur,2020,2.30,0.75,0.71,0.72
143
+ Raipur,2021,2.32,0.76,0.72,0.73
144
+ Raipur,2022,2.34,0.77,0.73,0.74
145
+ Raipur,2023,2.36,0.78,0.74,0.75
146
+ Chandigarh,2015,2.60,0.85,0.81,0.82
147
+ Chandigarh,2016,2.62,0.86,0.82,0.83
148
+ Chandigarh,2017,2.64,0.87,0.83,0.84
149
+ Chandigarh,2018,2.66,0.88,0.84,0.85
150
+ Chandigarh,2019,2.68,0.89,0.85,0.86
151
+ Chandigarh,2020,2.70,0.90,0.86,0.87
152
+ Chandigarh,2021,2.72,0.91,0.87,0.88
153
+ Chandigarh,2022,2.74,0.92,0.88,0.89
154
+ Chandigarh,2023,2.76,0.93,0.89,0.90
155
+ Amritsar,2015,2.30,0.75,0.71,0.72
156
+ Amritsar,2016,2.32,0.76,0.72,0.73
157
+ Amritsar,2017,2.34,0.77,0.73,0.74
158
+ Amritsar,2018,2.36,0.78,0.74,0.75
159
+ Amritsar,2019,2.38,0.79,0.75,0.76
160
+ Amritsar,2020,2.40,0.80,0.76,0.77
161
+ Amritsar,2021,2.42,0.81,0.77,0.78
162
+ Amritsar,2022,2.44,0.82,0.78,0.79
163
+ Amritsar,2023,2.46,0.83,0.79,0.80
164
+ Surat,2015,2.70,0.79,0.74,0.76
165
+ Surat,2016,2.72,0.80,0.75,0.77
166
+ Surat,2017,2.74,0.81,0.76,0.78
167
+ Surat,2018,2.76,0.82,0.77,0.79
168
+ Surat,2019,2.78,0.83,0.78,0.80
169
+ Surat,2020,2.80,0.84,0.79,0.81
170
+ Surat,2021,2.82,0.85,0.80,0.82
171
+ Surat,2022,2.84,0.86,0.81,0.83
172
+ Surat,2023,2.86,0.87,0.82,0.84
173
+ Vadodara,2015,2.50,0.76,0.72,0.73
174
+ Vadodara,2016,2.52,0.77,0.73,0.74
175
+ Vadodara,2017,2.54,0.78,0.74,0.75
176
+ Vadodara,2018,2.56,0.79,0.75,0.76
177
+ Vadodara,2019,2.58,0.80,0.76,0.77
178
+ Vadodara,2020,2.60,0.81,0.77,0.78
179
+ Vadodara,2021,2.62,0.82,0.78,0.79
180
+ Vadodara,2022,2.64,0.83,0.79,0.80
181
+ Vadodara,2023,2.66,0.84,0.80,0.81
182
+ Nashik,2015,2.40,0.74,0.70,0.72
183
+ Nashik,2016,2.42,0.75,0.71,0.73
184
+ Nashik,2017,2.44,0.76,0.72,0.74
185
+ Nashik,2018,2.46,0.77,0.73,0.75
186
+ Nashik,2019,2.48,0.78,0.74,0.76
187
+ Nashik,2020,2.50,0.79,0.75,0.77
188
+ Nashik,2021,2.52,0.80,0.76,0.78
189
+ Nashik,2022,2.54,0.81,0.77,0.79
190
+ Nashik,2023,2.56,0.82,0.78,0.80
191
+ Faridabad,2015,2.30,0.73,0.69,0.70
192
+ Faridabad,2016,2.32,0.74,0.70,0.71
193
+ Faridabad,2017,2.34,0.75,0.71,0.72
194
+ Faridabad,2018,2.36,0.76,0.72,0.73
195
+ Faridabad,2019,2.38,0.77,0.73,0.74
196
+ Faridabad,2020,2.40,0.78,0.74,0.75
197
+ Faridabad,2021,2.42,0.79,0.75,0.76
198
+ Faridabad,2022,2.44,0.80,0.76,0.77
199
+ Faridabad,2023,2.46,0.81,0.77,0.78
200
+ Meerut,2015,2.20,0.72,0.67,0.69
201
+ Meerut,2016,2.22,0.73,0.68,0.70
202
+ Meerut,2017,2.24,0.74,0.69,0.71
203
+ Meerut,2018,2.26,0.75,0.70,0.72
204
+ Meerut,2019,2.28,0.76,0.71,0.73
205
+ Meerut,2020,2.30,0.77,0.72,0.74
206
+ Meerut,2021,2.32,0.78,0.73,0.75
207
+ Meerut,2022,2.34,0.79,0.74,0.76
208
+ Meerut,2023,2.36,0.80,0.75,0.77
209
+ Rajkot,2015,2.50,0.77,0.72,0.73
210
+ Rajkot,2016,2.52,0.78,0.73,0.74
211
+ Rajkot,2017,2.54,0.79,0.74,0.75
212
+ Rajkot,2018,2.56,0.80,0.75,0.76
213
+ Rajkot,2019,2.58,0.81,0.76,0.77
214
+ Rajkot,2020,2.60,0.82,0.77,0.78
215
+ Rajkot,2021,2.62,0.83,0.78,0.79
216
+ Rajkot,2022,2.64,0.84,0.79,0.80
217
+ Rajkot,2023,2.66,0.85,0.80,0.81
218
+ Varanasi,2015,2.10,0.70,0.66,0.68
219
+ Varanasi,2016,2.12,0.71,0.67,0.69
220
+ Varanasi,2017,2.14,0.72,0.68,0.70
221
+ Varanasi,2018,2.16,0.73,0.69,0.71
222
+ Varanasi,2019,2.18,0.74,0.70,0.72
223
+ Varanasi,2020,2.20,0.75,0.71,0.73
224
+ Varanasi,2021,2.22,0.76,0.72,0.74
225
+ Varanasi,2022,2.24,0.77,0.73,0.75
226
+ Varanasi,2023,2.26,0.78,0.74,0.76
227
+ Madurai,2015,2.30,0.73,0.68,0.70
228
+ Madurai,2016,2.32,0.74,0.69,0.71
229
+ Madurai,2017,2.34,0.75,0.70,0.72
230
+ Madurai,2018,2.36,0.76,0.71,0.73
231
+ Madurai,2019,2.38,0.77,0.72,0.74
232
+ Madurai,2020,2.40,0.78,0.73,0.75
233
+ Madurai,2021,2.42,0.79,0.74,0.76
234
+ Madurai,2022,2.44,0.80,0.75,0.77
235
+ Madurai,2023,2.46,0.81,0.76,0.78
236
+ Coimbatore,2015,2.40,0.75,0.70,0.72
237
+ Coimbatore,2016,2.42,0.76,0.71,0.73
238
+ Coimbatore,2017,2.44,0.77,0.72,0.74
239
+ Coimbatore,2018,2.46,0.78,0.73,0.75
240
+ Coimbatore,2019,2.48,0.79,0.74,0.76
241
+ Coimbatore,2020,2.50,0.80,0.75,0.77
242
+ Coimbatore,2021,2.52,0.81,0.76,0.78
243
+ Coimbatore,2022,2.54,0.82,0.77,0.79
244
+ Coimbatore,2023,2.56,0.83,0.78,0.80
245
+ Jodhpur,2015,2.20,0.72,0.67,0.69
246
+ Jodhpur,2016,2.22,0.73,0.68,0.70
247
+ Jodhpur,2017,2.24,0.74,0.69,0.71
248
+ Jodhpur,2018,2.26,0.75,0.70,0.72
249
+ Jodhpur,2019,2.28,0.76,0.71,0.73
250
+ Jodhpur,2020,2.30,0.77,0.72,0.74
251
+ Jodhpur,2021,2.32,0.78,0.73,0.75
252
+ Jodhpur,2022,2.34,0.79,0.74,0.76
253
+ Jodhpur,2023,2.36,0.80,0.75,0.77
254
+ Gwalior,2015,2.10,0.71,0.66,0.68
255
+ Gwalior,2016,2.12,0.72,0.67,0.69
256
+ Gwalior,2017,2.14,0.73,0.68,0.70
257
+ Gwalior,2018,2.16,0.74,0.69,0.71
258
+ Gwalior,2019,2.18,0.75,0.70,0.72
259
+ Gwalior,2020,2.20,0.76,0.71,0.73
260
+ Gwalior,2021,2.22,0.77,0.72,0.74
261
+ Gwalior,2022,2.24,0.78,0.73,0.75
262
+ Gwalior,2023,2.26,0.79,0.74,0.76
263
+ Agra,2015,2.20,0.70,0.66,0.68
264
+ Agra,2016,2.22,0.71,0.67,0.69
265
+ Agra,2017,2.24,0.72,0.68,0.70
266
+ Agra,2018,2.26,0.73,0.69,0.71
267
+ Agra,2019,2.28,0.74,0.70,0.72
268
+ Agra,2020,2.30,0.75,0.71,0.73
269
+ Agra,2021,2.32,0.76,0.72,0.74
270
+ Agra,2022,2.34,0.77,0.73,0.75
271
+ Agra,2023,2.36,0.78,0.74,0.76
272
+ Hubli,2015,2.30,0.74,0.69,0.70
273
+ Hubli,2016,2.32,0.75,0.70,0.71
274
+ Hubli,2017,2.34,0.76,0.71,0.72
275
+ Hubli,2018,2.36,0.77,0.72,0.73
276
+ Hubli,2019,2.38,0.78,0.73,0.74
277
+ Hubli,2020,2.40,0.79,0.74,0.75
278
+ Hubli,2021,2.42,0.80,0.75,0.76
279
+ Hubli,2022,2.44,0.81,0.76,0.77
280
+ Hubli,2023,2.46,0.82,0.77,0.78
281
+ Jamshedpur,2015,2.20,0.73,0.68,0.70
282
+ Jamshedpur,2016,2.22,0.74,0.69,0.71
283
+ Jamshedpur,2017,2.24,0.75,0.70,0.72
284
+ Jamshedpur,2018,2.26,0.76,0.71,0.73
285
+ Jamshedpur,2019,2.28,0.77,0.72,0.74
286
+ Jamshedpur,2020,2.30,0.78,0.73,0.75
287
+ Jamshedpur,2021,2.32,0.79,0.74,0.76
288
+ Jamshedpur,2022,2.34,0.80,0.75,0.77
289
+ Jamshedpur,2023,2.36,0.81,0.76,0.78
290
+ Kolkata,2015,2.20,0.74,0.70,0.72
291
+ Kolkata,2016,2.22,0.75,0.71,0.73
292
+ Kolkata,2017,2.24,0.76,0.72,0.74
293
+ Kolkata,2018,2.26,0.77,0.73,0.75
294
+ Kolkata,2019,2.28,0.78,0.74,0.76
295
+ Kolkata,2020,2.30,0.79,0.75,0.77
296
+ Kolkata,2021,2.32,0.80,0.76,0.78
297
+ Kolkata,2022,2.34,0.81,0.77,0.79
298
+ Kolkata,2023,2.36,0.82,0.78,0.80
299
+ Vijayawada,2015,2.40,0.77,0.72,0.74
300
+ Vijayawada,2016,2.42,0.78,0.73,0.75
301
+ Vijayawada,2017,2.44,0.79,0.74,0.76
302
+ Vijayawada,2018,2.46,0.80,0.75,0.77
303
+ Vijayawada,2019,2.48,0.81,0.76,0.78
304
+ Vijayawada,2020,2.50,0.82,0.77,0.79
305
+ Vijayawada,2021,2.52,0.83,0.78,0.80
306
+ Vijayawada,2022,2.54,0.84,0.79,0.81
307
+ Vijayawada,2023,2.56,0.85,0.80,0.82
308
+ Visakhapatnam,2015,2.50,0.78,0.73,0.75
309
+ Visakhapatnam,2016,2.52,0.79,0.74,0.76
310
+ Visakhapatnam,2017,2.54,0.80,0.75,0.77
311
+ Visakhapatnam,2018,2.56,0.81,0.76,0.78
312
+ Visakhapatnam,2019,2.58,0.82,0.77,0.79
313
+ Visakhapatnam,2020,2.60,0.83,0.78,0.80
314
+ Visakhapatnam,2021,2.62,0.84,0.79,0.81
315
+ Visakhapatnam,2022,2.64,0.85,0.80,0.82
316
+ Visakhapatnam,2023,2.66,0.86,0.81,0.83
317
+ Ludhiana,2015,2.30,0.75,0.70,0.71
318
+ Ludhiana,2016,2.32,0.76,0.71,0.72
319
+ Ludhiana,2017,2.34,0.77,0.72,0.73
320
+ Ludhiana,2018,2.36,0.78,0.73,0.74
321
+ Ludhiana,2019,2.38,0.79,0.74,0.75
322
+ Ludhiana,2020,2.40,0.80,0.75,0.76
323
+ Ludhiana,2021,2.42,0.81,0.76,0.77
324
+ Ludhiana,2022,2.44,0.82,0.77,0.78
325
+ Ludhiana,2023,2.46,0.83,0.78,0.79
326
+ Thiruvananthapuram,2015,2.50,0.85,0.81,0.83
327
+ Thiruvananthapuram,2016,2.52,0.86,0.82,0.84
328
+ Thiruvananthapuram,2017,2.54,0.87,0.83,0.85
329
+ Thiruvananthapuram,2018,2.56,0.88,0.84,0.86
330
+ Thiruvananthapuram,2019,2.58,0.89,0.85,0.87
331
+ Thiruvananthapuram,2020,2.60,0.90,0.86,0.88
332
+ Thiruvananthapuram,2021,2.62,0.91,0.87,0.89
333
+ Thiruvananthapuram,2022,2.64,0.92,0.88,0.90
334
+ Thiruvananthapuram,2023,2.66,0.93,0.89,0.91
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ dash==3.0.4
2
+ pandas==2.2.2
3
+ plotly==6.1.2
4
+ scikit-learn==1.4.2
5
+ numpy==1.26.4
6
+ statsmodels==0.14.2
7
+ gunicorn==21.2.0
8
+ gradio==4.44.0