dhrumi commited on
Commit
7dabfbf
·
1 Parent(s): 68803f8

Initial commit

Browse files
app.py CHANGED
@@ -12,6 +12,8 @@ import re
12
  import plotly.express as px
13
  import json
14
  from difflib import get_close_matches
 
 
15
 
16
 
17
  # ---------------------- Config ----------------------
@@ -190,7 +192,7 @@ def ev_insights():
190
 
191
 
192
  def fuel_norm_distribution_dashboard(root_dir, state_mapping_file, start_year=2009, end_year=2025):
193
-
194
  # Folder paths
195
  folders = {
196
  "statewise": os.path.join(root_dir, "Fuel_vs_state"),
@@ -202,25 +204,23 @@ def fuel_norm_distribution_dashboard(root_dir, state_mapping_file, start_year=20
202
  with open(state_mapping_file, 'r') as f:
203
  state_mapping = json.load(f)
204
 
205
- # Create a dictionary mapping state codes to full state names (case-insensitive key mapping)
206
  state_dict = {item["State Code"].upper(): item["Full State Name"].strip() for item in state_mapping}
207
 
208
- # Function to load data
209
  def load_data(folder_path, year_file):
210
  file_path = os.path.join(folder_path, year_file)
211
  if os.path.exists(file_path):
212
  df = pd.read_csv(file_path)
213
- # Remove 'Total' row/column if present
214
  if "Total" in df.columns:
215
  df = df.drop(columns=["Total"])
216
  if df.iloc[:, 0].str.contains("Total", na=False).any():
217
  df = df[~df.iloc[:, 0].str.contains("Total", na=False)]
 
218
  return df
219
  else:
220
  st.warning(f"File not found: {file_path}")
221
  return pd.DataFrame()
222
 
223
- # Function to load data for multiple years
224
  def load_data_for_year_range(folder_path, start_year, end_year):
225
  combined_df = pd.DataFrame()
226
  for year in range(start_year, end_year + 1):
@@ -229,226 +229,170 @@ def fuel_norm_distribution_dashboard(root_dir, state_mapping_file, start_year=20
229
  combined_df = pd.concat([combined_df, df], ignore_index=True)
230
  return combined_df
231
 
232
- # Load data for selected year range
233
  statewise_df = load_data_for_year_range(folders["statewise"], start_year, end_year)
234
  norms_df = load_data_for_year_range(folders["norms"], start_year, end_year)
235
  fuelwise_df = load_data_for_year_range(folders["fuelwise"], start_year, end_year)
236
 
237
- # Set up Streamlit app title
238
  st.title("🛢 Fuel Allocation & Emission Norms Dashboard (2009–2025)")
239
 
240
- # Tabs for different visualizations
241
  tab1, tab2, tab3 = st.tabs([
242
  "📍 Fuel Distribution over States",
243
  "📊 Norm Distribution by State",
244
  "🔥 Emission by Fuel Type"
245
  ])
246
 
247
- # Tab 1: Statewise Fuel Allocation
248
  with tab1:
249
  st.subheader("Fuel Distribution Across States")
250
  if not statewise_df.empty:
251
- # Convert from wide to long format
252
- melted_df = pd.melt(statewise_df, id_vars=["Fuel"], var_name="State", value_name="Fuel_Amount")
253
-
254
- # Replace state codes with full state names (case-insensitive matching)
255
  melted_df["State"] = melted_df["State"].apply(lambda x: state_dict.get(x.upper(), x))
256
 
257
- # Allow users to select states (categories)
258
- selected_states = st.multiselect("Select States", ["Select All"] + list(melted_df["State"].unique()), default=[], key="state_selection")
259
-
260
- # If "Select All" is chosen, select all states
261
  if "Select All" in selected_states:
262
  selected_states = list(melted_df["State"].unique())
263
 
264
- filtered_df = melted_df[melted_df["State"].isin(selected_states)]
 
 
265
 
266
- # Create and display the plot
267
  fig1 = px.bar(filtered_df, x="State", y="Fuel_Amount", color="Fuel",
268
- title=f"Fuel Distribution from {start_year} to {end_year}",
269
  labels={"Fuel_Amount": "Amount (in units)"}, barmode="group")
270
  st.plotly_chart(fig1, use_container_width=True)
271
 
272
- # Tab 2: Norm Distribution by State
273
  with tab2:
274
  st.subheader("Emission Norm Distribution by State")
275
  if not norms_df.empty:
276
- # Convert from wide to long format
277
- melted_norms = pd.melt(norms_df, id_vars=["Norms"], var_name="State", value_name="Count")
278
-
279
- # Replace state codes with full state names (case-insensitive matching)
280
  melted_norms["State"] = melted_norms["State"].apply(lambda x: state_dict.get(x.upper(), x))
281
 
282
- # Allow users to select a state
283
- selected_states = st.multiselect("Select States", ["Select All"] + list(melted_norms["State"].unique()), default=[], key="norm_state_selection")
284
-
285
- # If "Select All" is chosen, select all states
286
  if "Select All" in selected_states:
287
  selected_states = list(melted_norms["State"].unique())
288
 
289
- filtered_norms = melted_norms[melted_norms["State"].isin(selected_states)]
 
 
290
 
291
- # Create and display the plot
292
  fig2 = px.bar(filtered_norms, x="State", y="Count", color="Norms",
293
- title=f"Emission Norms Distribution from {start_year} to {end_year}",
294
  labels={"Count": "Count of Norms"}, barmode="group")
295
  st.plotly_chart(fig2, use_container_width=True)
296
 
297
- # Tab 3: Fuelwise Emissions
298
  with tab3:
299
- st.subheader("Norm Emissions by Fuel Type")
300
- if not fuelwise_df.empty:
301
- # Check if 'Fuel' exists and others are norms
302
- norm_columns = [col for col in fuelwise_df.columns if col != "Fuel"]
303
- if "Fuel" in fuelwise_df.columns and len(norm_columns) > 0:
304
- # Melt the DataFrame to long format
305
- melted_fuelwise = pd.melt(fuelwise_df, id_vars=["Fuel"],
306
- var_name="Norm_Type", value_name="Emission")
307
-
308
- # Drop missing or non-numeric values if necessary
309
- melted_fuelwise = melted_fuelwise.dropna()
310
- melted_fuelwise["Emission"] = pd.to_numeric(melted_fuelwise["Emission"], errors="coerce")
311
- melted_fuelwise = melted_fuelwise.dropna(subset=["Emission"])
312
-
313
- # Allow users to select fuel categories
314
- selected_fuels = st.multiselect("Select Fuel Types", ["Select All"] + list(melted_fuelwise["Fuel"].unique()), default=[], key="fuel_selection")
315
-
316
- # If "Select All" is chosen, select all fuels
317
- if "Select All" in selected_fuels:
318
- selected_fuels = list(melted_fuelwise["Fuel"].unique())
319
-
320
- filtered_fuelwise = melted_fuelwise[melted_fuelwise["Fuel"].isin(selected_fuels)]
321
-
322
- # Create and display the plot
323
- fig3 = px.bar(filtered_fuelwise, x="Fuel", y="Emission", color="Norm_Type",
324
- title=f"Emission per Fuel Type from {start_year} to {end_year}",
325
- labels={"Emission": "Emission Amount"}, barmode="stack")
326
- st.plotly_chart(fig3, use_container_width=True)
327
-
328
- # Additional visualization for Top Fuels emitting most pollution
329
- top_fuels = melted_fuelwise.groupby("Fuel")["Emission"].sum().reset_index()
330
- top_fuels_sorted = top_fuels.sort_values(by="Emission", ascending=False).head(10)
331
-
332
- st.subheader("Top Fuels Emitting Most Pollution")
333
- st.write(top_fuels_sorted)
334
-
335
- fig4 = px.bar(top_fuels_sorted, x="Fuel", y="Emission", title="Top Fuels by Emission",
336
- labels={"Emission": "Total Emission"}, color="Fuel")
337
- st.plotly_chart(fig4, use_container_width=True)
338
- else:
339
- st.error("The required format was not found in 'fuelwise_df'. Ensure the file includes a 'Fuel' column and multiple norm-type columns.")
340
-
341
-
342
- def state_analysis():
343
- st.title("🗺 State Analysis")
344
-
345
- # Load data
346
- df_state = load_data("SELECT * FROM fuel_vs_state")
347
- df_norm = load_data("SELECT * FROM norm_vs_state")
348
-
349
- # State selection
350
- state_options = sorted(df_state["column_value"].dropna().unique())
351
- selected_state = st.selectbox("Select a State", state_options)
352
-
353
- # Filter based on state
354
- filtered = df_state[df_state["column_value"] == selected_state]
355
- norm_filtered = df_norm[df_norm["column_value"] == selected_state]
356
-
357
- # Tabs for Absolute and Normalized
358
- tab1, tab2 = st.tabs(["⛽ Fuel analysis(State Wise)", "📊 Norm analysis(State Wise)"])
359
 
360
- with tab1:
361
- st.subheader(f"{selected_state} - Fuel Distribution")
362
-
363
- # Fuel type filter with "Select All" option
364
- fuel_types = sorted(filtered["row_value"].dropna().unique())
365
- fuel_options = ["Select All"] + fuel_types
366
- selected_fuels = st.multiselect(
367
- "Select Fuel Types",
368
- fuel_options,
369
- default=[]
370
- )
371
 
372
- # Apply fuel filter
373
- if "Select All" in selected_fuels or not selected_fuels:
374
- selected_fuels = fuel_types
375
- filtered = filtered[filtered["row_value"].isin(selected_fuels)]
376
-
377
- if not filtered.empty:
378
- # Year range filter
379
- min_year, max_year = int(filtered["year"].min()), int(filtered["year"].max())
380
- selected_years = st.slider("Select Year Range", min_year, max_year, (min_year, max_year))
381
- filtered = filtered[(filtered["year"] >= selected_years[0]) & (filtered["year"] <= selected_years[1])]
382
-
383
- # Plot
384
- fig = px.bar(
385
- filtered, x="year", y="count", color="row_value", barmode="group",
386
- title=f"{selected_state} Vehicle Distribution by Fuel Type "
387
- )
388
- st.plotly_chart(fig, use_container_width=True)
389
-
390
- # Download
391
- csv = filtered.to_csv(index=False).encode("utf-8")
392
- file_label = f"{selected_state.replace(' ', '_')}_fuel_data.csv"
393
- st.download_button(
394
- label="📥 Download Absolute Data as CSV",
395
- data=csv,
396
- file_name=file_label,
397
- mime="text/csv"
398
- )
 
 
 
 
 
 
 
 
 
 
399
  else:
400
- st.warning("No absolute data available for selected filters.")
401
-
402
- with tab2:
403
- st.subheader(f"{selected_state} - Norm Distribution")
404
-
405
- # Norm fuel type filter with "Select All" option
406
- norm_fuels = sorted(norm_filtered["row_value"].dropna().unique())
407
- norm_fuel_options = ["Select All"] + norm_fuels
408
- selected_norm_fuels = st.multiselect(
409
- "Select Norm Types",
410
- norm_fuel_options,
411
- default=[],
412
- key="norm_fuel"
413
- )
414
-
415
- # Apply norm fuel filter
416
- if "Select All" in selected_norm_fuels or not selected_norm_fuels:
417
- selected_norm_fuels = norm_fuels
418
- norm_filtered = norm_filtered[norm_filtered["row_value"].isin(selected_norm_fuels)]
419
-
420
- if not norm_filtered.empty:
421
- min_year_norm, max_year_norm = int(norm_filtered["year"].min()), int(norm_filtered["year"].max())
422
- selected_years_norm = st.slider(
423
- "Select Year Range for Norm Data",
424
- min_year_norm, max_year_norm,
425
- (min_year_norm, max_year_norm),
426
- key="norm_slider"
427
- )
428
- norm_filtered = norm_filtered[
429
- (norm_filtered["year"] >= selected_years_norm[0]) &
430
- (norm_filtered["year"] <= selected_years_norm[1])
431
- ]
432
-
433
- # Plot
434
- fig_norm = px.bar(
435
- norm_filtered, x="year", y="count", color="row_value", barmode="stack",
436
- title=f"{selected_state} Norm Vehicle Distribution"
437
- )
438
- st.plotly_chart(fig_norm, use_container_width=True)
439
-
440
- # Download
441
- csv_norm = norm_filtered.to_csv(index=False).encode("utf-8")
442
- file_label_norm = f"{selected_state.replace(' ', '_')}_norm_data.csv"
443
- st.download_button(
444
- label="📥 Download Norm Data as CSV",
445
- data=csv_norm,
446
- file_name=file_label_norm,
447
- mime="text/csv"
448
- )
449
  else:
450
- st.warning("No norm data available for selected filters.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
 
 
 
 
452
 
453
  def vehicle_class_category():
454
  st.title("🚗 Vehicle Class & Category")
@@ -542,6 +486,7 @@ def ask_with_llm():
542
  - Loads databases and mappings
543
  - Parses natural-language queries
544
  - Executes queries and renders results
 
545
  """
546
  # ---------- CONFIG ----------
547
  DATABASE_PATH = r"vehicle_analysis_1.db"
@@ -606,14 +551,19 @@ def ask_with_llm():
606
  return match[0]
607
  return None
608
 
609
- def parse_year_filter(q: str) -> tuple[str|None,int|None]:
610
  ql = q.lower()
 
 
 
 
611
  if m := re.search(r"after\s*(20\d{2})", ql): return ('>', int(m.group(1)))
612
  if m := re.search(r"before\s*(20\d{2})", ql): return ('<', int(m.group(1)))
613
  if m := re.search(r"in\s*(20\d{2})", ql): return ('==', int(m.group(1)))
614
- if m := re.search(r"\b(20\d{2})\b", ql): return ('==', int(m.group(1)))
615
  return (None, None)
616
 
 
617
  def parse_top_n(q: str) -> int|None:
618
  ql = q.lower()
619
  if m := re.search(r"top\s*(\d+)\s*states?\b", ql):
@@ -660,7 +610,10 @@ def ask_with_llm():
660
 
661
  df = df_map[tbl_name]
662
  if op and year:
663
- df = df.query(f"year {op} @year")
 
 
 
664
  if loc_type == 'rto':
665
  df = df[df['column_value']==loc]
666
  elif loc_type == 'state':
@@ -698,15 +651,29 @@ def ask_with_llm():
698
  title = f"Overall total registrations{' (EV)' if ev else ''}"
699
  result = ts.rename(columns={'count':'Total'})
700
  fig = px.line(ts, x='year', y='count', labels={'count':'Total'})
 
 
701
  st.dataframe(result)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
702
  st.plotly_chart(fig)
703
- st.markdown("#### 💬 Try asking:")
704
- st.markdown("- Top 5 states by fuel in 2022 ")
705
- st.markdown("- Norm-wise registrations in Maharashtra in 2024 ")
706
- st.markdown("- Electric (EV) norm-wise registrations in Karnataka after 2021 ")
707
- st.markdown("- Fuel-wise registrations in Delhi in 2020")
708
- st.markdown("- vehicle classes by registrations in Tamil Nadu in 2022 ")
709
-
710
 
711
 
712
  # Run the entire app
@@ -718,7 +685,6 @@ section = st.sidebar.radio("Go to", [
718
  "Dashboard Overview",
719
  "EV Insights",
720
  "Fuel Norm Analysis(StateWise)",
721
- "State Analysis",
722
  "Vehicle Class & Category",
723
  "Ask with Text (LLM)"
724
  ])
@@ -733,9 +699,13 @@ elif section == "Fuel Norm Analysis(StateWise)":
733
  root_dir=r"dataa",
734
  state_mapping_file=r'state_rto_data.json'
735
  )
736
- elif section == "State Analysis":
737
- state_analysis()
738
  elif section == "Vehicle Class & Category":
739
  vehicle_class_category()
740
  elif section == "Ask with Text (LLM)":
741
- ask_with_llm()
 
 
 
 
 
 
 
12
  import plotly.express as px
13
  import json
14
  from difflib import get_close_matches
15
+ from xlsxwriter import Workbook
16
+
17
 
18
 
19
  # ---------------------- Config ----------------------
 
192
 
193
 
194
  def fuel_norm_distribution_dashboard(root_dir, state_mapping_file, start_year=2009, end_year=2025):
195
+
196
  # Folder paths
197
  folders = {
198
  "statewise": os.path.join(root_dir, "Fuel_vs_state"),
 
204
  with open(state_mapping_file, 'r') as f:
205
  state_mapping = json.load(f)
206
 
207
+ # Create a dictionary mapping state codes to full state names
208
  state_dict = {item["State Code"].upper(): item["Full State Name"].strip() for item in state_mapping}
209
 
 
210
  def load_data(folder_path, year_file):
211
  file_path = os.path.join(folder_path, year_file)
212
  if os.path.exists(file_path):
213
  df = pd.read_csv(file_path)
 
214
  if "Total" in df.columns:
215
  df = df.drop(columns=["Total"])
216
  if df.iloc[:, 0].str.contains("Total", na=False).any():
217
  df = df[~df.iloc[:, 0].str.contains("Total", na=False)]
218
+ df["Year"] = int(year_file.split(".")[0])
219
  return df
220
  else:
221
  st.warning(f"File not found: {file_path}")
222
  return pd.DataFrame()
223
 
 
224
  def load_data_for_year_range(folder_path, start_year, end_year):
225
  combined_df = pd.DataFrame()
226
  for year in range(start_year, end_year + 1):
 
229
  combined_df = pd.concat([combined_df, df], ignore_index=True)
230
  return combined_df
231
 
 
232
  statewise_df = load_data_for_year_range(folders["statewise"], start_year, end_year)
233
  norms_df = load_data_for_year_range(folders["norms"], start_year, end_year)
234
  fuelwise_df = load_data_for_year_range(folders["fuelwise"], start_year, end_year)
235
 
 
236
  st.title("🛢 Fuel Allocation & Emission Norms Dashboard (2009–2025)")
237
 
 
238
  tab1, tab2, tab3 = st.tabs([
239
  "📍 Fuel Distribution over States",
240
  "📊 Norm Distribution by State",
241
  "🔥 Emission by Fuel Type"
242
  ])
243
 
 
244
  with tab1:
245
  st.subheader("Fuel Distribution Across States")
246
  if not statewise_df.empty:
247
+ melted_df = pd.melt(statewise_df, id_vars=["Fuel", "Year"], var_name="State", value_name="Fuel_Amount")
 
 
 
248
  melted_df["State"] = melted_df["State"].apply(lambda x: state_dict.get(x.upper(), x))
249
 
250
+ selected_states = st.multiselect("Select States", ["Select All"] + sorted(melted_df["State"].unique()), default=[], key="state_selection")
 
 
 
251
  if "Select All" in selected_states:
252
  selected_states = list(melted_df["State"].unique())
253
 
254
+ year_range = st.slider("Select Year Range", min_value=start_year, max_value=end_year, value=(start_year, end_year), key="fuel_state_year")
255
+ filtered_df = melted_df[(melted_df["State"].isin(selected_states)) &
256
+ (melted_df["Year"].between(year_range[0], year_range[1]))]
257
 
 
258
  fig1 = px.bar(filtered_df, x="State", y="Fuel_Amount", color="Fuel",
259
+ title=f"Fuel Distribution from {year_range[0]} to {year_range[1]}",
260
  labels={"Fuel_Amount": "Amount (in units)"}, barmode="group")
261
  st.plotly_chart(fig1, use_container_width=True)
262
 
 
263
  with tab2:
264
  st.subheader("Emission Norm Distribution by State")
265
  if not norms_df.empty:
266
+ melted_norms = pd.melt(norms_df, id_vars=["Norms", "Year"], var_name="State", value_name="Count")
 
 
 
267
  melted_norms["State"] = melted_norms["State"].apply(lambda x: state_dict.get(x.upper(), x))
268
 
269
+ selected_states = st.multiselect("Select States", ["Select All"] + sorted(melted_norms["State"].unique()), default=[], key="norm_state_selection")
 
 
 
270
  if "Select All" in selected_states:
271
  selected_states = list(melted_norms["State"].unique())
272
 
273
+ year_range = st.slider("Select Year Range", min_value=start_year, max_value=end_year, value=(start_year, end_year), key="norm_state_year")
274
+ filtered_norms = melted_norms[(melted_norms["State"].isin(selected_states)) &
275
+ (melted_norms["Year"].between(year_range[0], year_range[1]))]
276
 
 
277
  fig2 = px.bar(filtered_norms, x="State", y="Count", color="Norms",
278
+ title=f"Emission Norms Distribution from {year_range[0]} to {year_range[1]}",
279
  labels={"Count": "Count of Norms"}, barmode="group")
280
  st.plotly_chart(fig2, use_container_width=True)
281
 
 
282
  with tab3:
283
+ st.subheader("Norm Emissions by Fuel Type and Year")
284
+
285
+ base_path = r"dataa"
286
+ fuel_vs_norm_path = os.path.join(base_path, "Fuel_vs_Norm")
287
+ norm_vs_category_path = os.path.join(base_path, "norm_vs_category")
288
+
289
+ available_files = os.listdir(fuel_vs_norm_path)
290
+ available_years = sorted([int(f.split(".")[0]) for f in available_files if f.endswith(".csv")])
291
+ year_range = st.slider("Select Year Range", min_value=min(available_years), max_value=max(available_years),
292
+ value=(min(available_years), max(available_years)), key="tab3_year_range")
293
+
294
+ def load_and_standardize_csv(path, melt_type=None):
295
+ df = pd.read_csv(path)
296
+ df.columns = [col.strip().lower() for col in df.columns]
297
+
298
+ if melt_type == "fuel_norm" and "fuel" in df.columns:
299
+ df = df.melt(id_vars='fuel', var_name='norm', value_name='emission')
300
+ elif melt_type == "norm_category" and "norms" in df.columns:
301
+ df = df.rename(columns={"norms": "norm"})
302
+ df = df.melt(id_vars='norm', var_name='vehicle_category', value_name='count')
303
+ return df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
304
 
305
+ fuel_vs_norm_combined = pd.DataFrame()
306
+ norm_vs_category_combined = pd.DataFrame()
 
 
 
 
 
 
 
 
 
307
 
308
+ for year in range(year_range[0], year_range[1] + 1):
309
+ try:
310
+ fuel_df = load_and_standardize_csv(os.path.join(fuel_vs_norm_path, f"{year}.csv"), melt_type="fuel_norm")
311
+ fuel_df["year"] = year
312
+ fuel_vs_norm_combined = pd.concat([fuel_vs_norm_combined, fuel_df], ignore_index=True)
313
+
314
+ norm_df = load_and_standardize_csv(os.path.join(norm_vs_category_path, f"{year}.csv"), melt_type="norm_category")
315
+ norm_df["year"] = year
316
+ norm_vs_category_combined = pd.concat([norm_vs_category_combined, norm_df], ignore_index=True)
317
+ except Exception as e:
318
+ st.warning(f"Error loading data for {year}: {e}")
319
+
320
+ fuel_options = sorted(fuel_vs_norm_combined['fuel'].dropna().unique())
321
+ category_options = sorted(norm_vs_category_combined['vehicle_category'].dropna().unique())
322
+
323
+ fuel_options = [f for f in fuel_options if f.lower() != "total"]
324
+ category_options = [c for c in category_options if c.lower() != "total"]
325
+
326
+ selected_fuels = st.multiselect("Select Fuel Type(s)", options=["All"] + fuel_options, default=["All"])
327
+ selected_categories = st.multiselect("Select Vehicle Category(s)", options=["All"] + category_options, default=["All"])
328
+
329
+ if "All" in selected_fuels:
330
+ selected_fuels = fuel_options
331
+ if "All" in selected_categories:
332
+ selected_categories = category_options
333
+
334
+ # Emissions: Fuel vs Norms
335
+ st.markdown("### Norms vs Fuel")
336
+ fuel_norm_filtered = fuel_vs_norm_combined[
337
+ fuel_vs_norm_combined['fuel'].isin(selected_fuels) &
338
+ fuel_vs_norm_combined['year'].between(year_range[0], year_range[1])
339
+ ]
340
+ if not fuel_norm_filtered.empty:
341
+ fig1 = px.bar(fuel_norm_filtered, x="norm", y="emission", color="fuel",
342
+ title=f"Emissions by Fuel Types ({year_range[0]}–{year_range[1]})",
343
+ labels={"emission": "Emission", "norm": "Norm Type"})
344
+ st.plotly_chart(fig1, use_container_width=True)
345
  else:
346
+ st.info("No emission data available for selected fuel types and years.")
347
+
348
+ # Norm vs Vehicle Category
349
+ st.markdown("### Norm vs Vehicle Category")
350
+ norm_cat_filtered = norm_vs_category_combined[
351
+ (norm_vs_category_combined['vehicle_category'].isin(selected_categories)) &
352
+ norm_vs_category_combined['year'].between(year_range[0], year_range[1])
353
+ ]
354
+ if not norm_cat_filtered.empty:
355
+ fig2 = px.bar(norm_cat_filtered, x="norm", y="count", color="vehicle_category",
356
+ title=f"Emissions by Vehicle Categories ({year_range[0]}–{year_range[1]})",
357
+ labels={"count": "Count", "norm": "Norm Type"})
358
+ st.plotly_chart(fig2, use_container_width=True)
359
+ else:
360
+ st.info("No norm vs category data available for selected vehicle categories and years.")
361
+
362
+ # 🔝 Top Fuel Types by Total Emissions
363
+ st.markdown("### 🔝 Top Fuel Types by Total Emissions")
364
+ top_fuel_emissions = fuel_norm_filtered.groupby("fuel")["emission"].sum().reset_index().sort_values(by="emission", ascending=False)
365
+ if not top_fuel_emissions.empty:
366
+ fig3 = px.bar(top_fuel_emissions, x="fuel", y="emission", color="fuel",
367
+ title="Top Fuel Types by Total Emissions",
368
+ labels={"emission": "Total Emission", "fuel": "Fuel Type"})
369
+ st.plotly_chart(fig3, use_container_width=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  else:
371
+ st.info("No data for top fuel types.")
372
+
373
+ # 🔝 Top Vehicle Categories by Norm Count
374
+ st.markdown("### 🔝 Top Vehicle Categories by Total Emissions")
375
+ top_categories = norm_cat_filtered.groupby("vehicle_category")["count"].sum().reset_index().sort_values(by="count", ascending=False)
376
+ if not top_categories.empty:
377
+ fig4 = px.bar(top_categories, x="vehicle_category", y="count", color="vehicle_category",
378
+ title="Top Vehicle Categories by Norm Count",
379
+ labels={"count": "Total Count", "vehicle_category": "Category"})
380
+ st.plotly_chart(fig4, use_container_width=True)
381
+ else:
382
+ st.info("No data for top vehicle categories.")
383
+
384
+ # 📥 Download Filtered Data
385
+ st.markdown("### 📥 Download Filtered Data")
386
+ output = BytesIO()
387
+ with pd.ExcelWriter(output, engine="xlsxwriter") as writer:
388
+ fuel_norm_filtered.to_excel(writer, sheet_name="Fuel_vs_Norm", index=False)
389
+ norm_cat_filtered.to_excel(writer, sheet_name="Norm_vs_Category", index=False)
390
+ top_fuel_emissions.to_excel(writer, sheet_name="Top_Fuels", index=False)
391
+ top_categories.to_excel(writer, sheet_name="Top_Categories", index=False)
392
 
393
+ st.download_button("Download Excel File", data=output.getvalue(),
394
+ file_name="filtered_emission_data.xlsx",
395
+ mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
396
 
397
  def vehicle_class_category():
398
  st.title("🚗 Vehicle Class & Category")
 
486
  - Loads databases and mappings
487
  - Parses natural-language queries
488
  - Executes queries and renders results
489
+ - Allows download of resulting data
490
  """
491
  # ---------- CONFIG ----------
492
  DATABASE_PATH = r"vehicle_analysis_1.db"
 
551
  return match[0]
552
  return None
553
 
554
+ def parse_year_filter(q: str) -> tuple[str|None,int|tuple[int,int]|None]:
555
  ql = q.lower()
556
+ # Check for year range like "from 2018 to 2022"
557
+ if m := re.search(r"(from|between)\s*(20\d{2})\s*(to|-)\s*(20\d{2})", ql):
558
+ y1, y2 = int(m.group(2)), int(m.group(4))
559
+ return ('range', (min(y1, y2), max(y1, y2)))
560
  if m := re.search(r"after\s*(20\d{2})", ql): return ('>', int(m.group(1)))
561
  if m := re.search(r"before\s*(20\d{2})", ql): return ('<', int(m.group(1)))
562
  if m := re.search(r"in\s*(20\d{2})", ql): return ('==', int(m.group(1)))
563
+ if m := re.search(r"\b(20\d{2})\b", ql): return ('==', int(m.group(1)))
564
  return (None, None)
565
 
566
+
567
  def parse_top_n(q: str) -> int|None:
568
  ql = q.lower()
569
  if m := re.search(r"top\s*(\d+)\s*states?\b", ql):
 
610
 
611
  df = df_map[tbl_name]
612
  if op and year:
613
+ if op == 'range' and isinstance(year, tuple):
614
+ df = df[df['year'].between(year[0], year[1])]
615
+ else:
616
+ df = df.query(f"year {op} @year")
617
  if loc_type == 'rto':
618
  df = df[df['column_value']==loc]
619
  elif loc_type == 'state':
 
651
  title = f"Overall total registrations{' (EV)' if ev else ''}"
652
  result = ts.rename(columns={'count':'Total'})
653
  fig = px.line(ts, x='year', y='count', labels={'count':'Total'})
654
+
655
+ st.subheader(title)
656
  st.dataframe(result)
657
+
658
+ # Append year info to result if applicable
659
+ if op and year:
660
+ if op == '==':
661
+ year_info = f"In {year}"
662
+ elif op == '>':
663
+ year_info = f"After {year}"
664
+ elif op == '<':
665
+ year_info = f"Before {year}"
666
+ elif op == 'range' and isinstance(year, tuple):
667
+ year_info = f"From {year[0]} to {year[1]}"
668
+ else:
669
+ year_info = f"Year Filter: {op} {year}"
670
+ result['Query_Year_Info'] = year_info
671
+
672
+ # Download option
673
+ csv = result.to_csv(index=False).encode('utf-8')
674
+ st.download_button("⬇️ Download Result as CSV", data=csv, file_name="query_result.csv", mime='text/csv')
675
+
676
  st.plotly_chart(fig)
 
 
 
 
 
 
 
677
 
678
 
679
  # Run the entire app
 
685
  "Dashboard Overview",
686
  "EV Insights",
687
  "Fuel Norm Analysis(StateWise)",
 
688
  "Vehicle Class & Category",
689
  "Ask with Text (LLM)"
690
  ])
 
699
  root_dir=r"dataa",
700
  state_mapping_file=r'state_rto_data.json'
701
  )
 
 
702
  elif section == "Vehicle Class & Category":
703
  vehicle_class_category()
704
  elif section == "Ask with Text (LLM)":
705
+ ask_with_llm()
706
+ st.markdown("#### 💬 Try asking:")
707
+ st.markdown("- Top 5 states by fuel in 2022 ")
708
+ st.markdown("- Norm-wise registrations in Maharashtra in 2024 ")
709
+ st.markdown("- Electric (EV) norm-wise registrations in Karnataka after 2021 ")
710
+ st.markdown("- Fuel-wise registrations in Delhi in 2020")
711
+ st.markdown("- Vehicle classes by registrations in Tamil Nadu in 2022 ")
dataa/fuel_vs_category/2009.csv ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,4,3074,2,1327,7183,3063,28,15256,1,3,15,29956
3
+ DIESEL,2227,73687,15515,630211,368379,53089,11727,202147,249740,9109,3309,1619140
4
+ DIESEL/HYBRID,0,3,2,23,8,3,3,0,4,0,0,46
5
+ DUAL DIESEL/CNG,0,1,0,0,2,1,0,0,0,0,0,4
6
+ ELECTRIC BOV,0,4,1,337,11,0,7,45,16,62,6913,7396
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,1,1
8
+ FUEL CELL HYDROGEN,0,0,0,1,0,0,0,0,0,0,0,1
9
+ LNG,0,0,0,1,0,0,0,1,0,0,0,2
10
+ LPG ONLY,7,9,0,898,1004,0,0,10669,10,21,86,12704
11
+ NOT APPLICABLE,3,204,22,3015,842,124,76,1379,2177,49957,9548,67347
12
+ PETROL,1310,5955,43,892910,1772,188,164,32210,1032,276,6981360,7917220
13
+ PETROL/CNG,15,222,0,118165,372,88,2,29456,3,0,859,149182
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,8,8
15
+ PETROL/HYBRID,0,0,0,9,0,0,0,0,0,0,2,11
16
+ PETROL/LPG,43,4900,0,93047,814,66,5,13655,10,7,1536,114083
17
+ SOLAR,0,1,0,15,4,1,0,6,2,0,31,60
18
+ Total,3609,88060,15585,1739959,380391,56623,12012,304824,252995,59435,7003668,9917161
dataa/fuel_vs_category/2010.csv ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,7,6815,0,5833,9589,6791,15,12891,2,0,5,41948
3
+ DIESEL,2608,88560,24014,844728,560159,64726,14292,260706,336312,11551,3211,2210867
4
+ DIESEL/HYBRID,1,3,2,28,12,2,3,1,6,0,1,59
5
+ DUAL DIESEL/CNG,0,2,0,0,3,2,0,0,0,0,0,7
6
+ ELECTRIC BOV,0,1,4,274,35,1,11,64,33,127,4068,4618
7
+ ETHANOL,0,0,0,1,0,0,0,0,0,0,4,5
8
+ FUEL CELL HYDROGEN,0,0,0,1,0,0,0,0,0,0,1,2
9
+ LNG,0,0,0,0,0,0,0,0,0,0,1,1
10
+ LPG ONLY,3,14,0,561,450,7,1,13207,19,35,76,14373
11
+ METHANOL,0,0,0,0,0,0,1,0,0,0,2,3
12
+ NOT APPLICABLE,3,254,62,3134,1440,61,213,1010,2577,61815,11488,82057
13
+ PETROL,1743,7196,64,1147057,2370,211,95,48104,1101,249,9747565,10955755
14
+ PETROL/CNG,21,372,0,164702,414,214,5,36691,1,0,1350,203770
15
+ PETROL/ETHANOL,0,0,0,1,0,0,0,0,0,0,9,10
16
+ PETROL/HYBRID,0,0,0,5,0,0,0,0,0,0,1,6
17
+ PETROL/LPG,56,5753,3,90457,611,76,1,35148,18,8,2259,134390
18
+ PETROL/METHANOL,0,0,0,1,0,0,0,0,0,0,0,1
19
+ SOLAR,0,3,0,15,11,4,3,8,0,0,120,164
20
+ Total,4442,108973,24149,2256798,575094,72095,14640,407830,340069,73785,9770161,13648036
dataa/fuel_vs_category/2011.csv ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,1,2992,3,6416,10330,2976,35,12463,3,3,2,35224
3
+ DIESEL,3128,94115,33735,1049483,649999,67849,16750,304262,417085,14449,3496,2654351
4
+ DIESEL/HYBRID,0,1,0,15,11,1,3,4,6,0,0,41
5
+ DUAL DIESEL/CNG,0,4,0,0,6,5,0,0,0,0,0,15
6
+ ELECTRIC BOV,0,3,5,631,35,0,23,72,38,253,5897,6957
7
+ ETHANOL,0,0,0,0,0,0,0,0,1,0,3,4
8
+ FUEL CELL HYDROGEN,0,0,0,0,0,0,0,0,0,0,1,1
9
+ LPG ONLY,0,14,1,404,26,2,0,6408,10,52,71,6988
10
+ NOT APPLICABLE,5,267,45,2891,1456,105,126,1560,2281,77734,8732,95202
11
+ PETROL,2351,6401,101,1121281,2518,251,75,43317,861,310,11794113,12971579
12
+ PETROL/CNG,52,566,0,187558,1958,370,2,47715,1,2,1321,239545
13
+ PETROL/ETHANOL,0,0,0,2,0,0,0,0,0,0,2,4
14
+ PETROL/HYBRID,0,0,0,3,0,0,0,0,0,0,0,3
15
+ PETROL/LPG,94,5992,0,85883,381,92,2,26114,22,11,2811,121402
16
+ SOLAR,0,4,0,25,9,3,3,8,4,2,223,281
17
+ Total,5631,110359,33890,2454592,666729,71654,17019,441923,420312,92816,11816672,16131597
dataa/fuel_vs_category/2012.csv ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,6,3438,9,3952,8358,3429,18,10827,5,4,7,30053
3
+ DIESEL,4093,109857,32310,1469164,692059,76934,14092,330969,456261,15259,6468,3207466
4
+ DIESEL/HYBRID,0,2,0,23,12,1,1,0,7,0,0,46
5
+ DUAL DIESEL/CNG,0,1,0,0,3,1,0,0,0,0,0,5
6
+ ELECTRIC BOV,1,3,13,424,43,1,43,45,35,151,4731,5490
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,5,5
8
+ FUEL CELL HYDROGEN,0,0,0,0,1,0,0,0,0,0,0,1
9
+ LNG,0,0,0,0,1,0,0,0,0,0,0,1
10
+ LPG ONLY,0,6,0,302,16,1,1,1128,14,93,52,1613
11
+ NOT APPLICABLE,5,134,37,3007,1436,38,99,1713,3065,72235,8809,90578
12
+ PETROL,2485,6369,41,986347,2631,317,48,29166,827,250,12923571,13952052
13
+ PETROL/CNG,40,804,0,159483,2068,585,0,63807,2,4,707,227500
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,3,3
15
+ PETROL/HYBRID,0,0,0,8,0,0,0,0,0,0,3,11
16
+ PETROL/LPG,68,5065,0,76331,280,63,1,33243,17,9,1821,116898
17
+ SOLAR,0,2,1,20,5,1,0,12,10,3,119,173
18
+ Total,6698,125681,32411,2699061,706913,81371,14303,470910,460243,88008,12946296,17631895
dataa/fuel_vs_category/2013.csv ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,3,2751,12,1899,8165,2737,10,9488,0,1,14,25080
3
+ DIESEL,4783,104306,28445,1395047,613765,72038,12841,311577,529141,13432,4127,3089502
4
+ DIESEL/HYBRID,0,0,0,27,10,0,2,0,5,0,0,44
5
+ DUAL DIESEL/CNG,0,0,0,1,6,0,0,0,0,0,0,7
6
+ ELECTRIC BOV,0,1,4,381,58,0,27,55,43,137,2021,2727
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,3,3
8
+ LNG,0,0,0,0,1,0,0,0,0,0,0,1
9
+ LPG ONLY,5,6,0,225,7,0,1,2603,4,81,30,2962
10
+ NOT APPLICABLE,6,163,150,2446,1083,69,253,1616,3331,68118,10052,87287
11
+ PETROL,2291,6690,27,942280,2746,443,32,21295,775,190,13372854,14349623
12
+ PETROL/CNG,38,654,1,143962,2891,460,4,62427,2,1,765,211205
13
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,2,2
14
+ PETROL/HYBRID,0,0,0,5,0,0,0,0,0,0,0,5
15
+ PETROL/LPG,36,3741,0,41479,72,75,0,34913,21,5,1113,81455
16
+ SOLAR,0,1,0,12,10,1,0,16,5,1,151,197
17
+ Total,7162,118313,28639,2527764,628814,75823,13170,443990,533327,81966,13391132,17850100
dataa/fuel_vs_category/2014.csv ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,5,2490,2,2392,6981,2480,6,12232,2,1,12,26603
3
+ DIESEL,5424,88033,24883,1284084,530175,60618,11294,305962,582569,13970,3685,2910697
4
+ DIESEL/HYBRID,0,1,0,14,18,1,2,0,3,0,0,39
5
+ DUAL DIESEL/CNG,0,3,0,0,2,2,0,0,0,0,0,7
6
+ ELECTRIC BOV,0,3,3,486,30,3,33,19,32,93,1679,2381
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,7,7
8
+ LNG,0,0,0,0,2,0,0,0,0,0,0,2
9
+ LPG ONLY,0,4,0,110,2,1,0,1448,2,27,91,1685
10
+ NOT APPLICABLE,5,116,161,1734,908,53,225,1462,3388,91140,16223,115415
11
+ PETROL,2317,8963,28,1060473,3317,370,28,28608,642,193,14861836,15966775
12
+ PETROL/CNG,60,748,0,157000,4278,505,2,90383,7,0,986,253969
13
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,6,6
14
+ PETROL/HYBRID,0,0,0,4,0,0,0,1,0,0,2,7
15
+ PETROL/LPG,70,5676,6,44001,50,61,0,36163,16,5,780,86828
16
+ SOLAR,0,3,0,5,9,2,0,5,7,4,119,154
17
+ Total,7881,106040,25083,2550303,545772,64096,11590,476283,586668,105433,14885426,19364575
dataa/fuel_vs_category/2015.csv ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,1,2645,11,2803,7495,2642,11,13786,1,0,36,29431
3
+ DIESEL,4047,93678,25813,1262196,563800,69049,11315,288613,458274,21016,2574,2800375
4
+ DIESEL/HYBRID,1,1,2,492,11,1,1,2,1,0,0,512
5
+ DUAL DIESEL/CNG,0,1,0,0,3,1,0,0,0,0,0,5
6
+ ELECTRIC BOV,0,3,2,758,20,2,24,5416,15,87,1434,7761
7
+ FUEL CELL HYDROGEN,0,1,0,0,0,1,0,0,0,0,0,2
8
+ LNG,0,0,0,0,2,0,0,0,0,0,0,2
9
+ LPG ONLY,0,5,0,138,4,1,2,3117,2,7,60,3336
10
+ NOT APPLICABLE,4,135,159,1735,1269,82,242,1561,3370,80124,22587,111268
11
+ PETROL,2584,9561,30,1229404,4054,382,19,23749,618,1003,15186515,16457919
12
+ PETROL/CNG,61,607,0,170926,4823,376,2,85510,2,2,691,263000
13
+ PETROL/ETHANOL,0,0,0,1,0,0,0,0,0,0,7,8
14
+ PETROL/HYBRID,0,0,0,91,0,0,0,1,0,1,1,94
15
+ PETROL/LPG,72,5220,1,34265,66,49,0,34475,10,9,1039,75206
16
+ PURE EV,0,0,0,0,1,0,0,0,0,0,0,1
17
+ SOLAR,0,0,0,13,8,0,0,3,4,1,169,198
18
+ Total,6770,111857,26018,2702822,581556,72586,11616,456233,462297,102250,15215113,19749118
dataa/fuel_vs_category/2016.csv ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,1,3709,6,1963,11233,3690,39,13282,1,0,43,33967
3
+ DIESEL,3620,98963,33042,1192968,604383,76329,12720,297762,484344,23214,2482,2829827
4
+ DIESEL/HYBRID,4,5,1,11318,23,5,3,2,9,0,0,11370
5
+ DUAL DIESEL/BIO CNG,0,0,0,0,1,0,0,0,0,0,0,1
6
+ DUAL DIESEL/CNG,0,4,1,1,8,4,0,0,0,0,0,18
7
+ ELECTRIC BOV,1,6,86,682,56,6,70,46895,33,93,1437,49365
8
+ ETHANOL,0,0,0,0,0,0,0,0,0,1,2,3
9
+ LNG,0,3,0,0,0,3,0,2,0,0,0,8
10
+ LPG ONLY,2,2,0,169,3,0,1,3346,4,402,39,3968
11
+ NOT APPLICABLE,1,207,169,5992,1984,110,140,3351,5774,90761,21802,130291
12
+ PETROL,3060,9987,32,1414942,3327,426,25,25365,812,1405,16470020,17929401
13
+ PETROL/CNG,79,381,0,225707,1629,201,6,108870,7,2,1062,337944
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,2,2
15
+ PETROL/HYBRID,0,0,0,528,0,0,0,0,0,0,3,531
16
+ PETROL/LPG,115,4783,1,32246,42,63,2,49770,1,10,418,87451
17
+ PURE EV,0,0,0,0,2,0,0,0,0,0,0,2
18
+ SOLAR,0,1,2,9,0,1,2,3,4,3,210,235
19
+ Total,6883,118051,33340,2886525,622691,80838,13008,548648,490989,115891,16497520,21414384
dataa/fuel_vs_category/2017.csv ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,2,3237,34,1161,15894,3230,15,5901,10,0,49,29533
3
+ DIESEL,4493,93870,40787,1210892,656433,75689,11822,272593,557534,16062,2098,2942273
4
+ DIESEL/HYBRID,19,577,1,48440,16,25,10,2,5,1,4,49100
5
+ DUAL DIESEL/CNG,0,2,0,0,2,2,0,0,0,0,0,6
6
+ ELECTRIC BOV,0,16,171,1112,534,16,40,83134,26,427,1528,87004
7
+ ETHANOL,0,2,0,0,0,15,0,0,1,2,4,24
8
+ FUEL CELL HYDROGEN,0,1,0,0,0,1,0,0,0,0,0,2
9
+ LNG,0,0,0,0,2,0,0,0,0,0,0,2
10
+ LPG ONLY,0,6,0,166,1,1,1,3170,6,382,85,3818
11
+ NOT APPLICABLE,12,148,103,4800,1177,65,136,4544,7583,79159,10685,108412
12
+ PETROL,3384,10305,32,1631957,1462,394,32,18191,936,1146,18063083,19730922
13
+ PETROL/CNG,145,444,3,219668,692,208,1,125140,1,0,544,346846
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,3,3
15
+ PETROL/HYBRID,0,0,0,701,0,0,0,2,0,0,3,706
16
+ PETROL/LPG,72,4569,0,30246,22,28,0,57520,3,1,377,92838
17
+ PURE EV,0,0,0,0,3,0,0,0,0,0,0,3
18
+ SOLAR,0,1,1,1,4,1,1,3,6,0,121,139
19
+ Total,8127,113178,41132,3149144,676242,79675,12058,570200,566111,97180,18078584,23391631
dataa/fuel_vs_category/2018.csv ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,0,2914,14,1643,24612,2912,4,2280,0,7,9,34395
3
+ DIESEL,4273,89887,62696,1175729,846655,76384,12254,310014,658680,11027,862,3248461
4
+ DIESEL/HYBRID,18,52,2,59483,9,14,21,4,10,1,0,59614
5
+ DUAL DIESEL/CNG,0,0,0,0,5,0,0,0,0,0,0,5
6
+ ELECTRIC BOV,0,50,117,1657,656,49,26,110036,16,138,17081,129826
7
+ ETHANOL,0,0,0,0,0,10,0,0,0,6,1,17
8
+ LPG ONLY,0,2,0,115,1,0,0,3913,3,19,16,4069
9
+ NOT APPLICABLE,2,38,100,5479,514,28,68,2145,2596,101156,1935,114061
10
+ PETROL,1642,9343,24,1692820,600,351,11,26725,429,760,19570873,21303578
11
+ PETROL/CNG,78,349,1,243674,2114,123,1,217353,0,1,233,463927
12
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,1,1
13
+ PETROL/HYBRID,0,0,0,11920,0,0,0,4,0,0,3,11927
14
+ PETROL/LPG,26,3660,0,25744,21,17,0,98362,1,4,86,127921
15
+ SOLAR,0,0,0,2,1,0,0,1,2,1,57,64
16
+ STRONG HYBRID EV,0,0,0,1,0,0,0,0,0,0,0,1
17
+ Total,6039,106295,62954,3218267,875188,79888,12385,770837,661737,113120,19591157,25497867
dataa/fuel_vs_category/2019.csv ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,7,3995,11,774,26221,4003,13,2464,0,0,6,37494
3
+ DIESEL,9326,88128,60897,997614,761247,77854,17285,340887,641497,2680,382,2997797
4
+ DIESEL/HYBRID,18,44,6,39075,4,2,3,0,3,0,0,39155
5
+ DUAL DIESEL/CNG,0,1,3,0,3,1,0,0,0,0,0,8
6
+ ELECTRIC BOV,0,506,3,1729,53,507,11,133471,6,2,30405,166693
7
+ ETHANOL,0,0,1,0,0,0,0,0,0,7,0,8
8
+ LNG,0,6,0,0,1,6,0,0,0,0,0,13
9
+ LPG ONLY,0,3,0,44,0,0,0,3816,1,0,6,3870
10
+ METHANOL,0,0,0,0,0,0,0,0,0,2,0,2
11
+ NOT APPLICABLE,0,11,100,3426,440,8,148,653,3302,78715,1157,87960
12
+ PETROL,759,4250,8,1641417,1229,132,31,19227,264,43,18624451,20291811
13
+ PETROL/CNG,71,120,0,234495,3773,32,6,183055,0,0,126,421678
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,3,3
15
+ PETROL/HYBRID,1,49,0,77407,0,0,1,0,0,0,6,77464
16
+ PETROL/LPG,19,1725,0,20074,38,1,0,89256,3,0,33,111149
17
+ PURE EV,0,0,0,0,1,0,0,0,0,0,0,1
18
+ SOLAR,0,0,0,0,1,0,0,0,0,0,0,1
19
+ Total,10201,98838,61029,3016055,793011,82546,17498,772829,645076,81449,18656575,24235107
dataa/fuel_vs_category/2020.csv ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,9,2978,16,297,17807,2978,13,22091,0,0,2,46191
3
+ DIESEL,5573,42331,55150,522851,455907,37737,16030,193922,723410,1839,227,2054977
4
+ DIESEL/HYBRID,0,4,1,2910,0,1,2,0,5,0,0,2923
5
+ DUAL DIESEL/BIO CNG,0,0,0,0,1,0,0,0,0,0,0,1
6
+ DUAL DIESEL/CNG,0,0,0,0,1,0,0,0,0,0,0,1
7
+ ELECTRIC BOV,0,88,2,4211,11,88,21,90358,3,2,29126,123910
8
+ ETHANOL,0,0,0,0,0,0,0,0,0,3,0,3
9
+ LNG,0,1,0,1,12,3,0,0,0,0,0,17
10
+ LPG ONLY,0,0,0,114,3,0,1,9795,0,0,0,9913
11
+ METHANOL,0,0,0,0,0,0,0,0,1,1,0,2
12
+ NOT APPLICABLE,0,1,18,499,208,0,17,72,4388,74894,130,80227
13
+ PETROL,1892,500,10,1657984,17706,23,5,11505,279,21,14283594,15973519
14
+ PETROL/CNG,76,8,0,186016,5273,1,0,49885,0,0,47,241306
15
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,4,4
16
+ PETROL/HYBRID,3,69,0,90035,0,0,0,0,0,0,1,90108
17
+ PETROL/LPG,7,15,0,11334,110,1,0,28873,4,0,13,40357
18
+ Total,7560,45995,55197,2476252,497039,40832,16089,406501,728090,76760,14313144,18663459
dataa/fuel_vs_category/2021.csv ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,9,1089,5,54,77849,1112,33,87135,0,6,0,167292
3
+ DIESEL,9889,16650,60924,552894,468964,12781,20874,103698,765648,875,227,2013424
4
+ DIESEL/HYBRID,0,0,0,32,0,0,2,0,2,0,0,36
5
+ DUAL DIESEL/CNG,0,0,13,0,2,0,0,0,0,0,0,15
6
+ ELECTRIC BOV,0,1176,7,13015,987,1176,61,158216,4,1,156329,330972
7
+ LNG,0,0,0,0,3,0,0,0,0,0,0,3
8
+ LPG ONLY,0,0,0,19,3,0,0,13392,0,0,0,13414
9
+ METHANOL,0,0,0,0,0,0,0,0,0,2,0,2
10
+ NOT APPLICABLE,0,0,18,188,124,0,8,121,1708,74017,12,76196
11
+ PETROL,3074,178,49,2034558,43657,11,9004,8620,265,22,13778062,15877500
12
+ PETROL/CNG,105,10,0,259414,3789,1,4,17229,0,1,39,280592
13
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,1,1
14
+ PETROL/HYBRID,11,56,0,131912,0,2,0,0,0,0,0,131981
15
+ PETROL/LPG,8,7,0,10947,229,0,1,9327,3,0,11,20533
16
+ SOLAR,0,0,0,0,1,0,0,0,0,0,0,1
17
+ Total,13096,19166,61016,3003033,595608,15083,29987,397738,767630,74924,13934681,18911962
dataa/fuel_vs_category/2022.csv ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,6,5184,2,420,101142,5304,49,190230,1,1,0,302339
3
+ DIESEL,9962,40147,58656,671399,647023,38781,18874,93652,792435,1294,169,2372392
4
+ DIESEL/HYBRID,0,0,0,738,0,0,0,0,0,0,0,738
5
+ DUAL DIESEL/CNG,0,0,0,0,1,0,2,0,2,0,0,5
6
+ DUAL DIESEL/LNG,0,0,0,0,1,0,0,0,0,0,0,1
7
+ ELECTRIC BOV,0,1990,11,38214,326,1990,51,350489,4,1,631452,1024528
8
+ ETHANOL,0,0,0,0,0,0,0,0,0,2,0,2
9
+ LNG,0,0,0,0,20,0,0,0,0,0,0,20
10
+ LPG ONLY,0,0,0,18,2,0,0,14389,0,0,0,14409
11
+ NOT APPLICABLE,0,1,11,171,121,1,34,278,4160,71370,4,76151
12
+ PETROL,1969,158,8,2148797,48641,26,33,9542,323,17,14966915,17176429
13
+ PETROL/CNG,124,1,0,410590,2756,2,1,21291,0,0,26,434791
14
+ PETROL/ETHANOL,0,0,0,0,0,0,0,0,0,0,1,1
15
+ PETROL/HYBRID,8,10,0,196571,0,2,0,0,0,0,0,196591
16
+ PETROL/LPG,38,2,0,7983,213,0,0,4052,3,0,4,12295
17
+ STRONG HYBRID EV,0,0,0,1,0,0,0,0,0,0,0,1
18
+ Total,12107,47493,58688,3474902,800246,46106,19044,683923,796928,72685,15598571,21610693
dataa/fuel_vs_category/2023.csv ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,9,5045,12,818,77036,5128,23,338241,0,4,0,426316
3
+ DIESEL,7043,71707,75823,689669,706627,70550,22708,133976,860047,1579,1,2639730
4
+ DIESEL/HYBRID,0,33,0,2461,2,1,0,0,0,0,0,2497
5
+ ELECTRIC BOV,0,2676,0,82609,2605,2693,17,583674,7,0,860520,1534801
6
+ LNG,0,0,0,0,244,0,0,0,0,0,0,244
7
+ LPG ONLY,0,0,0,6,0,0,0,26807,0,0,0,26813
8
+ NOT APPLICABLE,0,0,12,79,52,0,21,427,7561,57986,4,66142
9
+ PETROL,4888,2709,10,2202351,48665,2168,68,14188,99,24,15857183,18132353
10
+ PETROL/CNG,210,1,0,533638,4568,0,1,6378,0,1,1,544798
11
+ PETROL/ETHANOL,0,0,0,5,1,0,0,0,0,0,379862,379868
12
+ PETROL/HYBRID,18,703,0,331390,0,7,2,0,0,1,0,332121
13
+ PETROL/LPG,6,2,0,4396,77,0,0,1676,0,0,2,6159
14
+ PURE EV,0,0,0,9,1,0,0,0,0,0,0,10
15
+ STRONG HYBRID EV,0,0,0,0,0,0,0,0,0,0,1,1
16
+ Total,12174,82876,75857,3847431,839878,80547,22840,1105367,867714,59595,17097574,24091853
dataa/fuel_vs_category/2024.csv ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,10,7706,38,2674,84241,7798,46,349276,0,0,38235,490024
3
+ DIESEL,6013,90354,82686,745301,670788,88870,24078,136939,882417,1199,0,2728645
4
+ DIESEL/HYBRID,0,4,0,5259,0,0,0,0,0,0,0,5263
5
+ DUAL DIESEL/LNG,0,0,0,0,21,0,0,0,0,0,0,21
6
+ ELECTRIC BOV,0,3281,6,73901,5924,3431,21,645233,20,0,728876,1460693
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,184,184
8
+ FUEL CELL HYDROGEN,0,15,0,0,0,15,0,0,0,0,0,30
9
+ LNG,0,0,0,0,349,0,0,0,0,0,0,349
10
+ LPG ONLY,0,0,0,5,0,0,0,32631,0,0,0,32636
11
+ NOT APPLICABLE,0,1,5,50,79,0,29,197,4576,58067,8,63012
12
+ PETROL,5278,3864,10,2129999,44089,3249,107,11225,105,25,17095728,19293679
13
+ PETROL/CNG,244,37,0,724240,6587,37,4,242,2,0,0,731393
14
+ PETROL/ETHANOL,0,0,0,9,0,0,0,0,2,0,656998,657009
15
+ PETROL/HYBRID,16,170,0,295200,0,3,4,0,0,2,0,295395
16
+ PETROL/LPG,7,0,0,5568,22,0,0,36,0,0,0,5633
17
+ PLUG IN HYBRID EV,0,0,0,42,0,0,0,0,0,0,0,42
18
+ PURE EV,0,443,0,25909,293,446,1,46036,0,0,420591,493719
19
+ SOLAR,0,0,0,0,1,0,0,0,0,0,0,1
20
+ STRONG HYBRID EV,0,586,0,58491,0,4,0,0,0,0,1,59082
21
+ Total,11568,106461,82745,4066648,812394,103853,24290,1221815,887122,59293,18940621,26316810
dataa/fuel_vs_category/2025.csv ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Fuel,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ CNG ONLY,3,3684,9,1594,34128,3638,22,105237,0,0,17367,165682
3
+ DIESEL,4907,32012,30707,278074,245907,30949,11774,46596,287394,415,1,968736
4
+ DIESEL/HYBRID,0,2,0,2051,1,0,0,0,0,0,0,2054
5
+ DUAL DIESEL/LNG,0,0,0,0,30,0,0,0,0,0,0,30
6
+ ELECTRIC BOV,0,361,97,14315,1557,363,0,185936,11,0,64348,266988
7
+ ETHANOL,0,0,0,0,0,0,0,0,0,0,611,611
8
+ FUEL CELL HYDROGEN,0,1,0,0,1,1,0,0,0,0,0,3
9
+ LNG,0,0,0,0,137,0,0,0,0,0,0,137
10
+ LPG ONLY,0,0,0,3,0,0,0,11215,0,0,0,11218
11
+ NOT APPLICABLE,0,0,4,1,20,0,5,25,1110,20739,0,21904
12
+ PETROL,1759,937,3,666882,12511,818,29,2119,30,8,5371255,6056351
13
+ PETROL/CNG,104,4,0,307217,2055,4,5,55,1,0,1,309446
14
+ PETROL/ETHANOL,0,57,0,73106,38,53,1,1,0,0,331164,404420
15
+ PETROL/HYBRID,11,0,0,91820,0,0,2,0,0,0,0,91833
16
+ PETROL/LPG,0,0,0,1163,8,0,0,6,0,0,0,1177
17
+ PLUG IN HYBRID EV,0,0,0,41,0,0,0,0,0,0,0,41
18
+ PURE EV,0,882,7,33906,813,886,1,49285,4,2,334941,420727
19
+ STRONG HYBRID EV,0,375,0,35944,0,4,1,0,0,0,0,36324
20
+ Total,6784,38315,30827,1506117,297206,36716,11840,400475,288550,21164,6119688,8757682
dataa/norm_vs_category/2009.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,54,947,275,13510,5191,683,135,7005,3839,422,61791,93852
3
+ BHARAT STAGE II,1133,37323,3761,408160,112180,17500,2855,141082,67383,14230,3416996,4222603
4
+ BHARAT STAGE III,760,16205,2278,367715,62364,11397,1296,11173,27773,4052,207110,712123
5
+ BHARAT STAGE III/IV,0,23,22,2034,111,23,17,42,212,45,2181,4710
6
+ BHARAT STAGE IV,68,967,170,29446,6032,871,57,5632,4385,56,74763,122447
7
+ BHARAT STAGE IV/VI,0,1,2,160,4,1,0,2,2,0,22,194
8
+ BHARAT STAGE VI,2,4,2,1067,35,3,1,40,11,7,2425,3597
9
+ Bharat Trem Stage III,18,261,22,6311,1360,237,32,3427,31314,21,18137,61140
10
+ Bharat Trem Stage III A,72,1192,182,15541,8721,1180,86,8887,14118,74,92782,142835
11
+ Bharat Trem Stage III B,1,10,2,56,69,7,0,8,22,0,32,207
12
+ Bharat Stage III CEV,1,2,240,88,35,1,31,9,106,9,124,646
13
+ CEV STAGE IV,0,0,5,1,0,0,0,0,0,0,1,7
14
+ EURO 1,37,336,118,21262,2332,321,45,1719,3393,400,22755,52718
15
+ EURO 2,127,3228,668,68093,21500,2958,277,13602,13841,463,350548,475305
16
+ EURO 3,207,4277,379,116458,7281,1515,333,4747,3671,299,34954,174121
17
+ EURO 4,39,691,53,11489,1158,243,26,285,483,15,1980,16462
18
+ EURO 6,0,0,0,17,0,0,0,0,8,0,39,64
19
+ EURO 6A,0,0,0,1,0,0,0,0,0,0,2,3
20
+ EURO 6C,0,0,0,0,0,0,0,0,0,1,0,1
21
+ EURO 6D,0,0,0,1,0,0,0,0,0,0,1,2
22
+ Not Applicable,0,2,0,4,14,3,0,0,3,5,3,34
23
+ Not Available,1090,22591,7406,678517,151999,19680,6821,107163,82412,39335,2717016,3834030
24
+ TREM STAGE IV,0,0,0,27,4,0,0,1,19,1,6,58
25
+ TREM STAGE V,0,0,0,1,1,0,0,0,0,0,0,2
26
+ Total,3609,88060,15585,1739959,380391,56623,12012,304824,252995,59435,7003668,9917161
dataa/norm_vs_category/2010.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,26,867,250,13191,6270,701,168,3710,4108,452,28644,58387
3
+ BHARAT STAGE II,733,30091,4804,245020,109660,15004,2699,81966,49655,7712,2494043,3041387
4
+ BHARAT STAGE III,1068,27513,4628,420078,118101,16099,2874,102397,70250,14325,2222740,3000073
5
+ BHARAT STAGE III/IV,4,25,24,2562,181,23,15,32,271,81,2664,5882
6
+ BHARAT STAGE IV,289,9308,984,292361,45314,7436,381,4684,17354,4141,83398,465650
7
+ BHARAT STAGE IV/VI,0,0,0,164,1,0,0,1,2,0,13,181
8
+ BHARAT STAGE VI,2,11,0,856,50,10,2,22,17,7,1283,2260
9
+ Bharat Trem Stage III,6,91,27,2960,803,80,20,988,43386,9,2869,51239
10
+ Bharat Trem Stage III A,173,1778,360,15385,12568,1752,100,10178,18839,70,162798,224001
11
+ Bharat Trem Stage III B,1,18,2,74,93,11,0,11,33,3,63,309
12
+ Bharat Stage III CEV,1,2,320,70,44,3,39,14,165,15,91,764
13
+ CEV STAGE IV,0,0,8,0,0,0,0,0,1,0,0,9
14
+ CEV STAGE V,0,0,1,0,0,0,0,0,0,0,1,2
15
+ EURO 1,43,416,157,19955,4299,405,68,2771,3697,172,64937,96920
16
+ EURO 2,246,3658,798,73372,37599,3152,550,25449,24663,485,532513,702485
17
+ EURO 3,319,3200,634,139981,15384,1753,445,18647,4328,292,309993,494976
18
+ EURO 4,261,4103,96,158356,5122,1051,85,504,794,35,21356,191763
19
+ EURO 6,0,0,0,6,0,0,0,1,3,0,22,32
20
+ EURO 6A,0,0,0,1,3,0,0,0,3,0,0,7
21
+ EURO 6D,0,0,0,1,0,0,0,0,1,0,1,3
22
+ Not Applicable,0,6,1,3,10,6,1,0,2,2,2,33
23
+ Not Available,1269,27867,11054,872247,219579,24596,7192,156454,102462,45982,3842708,5311410
24
+ TREM STAGE IV,1,19,1,150,12,13,1,1,32,1,21,252
25
+ TREM STAGE V,0,0,0,5,1,0,0,0,3,1,1,11
26
+ Total,4442,108973,24149,2256798,575094,72095,14640,407830,340069,73785,9770161,13648036
dataa/norm_vs_category/2011.csv ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,27,679,528,14278,10209,588,168,3935,6211,489,26012,63124
3
+ BHARAT STAGE II,241,6285,3017,47596,23656,3328,1342,10814,27735,3517,915715,1043246
4
+ BHARAT STAGE III,1785,45858,10492,419750,212190,23875,4612,187716,111255,21442,4469098,5508073
5
+ BHARAT STAGE III/IV,2,40,44,1820,251,37,14,35,177,80,2344,4844
6
+ BHARAT STAGE IV,466,14095,2210,540492,66460,10588,892,3571,37438,6936,74765,757913
7
+ BHARAT STAGE IV/VI,0,0,2,106,2,0,0,0,3,0,18,131
8
+ BHARAT STAGE VI,2,14,4,808,63,13,1,31,17,5,741,1699
9
+ Bharat Trem Stage III,5,82,24,833,495,66,26,213,43354,12,3559,48669
10
+ Bharat Trem Stage III A,36,555,386,6631,3586,553,89,3989,25170,40,51272,92307
11
+ Bharat Trem Stage III B,0,11,2,78,57,6,2,18,39,0,42,255
12
+ Bharat Stage III CEV,2,5,449,27,55,5,57,21,160,3,24,808
13
+ CEV STAGE IV,0,0,17,5,0,0,1,0,0,0,1,24
14
+ EURO 1,41,524,269,11796,5869,466,59,4485,5393,587,116667,146156
15
+ EURO 2,295,4005,1075,62051,31944,3546,220,32556,35513,419,667299,838923
16
+ EURO 3,456,4800,1441,129799,46624,3578,1059,46740,11972,761,739507,986737
17
+ EURO 4,749,6730,187,288178,11762,1899,134,1379,1338,49,45162,357567
18
+ EURO 6,0,0,1,2,2,0,0,2,2,1,4,14
19
+ EURO 6A,0,1,0,0,2,1,0,0,0,0,0,4
20
+ EURO 6D,0,0,0,1,0,0,0,0,0,0,1,2
21
+ Not Applicable,0,1,0,2,6,0,0,0,9,4,1,23
22
+ Not Available,1522,26657,13740,930122,253482,23095,8343,146417,114507,58471,4704418,6280774
23
+ TREM STAGE IV,2,17,2,214,13,10,0,1,19,0,22,300
24
+ TREM STAGE V,0,0,0,3,1,0,0,0,0,0,0,4
25
+ Total,5631,110359,33890,2454592,666729,71654,17019,441923,420312,92816,11816672,16131597
dataa/norm_vs_category/2012.csv ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,42,802,427,14961,9480,705,134,2136,5140,346,22567,56740
3
+ BHARAT STAGE II,120,2483,1424,22537,14538,1380,558,5293,16770,1684,722065,788852
4
+ BHARAT STAGE III,1753,55102,11925,470096,225105,29246,4379,209134,131706,23340,5031273,6193059
5
+ BHARAT STAGE III/IV,6,64,29,953,397,59,6,89,133,35,1029,2800
6
+ BHARAT STAGE IV,713,16801,2160,628344,69820,11284,661,3597,45718,7549,67545,854192
7
+ BHARAT STAGE IV/VI,0,1,0,62,2,1,0,0,0,0,3,69
8
+ BHARAT STAGE VI,2,13,7,446,61,7,1,26,10,5,428,1006
9
+ Bharat Trem Stage III,11,69,30,906,530,46,18,245,11329,12,2941,16137
10
+ Bharat Trem Stage III A,80,305,159,4281,2511,302,61,1765,67734,34,43846,121078
11
+ Bharat Trem Stage III B,2,17,2,115,51,9,0,16,36,1,60,309
12
+ Bharat Stage III CEV,1,9,473,33,56,8,54,14,149,2,16,815
13
+ CEV STAGE IV,0,1,12,8,0,0,0,0,0,0,0,21
14
+ EURO 1,48,500,295,8905,7094,458,54,4992,6231,254,159382,188213
15
+ EURO 2,899,4656,1215,60206,42343,4031,164,36479,38911,369,752991,942264
16
+ EURO 3,425,6194,1796,151104,54185,4307,1252,57120,16294,3217,796714,1092608
17
+ EURO 4,614,8016,192,306064,14333,2885,200,2563,1500,62,50780,387209
18
+ EURO 6,0,0,0,1,0,0,0,1,1,1,2,6
19
+ EURO 6A,0,0,0,1,0,0,0,0,0,0,1,2
20
+ EURO 6D,0,0,0,3,0,0,0,0,0,0,0,3
21
+ Not Applicable,0,3,2,5,10,1,1,0,5,1,1,29
22
+ Not Available,1982,30621,12262,1029757,266382,26632,6757,147435,118562,51096,5294631,6986117
23
+ TREM STAGE IV,0,22,1,270,14,9,2,5,13,0,20,356
24
+ TREM STAGE V,0,2,0,3,1,1,1,0,1,0,1,10
25
+ Total,6698,125681,32411,2699061,706913,81371,14303,470910,460243,88008,12946296,17631895
dataa/norm_vs_category/2013.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,17,409,356,15463,6729,328,91,1464,4449,154,29995,59455
3
+ BHARAT STAGE II,115,2265,1134,20731,10847,1097,408,4708,12896,1910,708475,764586
4
+ BHARAT STAGE III,2513,54249,12018,457000,220550,29662,4790,229310,151597,22853,5583824,6768366
5
+ BHARAT STAGE III/IV,7,59,34,728,366,59,14,103,105,21,1025,2521
6
+ BHARAT STAGE IV,656,14986,1868,610795,67734,9900,568,5334,58166,6065,31409,807481
7
+ BHARAT STAGE IV/VI,1,3,0,23,0,2,0,1,1,0,3,34
8
+ BHARAT STAGE VI,2,13,0,231,72,12,0,20,5,0,427,782
9
+ Bharat Trem Stage III,18,77,27,771,415,67,25,208,1904,9,2188,5709
10
+ Bharat Trem Stage III A,48,227,118,2670,2314,224,64,1830,95819,18,33604,136936
11
+ Bharat Trem Stage III B,0,27,1,140,73,13,0,21,59,1,56,391
12
+ Bharat Stage III CEV,0,2,469,17,40,2,28,18,158,0,14,748
13
+ CEV STAGE IV,0,0,13,1,0,0,0,0,0,0,0,14
14
+ CEV STAGE V,0,0,1,0,0,0,0,0,0,0,0,1
15
+ EURO 1,38,470,283,8294,4403,424,83,2942,7774,155,207711,232577
16
+ EURO 2,744,4940,1411,51704,36208,4523,206,29917,47429,391,849898,1027371
17
+ EURO 3,674,6014,1676,145416,52355,4126,838,47163,26597,1936,792765,1079560
18
+ EURO 4,683,8190,202,279472,17808,2889,111,6166,4355,234,86227,406337
19
+ EURO 6,0,0,0,3,0,0,0,0,2,0,4,9
20
+ EURO 6A,0,0,0,0,1,0,0,0,0,0,0,1
21
+ EURO 6C,0,0,0,0,0,0,1,0,0,0,0,1
22
+ Not Applicable,0,1,2,2,4,1,1,0,8,1,0,20
23
+ Not Available,1646,26367,9025,934069,208883,22480,5941,114781,121992,48218,5063469,6556871
24
+ TREM STAGE IV,0,16,1,231,11,14,1,4,8,0,36,322
25
+ TREM STAGE V,0,0,0,3,1,0,0,0,3,0,2,9
26
+ Total,7162,118315,28639,2527764,628814,75823,13170,443990,533327,81966,13391132,17850102
dataa/norm_vs_category/2014.csv ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,14,402,383,13816,8044,276,81,1787,5073,204,37356,67436
3
+ BHARAT STAGE II,90,2336,1014,18455,8240,908,384,4501,13728,2649,780911,833216
4
+ BHARAT STAGE III,2521,46897,10837,440213,201644,24186,3861,248883,166596,28169,6477920,7651727
5
+ BHARAT STAGE III/IV,5,53,39,1016,399,53,8,249,104,17,1395,3338
6
+ BHARAT STAGE IV,600,16256,1881,636029,59707,9614,494,15130,65773,7252,20086,832822
7
+ BHARAT STAGE IV/VI,0,1,0,21,2,1,0,0,1,0,2,28
8
+ BHARAT STAGE VI,2,10,3,260,107,8,1,43,6,0,306,746
9
+ Bharat Trem Stage III,7,42,22,733,433,39,19,182,1443,8,4266,7194
10
+ Bharat Trem Stage III A,147,215,119,1776,2177,214,59,1527,89696,16,22233,118179
11
+ Bharat Trem Stage III B,1,18,3,137,88,9,0,28,65,0,88,437
12
+ Bharat Stage III CEV,0,7,483,23,48,7,35,51,118,2,7,781
13
+ CEV STAGE IV,0,0,8,6,2,0,0,0,0,0,3,19
14
+ EURO 1,48,395,190,8551,3030,375,68,2364,10782,319,268149,294271
15
+ EURO 2,1027,4209,1489,53432,32823,4017,217,29442,55606,320,1037209,1219791
16
+ EURO 3,519,4255,1296,154227,46181,3603,693,48529,45781,3086,880634,1188804
17
+ EURO 4,696,8745,233,302388,18063,2182,134,4041,9428,514,98328,444752
18
+ EURO 6,0,0,0,1,1,0,0,1,0,0,1,4
19
+ EURO 6A,0,0,0,0,0,0,0,0,0,0,1,1
20
+ Not Applicable,0,0,0,2,13,0,0,0,8,0,1,24
21
+ Not Available,2203,22178,7082,918924,164751,18596,5535,119523,122448,62876,5256418,6700534
22
+ TREM STAGE IV,1,21,0,288,17,8,1,2,10,1,110,459
23
+ TREM STAGE V,0,0,1,5,2,0,0,0,2,0,2,12
24
+ Total,7881,106040,25083,2550303,545772,64096,11590,476283,586668,105433,14885426,19364575
dataa/norm_vs_category/2015.csv ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,17,535,404,14425,11759,404,84,2334,3389,191,49287,82829
3
+ BHARAT STAGE II,49,2339,652,19492,8914,947,364,4684,11528,2336,875734,927039
4
+ BHARAT STAGE III,2163,46256,10415,452545,212991,26158,4020,242394,143050,24908,6694750,7859650
5
+ BHARAT STAGE III/IV,14,71,33,1290,622,68,9,223,134,52,1688,4204
6
+ BHARAT STAGE IV,699,16492,2154,688371,67677,10492,505,11270,53085,9787,28456,888988
7
+ BHARAT STAGE IV/VI,0,0,0,23,6,0,0,0,2,0,3,34
8
+ BHARAT STAGE VI,6,13,1,218,100,12,0,29,5,1,301,686
9
+ Bharat Trem Stage III,3,56,22,873,328,55,21,124,868,8,3970,6328
10
+ Bharat Trem Stage III A,38,203,92,1412,1545,202,207,1305,56729,11,26297,88041
11
+ Bharat Trem Stage III B,1,20,0,155,109,12,0,62,118,3,170,650
12
+ Bharat Stage III CEV,1,1,473,21,101,1,45,23,75,2,9,752
13
+ CEV STAGE IV,0,0,7,8,1,0,0,0,0,0,1,17
14
+ EURO 1,36,411,137,7946,3107,396,49,2855,10989,444,284615,310985
15
+ EURO 2,1100,5116,1646,75493,33412,5000,272,30763,49119,659,1036290,1238870
16
+ EURO 3,527,4836,1604,172409,44319,4163,638,46056,25990,3062,842427,1146031
17
+ EURO 4,637,9230,660,321653,23891,2337,284,10111,8141,621,134417,511982
18
+ EURO 6,0,0,0,1,0,0,0,0,0,0,0,1
19
+ Not Applicable,0,0,1,2,13,0,0,0,9,0,1,26
20
+ Not Available,1479,26268,7716,946105,172645,22333,5115,103992,99053,60163,5236481,6681350
21
+ TREM STAGE IV,0,10,1,376,15,6,3,7,12,2,215,647
22
+ TREM STAGE V,0,0,0,4,1,0,0,1,1,0,1,8
23
+ Total,6770,111857,26018,2702822,581556,72586,11616,456233,462297,102250,15215113,19749118
dataa/norm_vs_category/2016.csv ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,17,488,309,13601,8875,314,78,1395,2568,126,39463,67234
3
+ BHARAT STAGE II,56,2118,484,20023,8346,937,266,5264,10364,1782,1049144,1098784
4
+ BHARAT STAGE III,2486,46488,13749,459645,221953,28387,4490,261898,141216,25886,7457073,8663271
5
+ BHARAT STAGE III/IV,4,117,41,2113,1062,117,15,1496,153,56,1880,7054
6
+ BHARAT STAGE IV,1048,19581,3242,801795,86211,13527,867,22799,61651,9970,58783,1079474
7
+ BHARAT STAGE IV/VI,0,0,0,44,10,2,0,0,1,0,4,61
8
+ BHARAT STAGE VI,6,12,3,306,184,9,0,51,2,1,242,816
9
+ Bharat Trem Stage III,8,140,21,772,490,142,16,231,1067,10,4515,7412
10
+ Bharat Trem Stage III A,17,195,61,1425,1167,193,331,1973,64742,11,11554,81669
11
+ Bharat Trem Stage III B,0,31,1,132,90,17,0,27,149,1,80,528
12
+ Bharat Stage III CEV,0,4,567,17,66,4,68,37,87,0,4,854
13
+ CEV STAGE IV,0,0,7,6,0,0,0,0,0,0,5,18
14
+ CEV STAGE V,0,0,1,0,0,0,0,0,0,0,0,1
15
+ EURO 1,20,384,249,8552,3661,360,37,4367,12999,627,331671,362927
16
+ EURO 2,550,6033,1632,85364,33827,5898,336,36924,49571,778,1003635,1224548
17
+ EURO 3,461,5778,1830,182518,45230,5162,713,44595,34792,2593,799352,1123024
18
+ EURO 4,710,9139,933,294190,21155,2581,456,10568,9530,822,158994,509078
19
+ EURO 6,0,0,0,0,4,0,0,0,0,0,1,5
20
+ EURO 6D,0,0,0,0,0,0,0,0,0,0,1,1
21
+ Not Applicable,0,3,0,3,14,3,0,0,3,0,1,27
22
+ Not Available,1499,27524,10210,1015545,190307,23173,5333,157017,102080,73227,5580939,7186854
23
+ TREM STAGE IV,1,15,0,469,34,11,2,6,13,1,176,728
24
+ TREM STAGE V,0,1,0,5,5,1,0,0,1,0,3,16
25
+ Total,6883,118051,33340,2886525,622691,80838,13008,548648,490989,115891,16497520,21414384
dataa/norm_vs_category/2017.csv ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,10,252,101,9298,1113,73,55,325,1335,388,14849,27799
3
+ BHARAT STAGE II,14,713,291,7869,3236,383,108,1845,8063,936,545363,568821
4
+ BHARAT STAGE III,2447,27461,19410,202194,146006,18875,4500,106114,87843,13856,3181841,3810547
5
+ BHARAT STAGE III/IV,11,133,67,1002,968,131,31,450,266,264,2135,5458
6
+ BHARAT STAGE IV,3853,55065,8728,1856384,315241,34675,2321,257777,80102,15503,8500817,11130466
7
+ BHARAT STAGE IV/VI,0,0,3,43,13,0,0,1,2,0,14,76
8
+ BHARAT STAGE VI,1,14,1,279,229,9,1,36,4,0,242,816
9
+ Bharat Trem Stage III,1,51,42,826,222,51,60,634,983,143,1696,4709
10
+ Bharat Trem Stage III A,3,87,502,228,737,84,350,1178,217602,569,2619,223959
11
+ Bharat Trem Stage III B,0,22,2,77,18,15,0,7,111,4,40,296
12
+ Bharat Stage III CEV,0,6,525,8,45,6,88,19,102,0,10,809
13
+ CEV STAGE IV,0,0,6,1,5,0,2,1,0,0,6,21
14
+ EURO 1,13,163,175,2832,1759,159,58,2311,10996,178,112055,130699
15
+ EURO 2,179,3222,1182,43499,16803,3182,212,11021,52057,342,359988,491687
16
+ EURO 3,494,5478,1127,184124,40374,5235,412,30334,23625,553,1414670,1706426
17
+ EURO 4,142,2546,636,129309,14295,1218,286,11055,6205,407,227250,393349
18
+ EURO 6,0,0,0,1,0,0,1,0,0,0,0,2
19
+ EURO 6A,0,0,1,0,0,0,0,0,0,0,0,1
20
+ Not Applicable,0,0,0,2,23,0,1,1,7,2,1,37
21
+ Not Available,959,17935,8328,710453,134981,15550,3571,147042,76764,64020,3713653,4893256
22
+ TREM STAGE IV,0,29,5,711,173,28,1,48,43,14,1331,2383
23
+ TREM STAGE V,0,1,0,4,1,1,0,1,1,1,4,14
24
+ Total,8127,113178,41132,3149144,676242,79675,12058,570200,566111,97180,18078584,23391631
dataa/norm_vs_category/2018.csv ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,0,40,19,2066,182,19,24,43,317,1303,1508,5521
3
+ BHARAT STAGE II,0,80,99,801,507,64,24,171,1840,1584,18457,23627
4
+ BHARAT STAGE III,82,1968,22709,9399,10046,1440,3669,7640,53536,7259,119227,236975
5
+ BHARAT STAGE III/IV,2,61,96,516,522,58,66,133,306,2939,430,5129
6
+ BHARAT STAGE IV,5531,94545,19713,2788849,768162,69647,3805,600166,66297,22142,17523232,21962089
7
+ BHARAT STAGE IV/VI,0,4,1,562,9,4,2,2,1,65,7,657
8
+ BHARAT STAGE VI,2,16,10,228,182,16,2,12,30,49,180,727
9
+ Bharat Trem Stage III,2,4,47,27,162,4,698,42,717,205,204,2112
10
+ Bharat Trem Stage III A,2,1,1052,22,356,3,675,5,508384,3057,30,513587
11
+ Bharat Trem Stage III B,0,0,2,1,2,0,0,0,10,0,12,27
12
+ Bharat Stage III CEV,0,4,12344,68,1484,4,1868,7,205,2155,179,18318
13
+ CEV STAGE IV,0,0,10,4,5,0,2,0,0,0,3,24
14
+ CEV STAGE V,0,0,1,0,0,0,0,0,0,0,1,2
15
+ EURO 6AD,0,0,0,0,1,0,0,0,0,0,0,1
16
+ EURO 1,0,4,8,65,22,1,4,36,792,6,485,1423
17
+ EURO 2,0,21,56,201,105,11,18,27,2819,19,597,3874
18
+ EURO 3,42,237,112,9648,4090,220,35,1856,1694,20,69938,87892
19
+ EURO 4,4,34,26,1565,758,33,15,328,102,37,6307,9209
20
+ EURO 6,0,9,1,16,7,6,0,1,1,16,4,61
21
+ EURO 6A,0,0,1,0,2,0,0,0,0,0,0,3
22
+ EURO 6D,0,1,1,4,0,0,0,0,0,0,0,6
23
+ Not Applicable,0,8,2,2,21,8,0,0,7,1,0,49
24
+ Not Available,372,9239,6632,403892,88464,8331,1467,160323,24606,72141,1849826,2625293
25
+ TREM STAGE IV,0,19,10,320,97,19,10,43,62,114,506,1200
26
+ TREM STAGE V,0,0,2,11,2,0,1,2,11,8,24,61
27
+ Total,6039,106295,62954,3218267,875188,79888,12385,770837,661737,113120,19591157,25497867
dataa/norm_vs_category/2019.csv ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,1,9,13,871,39,4,20,27,136,3,337,1460
3
+ BHARAT STAGE II,1,34,36,644,96,7,59,12,182,8,304,1383
4
+ BHARAT STAGE III,24,515,3334,3521,2042,464,2928,1303,89831,325,21502,125789
5
+ BHARAT STAGE III/IV,1,56,108,644,304,57,164,75,367,2062,424,4262
6
+ BHARAT STAGE IV,9669,95801,17434,2571334,766614,79643,4781,631681,53598,18523,18364805,22613883
7
+ BHARAT STAGE IV/VI,1,23,3,300266,13,5,2,2,1,124,47,300487
8
+ BHARAT STAGE VI,7,320,27,61485,588,278,22,595,741,35,39581,103679
9
+ Bharat Trem Stage III,0,3,45,11,178,3,1871,10,702,232,50,3105
10
+ Bharat Trem Stage III A,0,1,812,21,179,1,1183,13,496129,1185,12,499536
11
+ Bharat Trem Stage III B,0,0,2,1,1,0,1,0,7,2,0,14
12
+ Bharat Stage III CEV,2,19,37500,454,3864,19,5900,45,605,1759,239,50406
13
+ CEV STAGE IV,0,0,19,1,3,0,7,1,0,0,2,33
14
+ EURO 1,0,0,4,41,1,0,1,0,23,0,26,96
15
+ EURO 2,0,3,0,63,2,3,0,0,8,0,33,112
16
+ EURO 3,1,9,5,95,18,9,5,12,43,0,96,293
17
+ EURO 4,0,4,31,442,30,4,64,11,47,23,797,1453
18
+ EURO 6,0,1,2,107,4,1,2,0,3,0,1,121
19
+ EURO 6A,0,0,0,0,4,0,1,0,0,0,0,5
20
+ EURO 6B,0,0,0,5,1,0,0,0,0,0,0,6
21
+ EURO 6C,0,0,0,0,0,0,0,0,1,0,0,1
22
+ EURO 6D,0,0,0,69,0,0,0,0,0,1,0,70
23
+ Not Applicable,0,2,6,4,14,2,0,0,4,0,1,33
24
+ Not Available,494,2034,1639,75932,18972,2042,463,139035,2609,56956,228280,528456
25
+ TREM STAGE IV,0,3,8,37,44,3,23,6,34,206,35,399
26
+ TREM STAGE V,0,1,1,7,0,1,1,1,5,5,3,25
27
+ Total,10201,98838,61029,3016055,793011,82546,17498,772829,645076,81449,18656575,24235107
dataa/norm_vs_category/2020.csv ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,1,10,1,361,18,0,5,2,48,2,155,603
3
+ BHARAT STAGE II,2,30,13,373,109,3,31,0,55,7,149,772
4
+ BHARAT STAGE III,9,286,2574,1830,1024,244,2085,344,102725,121,7584,118826
5
+ BHARAT STAGE III/IV,0,24,35,216,82,24,42,9,110,656,144,1342
6
+ BHARAT STAGE IV,3216,40066,9195,492660,263961,37849,2114,208122,40602,8922,5195605,6302312
7
+ BHARAT STAGE IV/VI,1,17,5,219010,13,15,0,0,6,8,2195,221270
8
+ BHARAT STAGE VI,4317,5425,4040,1756292,229908,2564,530,110297,2806,2310,9077305,11195794
9
+ Bharat Trem Stage III,0,2,127,3,82,2,3186,1,564,50,25,4042
10
+ Bharat Trem Stage III A,0,0,802,3,35,0,1948,2,576638,396,7,579831
11
+ Bharat Trem Stage III B,0,0,2,0,0,0,1,0,9,1,0,13
12
+ Bharat Stage III CEV,0,2,38291,20,1150,2,5990,11,840,473,31,46810
13
+ CEV STAGE IV,0,0,8,2,0,0,11,0,1,0,11,33
14
+ EURO 6AD,0,0,0,1,0,0,1,0,0,0,0,2
15
+ EURO 1,0,2,0,18,1,2,1,0,2,0,10,36
16
+ EURO 2,0,0,0,90,3,0,0,0,5,0,25,123
17
+ EURO 3,0,0,5,59,2,0,0,5,31,0,63,165
18
+ EURO 4,1,3,23,169,22,3,15,18,19,18,834,1125
19
+ EURO 6,0,1,7,256,14,3,39,2,34,13,98,467
20
+ EURO 6A,0,0,0,3,1,0,0,0,0,1,0,5
21
+ EURO 6B,0,0,0,5,0,0,0,0,1,0,0,6
22
+ EURO 6C,0,0,0,1,1,0,1,0,0,0,0,3
23
+ EURO 6D,0,0,0,71,0,0,0,0,1,1,0,73
24
+ Not Applicable,0,0,3,0,2,0,0,0,4,0,2,11
25
+ Not Available,13,126,52,4799,608,119,75,87686,3570,63702,28888,189638
26
+ TREM STAGE IV,0,1,14,8,3,2,12,2,19,79,12,152
27
+ TREM STAGE V,0,0,0,2,0,0,2,0,0,0,1,5
28
+ Total,7560,45995,55197,2476252,497039,40832,16089,406501,728090,76760,14313144,18663459
dataa/norm_vs_category/2021.csv ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,0,18,3,234,20,0,3,1,36,0,155,470
3
+ BHARAT STAGE II,1,13,2,233,84,0,6,0,23,1,99,462
4
+ BHARAT STAGE III,3,70,1956,1158,545,58,2780,5,101989,69,469,109102
5
+ BHARAT STAGE III/IV,0,0,7,127,67,0,7,0,13,0,30,251
6
+ BHARAT STAGE IV,21,597,917,6426,2278,462,314,5583,12713,1248,17225,47784
7
+ BHARAT STAGE IV/VI,0,8,13,16,17,8,1,1,1,0,11,76
8
+ BHARAT STAGE VI,13070,17280,11348,2981150,591381,13377,10683,238402,4255,3078,13763500,17647524
9
+ Bharat Trem Stage III,0,0,331,0,0,0,3754,0,296,0,0,4381
10
+ Bharat Trem Stage III A,0,0,1043,1,22,0,2297,0,646397,0,0,649760
11
+ Bharat Trem Stage III B,0,0,0,0,0,0,3,0,3,0,0,6
12
+ Bharat Stage III CEV,0,0,36752,2,11,0,9526,0,632,0,0,46923
13
+ CEV STAGE IV,0,0,8374,0,1,0,548,0,2,0,0,8925
14
+ CEV STAGE V,0,0,220,1,0,0,0,0,0,0,0,221
15
+ EURO 1,0,0,1,9,1,0,0,0,1,0,3,15
16
+ EURO 2,0,0,0,86,4,0,0,0,1,0,12,103
17
+ EURO 3,0,0,0,128,3,0,0,0,2,0,1,134
18
+ EURO 4,0,0,2,23,0,0,1,0,10,0,15,51
19
+ EURO 6,0,1,11,63,14,2,23,3,11,3,26,157
20
+ EURO 6A,0,0,0,0,2,0,0,2,4,10,0,18
21
+ EURO 6B,0,0,0,1,0,0,0,0,0,0,0,1
22
+ EURO 6C,0,0,0,0,1,0,0,1,0,0,0,2
23
+ EURO 6D,0,0,0,8,0,0,0,0,0,1,0,9
24
+ Not Applicable,0,1,6,2,8,1,0,0,6,0,0,24
25
+ Not Available,1,1178,16,13365,1149,1175,30,153740,1212,70514,153135,395515
26
+ TREM STAGE IV,0,0,14,0,0,0,11,0,23,0,0,48
27
+ Total,13096,19166,61016,3003033,595608,15083,29987,397738,767630,74924,13934681,18911962
dataa/norm_vs_category/2022.csv ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,0,7,0,105,9,1,3,3,11,0,95,234
3
+ BHARAT STAGE II,0,14,14,349,171,5,11,5,6,0,140,715
4
+ BHARAT STAGE III,5,132,865,1220,1207,111,1309,22,85778,14,998,91661
5
+ BHARAT STAGE III/IV,0,9,2,39,31,2,6,0,3,2,2,96
6
+ BHARAT STAGE IV,13,290,950,3639,1924,215,231,268,5099,197,5183,18009
7
+ BHARAT STAGE IV/VI,0,4,0,10,13,4,2,2,2,0,5,42
8
+ BHARAT STAGE VI,12088,45034,13941,3430638,796374,43768,1802,332881,2899,2763,14960727,19642915
9
+ Bharat Trem Stage III,0,0,47,0,0,0,1477,0,297,0,0,1821
10
+ Bharat Trem Stage III A,0,0,1008,0,25,0,6632,0,697695,0,0,705360
11
+ Bharat Trem Stage III B,0,0,0,0,0,0,1,0,4,0,0,5
12
+ Bharat Stage III CEV,0,0,16190,0,1,0,5354,0,474,0,0,22019
13
+ CEV STAGE IV,0,0,24533,0,1,0,2047,0,50,0,0,26631
14
+ CEV STAGE V,0,0,1095,0,0,0,2,0,2,0,2,1101
15
+ EURO 1,0,0,2,20,1,0,0,0,0,0,5,28
16
+ EURO 2,0,2,0,189,5,1,1,0,0,0,9,207
17
+ EURO 3,0,1,1,286,9,1,0,0,1,0,4,303
18
+ EURO 4,0,1,0,20,0,0,0,0,0,0,3,24
19
+ EURO 6,1,0,1,13,7,0,33,0,0,1,1,57
20
+ EURO 6A,0,0,0,3,10,0,0,0,1,2,1,17
21
+ EURO 6B,0,0,0,2,0,0,0,0,0,0,0,2
22
+ EURO 6D,0,0,0,5,0,0,1,0,0,1,0,7
23
+ Not Applicable,0,1,0,2,2,1,1,0,3,1,4,15
24
+ Not Available,0,1998,25,38362,456,1997,34,350742,3889,69704,631392,1098599
25
+ TREM STAGE IV,0,0,12,0,0,0,80,0,714,0,0,806
26
+ TREM STAGE V,0,0,2,0,0,0,17,0,0,0,0,19
27
+ Total,12107,47493,58688,3474902,800246,46106,19044,683923,796928,72685,15598571,21610693
dataa/norm_vs_category/2023.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,1,3,0,18,3,2,0,0,3,0,22,52
3
+ BHARAT STAGE II,0,1,5,133,49,1,7,0,2,0,63,261
4
+ BHARAT STAGE III,7,64,206,873,571,59,129,1,609,6,154,2679
5
+ BHARAT STAGE III/IV,0,6,2,32,13,0,1,0,2,0,7,63
6
+ BHARAT STAGE IV,4,213,193,2284,1297,175,71,95,85,0,1341,5758
7
+ BHARAT STAGE IV/VI,0,0,1,6,3,1,0,0,1,0,7,19
8
+ BHARAT STAGE VI,12162,79893,15388,3761057,835246,77596,2016,521190,151,1618,16235524,21541841
9
+ Bharat Trem Stage III,0,0,117,0,0,0,651,0,178,0,0,946
10
+ Bharat Trem Stage III A,0,0,649,0,16,0,8512,0,851991,2,0,861170
11
+ Bharat Trem Stage III B,0,0,1,0,0,0,0,0,6,0,0,7
12
+ Bharat Stage III CEV,0,0,23394,0,2,0,5401,0,110,0,0,28907
13
+ CEV STAGE IV,0,0,34462,0,1,0,3168,0,3,0,0,37634
14
+ CEV STAGE V,0,0,1161,0,0,0,1,0,0,0,0,1162
15
+ EURO 1,0,0,0,6,0,0,0,0,1,0,0,7
16
+ EURO 2,0,0,0,112,0,0,0,0,1,0,3,116
17
+ EURO 3,0,0,0,176,5,0,1,0,0,0,4,186
18
+ EURO 4,0,0,0,13,1,0,0,0,1,0,3,18
19
+ EURO 6,0,15,30,15,8,15,542,0,0,1,5,631
20
+ EURO 6A,0,0,1,1,0,0,2,0,0,0,0,4
21
+ EURO 6D,0,0,2,2,0,0,0,0,0,0,0,4
22
+ Not Applicable,0,2,2,7,0,2,3,0,1,0,7,24
23
+ Not Available,0,2679,10,82696,2662,2696,12,584081,7555,57968,860434,1600793
24
+ TREM STAGE IV,0,0,232,0,1,0,2164,0,7007,0,0,9404
25
+ TREM STAGE V,0,0,1,0,0,0,159,0,7,0,0,167
26
+ Total,12174,82876,75857,3847431,839878,80547,22840,1105367,867714,59595,17097574,24091853
dataa/norm_vs_category/2024.csv ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,0,0,0,16,3,0,0,0,0,0,54,73
3
+ BHARAT STAGE II,0,0,3,111,17,0,4,0,3,1,261,400
4
+ BHARAT STAGE III,0,31,45,933,413,26,36,0,61,4,492,2041
5
+ BHARAT STAGE III/IV,0,0,0,82,12,0,5,0,0,0,0,99
6
+ BHARAT STAGE IV,0,97,54,1652,681,68,34,26,35,3,427,3077
7
+ BHARAT STAGE IV/VI,0,2,0,15,2,2,0,0,0,0,3,24
8
+ BHARAT STAGE VI,11568,102585,14244,3963745,804914,99859,2663,530368,56,1229,17789867,23321098
9
+ Bharat Trem Stage III,0,0,22,1,0,0,39,0,135,0,0,197
10
+ Bharat Trem Stage III A,0,0,334,1,21,0,210,0,865263,0,0,865829
11
+ Bharat Trem Stage III B,0,0,0,0,0,0,0,0,6,0,0,6
12
+ Bharat Stage III CEV,0,0,24950,0,0,0,5838,0,43,0,0,30831
13
+ CEV STAGE IV,0,0,40942,0,6,0,4076,0,72,0,0,45096
14
+ CEV STAGE V,0,0,1739,0,0,0,14,0,1,0,0,1754
15
+ EURO 1,0,0,0,1,0,0,0,0,0,0,1,2
16
+ EURO 2,0,0,0,41,0,0,0,0,0,0,3,44
17
+ EURO 3,0,0,0,169,6,0,0,0,0,0,1,176
18
+ EURO 4,0,0,0,2,0,0,0,0,1,0,4,7
19
+ EURO 6,0,2,96,43,3,1,338,0,0,1,2,486
20
+ EURO 6C,0,0,0,0,1,0,3,0,0,0,0,4
21
+ EURO 6D,0,0,1,0,0,0,0,0,0,0,0,1
22
+ Not Applicable,0,5,0,1,3,5,0,0,0,0,4,18
23
+ Not Available,0,3739,7,99835,6312,3892,29,691420,4575,58055,1149502,2017366
24
+ TREM STAGE IV,0,0,308,0,0,0,10598,1,16836,0,0,27743
25
+ TREM STAGE V,0,0,0,0,0,0,403,0,35,0,0,438
26
+ Total,11568,106461,82745,4066648,812394,103853,24290,1221815,887122,59293,18940621,26316810
dataa/norm_vs_category/2025.csv ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Norms,Ambulance/Hearses,Bus,Construction Equipment Vehicle,Four Wheeler,Goods Vehicle,Public Service Vehicle,Special Category Vehicles,Three Wheeler,Tractor,Trailer,Two Wheeler,Total
2
+ BHARAT STAGE I,0,0,0,5,1,0,0,0,0,0,12,18
3
+ BHARAT STAGE II,0,1,1,150,4,0,1,0,1,1,98,257
4
+ BHARAT STAGE III,0,3,4,249,90,3,11,0,0,1,60,421
5
+ BHARAT STAGE III/IV,0,1,0,73,14,1,1,0,0,0,0,90
6
+ BHARAT STAGE IV,0,12,9,223,28,12,3,4,1,0,64,356
7
+ BHARAT STAGE IV/VI,0,0,0,3,0,0,0,0,0,0,0,3
8
+ BHARAT STAGE VI,6783,37054,4769,1457132,294681,35450,1102,165225,36,423,5720166,7722821
9
+ Bharat Trem Stage III,0,0,3,0,0,0,9,0,29,0,0,41
10
+ Bharat Trem Stage III A,0,0,49,0,9,0,53,0,280988,0,0,281099
11
+ Bharat Trem Stage III B,0,0,0,0,0,0,0,0,5,0,0,5
12
+ Bharat Stage III CEV,0,0,7312,0,0,0,2254,0,18,0,0,9584
13
+ CEV STAGE IV,0,0,9680,0,0,0,1242,0,14,0,0,10936
14
+ CEV STAGE V,0,0,8835,0,0,0,251,0,0,0,0,9086
15
+ EURO 1,0,0,0,3,0,0,0,0,0,0,0,3
16
+ EURO 2,0,0,0,15,0,0,0,0,0,0,0,15
17
+ EURO 3,0,0,0,30,0,0,0,0,0,0,0,30
18
+ EURO 4,0,0,0,5,0,0,0,0,0,0,0,5
19
+ EURO 6,1,0,12,9,2,0,274,0,0,1,0,299
20
+ EURO 6B,0,0,0,1,0,0,0,0,0,0,0,1
21
+ Not Applicable,0,0,0,2,0,0,0,0,0,0,0,2
22
+ Not Available,0,1244,103,48217,2377,1250,4,235246,1127,20738,399288,709594
23
+ TREM STAGE IV,0,0,50,0,0,0,6561,0,6329,0,0,12940
24
+ TREM STAGE V,0,0,0,0,0,0,74,0,2,0,0,76
25
+ Total,6784,38315,30827,1506117,297206,36716,11840,400475,288550,21164,6119688,8757682
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
  streamlit
2
  pandas
3
- plotly
 
 
1
  streamlit
2
  pandas
3
+ plotly
4
+ XlsxWriter