import numpy as np import pandas as pd import cv2 import glob import os # Función para cargar las imágenes y las máscaras automáticamente def load_images_and_masks(base_dir): chlorophyll_images = [] mask_images = [] # Rutas a las carpetas de imágenes chlorophyll_dir = os.path.join(base_dir, 'modis_clo') mask_dir = os.path.join(base_dir, 'modis_cloud') # Cargar imágenes de clorofila for month in range(9): chlorophyll_path = glob.glob(os.path.join(chlorophyll_dir, f'clora_{month:02d}_*.tif'))[0] img = cv2.imread(chlorophyll_path, cv2.IMREAD_UNCHANGED) # Asegúrate de cargar la imagen sin cambios chlorophyll_images.append(img.astype(np.float32)) # Convertir a tipo flotante si es necesario # Cargar imágenes de máscaras for month in range(9): mask_path = glob.glob(os.path.join(mask_dir, f'cloud_{month:02d}_*.tif'))[0] mask = cv2.imread(mask_path, cv2.IMREAD_UNCHANGED) # Asegúrate de cargar la imagen sin cambios mask_images.append(mask.astype(np.float32)) # Convertir a tipo flotante si es necesario return chlorophyll_images, mask_images # Función para crear los conjuntos de datos def create_datasets(chlorophyll_images, mask_images): datasets = [[] for _ in range(8)] # Dimensiones de las imágenes height, width = chlorophyll_images[0].shape # Iterar sobre cada píxel de las imágenes for i in range(height): for j in range(width): values = [] # Revisar los meses desde septiembre hacia enero for month in range(8, -1, -1): if mask_images[month][i, j] == 1: values.append(chlorophyll_images[month][i, j]) else: break # Si se encontraron valores válidos, se añaden al conjunto de datos correspondiente if len(values) > 1: datasets[len(values) - 2].append(values[::-1]) return datasets # Función para guardar los conjuntos de datos en archivos CSV def save_datasets(datasets): for idx, dataset in enumerate(datasets): if dataset: # Solo guardar si el conjunto de datos no está vacío df = pd.DataFrame(dataset) csv_filename = f'C:/Users/Personal/Documents/Periodo5/Images2023WCO/ImPack4/Corregistradas/DataSets/dataset_{idx+1}.csv' df.to_csv(csv_filename, index=False) # Directorio base donde están las carpetas Chlorophyll_image y CloudMask base_dir = 'C:/Users/Personal/Documents/Periodo5/Images2023WCO/ImPack4/Corregistradas' # Cargar las imágenes y las máscaras chlorophyll_images, mask_images = load_images_and_masks(base_dir) # Crear los conjuntos de datos datasets = create_datasets(chlorophyll_images, mask_images) # Guardar los conjuntos de datos en archivos CSV save_datasets(datasets)