%
% Lectura de archivos de Theta modelo ECCO
% Orpa Nov 2020
%

% Camino para archivos de temperatura
camino = 'E:\RESPALDO\D\orpa\Data\ECCO\THETA_nc\';
archi = dir(camino);
% Prueba leer primer archivo de la lista y le agrega el path
archi1 = [camino getfield(archi,{3,1},'name')];


%Lectura_Basica_NetCDF(archi1)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Abre archivo para leer lat lon prof y 
% obtener parámetros para definir región a leern
ncid = netcdf.open(archi1, 'NOWRITE');
% Lee Lat, Lon y Theta
% Variables en archivo
% 0 Time
% 1 Depth_T        Profunidades estándares
% 2 Latitude       cada 0.25
% 3 Longitude      cada 0.25
% 4 Theta   
%  FillValue -> -9.9999998e+22
%  Missing_value -> -9.9999998e+22

t = netcdf.getVar(ncid,0,'double');
z = netcdf.getVar(ncid,1,'double');
lat = netcdf.getVar(ncid,2,'double');
lon = netcdf.getVar(ncid,3,'double');

% Define región a leer
indlon = find(lon >= -120 &  lon <= -69.5);
indlat = find(lat >= -60 &  lat <= -15);
indz = find(z <= 70000 );
narchi = max(size(archi))-2;   % Número de archivos es -2 por (. y ..)
% Lee región dadda por índices [lat lon prof tiempo]  
auxlec1 = [indlon(1)-1, indlat(1)-1 , indz(1)-1 , 0];
auxlec2 = [length(indlon),length(indlat), length(indz), 1];
% Cierra el archivo 
netcdf.close(ncid)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% COMIENZA ITERACIÓN PARA LEER REGIÓN EN TODOS LOS ARCHIVOS
% Prelocaliza espacio en memoria para theta
% No tengo suficiente memoria para todos los tiempos sacaré promedio
% theta = zeros(length(indlon), length(indlat), length(indz), narchi);
theta = zeros(length(indlon), length(indlat), length(indz));
% EXTRE REGIÓN
% Itera para todos los archivos 

for i = 1:narchi
    archi1 = [camino getfield(archi,{i+2},'name')];
    ncid = netcdf.open(archi1, 'NOWRITE');
    % lee archivo y acumula theta
    theta = netcdf.getVar(ncid, 4, auxlec1, auxlec2,'double') + theta; 
    netcdf.close(ncid)
end
theta = theta/narchi;
% región reducida
latr = lat(indlat);
lonr = lon(indlon);

% Guarda Matriz promedio
% save Theta_Medio_ESP.mat theta lonr latr z

% Grafica campo promedio
ind = (theta > 100 | theta < -10);
theta(ind) = NaN;
figure
pcolor(lonr,latr,squeeze(theta(:,:,1))')
shading interp; colorbar; colormap(jet)


% sección a 30°S
pcolor(lonr,-z,squeeze(theta(:,120,:))')
shading interp; colorbar; colormap(jet)

