Spaces:
Runtime error
Runtime error
import tensorflow as tf | |
from PIL import Image | |
import numpy as np | |
import cv2 | |
import gradio as gr | |
from tensorflow import keras | |
from keras.models import load_model | |
import folium | |
import re | |
def convert_coordinates(coord_str): | |
# Regular expression pattern to match the coordinate format | |
pattern = r"(\d+)°(\d+)'(\d+(?:\.\d+)?)\"([NS])\s+(\d+)°(\d+)'(\d+(?:\.\d+)?)\"([EW])" | |
match = re.match(pattern, coord_str) | |
if match: | |
lat_deg = int(match.group(1)) | |
lat_min = int(match.group(2)) | |
lat_sec = float(match.group(3)) | |
lat_dir = match.group(4) | |
lon_deg = int(match.group(5)) | |
lon_min = int(match.group(6)) | |
lon_sec = float(match.group(7)) | |
lon_dir = match.group(8) | |
# Convert coordinates to decimal format | |
lat_decimal = lat_deg + (lat_min / 60) + (lat_sec / 3600) | |
lon_decimal = lon_deg + (lon_min / 60) + (lon_sec / 3600) | |
# Apply sign based on direction | |
if lat_dir == 'S': | |
lat_decimal *= -1 | |
if lon_dir == 'W': | |
lon_decimal *= -1 | |
return (lat_decimal, lon_decimal) | |
else: | |
return None | |
# Example usage | |
coordinates = "30°01'48.7\"N 30°58'35.1\"E" | |
latitude, longitude = convert_coordinates(coordinates) | |
print(f"Latitude: {latitude}, Longitude: {longitude}") | |
mineral_locations = { | |
'biotite': [ | |
convert_coordinates("45°26'54.0\"N 75°41'24.0\"W"), | |
convert_coordinates("51°03'07.2\"N 114°04'28.8\"W"), | |
convert_coordinates("37°47'24.0\"N 122°28'12.0\"W") | |
], | |
'granite': [ | |
convert_coordinates("40°44'54.0\"N 73°59'08.0\"W"), | |
convert_coordinates("34°03'08.0\"S 151°06'24.0\"E"), | |
convert_coordinates("55°45'00.0\"N 37°37'00.0\"E") | |
], | |
'olivine': [ | |
convert_coordinates("19°28'48.0\"N 155°36'00.0\"W"), | |
convert_coordinates("38°41'24.0\"N 9°08'24.0\"W"), | |
convert_coordinates("46°28'12.0\"N 7°57'36.0\"E") | |
], | |
'plagioclase': [ | |
convert_coordinates("48°51'24.0\"N 2°21'05.0\"E"), | |
convert_coordinates("35°40'48.0\"N 139°41'24.0\"E"), | |
convert_coordinates("41°53'24.0\"N 12°29'24.0\"E") | |
], | |
'staurolite': [ | |
convert_coordinates("43°04'12.0\"N 89°22'48.0\"W"), | |
convert_coordinates("47°36'00.0\"N 7°36'00.0\"E"), | |
convert_coordinates("51°30'00.0\"N 0°07'48.0\"W") | |
] | |
} | |
import folium | |
def plot_mineral_locations(mineral_locations): | |
map = folium.Map(location=[0, 0], zoom_start=2) | |
for mineral, locations in mineral_locations.items(): | |
for location in locations: | |
lat, lon = location | |
folium.Marker( | |
location=[lat, lon], | |
popup=mineral, | |
icon=folium.Icon(color='green') | |
).add_to(map) | |
return map | |
def generate_mineral_map(mineral_name): | |
# Create a map object | |
mineral_map = folium.Map(location=[0, 0], zoom_start=2) | |
# Get the locations for the specified mineral | |
locations = mineral_locations.get(mineral_name, []) | |
# Add markers for the mineral locations | |
for location in locations: | |
lat, lon = location | |
folium.Marker( | |
location=[lat, lon], | |
popup=mineral_name, | |
icon=folium.Icon(color='green') | |
).add_to(mineral_map) | |
return mineral_map | |