# config.py
"""
This module defines the constants and configurations used throughout the application.
It promotes maintainability and readability by centralizing these values.
"""

import numpy as np  # Import numpy

# --- Constants for Image Dimensions ---
MFD_WIDTH = 484  # Width of the MFD image
MFD_HEIGHT = 484  # Height of the MFD image
SAR_WIDTH = 2048  # Width of the SAR image
SAR_HEIGHT = 2048  # Height of the SAR image

# --- SAR Data Type ---
SAR_DATA_TYPE = np.uint16  # Data type of the SAR image

# --- Initial SAR Display Size ---
INITIAL_SAR_WIDTH = 1024  # Initial SAR display width
INITIAL_SAR_HEIGHT = 1024  # Initial SAR display height

# --- Target Frame Rate for MFD ---
MFD_FPS = 25  # Target MFD FPS

# --- Minimum Window Size for Tkinter ---
TKINTER_MIN_WIDTH = 484  # Minimum width of the Tkinter window
TKINTER_MIN_HEIGHT = 484  # Minimum height of the Tkinter window

# --- SAR Georeferencing Information (Example) ---
SAR_CENTER_LAT = 40.7128  # Example latitude of the SAR image center
SAR_CENTER_LON = -74.0060  # Example longitude of the SAR image center
SAR_IMAGE_SIZE_KM = 50.0  # Example size of the SAR image (50km x 50km)

# --- Available Color Palettes ---
COLOR_PALETTES = ["GRAY", "AUTUMN", "BONE", "JET", "WINTER", "RAINBOW", "OCEAN", "SUMMER", "SPRING", "COOL", "HSV", "HOT"]  # List of available color palettes

# --- Image File Paths ---
MFD_IMAGE_PATH = "MFD_img8_000000.bmp"  # Path to the MFD image
SAR_IMAGE_PATH = "SAR_geo_img16_000000.tif"  # Path to the SAR image

# --- Default Contrast and Brightness Values ---
DEFAULT_SAR_CONTRAST = 1.0  # Initial SAR contrast
DEFAULT_SAR_BRIGHTNESS = 0  # Initial SAR brightness
DEFAULT_SAR_PALETTE = "GRAY" # Initial SAR palette
SAR_SIZE_FACTORS = ["1:1", "1:2", "1:3", "1:5", "1:10"] # Available SAR size factors
DEFAULT_SAR_SIZE = "1:2" # Default SAR Size

# --- Status Bar Initial Values ---
INITIAL_STATUS_MESSAGE = "Ready | MFD FPS: 0 | SAR FPS: N/A"