Spaces:
Running on CPU Upgrade

LeonceNsh commited on
Commit
091838d
·
1 Parent(s): d832d0e

add more geogs

Browse files
Files changed (2) hide show
  1. app.py +301 -37
  2. data/.DS_Store +0 -0
app.py CHANGED
@@ -42,6 +42,158 @@ population_2020_data = {
42
  # Create a DataFrame for the top 15 counties
43
  df_population_2020 = pd.DataFrame(population_2020_data)
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  # Function to create the bar plot for 2020 Tennessee population (top 15 counties)
46
  def plot_2020_population_top15():
47
  fig = px.bar(df_population_2020,
@@ -71,6 +223,18 @@ cbg_geographic_data = pd.read_csv("data/cbg_geographic_data.csv")
71
  counties_geo = gpd.read_file("data/county/01_county-shape-file.shp")
72
  counties_geo = counties_geo[counties_geo['statefp'] == '47'] # Filter for Tennessee
73
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  # Define business types
75
  df_md_final1['business_type'] = np.where(df_md_final1['name'].str.contains("Autozone", case=False, na=False), "Autozone",
76
  np.where(df_md_final1['name'].str.contains("Napa Auto Parts", case=False, na=False), "Napa Auto Parts",
@@ -80,16 +244,101 @@ df_md_final1['business_type'] = np.where(df_md_final1['name'].str.contains("Auto
80
  "Car Dealership",
81
  "Other Auto Repair Shop")))))
82
 
83
- # Function to create a Folium map with county boundaries and markers
84
- def create_map(county_filter="All", business_filter="All"):
85
  m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
86
 
87
- # Filter based on business name
 
 
 
88
  filtered_df = df_md_final1
89
  if business_filter != "All":
90
- filtered_df = filtered_df[filtered_df['business_type'] == business_filter]
91
 
92
- folium.GeoJson(counties_geo).add_to(m)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
  # Define marker colors based on business type
95
  def get_marker_color(business_type):
@@ -144,36 +393,36 @@ with gr.Blocks() as app:
144
  datatype=["str", "str", "str", "str", "str"],
145
  value=[
146
  ["AutoZone", "257 Wears Valley Rd", "Pigeon Forge", "Tennessee", "37863"],
147
- ["Sterling Auto", "2064 Wilma Rudolph Blvd", "Clarksville", "Tennessee", "37040"], ["AutoZone", "257 Wears Valley Rd", "Pigeon Forge", "Tennessee", "37863"],
148
- ["Sterling Auto", "2064 Wilma Rudolph Blvd", "Clarksville", "Tennessee", "37040"],
149
- ["Advance Auto Parts", "2124 N Highland Ave", "Jackson", "Tennessee", "38305"],
150
- ["FRIENDSHIP HYUNDAI OF BRISTOL", "1841 Volunteer Pkwy", "Bristol", "Tennessee", "37620"],
151
- ["Advance Auto Parts", "45 Main St", "Savannah", "Tennessee", "38372"],
152
- ["O'Reilly Auto Parts", "493 Craighead St", "Nashville", "Tennessee", "37204"],
153
- ["O'Reilly Auto Parts", "864 Highway 51 N", "Covington", "Tennessee", "38019"],
154
- ["NAPA Auto Parts", "711 Murfreesboro Pike", "Nashville", "Tennessee", "37210"],
155
- ["Goodyear Auto Service Centers", "5407 Highway 153", "Hixson", "Tennessee", "37343"],
156
- ["NAPA Auto Parts", "100 Center St", "Johnson City", "Tennessee", "37615"],
157
- # Adding new entries
158
- ["Cadillac,Buick,Chevrolet,GMC", "960 John R Rice Blvd", "Murfreesboro", "Tennessee", "37129"],
159
- ["AutoZone", "9760 Highway 64", "Lakeland", "Tennessee", "38002"],
160
- ["Honda", "1408 Highway 45 Byp", "Jackson", "Tennessee", "38305"],
161
- ["National Tire & Battery (NTB)", "532 Robert Rose Dr", "Murfreesboro", "Tennessee", "37129"],
162
- ["NAPA Auto Parts", "711 Murfreesboro Pike", "Nashville", "Tennessee", "37210"],
163
- ["Advance Auto Parts", "160 W Broadway", "Gallatin", "Tennessee", "37066"],
164
- ["Southern Tire Mart (STM)", "1551 S Wilcox Dr", "Kingsport", "Tennessee", "37660"],
165
- ["Chevrolet", "310 E 20th St", "Chattanooga", "Tennessee", "37408"],
166
- ["O'Reilly Auto Parts", "7534 Oak Ridge Hwy", "Knoxville", "Tennessee", "37931"],
167
- ["Goodyear Auto Service Centers", "971 Eastgate Loop", "Chattanooga", "Tennessee", "37411"],
168
- ["Firestone Complete Auto Care", "15127 Old Hickory Blvd", "Nashville", "Tennessee", "37211"],
169
- ["Christian Brothers Automotive", "10406 Kingston Pike", "Knoxville", "Tennessee", "37922"],
170
- ["Christian Brothers Automotive", "563 E Main St", "Hendersonville", "Tennessee", "37075"],
171
- ["O'Reilly Auto Parts", "101 Village Square Ln", "Mountain City", "Tennessee", "37683"],
172
- ["O'Reilly Auto Parts", "4219 Fort Henry Dr Ste A", "Kingsport", "Tennessee", "37663"],
173
- ["Precision Tune Auto Care", "4710 N Broadway St", "Knoxville", "Tennessee", "37918"],
174
- ["National Tire & Battery (NTB)", "234 Old Hickory Blvd", "Nashville", "Tennessee", "37221"]
175
- ], # Data values
176
- row_count=27 # Adjusted total number of rows
177
  )
178
 
179
  gr.Markdown("Source: Yellowbook")
@@ -182,11 +431,26 @@ with gr.Blocks() as app:
182
  with gr.Tab("Auto repair shops in TN Counties"):
183
  business_options = ["All"] + list(df_md_final1['business_type'].unique())
184
  business_filter = gr.Dropdown(label="Select Business Type", choices=business_options, value="All")
185
- map_output = gr.HTML(lambda business_filter: create_map(business_filter=business_filter), inputs=[business_filter])
186
 
187
  with gr.Tab("Auto Repair Shops in TN Zip Codes"):
188
  zip_options = ["All"] + list(df_md_final1['zip_code'].unique())
189
  zip_filter = gr.Dropdown(label="Select Zip Code", choices=zip_options, value="All")
190
  map_output_zip = gr.HTML(lambda zip_filter: create_map(business_filter="All", county_filter=zip_filter), inputs=[zip_filter])
191
 
192
- app.launch(server_name="0.0.0.0", server_port=7860)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  # Create a DataFrame for the top 15 counties
43
  df_population_2020 = pd.DataFrame(population_2020_data)
44
 
45
+ # Function to create a Folium map with county boundaries and markers
46
+ def create_map(county_filter="All", business_filter="All"):
47
+ m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
48
+
49
+ # Filter based on business name
50
+ filtered_df = df_md_final1
51
+ if business_filter != "All":
52
+ filtered_df = filtered_df[df_md_final1['business_type'] == business_filter]
53
+
54
+ folium.GeoJson(counties_geo).add_to(m)
55
+
56
+ # Define marker colors based on business type
57
+ def get_marker_color(business_type):
58
+ colors = {
59
+ "Autozone": "lightblue",
60
+ "Napa Auto Parts": "lightgreen",
61
+ "O'Reilly Auto Parts": "orange",
62
+ "Advance Auto Parts": "yellow",
63
+ "Car Dealership": "red",
64
+ "Other Auto Repair Shop": "purple"
65
+ }
66
+ return colors.get(business_type, "blue")
67
+
68
+ for _, row in filtered_df.iterrows():
69
+ folium.Marker(
70
+ location=[row['md_y'], row['md_x']],
71
+ popup=row['name'],
72
+ icon=folium.Icon(color=get_marker_color(row['business_type']))
73
+ ).add_to(m)
74
+
75
+ # Add the legend to the map
76
+ legend_html = '''
77
+ <div style="position: fixed;
78
+ bottom: 50px; left: 50px; width: 300px; height: 210px;
79
+ background-color: white; z-index:9999; font-size:14px;
80
+ border:2px solid grey;
81
+ padding: 10px;">
82
+ <b>Business Type</b><br>
83
+ <i class="fa fa-map-marker fa-2x" style="color:lightblue"></i>&nbsp;Autozone<br>
84
+ <i class="fa fa-map-marker fa-2x" style="color:lightgreen"></i>&nbsp;Napa Auto Parts<br>
85
+ <i class="fa fa-map-marker fa-2x" style="color:orange"></i>&nbsp;O'Reilly Auto Parts<br>
86
+ <i class="fa fa-map-marker fa-2x" style="color:yellow"></i>&nbsp;Advance Auto Parts<br>
87
+ <i class="fa fa-map-marker fa-2x" style="color:red"></i>&nbsp;Car Dealership<br>
88
+ <i class="fa fa-map-marker fa-2x" style="color:purple"></i>&nbsp;Other Auto Repair Shop<br>
89
+ </div>
90
+ '''
91
+ m.get_root().html.add_child(Element(legend_html))
92
+
93
+ return m._repr_html_()
94
+
95
+ # Function to create a Folium map with HSA boundaries and markers
96
+ def create_hsa_map(business_filter="All"):
97
+ m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
98
+
99
+ # Add HSA boundaries
100
+ folium.GeoJson(hsa_geo).add_to(m)
101
+
102
+ # Filter businesses by selected type
103
+ filtered_df = df_md_final1
104
+ if business_filter != "All":
105
+ filtered_df = df_md_final1[df_md_final1['business_type'] == business_filter]
106
+
107
+ # Define marker colors based on business type
108
+ def get_marker_color(business_type):
109
+ colors = {
110
+ "Autozone": "lightblue",
111
+ "Napa Auto Parts": "lightgreen",
112
+ "O'Reilly Auto Parts": "orange",
113
+ "Advance Auto Parts": "yellow",
114
+ "Car Dealership": "red",
115
+ "Other Auto Repair Shop": "purple"
116
+ }
117
+ return colors.get(business_type, "blue")
118
+
119
+ for _, row in filtered_df.iterrows():
120
+ folium.Marker(
121
+ location=[row['md_y'], row['md_x']],
122
+ popup=row['name'],
123
+ icon=folium.Icon(color=get_marker_color(row['business_type']))
124
+ ).add_to(m)
125
+
126
+ # Add the legend to the map
127
+ legend_html = '''
128
+ <div style="position: fixed;
129
+ bottom: 50px; left: 50px; width: 300px; height: 210px;
130
+ background-color: white; z-index:9999; font-size:14px;
131
+ border:2px solid grey;
132
+ padding: 10px;">
133
+ <b>Business Type</b><br>
134
+ <i class="fa fa-map-marker fa-2x" style="color:lightblue"></i>&nbsp;Autozone<br>
135
+ <i class="fa fa-map-marker fa-2x" style="color:lightgreen"></i>&nbsp;Napa Auto Parts<br>
136
+ <i class="fa fa-map-marker fa-2x" style="color:orange"></i>&nbsp;O'Reilly Auto Parts<br>
137
+ <i class="fa fa-map-marker fa-2x" style="color:yellow"></i>&nbsp;Advance Auto Parts<br>
138
+ <i class="fa fa-map-marker fa-2x" style="color:red"></i>&nbsp;Car Dealership<br>
139
+ <i class="fa fa-map-marker fa-2x" style="color:purple"></i>&nbsp;Other Auto Repair Shop<br>
140
+ </div>
141
+ '''
142
+ m.get_root().html.add_child(Element(legend_html))
143
+
144
+ return m._repr_html_()
145
+
146
+ # Function to create a Folium map with HRR boundaries and markers
147
+ def create_hrr_map(business_filter="All"):
148
+ m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
149
+
150
+ # Add HRR boundaries
151
+ folium.GeoJson(hrr_geo).add_to(m)
152
+
153
+ # Filter businesses by selected type
154
+ filtered_df = df_md_final1
155
+ if business_filter != "All":
156
+ filtered_df = df_md_final1[df_md_final1['business_type'] == business_filter]
157
+
158
+ # Define marker colors based on business type
159
+ def get_marker_color(business_type):
160
+ colors = {
161
+ "Autozone": "lightblue",
162
+ "Napa Auto Parts": "lightgreen",
163
+ "O'Reilly Auto Parts": "orange",
164
+ "Advance Auto Parts": "yellow",
165
+ "Car Dealership": "red",
166
+ "Other Auto Repair Shop": "purple"
167
+ }
168
+ return colors.get(business_type, "blue")
169
+
170
+ for _, row in filtered_df.iterrows():
171
+ folium.Marker(
172
+ location=[row['md_y'], row['md_x']],
173
+ popup=row['name'],
174
+ icon=folium.Icon(color=get_marker_color(row['business_type']))
175
+ ).add_to(m)
176
+
177
+ # Add the legend to the map
178
+ legend_html = '''
179
+ <div style="position: fixed;
180
+ bottom: 50px; left: 50px; width: 300px; height: 210px;
181
+ background-color: white; z-index:9999; font-size:14px;
182
+ border:2px solid grey;
183
+ padding: 10px;">
184
+ <b>Business Type</b><br>
185
+ <i class="fa fa-map-marker fa-2x" style="color:lightblue"></i>&nbsp;Autozone<br>
186
+ <i class="fa fa-map-marker fa-2x" style="color:lightgreen"></i>&nbsp;Napa Auto Parts<br>
187
+ <i class="fa fa-map-marker fa-2x" style="color:orange"></i>&nbsp;O'Reilly Auto Parts<br>
188
+ <i class="fa fa-map-marker fa-2x" style="color:yellow"></i>&nbsp;Advance Auto Parts<br>
189
+ <i class="fa fa-map-marker fa-2x" style="color:red"></i>&nbsp;Car Dealership<br>
190
+ <i class="fa fa-map-marker fa-2x" style="color:purple"></i>&nbsp;Other Auto Repair Shop<br>
191
+ </div>
192
+ '''
193
+ m.get_root().html.add_child(Element(legend_html))
194
+
195
+ return m._repr_html_()
196
+
197
  # Function to create the bar plot for 2020 Tennessee population (top 15 counties)
198
  def plot_2020_population_top15():
199
  fig = px.bar(df_population_2020,
 
223
  counties_geo = gpd.read_file("data/county/01_county-shape-file.shp")
224
  counties_geo = counties_geo[counties_geo['statefp'] == '47'] # Filter for Tennessee
225
 
226
+ # Load the ZCTA shapefile
227
+ zcta_geo = gpd.read_file("data/tl_2020_us_zcta520/tl_2020_us_zcta520.shp")
228
+ zcta_geo = zcta_geo[zcta_geo['ZCTA5CE20'].str.startswith('37')] # Filter for Tennessee
229
+
230
+ # Load the HSA shapefile
231
+ hsa_geo = gpd.read_file("data/hsa/01_hsa-shape-file.shp")
232
+ hsa_geo = hsa_geo[hsa_geo['hsastate'] == 'TN']
233
+
234
+ # Load the HRR shapefile
235
+ hrr_geo = gpd.read_file("data/hrr/01_hrr-shape-file.shp")
236
+ hrr_geo = hrr_geo[hrr_geo['hrrstate'] == 'TN']
237
+
238
  # Define business types
239
  df_md_final1['business_type'] = np.where(df_md_final1['name'].str.contains("Autozone", case=False, na=False), "Autozone",
240
  np.where(df_md_final1['name'].str.contains("Napa Auto Parts", case=False, na=False), "Napa Auto Parts",
 
244
  "Car Dealership",
245
  "Other Auto Repair Shop")))))
246
 
247
+ # Function to create a Folium map with ZCTA boundaries and auto business markers
248
+ def create_zcta_map(business_filter="All"):
249
  m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
250
 
251
+ # Add ZCTA boundaries
252
+ folium.GeoJson(zcta_geo).add_to(m)
253
+
254
+ # Filter businesses by selected type
255
  filtered_df = df_md_final1
256
  if business_filter != "All":
257
+ filtered_df = df_md_final1[df_md_final1['business_type'] == business_filter]
258
 
259
+ # Define marker colors based on business type
260
+ def get_marker_color(business_type):
261
+ colors = {
262
+ "Autozone": "lightblue",
263
+ "Napa Auto Parts": "lightgreen",
264
+ "O'Reilly Auto Parts": "orange",
265
+ "Advance Auto Parts": "yellow",
266
+ "Car Dealership": "red",
267
+ "Other Auto Repair Shop": "purple"
268
+ }
269
+ return colors.get(business_type, "blue")
270
+
271
+ for _, row in filtered_df.iterrows():
272
+ folium.Marker(
273
+ location=[row['md_y'], row['md_x']],
274
+ popup=row['name'],
275
+ icon=folium.Icon(color=get_marker_color(row['business_type']))
276
+ ).add_to(m)
277
+
278
+ return m._repr_html_()
279
+
280
+ # Function to create a Folium map with HSA boundaries and auto business markers
281
+ def create_hsa_map_filtered(business_filter="All"):
282
+ m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
283
+
284
+ # Add HSA boundaries
285
+ folium.GeoJson(hsa_geo).add_to(m)
286
+
287
+ # Filter businesses by selected type
288
+ filtered_df = df_md_final1
289
+ if business_filter != "All":
290
+ filtered_df = df_md_final1[df_md_final1['business_type'] == business_filter]
291
+
292
+ # Define marker colors based on business type
293
+ def get_marker_color(business_type):
294
+ colors = {
295
+ "Autozone": "lightblue",
296
+ "Napa Auto Parts": "lightgreen",
297
+ "O'Reilly Auto Parts": "orange",
298
+ "Advance Auto Parts": "yellow",
299
+ "Car Dealership": "red",
300
+ "Other Auto Repair Shop": "purple"
301
+ }
302
+ return colors.get(business_type, "blue")
303
+
304
+ for _, row in filtered_df.iterrows():
305
+ folium.Marker(
306
+ location=[row['md_y'], row['md_x']],
307
+ popup=row['name'],
308
+ icon=folium.Icon(color=get_marker_color(row['business_type']))
309
+ ).add_to(m)
310
+
311
+ # Add the legend to the map
312
+ legend_html = '''
313
+ <div style="position: fixed;
314
+ bottom: 50px; left: 50px; width: 300px; height: 210px;
315
+ background-color: white; z-index:9999; font-size:14px;
316
+ border:2px solid grey;
317
+ padding: 10px;">
318
+ <b>Business Type</b><br>
319
+ <i class="fa fa-map-marker fa-2x" style="color:lightblue"></i>&nbsp;Autozone<br>
320
+ <i class="fa fa-map-marker fa-2x" style="color:lightgreen"></i>&nbsp;Napa Auto Parts<br>
321
+ <i class="fa fa-map-marker fa-2x" style="color:orange"></i>&nbsp;O'Reilly Auto Parts<br>
322
+ <i class="fa fa-map-marker fa-2x" style="color:yellow"></i>&nbsp;Advance Auto Parts<br>
323
+ <i class="fa fa-map-marker fa-2x" style="color:red"></i>&nbsp;Car Dealership<br>
324
+ <i class="fa fa-map-marker fa-2x" style="color:purple"></i>&nbsp;Other Auto Repair Shop<br>
325
+ </div>
326
+ '''
327
+ m.get_root().html.add_child(Element(legend_html))
328
+
329
+ return m._repr_html_()
330
+
331
+ # Function to create a Folium map with HRR boundaries and auto business markers
332
+ def create_hrr_map_filtered(business_filter="All"):
333
+ m = folium.Map(location=[35.8601, -86.6602], zoom_start=8)
334
+
335
+ # Add HRR boundaries
336
+ folium.GeoJson(hrr_geo).add_to(m)
337
+
338
+ # Filter businesses by selected type
339
+ filtered_df = df_md_final1
340
+ if business_filter != "All":
341
+ filtered_df = df_md_final1[df_md_final1['business_type'] == business_filter]
342
 
343
  # Define marker colors based on business type
344
  def get_marker_color(business_type):
 
393
  datatype=["str", "str", "str", "str", "str"],
394
  value=[
395
  ["AutoZone", "257 Wears Valley Rd", "Pigeon Forge", "Tennessee", "37863"],
396
+ ["Sterling Auto", "2064 Wilma Rudolph Blvd", "Clarksville", "Tennessee", "37040"],
397
+ ["AutoZone", "257 Wears Valley Rd", "Pigeon Forge", "Tennessee", "37863"],
398
+ ["Sterling Auto", "2064 Wilma Rudolph Blvd", "Clarksville", "Tennessee", "37040"],
399
+ ["Advance Auto Parts", "2124 N Highland Ave", "Jackson", "Tennessee", "38305"],
400
+ ["FRIENDSHIP HYUNDAI OF BRISTOL", "1841 Volunteer Pkwy", "Bristol", "Tennessee", "37620"],
401
+ ["Advance Auto Parts", "45 Main St", "Savannah", "Tennessee", "38372"],
402
+ ["O'Reilly Auto Parts", "493 Craighead St", "Nashville", "Tennessee", "37204"],
403
+ ["O'Reilly Auto Parts", "864 Highway 51 N", "Covington", "Tennessee", "38019"],
404
+ ["NAPA Auto Parts", "711 Murfreesboro Pike", "Nashville", "Tennessee", "37210"],
405
+ ["Goodyear Auto Service Centers", "5407 Highway 153", "Hixson", "Tennessee", "37343"],
406
+ ["NAPA Auto Parts", "100 Center St", "Johnson City", "Tennessee", "37615"],
407
+ ["Cadillac,Buick,Chevrolet,GMC", "960 John R Rice Blvd", "Murfreesboro", "Tennessee", "37129"],
408
+ ["AutoZone", "9760 Highway 64", "Lakeland", "Tennessee", "38002"],
409
+ ["Honda", "1408 Highway 45 Byp", "Jackson", "Tennessee", "38305"],
410
+ ["National Tire & Battery (NTB)", "532 Robert Rose Dr", "Murfreesboro", "Tennessee", "37129"],
411
+ ["NAPA Auto Parts", "711 Murfreesboro Pike", "Nashville", "Tennessee", "37210"],
412
+ ["Advance Auto Parts", "160 W Broadway", "Gallatin", "Tennessee", "37066"],
413
+ ["Southern Tire Mart (STM)", "1551 S Wilcox Dr", "Kingsport", "Tennessee", "37660"],
414
+ ["Chevrolet", "310 E 20th St", "Chattanooga", "Tennessee", "37408"],
415
+ ["O'Reilly Auto Parts", "7534 Oak Ridge Hwy", "Knoxville", "Tennessee", "37931"],
416
+ ["Goodyear Auto Service Centers", "971 Eastgate Loop", "Chattanooga", "Tennessee", "37411"],
417
+ ["Firestone Complete Auto Care", "15127 Old Hickory Blvd", "Nashville", "Tennessee", "37211"],
418
+ ["Christian Brothers Automotive", "10406 Kingston Pike", "Knoxville", "Tennessee", "37922"],
419
+ ["Christian Brothers Automotive", "563 E Main St", "Hendersonville", "Tennessee", "37075"],
420
+ ["O'Reilly Auto Parts", "101 Village Square Ln", "Mountain City", "Tennessee", "37683"],
421
+ ["O'Reilly Auto Parts", "4219 Fort Henry Dr Ste A", "Kingsport", "Tennessee", "37663"],
422
+ ["Precision Tune Auto Care", "4710 N Broadway St", "Knoxville", "Tennessee", "37918"],
423
+ ["National Tire & Battery (NTB)", "234 Old Hickory Blvd", "Nashville", "Tennessee", "37221"]
424
+ ], # Data values
425
+ row_count=27 # Adjusted total number of rows
426
  )
427
 
428
  gr.Markdown("Source: Yellowbook")
 
431
  with gr.Tab("Auto repair shops in TN Counties"):
432
  business_options = ["All"] + list(df_md_final1['business_type'].unique())
433
  business_filter = gr.Dropdown(label="Select Business Type", choices=business_options, value="All")
434
+ map_output_counties = gr.HTML(lambda business_filter: create_map(business_filter=business_filter), inputs=[business_filter])
435
 
436
  with gr.Tab("Auto Repair Shops in TN Zip Codes"):
437
  zip_options = ["All"] + list(df_md_final1['zip_code'].unique())
438
  zip_filter = gr.Dropdown(label="Select Zip Code", choices=zip_options, value="All")
439
  map_output_zip = gr.HTML(lambda zip_filter: create_map(business_filter="All", county_filter=zip_filter), inputs=[zip_filter])
440
 
441
+ with gr.Tab("ZCTA Map with Auto Businesses"):
442
+ business_options_zcta = ["All"] + list(df_md_final1['business_type'].unique())
443
+ business_filter_zcta = gr.Dropdown(label="Select Business Type", choices=business_options_zcta, value="All")
444
+ zcta_map_output = gr.HTML(lambda business_filter_zcta: create_zcta_map(business_filter=business_filter_zcta), inputs=[business_filter_zcta])
445
+
446
+ with gr.Tab("HSA Map with Auto Businesses"):
447
+ business_options_hsa = ["All"] + list(df_md_final1['business_type'].unique())
448
+ business_filter_hsa = gr.Dropdown(label="Select Business Type", choices=business_options_hsa, value="All")
449
+ hsa_map_output = gr.HTML(lambda business_filter_hsa: create_hsa_map_filtered(business_filter=business_filter_hsa), inputs=[business_filter_hsa])
450
+
451
+ with gr.Tab("HRR Map with Auto Businesses"):
452
+ business_options_hrr = ["All"] + list(df_md_final1['business_type'].unique())
453
+ business_filter_hrr = gr.Dropdown(label="Select Business Type", choices=business_options_hrr, value="All")
454
+ hrr_map_output = gr.HTML(lambda business_filter_hrr: create_hrr_map_filtered(business_filter=business_filter_hrr), inputs=[business_filter_hrr])
455
+
456
+ app.launch(server_name="0.0.0.0", server_port=7860)
data/.DS_Store CHANGED
Binary files a/data/.DS_Store and b/data/.DS_Store differ