File size: 4,128 Bytes
5d1ac9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import random
import plotly.express as px
from geopy.distance import geodesic
from PIL import Image

# Define the DMO names
dmo_names = ["DMO" + str(i) for i in range(1, 31)]

# Dictionary of large European cities with their coordinates
cities = {
    "London": (51.5074, -0.1278),
    "Paris": (48.8566, 2.3522),
    "Berlin": (52.5200, 13.4050),
    "Madrid": (40.4168, -3.7038),
    "Rome": (41.9028, 12.4964),
    "Vienna": (48.2082, 16.3738),
    "Amsterdam": (52.3667, 4.8945),
    "Athens": (37.9838, 23.7275),
    "Stockholm": (59.3293, 18.0686),
    "Brussels": (50.8503, 4.3517),
    "Helsinki": (60.1699, 24.9384),
    "Warsaw": (52.2297, 21.0122),
    "Copenhagen": (55.6761, 12.5683),
    "Lisbon": (38.7223, -9.1393),
    "Dublin": (53.3498, -6.2603),
    "Budapest": (47.4979, 19.0402),
    "Prague": (50.0755, 14.4378),
    "Sofia": (42.6977, 23.3219),
    "Bucharest": (44.4396, 26.0963),
    "Luxembourg": (49.6116, 6.1319),
    "Riga": (56.9496, 24.1052),
    "Valletta": (35.8989, 14.5146),
    "Vilnius": (54.6872, 25.2797),
    "Bratislava": (48.1486, 17.1077),
    "Ljubljana": (46.0569, 14.5058),
    "Nicosia": (35.1856, 33.3823),
    "Tallinn": (59.4370, 24.7536),
    "Zagreb": (45.8150, 15.9819),
    "Nicosia": (35.1856, 33.3823),
    "Valletta": (35.8989, 14.5146)
}

# Coordinates of beach and mountain areas
beach_coordinates = (45.0, 10.0)  # Example beach coordinates
mountain_coordinates = (48.0, 10.0)  # Example mountain coordinates

# Function to determine the area based on proximity to beach or mountain
def determine_area(latitude, longitude):
    city_coordinates = (latitude, longitude)
    beach_distance = geodesic(city_coordinates, beach_coordinates).km
    mountain_distance = geodesic(city_coordinates, mountain_coordinates).km
    
    if beach_distance <= 200:
        return "Beach"
    elif mountain_distance <= 200:
        return "Mountain"
    else:
        return "City"

# Create an empty DataFrame
df = pd.DataFrame(columns=["DMO", "City", "Latitude", "Longitude", "Area", "Environmental", "Cultural",
                           "Community", "Socio-economic", "Infrastructure", "Stakeholder",
                           "Visitor_education", "Monitoring"])

# Populate the DataFrame
for i in range(30):
    dmo = dmo_names[i]
    city = random.choice(list(cities.keys()))
    latitude, longitude = cities[city]
    area = determine_area(latitude, longitude)
    environmental = round(random.uniform(0, 10), 2)
    cultural = round(random.uniform(0, 10), 2)
    community = round(random.uniform(0, 10), 2)
    socio_economic = round(random.uniform(0, 10), 2)
    infrastructure = round(random.uniform(0, 10), 2)
    stakeholder = round(random.uniform(0, 10), 2)
    visitor_education = round(random.uniform(0, 10), 2)
    monitoring = round(random.uniform(0, 10), 2)
    
    df.loc[i] = [dmo, city, latitude, longitude, area, environmental, cultural, community,
                 socio_economic, infrastructure, stakeholder, visitor_education, monitoring]

df.loc[df['DMO'].isin(['DMO14', 'DMO19', 'DMO27', 'DMO15', 'DMO20', 'DMO21']), 'Area'] = 'Beach'
df.loc[df['DMO'].isin(['DMO4', 'DMO23', 'DMO8']), 'Area'] = 'Mountain'

fig = px.scatter_mapbox(df, lat="Latitude", lon="Longitude", hover_name="DMO", hover_data=["Environmental", "Cultural",
                                                                                         "Community", "Socio-economic",
                                                                                         "Infrastructure", "Stakeholder",
                                                                                         "Visitor_education", "Monitoring"],
                        color="Area", color_discrete_sequence=["blue", "green", "red"], zoom=3)

fig.update_layout(mapbox_style="open-street-map")
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

st.plotly_chart(fig, use_container_width=True)

img = Image.open('mastercard_logo.png')

col1, col2, col3 = st.columns([1,6,1])

with col1:
    st.write("")

with col2:
    st.write("")

with col3:
    st.image(img)