Spaces:
Runtime error
Runtime error
File size: 6,209 Bytes
f63cb2d 50cb32e 628c5fb e81552f 628c5fb 0047175 e81552f f63cb2d a43ae41 0565b67 a43ae41 9ed411a a43ae41 800ba7b f78a66a a43ae41 f63cb2d 50cb32e f63cb2d a43ae41 f63cb2d 2ed9128 d680ff8 85ab470 f63cb2d a43ae41 f63cb2d f598d77 7556c05 34ddbbd f63cb2d 2edea2c 0047175 f63cb2d a43ae41 f63cb2d 34ddbbd f63cb2d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
import streamlit as st
import json
import matplotlib.pyplot as plt
import time
st.set_page_config(layout="wide")
# HIN Number +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
from SPARQLWrapper import SPARQLWrapper, JSON
from streamlit_agraph import agraph, TripleStore, Node, Edge, Config
import json
# Green Village ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Function to load and parse the JSON data
def load_data(filename):
with open(filename, 'r') as file:
data = json.load(file)
return data
# Color codes updated with hexadecimal values for compatibility
color_codes = {
"residential": "#ADD8E6", # Light Blue
"commercial": "#90EE90", # Light Green
"community_facilities": "#FFFF00", # Yellow
"school": "#FFFF00", # Yellow
"healthcare_facility": "#FFFF00", # Yellow
"green_space": "#90EE90", # Light Green
"utility_infrastructure": "#90EE90", # Light Green
"emergency_services": "#FF0000", # Red
"cultural_facilities": "#D8BFD8", # Light Purple
"recreational_facilities": "#D8BFD8", # Light Purple
"innovation_center": "#90EE90", # Light Green
"elderly_care_home": "#FFFF00", # Yellow
"childcare_centers": "#FFFF00", # Yellow
"places_of_worship": "#D8BFD8", # Light Purple
"event_spaces": "#D8BFD8", # Light Purple
"guest_housing": "#FFA500", # Orange
"pet_care_facilities": "#FFA500", # Orange
"public_sanitation_facilities": "#A0A0A0", # Grey
"environmental_monitoring_stations": "#90EE90", # Light Green
"disaster_preparedness_center": "#A0A0A0", # Grey
"outdoor_community_spaces": "#90EE90" # Light Green
}
# Function to draw the grid layout with color coding
def draw_grid(data):
# Create a figure and a grid of subplots
fig, ax = plt.subplots(figsize=(12, 12))
# Setting the grid size
nrows, ncols = data['size']['rows'], data['size']['columns']
ax.set_xlim(0, ncols)
ax.set_ylim(0, nrows)
ax.set_xticks(range(ncols+1))
ax.set_yticks(range(nrows+1))
ax.grid(True)
# Plotting each building with its assigned color from the color_codes dictionary
for building in data['buildings']:
# Extracting the building details
coords = building['coords']
b_type = building['type']
size = building['size']
color = color_codes.get(b_type, '#FFFFFF') # Default color is white if not specified
# Plotting the building on the grid with color
ax.add_patch(plt.Rectangle((coords[1], nrows-coords[0]-size), size, size, color=color, edgecolor='black', linewidth=1))
ax.text(coords[1]+0.5*size, nrows-coords[0]-0.5*size, b_type, ha='center', va='center', fontsize=8, color='black')
# Draw roads
for road in data.get('roads', []): # Check for roads in the data, default to empty list if not found
start, end = road['start'], road['end']
# Determine if the road is vertical or horizontal based on start and end coordinates
if start[0] == end[0]: # Vertical road
for y in range(min(start[1], end[1]), max(start[1], end[1]) + 1):
ax.add_patch(plt.Rectangle((start[0], nrows-y-1), 1, 1, color=road['color']))
else: # Horizontal road
for x in range(min(start[0], end[0]), max(start[0], end[0]) + 1):
ax.add_patch(plt.Rectangle((x, nrows-start[1]-1), 1, 1, color=road['color']))
# Reverse the y-axis numbers
# ax.invert_yaxis()
# Setting labels and title
ax.set_xlabel('Columns')
ax.set_ylabel('Rows')
ax.set_title('Village Layout with Color Coding')
return fig
# Streamlit application starts here
def main():
st.title('Green Smart Village Application')
# Creating three columns
col1, col2, col3 = st.columns(3)
with col1:
st.header("Today's Agenda")
# Example content for Today's Agenda
st.write("1. Morning Meeting\n2. Review Project Plans\n3. Lunch Break\n4. Site Visit\n5. Evening Wrap-up")
st.header("Agent Advisors")
st.write("Would you like to optimize your HIN number")
st.header("My Incentive")
st.write("Total incentive for HIN optimization")
with col2:
st.header("Green Smart Village Layout")
# Load and display the data with color coding
data = load_data('grid.json') # Ensure this path is correct
fig = draw_grid(data)
st.pyplot(fig)
# Interactivity: Selecting a building to display sensor data
building_options = [f"{bld['type']} at ({bld['coords'][0]}, {bld['coords'][1]})" for bld in data['buildings']]
selected_building = st.selectbox("Select a building to view sensors:", options=building_options)
selected_index = building_options.index(selected_building)
sensors = data['buildings'][selected_index]['sensors']
st.write(f"Sensors in selected building: {', '.join(sensors)}")
with col3:
st.header("Check Your HIN Number")
config = Config(height=400, width=400, nodeHighlightBehavior=True, highlightColor="#F7A7A6", directed=True,
collapsible=True)
#based on Insurance Fraud
with open("data/fraud.json", encoding="utf8") as f:
fraud_file = json.loads(f.read())
st.session_state['fraud_topic'] = fraud_file
fraud_store = TripleStore()
for sub_graph in fraud_file["children"]:
fraud_store.add_triple(fraud_file["name"], "has_subgroup", sub_graph["name"], picture=fraud_file["img"])
for node in sub_graph["children"]:
node1 = node["role"]
link = "blongs_to"
node2 = sub_graph["name"]
pic = node["img"]
fraud_store.add_triple(node1, link, node2, picture=pic)
agraph(list(fraud_store.getNodes()), (fraud_store.getEdges()), config)
hin_number = st.text_input("Enter your HIN number:")
if hin_number:
st.write("HIN number details...") # Placeholder for actual HIN number check
if __name__ == "__main__":
main()
|