Challenge

Project 1 - Parsing NASA thermodynamic data

% Nasa thermodynamic file parsing
close all
clear all
clc
% gas constant
R=8.314;
%reading first two lines
f1=fopen('THERMO.dat','r')
tline1=fgetl(f1)
tline2=fgetl(f1)
temp=strsplit(tline2,' ')
global_low_temp=str2num(temp{2})
global_mid_temp=str2num(temp{3})
global_high_temp=str2num(temp{4})
%skipping next threee lines
for i=1:3
    skippedlines=fgetl(f1);
end
    for i=1:53
    tline3=fgetl(f1)
    S=strsplit(tline3,' ');
    species_name= S{1};
    A=strfind(tline3,'G');
    temp_values=tline3(A+4:length(tline3));
    B=strsplit(temp_values,' ');
    local_low_temp=str2double(B{1});
    local_mid_temp=str2double(B{3});
    local_high_temp=str2double(B{2});
    
tline4=fgetl(f1)
f=strfind(tline4,'E');
a1=str2double(tline4(1:(f(1)+3)));
a2=str2double(tline4(f(1)+4:(f(2)+3)));
a3=str2double(tline4(f(2)+4:(f(3)+3)));
a4=str2double(tline4(f(3)+4:(f(4)+3)));
a5=str2double(tline4(f(4)+4:(f(5)+3)));

tline5=fgetl(f1);
a6=str2double(tline5(1:(f(1)+3)));
a7=str2double(tline5(f(1)+4:(f(2)+3)));
a8=str2double(tline5(f(2)+4:(f(3)+3)));
a9=str2double(tline5(f(3)+4:(f(4)+3)));
a10=str2double(tline5(f(4)+4:(f(5)+3)));

tline6=fgetl(f1);
a11=str2double(tline6(1:(f(1)+3)));
a12=str2double(tline6(f(1)+4:(f(2)+3)));
a13=str2double(tline6(f(2)+4:(f(3)+3)));
a14=str2double(tline6(f(3)+4:(f(4)+3)));

    
T=linspace(local_low_temp,local_high_temp,100)
C_p=R*specific_heat_calc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,local_low_temp,local_mid_temp,local_high_temp,T)

  s=R*entropy_calc9(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,local_low_temp,local_mid_temp,local_high_temp,T)
  
  h=R*enthalpy_calc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,local_low_temp,local_mid_temp,local_high_temp,T)
   req_species=["O2","N2","CO2"];
     
 if(species_name==req_species(1))||(species_name==req_species(2))||(species_name==req_species(3))
  mkdir(species_name);
 cd(species_name)



figure(1)
plot(T,C_p,'LineWidth',3,'Color','r')
title('specific heat vs temperature')
xlabel('temperature')
ylabel('specific heat')
image=getframe(gcf);
imwrite(image.cdata,'cp vs T.png')
saveas(1,'specific_heat','jpg')






figure(2)
plot(T,h,'LineWidth',3,'Color','y')
title('enthalpy vs temperature')
xlabel('temperature')
ylabel('enthalpy')
image=getframe(gcf);
imwrite(image.cdata,'h vs T.png')
saveas(2,'enthalpy','jpg')



figure(3)
plot(T,s,'LineWidth',3,'Color','b')
title('entropy vs temperature')
xlabel('temperature')
ylabel('entropy')
image=getframe(gcf);
imwrite(image.cdata,'s vs T.png')
saveas(3,'entropy','jpg')


cd ..
 end

molecular_wt=molecular_weight(species_name);
 K=sprintf('%s  Mol_wt = %f',species_name,molecular_wt);
disp(K)
end
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.