Necesito ayudar para crear una grilla
Publicado por Diego (1 intervención) el 14/04/2020 03:00:32
Primero decirles que siempre leo los temas cuando quedo atrapado en algo y han sido de muy buena ayuda, por lo mismo les escribo.
Actualmente estoy tratando de hacer una grilla a traves de datos satelitales .nc (son muuuchos) y los necesito en un grilla o matriz de 3 dimensiones para poder trabajarlos [datos,lat,lon].
Los datos tienen nombres tipo IMOS_SRS-Surface-Waves_MW_CRYOSAT-2_FV02_001S-000E-DM00.nc - IMOS_SRS-Surface-Waves_MW_CRYOSAT-2_FV02_001S-001E-DM00.nc Solo cambian los nombres de los valores antes de las coordenadas por lo que hice el siguiente script.
Mi problema y no se como solucionarlo, es que el segundo archivo tiene distinta cantidad de datos (3982 datos el 1er archivo y el segundo 4064) y probablemente el tercero también tenga distinta cantidad. Hay alguna forma de crear una matriz mas grande y de alguna forma "rellenar lo que falte" con NaN o ceros ? Por cierto estoy con matlab 2017
Actualmente estoy tratando de hacer una grilla a traves de datos satelitales .nc (son muuuchos) y los necesito en un grilla o matriz de 3 dimensiones para poder trabajarlos [datos,lat,lon].
Los datos tienen nombres tipo IMOS_SRS-Surface-Waves_MW_CRYOSAT-2_FV02_001S-000E-DM00.nc - IMOS_SRS-Surface-Waves_MW_CRYOSAT-2_FV02_001S-001E-DM00.nc Solo cambian los nombres de los valores antes de las coordenadas por lo que hice el siguiente script.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
files=dir('*.nc');
Cant_archivos=length(files);
Hs=zeros(3982,90,360); % 3982 datos el 1er archivo y el segundo 4064
HsKu=zeros(3982,90,360);
for A=1:Cant_archivos;
B=files(A).name;
nc_dump(B);
La=str2num(B(42:44));
Lo=str2num(B(47:49))+1;
tiempo=nc_varget(B,'TIME');
altura=nc_varget(B,'SWH_C');
alturaKU=nc_varget(B,'SWH_KU_CAL');
fecha=tiempo+datenum(1985,1,1);
[y,m,d]=datevec(fecha);
Ymin=min(y);
Ymax=max(y);
Mmin=min(m);
Mmax=max(m);
C=mean(altura);
D=mean(alturaKU);
if C==NaN;
Hs(:,La,Lo)=zeros(length(altura),1);
else
Hs(:,La,Lo)=altura;
end
if D==NaN;
HsKu(:,La,Lo)=isnan(alturaKU);
else
HsKu(:,La,Lo)=alturaKU;
end
end
Mi problema y no se como solucionarlo, es que el segundo archivo tiene distinta cantidad de datos (3982 datos el 1er archivo y el segundo 4064) y probablemente el tercero también tenga distinta cantidad. Hay alguna forma de crear una matriz mas grande y de alguna forma "rellenar lo que falte" con NaN o ceros ? Por cierto estoy con matlab 2017
Valora esta pregunta


0