windwhisper.utils ================= .. py:module:: windwhisper.utils Functions --------- .. autoapisummary:: windwhisper.utils.create_bounding_box windwhisper.utils.translate_4326_to_3035 windwhisper.utils.load_secret Module Contents --------------- .. py:function:: create_bounding_box(center_x, center_y, buffer_meters) Create a square bounding box around a point. :param center_x: X coordinate of the centre. :type center_x: float :param center_y: Y coordinate of the centre. :type center_y: float :param buffer_meters: Distance applied in all directions. :type buffer_meters: float :returns: Bounding box ``(min_x, min_y, max_x, max_y)``. :rtype: tuple[float, float, float, float] .. py:function:: translate_4326_to_3035(lon, lat) Project geographic coordinates to the European LAEA CRS. :param lon: Longitude in degrees. :type lon: float :param lat: Latitude in degrees. :type lat: float :returns: Projected ``(x, y)`` coordinates in metres. :rtype: tuple[float, float] .. py:function:: load_secret() Load the Google API key from the project secret file. :returns: API key string when available, otherwise ``None``. :rtype: str | None