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)