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

% Camino para archivos de temperatura
camino = 'E:\RESPALDO\D\orpa\Data\ECCO\VVEL_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 Vvel
% Variables en archivo
% 0 Time
% 1 Depth_T        Profunidades estándares
% 2 Latitude       cada 0.25
% 3 Longitude      cada 0.25
% 4 VVEL   
%  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 vvel
% No tengo suficiente memoria para todos los tiempos sacaré promedio
% vvel = zeros(length(indlon), length(indlat), length(indz), narchi);
vvel = 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 VVEL
    vvel = netcdf.getVar(ncid, 4, auxlec1, auxlec2,'double') + vvel; 
    netcdf.close(ncid)
end
vvel = vvel/narchi;


% región reducida
latr = lat(indlat);
lonr = lon(indlon);

% Guarda Matriz promedio
% save Vvel_Media_ESP.mat vvel lonr latr z

% Grafica campo promedio
ind = (vvel > 100 | vvel < -10);
vvel(ind) = NaN;

figure
pcolor(lonr, latr,squeeze(vvel(:,:,46))')
shading interp; colorbar; colormap(jet)


% secciones zonales a 40° 35° 30° 25° 20°S

for sec = 80:20:160
    figure
    seclat=sec;  %80; %+20+20+20+20; %40° 35° 30° 25° 20°S
    pcolor(lonr,-z,squeeze(vvel(:,seclat,:))')
    shading interp; colorbar; colormap(jet)
    hold on
    contour(lonr,-z,squeeze(vvel(:,seclat,:))',[0 0],'k','linewidth', 1.2)
    contour(lonr,-z,squeeze(vvel(:,seclat,:))',...
                                [-0.5:0.005:0.5],'k','linewidth', 0.5)
    axis([-120 -69 -6000 0])
    caxis([-0.01 0.01])
    title(['Velocidad Meridional [m/s] ', num2str(fix(latr(sec))), '°S'])
    ylabel('Profundidad [m]')
    xlabel('Longitud')
    aux = ['print -dpng Secion_V_' num2str(fix(abs(latr(sec))))];
    eval(aux)
end




