File size: 963 Bytes
fe2f12a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
from dataclasses import dataclass

import pandas as pd

from geoguessr_bot.commands import AbstractCommand
from geoguessr_bot.guessr import AbstractGuessr


@dataclass
class KaggleSubmissionCommand(AbstractCommand):
    """Submit a prediction to Kaggle
    """
    image_folder_path: str
    output_path: str
    guessr: AbstractGuessr

    def run(self) -> None:
        images_ids, latitudes, longitudes = [], [], []
        for image_name in os.listdir(self.image_folder_path):
            image_path = os.path.join(self.image_folder_path, image_name)
            coordinate = self.guessr.guess_from_path(image_path)
            images_ids.append(image_name.split(".")[0])
            latitudes.append(coordinate.latitude)
            longitudes.append(coordinate.longitude)
        pd.DataFrame(dict(
            image_id=images_ids,
            latitude=latitudes,
            longitude=longitudes,
        )).to_csv(self.output_path, index=False)