Update app.py
Browse files
app.py
CHANGED
@@ -191,21 +191,21 @@ def mask_to_polygons(mask, transform, target_class_id):
|
|
191 |
return gdf
|
192 |
|
193 |
|
194 |
-
def
|
195 |
# Ensure both are in same CRS
|
196 |
mining_gdf = mining_gdf.to_crs(wiup_gdf.crs)
|
197 |
|
198 |
-
#
|
199 |
-
|
200 |
|
201 |
# Convert to metric CRS (e.g., UTM) to calculate area in m²
|
202 |
-
metric_crs = 'EPSG:
|
203 |
-
|
204 |
|
205 |
-
|
206 |
-
|
207 |
|
208 |
-
return
|
209 |
|
210 |
# Streamlit App Title
|
211 |
st.title("Satellite Mining Segmentation: SAR + Optic Image Inference")
|
@@ -378,9 +378,9 @@ if st.button("Run Inference"):
|
|
378 |
st.success(f"WIUP CRS: {wiup_gdf.crs}")
|
379 |
|
380 |
# Find area
|
381 |
-
non_mining_area, non_mining_area_gdf =
|
382 |
-
mining_area, mining_area_gdf =
|
383 |
-
beach_area, beach_area_gdf =
|
384 |
|
385 |
# Display in Streamlit
|
386 |
st.success(f" Non Mining Area : {non_mining_area/1e6:.2f} sq. km")
|
|
|
191 |
return gdf
|
192 |
|
193 |
|
194 |
+
def calculate_area(mining_gdf, wiup_gdf):
|
195 |
# Ensure both are in same CRS
|
196 |
mining_gdf = mining_gdf.to_crs(wiup_gdf.crs)
|
197 |
|
198 |
+
# Same = parts of mining polygons
|
199 |
+
area_gdf = gpd.overlay(mining_gdf, wiup_gdf, how='intersection')
|
200 |
|
201 |
# Convert to metric CRS (e.g., UTM) to calculate area in m²
|
202 |
+
metric_crs = 'EPSG:4326' # UTM zone for SE Asia (adjust based on location)
|
203 |
+
area_gdf = area_gdf.to_crs(metric_crs)
|
204 |
|
205 |
+
area_gdf['area_m2'] = area_gdf.geometry.area
|
206 |
+
total_area = area_gdf['area_m2'].sum()
|
207 |
|
208 |
+
return total_area, area_gdf
|
209 |
|
210 |
# Streamlit App Title
|
211 |
st.title("Satellite Mining Segmentation: SAR + Optic Image Inference")
|
|
|
378 |
st.success(f"WIUP CRS: {wiup_gdf.crs}")
|
379 |
|
380 |
# Find area
|
381 |
+
non_mining_area, non_mining_area_gdf = calculate_area(non_mining_gdf, wiup_gdf)
|
382 |
+
mining_area, mining_area_gdf = calculate_area(mining_gdf, wiup_gdf)
|
383 |
+
beach_area, beach_area_gdf = calculate_area(beach_gdf, wiup_gdf)
|
384 |
|
385 |
# Display in Streamlit
|
386 |
st.success(f" Non Mining Area : {non_mining_area/1e6:.2f} sq. km")
|