Update src/streamlit_app.py
Browse files- src/streamlit_app.py +12 -6
src/streamlit_app.py
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import pandas as pd
|
| 3 |
import numpy as np
|
|
@@ -11,7 +15,7 @@ from scipy.optimize import linear_sum_assignment
|
|
| 11 |
from geopy.distance import geodesic
|
| 12 |
import plotly.express as px
|
| 13 |
import plotly.graph_objects as go
|
| 14 |
-
import
|
| 15 |
|
| 16 |
# Dapatkan path absolut direktori saat ini (yaitu src/)
|
| 17 |
BASE_DIR = os.path.dirname(__file__)
|
|
@@ -39,16 +43,16 @@ def load_csv_from_local(file_path):
|
|
| 39 |
def load_all_data():
|
| 40 |
"""Memuat semua dataset yang diperlukan dari file lokal"""
|
| 41 |
file_paths = {
|
| 42 |
-
'buildings': '../data/
|
| 43 |
'road_nodes': '../data/road_nodes.csv',
|
| 44 |
'road_edges': '../data/road_edges.csv',
|
| 45 |
'menus': '../data/menu_with_tags.csv'
|
| 46 |
}
|
| 47 |
-
|
| 48 |
data = {}
|
| 49 |
for key, path in file_paths.items():
|
| 50 |
data[key] = load_csv_from_local(path)
|
| 51 |
-
|
| 52 |
return data
|
| 53 |
|
| 54 |
@st.cache_data
|
|
@@ -63,7 +67,7 @@ def build_graph(gdf_nodes, gdf_edges, gdf_poi):
|
|
| 63 |
|
| 64 |
for idx, row in gdf_poi.iterrows():
|
| 65 |
nid = f"poi_{idx}"
|
| 66 |
-
G.add_node(nid, x=row
|
| 67 |
|
| 68 |
road_nodes_list = [(n, data['y'], data['x']) for n, data in G.nodes(data=True) if isinstance(n, (int, float))]
|
| 69 |
|
|
@@ -120,7 +124,9 @@ with st.sidebar:
|
|
| 120 |
data = load_all_data()
|
| 121 |
gdf_nodes = data["road_nodes"]
|
| 122 |
gdf_edges = data["road_edges"]
|
| 123 |
-
gdf_poi
|
|
|
|
|
|
|
| 124 |
|
| 125 |
name_list = sorted(gdf_poi['name'].dropna().unique().tolist())
|
| 126 |
start_name = st.selectbox("Pilih Lokasi Awal:", name_list)
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
os.environ["STREAMLIT_HOME"] = "/tmp"
|
| 3 |
+
os.environ["MPLCONFIGDIR"] = "/tmp"
|
| 4 |
+
|
| 5 |
import streamlit as st
|
| 6 |
import pandas as pd
|
| 7 |
import numpy as np
|
|
|
|
| 15 |
from geopy.distance import geodesic
|
| 16 |
import plotly.express as px
|
| 17 |
import plotly.graph_objects as go
|
| 18 |
+
from datetime import datetime, timedelta
|
| 19 |
|
| 20 |
# Dapatkan path absolut direktori saat ini (yaitu src/)
|
| 21 |
BASE_DIR = os.path.dirname(__file__)
|
|
|
|
| 43 |
def load_all_data():
|
| 44 |
"""Memuat semua dataset yang diperlukan dari file lokal"""
|
| 45 |
file_paths = {
|
| 46 |
+
'buildings': '../data/poi_places.csv',
|
| 47 |
'road_nodes': '../data/road_nodes.csv',
|
| 48 |
'road_edges': '../data/road_edges.csv',
|
| 49 |
'menus': '../data/menu_with_tags.csv'
|
| 50 |
}
|
| 51 |
+
|
| 52 |
data = {}
|
| 53 |
for key, path in file_paths.items():
|
| 54 |
data[key] = load_csv_from_local(path)
|
| 55 |
+
|
| 56 |
return data
|
| 57 |
|
| 58 |
@st.cache_data
|
|
|
|
| 67 |
|
| 68 |
for idx, row in gdf_poi.iterrows():
|
| 69 |
nid = f"poi_{idx}"
|
| 70 |
+
G.add_node(nid, x=row['longitude'], y=row['latitude'], name=row['name'])
|
| 71 |
|
| 72 |
road_nodes_list = [(n, data['y'], data['x']) for n, data in G.nodes(data=True) if isinstance(n, (int, float))]
|
| 73 |
|
|
|
|
| 124 |
data = load_all_data()
|
| 125 |
gdf_nodes = data["road_nodes"]
|
| 126 |
gdf_edges = data["road_edges"]
|
| 127 |
+
gdf_poi = data["buildings"]
|
| 128 |
+
|
| 129 |
+
st.write("📋 Kolom tersedia di gdf_poi:", gdf_poi.columns.tolist())
|
| 130 |
|
| 131 |
name_list = sorted(gdf_poi['name'].dropna().unique().tolist())
|
| 132 |
start_name = st.selectbox("Pilih Lokasi Awal:", name_list)
|