geolocation-ai / planet.py
Wendgan's picture
Upload planet.py
b5bf7e1 verified
raw
history blame contribute delete
704 Bytes
import torch.nn as nn
from torchvision.models import resnet18
class PlaNetModel(nn.Module):
def __init__(self, num_cells):
super().__init__()
self.backbone = resnet18(weights=None)
self.backbone.fc = nn.Linear(self.backbone.fc.in_features, num_cells)
def forward(self, x):
return self.backbone(x)
def decode_tile_to_latlon(cell_idx):
tile_size_lat = 180 / 316 # ~0.57 degrees (180° range / sqrt(100k))
tile_size_lon = 360 / 316 # ~1.14 degrees
row = cell_idx // 316
col = cell_idx % 316
lat = 90 - row * tile_size_lat - tile_size_lat / 2
lon = -180 + col * tile_size_lon + tile_size_lon / 2
return round(lat, 6), round(lon, 6)