# Path: roadmaptools/init.py



import math
import utm
import numpy as np
from typing import Tuple
from roadmaptools.init import config
        self.origin_northing: float = None
        self.origin_zone_number: int = None
        self.origin_zone_letter: str = None

    @classmethod
    def from_gps(cls, origin_lat: float, origin_lon: float):
        # self.origin_lat = origin_lat
        # self.origin_lon = origin_lon

        res = utm.from_latlon(origin_lat, origin_lon)

        projection = cls()

        projection.origin_easting = res[0]
        projection.origin_northing = res[1]
        projection.origin_zone_number = res[2]
        projection.origin_zone_letter = res[3]

        return projection

    @classmethod
    def from_zone(cls, zone_number: int, zone_letter: str):
        projection = cls()
        projection.origin_zone_number = zone_number
        projection.origin_zone_letter = zone_letter

        return projection

    def wgs84_to_utm(self, lat, lon):
        easting, northing, _, _ = utm.from_latlon(lat, lon, force_zone_number=self.origin_zone_number)

# Path: roadmaptools/init.py



# Path: roadmaptools/utm.py
import math
import utm
import numpy as np
from typing import Tuple
from roadmaptools.init import config

        self.origin_northing: float = None
        self.origin_zone_number: int = None
        self.origin_zone_letter: str = None

    @classmethod
    def from_gps(cls, origin_lat: float, origin_lon: float):
        # self.origin_lat = origin_lat
        # self.origin_lon = origin_lon

        res = utm.from_latlon(origin_lat, origin_lon)

        projection = cls()

        projection.origin_easting = res[0]
        projection.origin_northing = res[1]
        projection.origin_zone_number = res[2]
        projection.origin_zone_letter = res[3]

        return projection

    @classmethod
    def from_zone(cls, zone_number: int, zone_letter: str):
        projection = cls()
        projection.origin_zone_number = zone_number
        projection.origin_zone_letter = zone_letter

        return projection

    def wgs84_to_utm(self, lat, lon):
        easting, northing, _, _ = utm.from_latlon(lat, lon, force_zone_number=self.origin_zone_number)

        if config.shift_utm_coordinate_origin_to_utm_center: