methestrikerx100's picture
Upload Map.py
12c535f verified
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