All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
AIM: To write a script that does data analysis on python. OBJECTIVE : Visualizing the data, i.e., to plot a graph between any two quantities according to the user's input. Compatibility Check, i.e., code should exit gracefully, if a non-compatible file is provided as an input. To calculate basic engine performance…
Sourabh Lakhera
updated on 15 Jul 2020
AIM: To write a script that does data analysis on python.
OBJECTIVE :
INTRODUCTION :
Data analysis is a process of inspecting, cleansing, transforming, and modeling data with the goal of discovering useful information, informing conclusions, and supporting decision-making. Data analysis has multiple facets and approaches, encompassing diverse techniques under a variety of names, and is used in different business, science, and social science domains. In today's business world, data analysis plays a role in making decisions more scientific and helping businesses operate more effectively.
Data analysis is a somewhat abstract concept to understand without the help of examples. So to better illustrate how and why data analysis is important for businesses, here are the 4 types of data analysis and examples of each.
These 4 types of data analysis can be applied to any issue with data related to it. And with the internet, data can be found about pretty much everything.
GOVERNING EQUATIONS USED :
Since the data file given consists of various parameters for an engine. Several calculations can be made from it. But for our interest, the following parameters are to be calculated-
Power=Wout⋅RPM⋅n60⋅1000⋅2">Power=Wout⋅RPM⋅n60⋅1000⋅2Power=Wout⋅RPM⋅n60⋅1000⋅2ecommerce in kW">kWkW . Here n">nn is the number of cylinders of the engine, RPM">RPMRPM is the engine speed in minutes, it's to be converted into seconds by dividing by 60">6060, 2">22 in the denominator, the term is present because the given engine is a 4 stroke engine.
INPUTS: RPMRPM = 1500 , fuel consumed per stroke = 20">2020 micro grams.
PROCEDURE :
SOME Figures to explain the procedures as shown Above:-
PYTHON CODE :
# A program to calculate engine parameters and to plot graph between two quantites according to user input
import math
import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import simps
# Compatability check
try:
open('engine_data.out')
line_count = 1
# Creating of empty arrays to store the value of Volume and pressure respectively
Volume = []
pressure = []
# Volume and pressure in the data file is present in column 8 and 2 respectively. Calling them and storing their data into arrays
v = 8
p = 2
# Creating a null array and storing all the values of data file into it
data=[]
for line in open('engine_data.out'):
if '#' not in line:
data.append(line.split())
if line_count >= 6:
Volume.append(float(line.split()[v-1]))
pressure.append(float(line.split()[p-1]))
line_count = line_count + 1
# Plotting p-V diagram
plt.plot(Volume, pressure, color = 'r', linewidth = 2)
plt.xlabel('Volume (m^3)')
plt.ylabel('Pressure (MPa)')
plt.title("p-V diagram of Engine")
plt.grid()
plt.savefig('p-V diagram of Engine')
plt.show()
# Calculation of area under PV diagram using the simpsons rule
area = simps(pressure, Volume)
print('Area under the curve using Simpsons Rule : ' + str(area) + ' units')
print('Work done by the engine : ' + str(area) + ' MJ')
area = area*1e6
print('Work done by the engine : ' + str(area) + ' J')
#Inputs
#Speed of an engine (RPM)
rpm = 1500
rps = 1500/60
stroke_cycle = rps/2
#Fuel consumption in micro grams per 1 stroke cycle
fuel_consumption = 20
#Engine Specifications
#Number of cylinder=
n = 1
# 4 stroke engine
# Calcualtions of Power output and specific fuel consumption
power_output = n*area*stroke_cycle/(1000)
print('Power ouput from engine : ' + str(power_output) + ' KW')
SFC = (fuel_consumption*pow(10,-6)*stroke_cycle*3600)/(power_output*1000)
print('Specific Fuel Consumption, SFC = ' + str(SFC) + ' (kg/hr)/KW')
print('t')
# Calculation of area under PV diagram using the trapezoidal rule and work done,power sfc
Area = np.trapz(pressure,Volume)
print('Area under the curve using trapezoidal Rule : ' + str(Area) + ' units')
print('Work done by the engine : ' + str(Area) + ' MJ')
Area = Area*1e6
print('Work done by the engine : ' + str(Area) + ' J')
power_output = n*Area*stroke_cycle/(1000)
print('Power ouput from engine : ' + str(power_output) + ' KW')
SFC = (fuel_consumption*pow(10,-6)*stroke_cycle*3600)/(power_output*1000)
print('Specific Fuel Consumption, SFC = ' + str(SFC) + ' (kg/hr)/KW')
print('t')
# Tansposing columns into row matrix and converting them into float type from string type
transpose=np.transpose(data)
float_f=transpose.astype(np.float)
# Array for header and their units
parameters = ['Crank','Pressure','Maximum Pressure','Minimum Pressure','Mean Temperature','Maximum Temperature','Minimum Temperature','Volume','Mass','Density','Integrated HR','HR Rate','Cp','Cv','Gamma','Kinematic Viscosity','Dynamic Viscosity']
units = ['(DEG)','(MPa)','(MPa)','(MPa)','(K)','(K)','(K)','(m^3)','(kg)','(kg/m^3)','(J)','(J/time)','(J/kgK)','(J/kgK)','','(m^2/s)','(Ns/m^2)']
# Providing user choice of picking two parameters for plotting
print('Choose from the following options and press enter key')
print(' 1 Crank n 2 Pressure n 3 Maximum Pressure n 4 Minimum Pressure n 5 Mean Temperature n 6 Maximum Temperature n 7 Minimum Temperature n 8 Volume n 9 Mass n 10 Density n 11 Integrated HR n 12 HR Rate n 13 Cp n 14 Cv n 15 gamma n 16 Kinematic Viscosity n 17 Dynamic Viscosity')
X=int(input('Enter your choice on X-axis n'))
Y=int(input('Enter your choice on Y-axis n'))
# Plotting the graph based on user choice
plt.figure(1)
plt.plot(float_f[X-1],float_f[Y-1],linewidth=3,color='blue')
plt.title(' Plot for ' + parameters[X-1]+ ' versus ' +parameters[Y-1],color='blue')
plt.xlabel(parameters[X-1] + ' ' + units[X-1])
plt.ylabel(parameters[Y-1] + ' ' + units[Y-1],)
plt.savefig(parameters[X-1] + ' vs ' + parameters[Y-1] + '.png')
plt.grid()
plt.show()
except:
print('File not recognized. Please provide a valid CONVERGE output file')
RESULTS :
ERRORS : Several types of indentation errors were made and rectified but one error was due to not transposing the data as explained in the procedure. On running the program just yields this error. This was due to converting all the strings into float type without indicating a particular item of line.split()[]. To avoid this error, the data was appended without converting into float at line 16, but rather creating a transpose and converting into float type using 'astype' command in further steps.
REFERENCES :
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
Project 1 - Data Cleaning and Transformation using Pivot table and Charts for the Report on requirement of Team Hiring
Project Documentation: Optimizing Team Hiring Insights through Data Cleaning and TransformationIntroductionIn today's data-driven environment, businesses thrive on informed decision-making. At ABC Private Limited, a manufacturer and seller of diverse products ranging from Classic Cars to Trucks and Buses, understanding…
26 Sep 2024 02:54 PM IST
Project 2
Project Documentation: Alumni Career Choices AnalysisAimThe aim of this project is to analyze the career choices of alumni from two universities with respect to their passing year and the courses they completed. This analysis helps in understanding the career growth of alumni, which plays a crucial role in the institute's…
10 Jul 2024 08:03 AM IST
Project 1
From the series of queries and actions conducted on the database, several insights can be derived regarding the user demographics and their activities on the platform. Firstly, the database contains information about users' demographics, such as their gender, country, language, and usage of applications like…
28 Feb 2024 07:45 PM IST
Project 2 - EDA on Vehicle Insurance Customer Data
EDA on Vehicle Insurance Customer Data Aim: The aim of this project is to perform exploratory data analysis (EDA) and data cleaning on two datasets containing customer details and policy details. The objective is to prepare the data for future analysis and modeling, identify patterns, and derive insights to aid business…
19 Feb 2024 08:36 PM IST
Related Courses
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.