cultura_space / app.py
Charles De Dampierre
changes
026a3b5
raw history blame
No virus
4.03 kB
import streamlit as st
from PIL import Image
import os
import pandas as pd
@st.cache
def load_data():
df_ind = pd.read_csv("data/df_individuals_score.csv", index_col=[0])
df_ind = df_ind.drop("region_code", axis=1)
df_ind["productive_year"] = df_ind["productive_year"].astype(int)
df_ind["individual_wikidata_id"] = "https://www.wikidata.org/wiki/" + df_ind[
"individual_wikidata_id"
].astype(str)
df_ind = df_ind[df_ind["productive_year"] <= 1800]
return df_ind
df_ind = load_data()
st.title("Our History in Data")
# Set the global index path
global_index_path = "data/immaterial_index/figures_trends_R/results"
global_index_path_per_capita = (
"data/immaterial_index/figures_trends_R/results_per_capita"
)
unseen_index_path = (
"data/immaterial_index/figures_trends_R/figures_unseen/results_unseen"
)
unseen_capita_index_path = (
"data/immaterial_index/figures_trends_R/figures_unseen/results_unseen/per_capita"
)
population_path = "data/population"
maps_path = "data/map_figures"
from region_list import region_list
index_paths = {}
for region_key in region_list:
# Create the index paths for the current region
index_paths[region_key] = {
"map": f"{maps_path}/map_{region_key}.png",
"global_index": f"{global_index_path}/{region_key}.png",
"global_index_per_capita": f"{global_index_path_per_capita}/{region_key}.png",
"unseen_index": f"{unseen_index_path}/{region_key}.png",
"unseen_index_capita": f"{unseen_capita_index_path}/{region_key}.png",
"population_index": f"{population_path}/{region_key}.png",
}
# Get the region names (keys) from the index_paths dictionary
regions = list(index_paths.keys())
# Allow the user to select a region
selected_region = st.sidebar.selectbox("Region:", regions, index=regions.index("Japan"))
# Display the selected region's images vertically
if selected_region in index_paths:
df = df_ind[df_ind["region_name"] == selected_region]
df["productive_year"] = round(df["productive_year"], 0)
df = df.drop(["region_name", "decade"], axis=1)
df = df[
[
"individual_name",
"productive_year",
"score",
"individual_wikidata_id" "",
]
]
df = df.sort_values("score", ascending=False)
df = df.rename(columns={"score": "Number of Catalogs"})
df = df.reset_index(drop=True)
st.dataframe(df)
st.write(f"Number of Cultural producers active before 1800: {len(df)}")
for key, path in index_paths[selected_region].items():
if os.path.exists(path):
if key == "global_index":
st.subheader("Global Index")
st.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
elif key == "global_index_per_capita":
st.subheader("Index per capita")
st.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
elif key == "unseen_index":
st.subheader("Unsee-Species Index")
st.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
elif key == "unseen_index_capita":
st.subheader("Unsee-Species per capita Index")
st.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
elif key == "population_index":
st.subheader("Population Index")
st.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
elif key == "map":
st.subheader("Maps")
st.sidebar.image(
Image.open(path), caption=key.capitalize(), use_column_width=True
)
else:
st.write(f"File for {key.capitalize()} does not exist.")