function importandodatostexto16
clc;
fid1=fopen('Synop.txt','r');
fid2=fopen('Synop_1.txt','w');
i=1;
while 1
linea=fgetl(fid1);
if ~ischar(linea)
break;
end
if length(linea)>0 && linea(end)=='='
A{i}=linea;
fprintf(fid2,'%s\n',linea);
i=i+1;
end
end
fclose(fid1);
fclose(fid2);
%ya q es un conjunto de numeros y simbolos me lo lee como una celda,utilizo
%la longitud de la celda. Para determinar cada estacion (C) convierto la
%celda en matriz, luego determino filas y columnas donde aparece un blanco,
%Tambien sirve para hallar los UNDEF. saco la fecha de cada synop y el id
%luego de determinar la longitud de C resguardo sus valores en otro array
contU=0; contD=0;contT=0;contS=0;conte=0;
for i=1:length(A)
C=cell2mat(A(i));
[fila columna]=find(C==' ');
id(i,:)=(C(1,columna(3)+1:columna(4)-1));
fecha(i,:)=(C(1,1:columna(1)-1));%lee posiciones
id(i,:)=(C(1,columna(3)+1:columna(4)-1));
irixhVV(i,:)=C(1,columna(4)+1:columna(5)-1);%lee posicines
Nddff(i,:)=C(1,columna(5)+1:columna(6)-1);
UsnTTT(i,:)=C(1,columna(6)+1:columna(7)-1);
if strcmp( UsnTTT(i,:),'1////')
contU=contU+1;
UsnTTT(i,:)=999.9;
end
DsnTdTdTd(i,:)=C(1,columna(7)+1:columna(8)-1);
if strcmp(DsnTdTdTd(i,:),'2////')
contD=contD+1;
DsnTdTdTd(i,:)=999.9;
end
TPPP(i,:)=C(1,columna(8)+1:columna(9)-1);
if strcmp( TPPP(i,:),'3////')
contT=contT+1;
TPPP(i,:)=999.9;
end
if numel (columna)>11
SeisRRRtR(i,:)=C(1,columna(11)+1:columna(12)-1);
if strcmp(SeisRRRtR(i,:),'6////')
contS=contS+1;
SeisRRRtR(i,:)=999.9;
end
end
if numel (columna)>14
eteR24r24(i,:)=C(1,columna(14)+1:columna(14)+5);
if strcmp( eteR24r24(i,:),'7////')
conte=conte+1;
eteR24r24(i,:)=999.9;
end
end
end
for j=1:length(A)
fecha1(j,:)=fecha(j);
ir(j,:)=str2double(irixhVV(j,1));
if ir(j,:)~= 3 && ir(j,:)~=4
Seis(j,:)=SeisRRRtR(j,1);
if strcmp(Seis,'6')
% ete(j,:)=eteR24r24(j,:)
RRR=str2double(SeisRRRtR(j,2:4));
RR=RRR(j,:)*0.1;
rr=num2str(RR(j,:));
tR(j,:)=(SeisRRRtR(j,5));
%if strcmp(ete,'7')
% R24r24=eteR24r24(j,2:5);
%else
% R24r24(j,:)='-999';
%end
else
rr(j,:)='-999';
end
else
% R24r24(j,:)='0';
rr(j,:)='0';
end
ix(j,:)=str2double(irixhVV(j,2));
h(j,:)=str2double(irixhVV(j,3));
vv(j,:)=str2double(irixhVV(j,4:5));
N(j,:)=str2double(Nddff(j,1));
dd(j,:)=str2double(Nddff(j,2:3));%direccion del viento. Se toma de 0 a 36°. Ver las differentes direcciones
DD(j,:)=(dd(j,:)*10);
ff(j,:)=str2double(Nddff(j,4:5));%velocidad del viento. Ver la escala
U(j,:)=(UsnTTT(j,1));%VALOR IGUAL A 1
sn(j,:)=(UsnTTT(j,2));
TTT(j,:)=str2double(UsnTTT(j,3:5));%temperatura normal
tt(j,:)=(TTT(j,:)*0.1);%valor de temperatura a colocar en el informe
D(j,:)=(DsnTdTdTd(j,1));%VALOR IGUAL A 2
sni(j,:)=(DsnTdTdTd(j,2));
TdTdTd(j,:)=(DsnTdTdTd(j,3:5));
tdtdtd(j,:)=(str2double(TdTdTd(j,:))*0.1);%valor de temperatura de rocio a colocar en el informe
T(j,:)=(TPPP(j,1));%VALOR IGUAL A 3
PPP(j,:)=str2double(TPPP(j,2:5));
PP(j,:)=(PPP(j,:)*0.1);%valor de presion a colocar en el informe
if PP(j,:)<100
PP(j,:)=PP(j,:)+1000;
end
end
a=length(ir);
b=length(id);
c=length(N);
d=length(dd);
f=length(TTT);
g=length(tdtdtd);
h=length(rr);
k=length(PP);
datos=a+3*b+c+d+f+g+h+k;
estacion= Estacion;
md=fopen('importandodatostexto16.txt','w');
fprintf(md,'%s\n','Los datos inexistentes han sido reemplazados por -999');
fprintf(md,'%3s %8s %8s %9s %11s %8s %8s %8s %8s %10s\n','Id','Nombre','lat(°)','long(°)','Nubosidad(octavos)','dir win(°)','Temp(°C)','Temprocio(°C)','Lluvia(mm)','Presion(hpa)');
for jj=1:length(id)
nombre=estacion(jj).Id;
lat=estacion(jj).lat;
lon=estacion(jj).lon;
fprintf(md,'%0.5s %0.5s %8.6s %8.5s %9.5s %16.5s %10.5s %10.4s %10.10s %13.6s\n',id(jj,:),nombre,lat,lon,num2str(N(jj)),num2str(DD(jj)),num2str(tt(jj)),num2str(tdtdtd(jj)),(rr(jj)),num2str(PP(jj)));
end
fclose(md);
function estacion=Estacion
estacion(1).Id= 'LaQuiaca';
estacion(1).lat='-22.06';
estacion(1).lon='-65.36';
estacion(2).Id='Tartagal';
estacion(2).lat='-22.39';
estacion(2).lon='-63.49';
estacion(3).Id='Jujuy ';
estacion(3).lat='-24.23';
estacion(3).lon='-65.05';
estacion(4).Id='Salta';
estacion(4).lat= '-24.51';
estacion(4).lon='-65.29';
estacion(5).Id='Las Lomitas';
estacion(5).lat='-24.42' ;
estacion(5).lon='-60.35';
estacion(6).Id= 'Iguazu';
estacion(6).lat='-25.44' ;
estacion(6).lon= '-54.28';
estacion(7).Id='Tucuman';
estacion(7).lat='-26.51';
estacion(7).lon='-65.06';
estacion(8).Id= 'Santiago Del Estero';
estacion(8).lat='-27.46' ;
estacion(8).lon='-64.18';
estacion(9).Id= 'Resistencia';
estacion(9).lat='-27.27' ;
estacion(9).lon='-59.03';
estacion(10).Id= 'Formosa';
estacion(10).lat='-26.12' ;
estacion(10).lon= '-58.14';
estacion(11).Id= 'Corrientes';
estacion(11).lat='-27.27' ;
estacion(11).lon= '-58.46';
estacion(12).Id= 'Posadas';
estacion(12).lat= '-27.22' ;
estacion(12).lon='-55.58';
estacion(13).Id= 'La Rioja';
estacion(13).lat= '-29.23';
estacion(13).lon='-66.49';
estacion(14).Id='Catamarca';
estacion(14).lat= '-28.36';
estacion(14).lon='-65.46';
estacion(15).Id= 'Villa De Maria Del Rio Seco';
estacion(15).lat='-29.54' ;
estacion(15).lon='-63.41';
estacion(16).Id= 'Ceres';
estacion(16).lat='-29.53' ;
estacion(16).lon= '-61.57';
estacion(17).Id='Reconquista';
estacion(17).lat='-29.11' ;
estacion(17).lon='-59.42';
estacion(18).Id= 'Paso De Los Libres';
estacion(18).lat='-29.41' ;
estacion(18).lon='-57.09';
estacion(19).Id= 'San Juan';
estacion(19).lat='-31.34' ;
estacion(19).lon= '-68.52';
estacion(20).Id= 'Chamical';
estacion(20).lat='-30.22' ;
estacion(20).lon='-66.17';
estacion(21).Id= 'Villa Dolores';
estacion(21).lat= '-31.57';
estacion(21).lon='-65.08' ;
estacion(22).Id= 'Cordoba';
estacion(22).lat= '-31.19' ;
estacion(22).lon='-64.13';
estacion(23).Id= 'Pilar';
estacion(23).lat= '-31.40';
estacion(23).lon= '-63.53';
estacion(24).Id= 'Sauce Viejo';
estacion(24).lat='-31.42' ;
estacion(24).lon= '-60.49';
estacion(25).Id= 'Parana';
estacion(25).lat= '-31.47' ;
estacion(25).lon='-60.29';
estacion(26).Id= 'Monte Caseros';
estacion(26).lat='-30.16' ;
estacion(26).lon='-57.39';
estacion(27).Id= 'Concordia';
estacion(27).lat='-31.18' ;
estacion(27).lon='-58.01';
estacion(28).Id= 'San Martin';
estacion(28).lat='-33.05' ;
estacion(28).lon='-68.25';
estacion(29).Id= 'Mendoza';
estacion(29).lat='-32.50' ;
estacion(29).lon='-68.47';
estacion(30).Id='San Luis';
estacion(30).lat= '-33.16';
estacion(30).lon='-66.21' ;
estacion(31).Id= 'Villa Reynolds';
estacion(31).lat= '-33.44' ;
estacion(31).lon= '-65.23';
estacion(32).Id= 'Rio Cuarto';
estacion(32).lat= '-33.07' ;
estacion(32).lon='-64.14';
estacion(33).Id= 'Marcos Juarez';
estacion(33).lat='-32.42';
estacion(33).lon='-62.09';
estacion(34).Id= 'Rosario';
estacion(34).lat='-32.55';
estacion(34).lon='-60.47';
estacion(35).Id= 'Gualeguaychu';
estacion(35).lat='-33.00';
estacion(35).lon='-58.37';
estacion(36).Id= 'Malargue';
estacion(36).lat='-35.30';
estacion(36).lon='-69.35';
estacion(37).Id= 'San Rafael';
estacion(37).lat='-34.35' ;
estacion(37).lon='-68.24';
estacion(38).Id= 'Laboulaye';
estacion(38).lat='-34.08';
estacion(38).lon='-63.22';
estacion(39).Id='Junin ';
estacion(39).lat='-34.33';
estacion(39).lon='-60.55';
estacion(40).Id= 'Las Flores';
estacion(40).lat='-36.04';
estacion(40).lon='-59.06';
estacion(41).Id= 'Ezeiza';
estacion(41).lat= '-34.49';
estacion(41).lon='-58.32';
estacion(42).Id= 'Aeroparque';
estacion(42).lat='-34.34';
estacion(42).lon='-58.25';
estacion(43).Id= 'La Plata';
estacion(43).lat='-34.58';
estacion(43).lon='-57.54';
estacion(44).Id= 'Santa Rosa';
estacion(44).lat= '-36.34';
estacion(44).lon='-64.16';
estacion(45).Id= 'Bolivar';
estacion(45).lat= '-36.12';
estacion(45).lon='-61.04' ;
estacion(46).Id= 'Azul ';
estacion(46).lat= '-36.50' ;
estacion(46).lon='-59.53';
estacion(47).Id= 'Tandil';
estacion(47).lat= '-37.14';
estacion(47).lon='-59.15' ;
estacion(48).Id= 'Dolores';
estacion(48).lat= '-36.21' ;
estacion(48).lon='-57.44';
estacion(49).Id= 'Tres Arroyos';
estacion(49).lat= '-38.20';
estacion(49).lon= '-60.15';
estacion(50).Id= 'Mar Del Plata';
estacion(50).lat= '-37.56' ;
estacion(50).lon='-57.35';
estacion(51).Id='Neuquen';
estacion(51).lat= '-38.57';
estacion(51).lon='-68.08';
estacion(52).Id= 'Bahia Blanca';
estacion(52).lat= '-38.44';
estacion(52).lon='-62.10';
estacion(53).Id= 'Bariloche';
estacion(53).lat= '-41.09';
estacion(53).lon='-71.10';
estacion(54).Id='Maquinchao';
estacion(54).lat= '-41.15';
estacion(54).lon='-68.44';
estacion(55).Id='San Antonio Oeste';
estacion(55).lat= '-40.47';
estacion(55).lon='-65.06';
estacion(56).Id= 'Viedma';
estacion(56).lat='-40.51' ;
estacion(56).lon='-63.01';
estacion(57).Id= 'Esquel';
estacion(57).lat= '-42.56';
estacion(57).lon='-71.09' ;
estacion(58).Id= 'Trelew';
estacion(58).lat= '-43.12' ;
estacion(58).lon= '-65.16';
estacion(59).Id= '-Perito Moreno';
estacion(59).lat= '-46.31';
estacion(59).lon='-71.01';
estacion(60).Id= 'Comodoro Rivadavia';
estacion(60).lat= '-45.47';
estacion(60).lon='-67.30' ;
estacion(61).Id= 'Puerto Deseado';
estacion(61).lat= '-47.44';
estacion(61).lon='-65.55';
estacion(62).Id= 'San Julian';
estacion(62).lat= '-49.19';
estacion(62).lon='-67.45';
estacion(63).Id= 'Rio Gallegos';
estacion(63).lat= '-51.37';
estacion(63).lon='-69.17';
estacion(64).Id= 'Ushuaia ';
estacion(64).lat= '-54.48';
estacion(64).lon='-68.19';
estacion(65).Id= 'Presidencia Roque Saenz Pena';
estacion(65).lat= '-26.44';
estacion(65).lon='-60.29';
estacion(66).Id= 'El Calafate';
estacion(66).lat= '-50.16';
estacion(66).lon='-72.03' ;