So, so far you have done you have done some computation using python, but you have not

read some data or written some data using python. So, if you are doing some simulation

or if you solve a ordinary differential equation and if it takes a longer time, then you won’t

be able to analyze that on the fly. So, what you need to you need to write those data in

some format, and then at later time you can analyze those data.

So, I will discuss these things today. So, there is one format called ASCII format, which

is the American standard code for information interchange. So, you can use a text file to

write a data and that is. So, this is ASCII there are different format of ASCII. So, text

file is one of them. So, I will discuss about this. So, for that you need to create an object

f and this is a function file. So, you write a you keep a name of a data dot txt. So, data

will be saved in this file and w stands for writing.

So, next line is f dot write, and I have written this is my data. So, you can write this string

will be written in that txt file, and next is to just say f dot close. So, this is the

simplest example to write something whatever you want to write.

Now, if you want to write some array. So, how you will do that and a please stop me

if you have any problem in understanding. So, for that I have a x s linspace everyone

knows linspace. So, it goes from minus 0.9 to 0.9 with 100 datasets, and y is this some

complicated function. So, this it is a simple reference, but it could be a very complicated

you can solve ordinary differential equation and you get some y. Then again I have created

an object f and here is the data dot txt and I have written this is my data. So, hash is

the comment. So, if you write something in python with hash that is taken as a comment

would python will ignore that, and slash and for the change of line. So, when you get those

data you can write some comment about that data.

Then I have run a loop for I in range len x, len x is the length of your x array and

write percentage f. Percentage f is the value of that data and for x(i), then slash t is

the tab then again percentage f for this y(i) and then slash n change in line. So, what

how loop will work. So, for x is equal to 0, it will write the x(0) value then a tab

then y(0) value then change of line then again the loop will be using and you will get all

set of it. I will just I will demonstrate this.

And next is to close that file and if you want to read that data, then you just have

some name data I have data np load txt and data dot txt. So, it will take whole 2d array.

And now you can. So, if you have if you have x and y and some data. So, it will. So, these

two vectors will be inside one array. So, now, you can use x colon zeros. So, it will

take this x data and next will be. So, one will take y data. So, I will demonstrate this,

it is visible. Almost.

So, space 0.9,0.9 y is x 6 minus x 4 plus 0.2 x square. So, if I want to plot this.

So, you have x comma y. So, now, I will write this data and read it and will test that is

whatever I have read is exactly gives this function or not. So, I created object f. So,

I can write some comment.

So, now it has written the x and y values. So, if I want to read this. So, data disc

dot txt has this is my data and then x values and y values, I want to load this.

So, let us call data and equal to load and if I want to read what is x; so colon 0.

So, it will give the x value. So, from 0.9 to minus 0.9 to point let us plot this.

So, this is x and this is y and this plotted with rp, so that building. So, it retrieves

the same data. .

R p is. So, r is stands for red and p is that point. So, my first curve was the blue curve

original curve, and then if I would have put r then you would not be able to see any difference.

So, it would overlap.

So, next is about binary file. So, another format is to write in binary file. So, in

binary it dumps the whole data in ones and zero. So, computers understand the binary

system. So, it writes everything in ones and zeros. So, it gives the full information on

the data. So, I will give you an example to show how it gives the full information. So,

how to write in binary? So, there are two there are many formats.

So, I explain the dot npy format, which is comes from numpy and another is very advanced

which is HDF 5 format. So, I will cover these two. So, first let us look at npy which is

very simple. So, let us have a data array. So, this v stack means. So, if you have array

x and array y then it will stack those vertically. So, if you x comma y comma z it will stay

all these arrays. So, it forms a two d array from x and y then save. So, this is my data.

So, you can keep any name comma data array. So, it will save this data array and that

is it, and to load this data you need to say data np load my data and np. So, this is the

extension is dot npy. So, just dot npy it will take there. So, it

is very easy than the ASCII dot txt file. So, I will give you example how does it gives

the full information.

So, let us delete x and y let call x is 1.3 1 by 3.029. So, x is this.

So, let us save this in ASCII. So, this much is reduced it has truncated up to 142. So,

it is keeping how much and one is point and 0 see these are 8characters. So, size of this

is 8 byte. So, you can check. So, just say ls minus lh. So, size is 8 byte and my information

is I do not have the full information it has not written the whole thing.

So, it is truncated up to this point. So, if I save in binary. So, np dot save and if

I want to read this I cannot read. So, its question mark and question mark. So, it is

written in binary, I cannot read it in doing cat or anything else. So, I need to read in

python. So, np dot load

and it returns the whole information. So, where is x; so it keeping whole x. So, you

have nothing is lost. So, if you do a some simulation say of a 1000 cube data and you

have 1000 cube differential equations. So, when you read this that initial condition

in with the ASCII and binary you will see the difference and you know that about chaos.

So, if the initial condition will be sensitive then it will reflect later. So, that is why

for doing a bigger simulation one should use binary file system rather than an ASCII file

system, where you keep the full information and nothing is lost. So, is it cleared up

to this point. So, next is HDF5. So, HDF5 is a very advanced version.

So, let us look how to write in HDF5. So, first you need to install the h 5 py package.

So, if you are using anaconda. So, you need to say conda install h 5 py. So, it will install

that package. So, this h this file is the object of h 5 py. So, I create right file

h 5 py file data set. So, as HDF 5 gives it is a file system. So, you can say many arrays

inside that. So, I say write file data underscore one. So, it will create space for one array

and data array. So, data array was that a stack x and y, I

could have also done data underscore two data underscore three and as many as I want then

write file dot close. So, it will just write those that data. So, this is how I write the

data not to read. So, I create read file and same data set then I read the data y read

file slash data underscore one. So, if I have other data then different underscore two three

whatever according to the name of that. Then I need to convert this data to numpy array

because in python we use numpy and then write file dot close. So, it will close the HDF

a bit. So, we will do one example for this.

So, I have written one code to create data this is a code where numpy import library

numpy, then another library h 5 py and I write from 0 to 5000 this step point o 1 and y is

just sin x, and again I create f for data dot txt and write it in this loop which I

have explained earlier. Next what I do the same data is written as HDF 5. So, I stack

this x and y write them in data set dot h 5 data underscore one this array is inserted

over here write dot close. So, same data is returned in ASCII as hd as well as it hdf.

So, let us run this code. So, we will see that is there any compression in saving ASCII

and compared to HDF 5. So, size of data dot txt is 116 mega byte, data dot set h5 76 mega

byte.

So, it is reduced and now I will load this data. So, it is ASCII. So, we will see how

much time does it take while reading ASCII data and while reading HDF 5 data.

So, I will introduce one import time it. So, time is the library. So, you do not need to

install that it is already installed it comes with the package of python.

So, here I write written start the timer. So, it will just start the clock and here

a data is loaded with np load dot txt and t, and x is same thing was I have described

earlier and then it is stopped.

So, and I will compute the time taken in this operation is I stop minus start will give

me the amount of time taken in seconds and the mean yes. So, it start. So, its take 39.27

seconds, and I will now load with HDF 5. So, this is the code for HDF 5. So, this is the

code for HDF 5. So, I introduce one more library h 5 py again I start then read file this data

set data underscore one, convert this data to numpy array then t x stop and it will print.

So, it will read the same data ASCII must take 39.2 second. So, any guess how much time

will it will take with as HDF 5. half.

Half 0.12 second; so when you will do some projects in this course later time, I had

to save in HDF 5. So, that will save your time, do not save in ASCII and then read with

ASCII. So, you that would not be so beneficial, while doing your project you will save some

big data. So, you will you will get about say 200 mb or something then save it in HDF

5 do not use ASCII for saving bigger data.

Now, I will do a little bit of visualization. So, when you have written those data then

you will analyze them. So, for analyzing you can use Mayavi. So, Mayavi we can create some

density plot and Iso contours. So, this was made by the Indian person IIT Bombay a prabhuramachandran

he is the creator of this Mayavi package. So, this is one of my research problem. So,

I will just demonstrate this. So, how to create? So, this is the hot fluid which is trying

to go up and the cold fluid who is trying to come down, these are the plume. So, if

you have this data and you want if you want to create here I have the ISO contours and

also the density plot.

So, how to use what you will do it is same something similar to what you use in matplotlib.

So, you just say Maya dot figure, this is the background color and the size 800 in comma

600 pixels and I have an array t. So, it is that is temperature. So, you could have different

array according to your problem and I set a color map say jet.

So, there are different color maps. So, you will be able to see later, this is for the

contour 3d. Now if I want to plot the density plot the source this scalar field t and I

write this surface src color mass spectrum, and opacity is 0.7. So, what does opacity

is move from 0 to 1. So, if you decrease the opacity you can see inside fine inside the

structures, and then you said the color bar. So, this is similar thing you have already

done with your contour plots of matplotlib. So, just any this is orientation. So, you

can change your orientation and number labels. So, I keep three and then Maya dot show similar

to plt dot.

So, I have a data dot t f r dot h file which of 128 mb and let us do this I show you therefore,.

So, forget about this. So, you should just take this Mayavi package. So, you need to

install Mayavi also. So, you need to say conda installed Mayavi then you will be able to

put Mayavi library, and just ignore this much. So, I take theta and I convert theta to t

and this is same what I have shown in the slides.

So, let us run this code so. So, now, you can visualize this, you can go inside and

see how the structures are formed.

So, when you take your project you may need to do not similar kind of problem, but something

close to that and you can produce some very nice plots, and that will be very useful in

presentation the colorful plots are always useful. So, this what I wanted to show regarding

today’s class, I have some other if you want to use

color map. The color map; so you can. So, you have different

color maps. So, you can. So, I put jet you can put these many color maps.

So, with different color maps you can just keep on trying and get the best you can get.

So, I have just copied few examples from Mayavi side. So, just I will demonstrate this, then

like a spherical harmonics.

So, you can just see this orbital. So, I think task is there was problem with something nice.

So, you can make as many as and you can just play with these things. So, it has done all

the spherical harmonics. So, if you look at the code I will give you these codes. So,

it varies n from 1 to 6 with m, with range n and it will just take the spherical harmonics

from the from scipy packet.

So, do not worry about these codes so and another example of the magnetic field lines.

So, this is the magnetic field lines from a magnetic dipole.

So, you can try these at this link you will get the information about; if you want to

know more about numpy array npy sorry numpy save. So, that npy file system you can use

this link the other link is for h5 py and this is for the mayavi example gallery what

I have shown just now.