Zeel commited on
Commit
41103fd
·
1 Parent(s): 45afa76

fix issues

Browse files
Files changed (1) hide show
  1. app.py +37 -12
app.py CHANGED
@@ -8,8 +8,8 @@ import leafmap.foliumap as leafmap
8
  # wide streamlit display
9
  st.set_page_config(layout="wide")
10
 
11
- query_params = st.query_params()
12
- file_url = query_params.get("file_url", [None])[0]
13
 
14
  if file_url:
15
  if file_url.startswith("https://drive.google.com/file/d/"):
@@ -27,10 +27,11 @@ if file_url:
27
 
28
  m = leafmap.Map()
29
  m.add_wms_layer(
30
- "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}"
 
31
  )
32
  m.add_gdf(
33
- geometry_gdf,
34
  layer_name="Geometry",
35
  zoom_to_layer=True,
36
  style_function=lambda x: {"color": "red", "fillOpacity": 0.0},
@@ -39,17 +40,41 @@ if file_url:
39
 
40
  # Metrics
41
  stats_df = pd.DataFrame()
42
- stats_df.loc["Points"] = json.loads(geometry_gdf.to_crs(4326).to_json())["features"][0]["geometry"]["coordinates"]
43
- stats_df.loc["Area (ha)"] = geometry_gdf.geometry.area.item() / 10000
44
- stats_df.loc["Perimeter (m)"] = geometry_gdf.geometry.length.item()
45
 
46
  st.write("<h3><div style='text-align: center;'>Geometry Metrics</div></h3>", unsafe_allow_html=True)
 
 
 
 
 
 
47
  st.markdown(
48
- f"""| Metric | Value |
49
- | --- | --- |
50
- | Area (m^2) | {stats_df['Area (m^2)'].item():.2f} m^2 = {stats_df['Area (m^2)'].item()/10000:.2f} ha |
51
- | Perimeter (m) | {stats_df['Perimeter (m)'].item():.2f} m |
52
- """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  )
 
 
 
 
54
  else:
55
  st.warning("Please provide a KML or GeoJSON URL as a query parameter, e.g., `?file_url=<your_file_url>`")
 
8
  # wide streamlit display
9
  st.set_page_config(layout="wide")
10
 
11
+ file_url = st.query_params.get("file_url", [None])
12
+ print(f"{file_url=}")
13
 
14
  if file_url:
15
  if file_url.startswith("https://drive.google.com/file/d/"):
 
27
 
28
  m = leafmap.Map()
29
  m.add_wms_layer(
30
+ "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}",
31
+ layers="0",
32
  )
33
  m.add_gdf(
34
+ geometry_gdf.to_crs(epsg=4326),
35
  layer_name="Geometry",
36
  zoom_to_layer=True,
37
  style_function=lambda x: {"color": "red", "fillOpacity": 0.0},
 
40
 
41
  # Metrics
42
  stats_df = pd.DataFrame()
43
+ stats_df["Points"] = json.loads(geometry_gdf.to_crs(4326).to_json())["features"][0]["geometry"]["coordinates"]
44
+ stats_df["Area (ha)"] = geometry_gdf.geometry.area.item() / 10000
45
+ stats_df["Perimeter (m)"] = geometry_gdf.geometry.length.item()
46
 
47
  st.write("<h3><div style='text-align: center;'>Geometry Metrics</div></h3>", unsafe_allow_html=True)
48
+ # st.markdown(
49
+ # f"""| Metric | Value |
50
+ # | --- | --- |
51
+ # | Area (ha) | {stats_df['Area (ha)'].item():.2f} ha|
52
+ # | Perimeter (m) | {stats_df['Perimeter (m)'].item():.2f} m |"""
53
+ # unsafe_allow_html=True)
54
  st.markdown(
55
+ f"""
56
+ <div style="display: flex; justify-content: center;">
57
+ <table>
58
+ <tr>
59
+ <th>Metric</th>
60
+ <th>Value</th>
61
+ </tr>
62
+ <tr>
63
+ <td>Area (ha)</td>
64
+ <td>{stats_df['Area (ha)'].item():.2f} ha</td>
65
+ </tr>
66
+ <tr>
67
+ <td>Perimeter (m)</td>
68
+ <td>{stats_df['Perimeter (m)'].item():.2f} m</td>
69
+ </tr>
70
+ </table>
71
+ </div>
72
+ """,
73
+ unsafe_allow_html=True,
74
  )
75
+
76
+ csv = stats_df.T.to_csv(index=False)
77
+ st.download_button("Download Geometry Metrics", csv, "geometry_metrics.csv", "text/csv", use_container_width=True)
78
+
79
  else:
80
  st.warning("Please provide a KML or GeoJSON URL as a query parameter, e.g., `?file_url=<your_file_url>`")