CoolFace
Apppublic

Proghead231/propensity_matching

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
Map.py71 linesDownload Raw Back to pages
1import streamlit as st2import pandas as pd3import geopandas as gpd4import leafmap.foliumap5m = leafmap.foliumap.Map()6m.set_center(84.376898, 28.052843, zoom=7)7 8cached_results = pd.read_csv("st_results.csv")9pa_names = {10    1: "Annapurna",11    2: "Api",12    3: "Banke",13    4: "Bardia",14    5: "Chitwan",15    6: "Dhorpatan",16    7: "Gaurusankar",17    8: "Kanchanjunga",18    9: "Khaptad",19    10: "Koshi Tappu",20    11: "Krinshnasar",21    12: "Langtang",22    13: "Makalu Barun",23    14: "Manasalu",24    15: "Parsa",25    16: "Rara",26    17: "Sagarmatha",27    18: "Shey-phoksundo",28    19: "Shivapuri-Nagarjun",29    20: "Suklaphanta"30}31pa_names_mapped = {code: pa_names.get(code) for code in cached_results.paCode.unique() if code != 0 and pa_names.get(code)}32 33pa_select = st.selectbox("Select pa", options=list(pa_names_mapped.values()), index=2)34 35selected_pa_code = next((code for code, name in pa_names_mapped.items() if name == pa_select), None)36 37if (pa_select is not None) and (cached_results is not None):38    treated_gdf = gpd.GeoDataFrame(39        cached_results[cached_results.trt == 1], 40        geometry=gpd.points_from_xy(cached_results[cached_results.trt == 1].x, cached_results[cached_results.trt == 1].y),41        crs="EPSG:4326"42    )43    control_gdf = gpd.GeoDataFrame(44        cached_results[cached_results.trt == 0], 45        geometry=gpd.points_from_xy(cached_results[cached_results.trt == 0].x, cached_results[cached_results.trt == 0].y),46        crs="EPSG:4326"47    )48    pa_treated = treated_gdf.loc[cached_results.paCode == selected_pa_code]49    pa_control = pa_treated.merge(control_gdf, left_on='matched_element', right_on='system:index', suffixes=('_pa', '_ctrl'))50    pa_control = pa_control.drop(columns=['geometry_pa', 'geometry_ctrl'])51    pa_control = gpd.GeoDataFrame(52        pa_control, 53        geometry=gpd.points_from_xy(pa_control.x_ctrl, pa_control.y_ctrl),54        crs="EPSG:4326"55    )56    57    m.add_basemap(basemap='HYBRID', show=True)58    m.add_circle_markers_from_xy(pa_treated, x="x", y="y", radius=1, color= "green")59    m.add_circle_markers_from_xy(pa_control, x="x_ctrl", y="y_ctrl", radius=1, color= "red")60    labels = ['Control Points', 'Treated Points']61    # color can be defined using either hex code or RGB (0-255, 0-255, 0-255)62    colors = ['#fc0303', '#07fc03']63    64    m.add_legend(title='Legend', labels=labels, colors=colors)65    m.to_streamlit(width=800, height=800, add_layer_control=True)66    67    with st.expander("Selected Protected Area's Treated and Matched", expanded=False):68        st.write("PA Treated")69        st.write(pa_treated)70        st.write("PA Matched")71        st.write(pa_control)