JohanBeytell commited on
Commit
a560523
·
verified ·
1 Parent(s): 7049f57

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -17
app.py CHANGED
@@ -5,8 +5,6 @@ from transformers import CLIPProcessor, CLIPModel
5
  import pygeohash as pgh
6
  import plotly.graph_objects as go
7
  import torch.nn as nn
8
- import reverse_geocoder as rg
9
- import pycountry # for full country names
10
 
11
  EXPORT_DIR = "."
12
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
@@ -54,16 +52,6 @@ def haversine(lat1, lon1, lat2, lon2):
54
  a = np.sin(dphi/2)**2 + np.cos(phi1)*np.cos(phi2)*np.sin(dlambda/2)**2
55
  return 2*R*np.arctan2(np.sqrt(a), np.sqrt(1-a))
56
 
57
- # ---------------- Country lookup ----------------
58
- def latlon_to_country(lat, lon):
59
- try:
60
- res = rg.search((lat, lon))[0]
61
- cc = res['cc']
62
- country = pycountry.countries.get(alpha_2=cc)
63
- return country.name if country else cc, cc
64
- except:
65
- return "Unknown", "??"
66
-
67
  # ---------------- Prediction + Map ----------------
68
  def predict_geohash_map(img: Image.Image, true_lat=None, true_lon=None, top_k=5):
69
  c_in = clip_processor(images=img, return_tensors="pt").to(DEVICE)
@@ -78,8 +66,8 @@ def predict_geohash_map(img: Image.Image, true_lat=None, true_lon=None, top_k=5)
78
  lats, lons = [], []
79
 
80
  # Markdown table header
81
- preds_text = ["| Rank | Country | Code | Latitude | Longitude | Distance |",
82
- "|------|---------|------|----------|-----------|----------|"]
83
 
84
  for rank, i in enumerate(topk_idx, 1):
85
  geoh = id2geoh[i]
@@ -87,8 +75,6 @@ def predict_geohash_map(img: Image.Image, true_lat=None, true_lon=None, top_k=5)
87
  lat_pred = lat_base + out_offset_np[0] * cell_lat
88
  lon_pred = lon_base + out_offset_np[1] * cell_lon
89
 
90
- country_name, country_code = latlon_to_country(lat_pred, lon_pred)
91
-
92
  dist_str = ""
93
  if true_lat is not None and true_lon is not None:
94
  dist = haversine(true_lat, true_lon, lat_pred, lon_pred)
@@ -100,7 +86,7 @@ def predict_geohash_map(img: Image.Image, true_lat=None, true_lon=None, top_k=5)
100
  dist_str = f"🔴 {dist:.1f} km"
101
 
102
  preds_text.append(
103
- f"| {rank} | {country_name} | {country_code} | {lat_pred:.5f} | {lon_pred:.5f} | {dist_str} |"
104
  )
105
 
106
  lats.append(lat_pred)
 
5
  import pygeohash as pgh
6
  import plotly.graph_objects as go
7
  import torch.nn as nn
 
 
8
 
9
  EXPORT_DIR = "."
10
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
 
52
  a = np.sin(dphi/2)**2 + np.cos(phi1)*np.cos(phi2)*np.sin(dlambda/2)**2
53
  return 2*R*np.arctan2(np.sqrt(a), np.sqrt(1-a))
54
 
 
 
 
 
 
 
 
 
 
 
55
  # ---------------- Prediction + Map ----------------
56
  def predict_geohash_map(img: Image.Image, true_lat=None, true_lon=None, top_k=5):
57
  c_in = clip_processor(images=img, return_tensors="pt").to(DEVICE)
 
66
  lats, lons = [], []
67
 
68
  # Markdown table header
69
+ preds_text = ["| Rank | Latitude | Longitude | Distance |",
70
+ "|------|----------|-----------|----------|"]
71
 
72
  for rank, i in enumerate(topk_idx, 1):
73
  geoh = id2geoh[i]
 
75
  lat_pred = lat_base + out_offset_np[0] * cell_lat
76
  lon_pred = lon_base + out_offset_np[1] * cell_lon
77
 
 
 
78
  dist_str = ""
79
  if true_lat is not None and true_lon is not None:
80
  dist = haversine(true_lat, true_lon, lat_pred, lon_pred)
 
86
  dist_str = f"🔴 {dist:.1f} km"
87
 
88
  preds_text.append(
89
+ f"| {rank} | {lat_pred:.5f} | {lon_pred:.5f} | {dist_str} |"
90
  )
91
 
92
  lats.append(lat_pred)