468,532 Members | 1,721 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,532 developers. It's quick & easy.

How can I extract text from a running Python script?

First, I'm completely new to using python, but willing to learn. I have very little programming skills, but again, I'm willing to learn.

Second, I have a script (given to me) that receives data from a remote sensor. The data posts to a running python script, each data entry occupying one line.

I need to get the data out to log it, graph it, and ultimately overlay it onto an image. Is there a way to do this in real time?

I'm aware of the ability to save the data as a text file, then import it into Microsoft Excel, but this will not work in real time. My end goal is to see the data on a web site at any time.

Any suggestions?
Oct 4 '07 #1
13 2759
bartonc
6,596 Expert 4TB
First, I'm completely new to using python, but willing to learn. I have very little programming skills, but again, I'm willing to learn.

Second, I have a script (given to me) that receives data from a remote sensor. The data posts to a running python script, each data entry occupying one line.

I need to get the data out to log it, graph it, and ultimately overlay it onto an image. Is there a way to do this in real time?

I'm aware of the ability to save the data as a text file, then import it into Microsoft Excel, but this will not work in real time. My end goal is to see the data on a web site at any time.

Any suggestions?
Hi there, Alligatorr.
You've come the right place, as we are more than willing to teach (we live for it).
While it is possible to get the "text" of a running script, it is not likely that a running script is being modified. Here's why:
  • Python is compiled (invisibly) before it is executed.
  • It is would be very poor design to modify a script if point 1 were not true.
If you can pick out the part of the script that looks like it is writing the data and paste it here, we can help you get at it in real time.

There are instructions for using [code] tags on the right hand side of the page when you reply.

Welcome,
Barton
Oct 4 '07 #2
If you can pick out the part of the script that looks like it is writing the data and paste it here, we can help you get at it in real time.
Thanks Bartonc.

From what I can tell, it is simply a "print" command that displays the data on the screen. There is no fancy code involved.

Instead of writing it to the screen, I need to get it to something where I can graph it over time. That's the goal.
Oct 4 '07 #3
bartonc
6,596 Expert 4TB
Thanks Bartonc.

From what I can tell, it is simply a "print" command that displays the data on the screen. There is no fancy code involved.

Instead of writing it to the screen, I need to get it to something where I can graph it over time. That's the goal.
Printing actually calls write() on a file-like object called stdout.
Anything that can be printed (an excellent way of testing) can be logged simply by redirecting the output of the print statement with the >> operator:
Expand|Select|Wrap|Line Numbers
  1. from time import time, sleep
  2.  
  3. # simulated process data
  4. rawdata = \
  5. ['01 0.00 3.67 0.00 0.00',
  6. '02 0.00 0.00 3.67 0.00',
  7. '03 0.00 0.00 0.00 3.67',
  8. '04 0.00 3.67 0.00 0.00',
  9. '05 3.67 0.00 0.00 0.00',
  10. '06 3.46 0.00 0.22 0.00',
  11. '07 0.00 0.00 3.67 0.00',
  12. '08 0.00 0.00 0.00 3.67',
  13. '09 0.00 0.00 0.00 3.67',
  14. '10 0.00 3.67 0.00 0.00',
  15. '11 3.67 0.00 0.00 0.00',
  16. '12 3.67 0.00 0.00 0.00',
  17. '13 0.00 0.00 3.67 0.00',
  18. '14 0.00 0.00 0.00 3.67',
  19. '15 0.00 0.00 3.67 0.00']
  20.  
  21. # create an empty file when the script starts
  22. logfile = open('logfile.txt', 'w')
  23. logfile.close()
  24. for data in rawdata:
  25.     # open the file in 'append' mode
  26.     logfile = open('logfile.txt', 'a')
  27.     print >> logfile, time(),
  28.     print >> logfile, data
  29.     # flush the buffer
  30.     logfile.close()
  31.     sleep(1)
logfile.txt:
1191531584.84 01 0.00 3.67 0.00 0.00
1191531585.84 02 0.00 0.00 3.67 0.00
1191531586.84 03 0.00 0.00 0.00 3.67
1191531587.84 04 0.00 3.67 0.00 0.00
1191531588.84 05 3.67 0.00 0.00 0.00
1191531589.84 06 3.46 0.00 0.22 0.00
1191531590.84 07 0.00 0.00 3.67 0.00
1191531591.84 08 0.00 0.00 0.00 3.67
1191531592.84 09 0.00 0.00 0.00 3.67
1191531593.84 10 0.00 3.67 0.00 0.00
1191531594.84 11 3.67 0.00 0.00 0.00
1191531595.84 12 3.67 0.00 0.00 0.00
1191531596.84 13 0.00 0.00 3.67 0.00
1191531597.84 14 0.00 0.00 0.00 3.67
1191531598.84 15 0.00 0.00 3.67 0.00
Oct 4 '07 #4
I successfully modified my python script to save the text to a log file which I FTP to my web site. Now I need to figure out a way to graph the data. As you can see, the data is a series of two temperature readings. I need to convert the temperature to fahrenheit and somehow graph the data. Any ideas?

Also, I need to cut the log file off at say 1000 entries so it doesn't get too large. How do I do that?
Nov 29 '07 #5
bvdet
2,851 Expert Mod 2GB
I successfully modified my python script to save the text to a log file which I FTP to my web site. Now I need to figure out a way to graph the data. As you can see, the data is a series of two temperature readings. I need to convert the temperature to fahrenheit and somehow graph the data. Any ideas?

Also, I need to cut the log file off at say 1000 entries so it doesn't get too large. How do I do that?
I can help some. To truncate your data:
Expand|Select|Wrap|Line Numbers
  1. fn_input = 'log.txt'
  2. # create a shorter data file
  3. fn_output = 'log_output.txt'
  4.  
  5. lines = 1000
  6.  
  7. f1 = open(fn_input)
  8. # you can process the data without writing to a file if you want
  9. lineList = [f1.next() for _ in range(lines)]
  10. f2 = open(fn_output, 'w')
  11. f2.write(''.join(lineList))
  12. f1.close()
  13. f2.close()
To create a list of temperature readings:
Expand|Select|Wrap|Line Numbers
  1. readList = [float(s.split(',')[1].strip("' \n")) for s in lineList]
I will leave it to you to convert the temperature to Fahrenheit. This data was truncated at 20 lines:
Expand|Select|Wrap|Line Numbers
  1. >>> for temp in readList:
  2. ...     print temp
  3. ...     
  4. 22.05
  5. 24.67
  6. 22.69
  7. 22.35
  8. 24.64
  9. 22.05
  10. 22.48
  11. 24.55
  12. 22.16
  13. 24.52
  14. 21.85
  15. 24.49
  16. 21.59
  17. 24.42
  18. 21.71
  19. 24.38
  20. 21.58
  21. 24.37
  22. 21.34
  23. 24.32
Nov 29 '07 #6
Because I'm a beginner in Python, this is somewhat hard for me - but I'm enjoying learning.

Here is what I have thus far (this is only a portion of my code):

Expand|Select|Wrap|Line Numbers
  1. while 1:
  2.     data, address = s.recvfrom(1024)
  3.     if not data:
  4.         break
  5.     s.sendto(data, address)
  6.  
  7.     temperature = ((9 / 5) * repr(data[:-1])) + 32
  8.  
  9.     print time.strftime("%b %d %H:%M:%S ", time.localtime()), address[0], ":", temperature)
  10.     logfile = open('logfile.txt', 'a')
  11.     print >> logfile, time.strftime("%b %d %H:%M:%S ", time.localtime()), ":", temperature)
  12.     logfile.close()
  13.  
  14.     fn_input = 'logfile.txt'
  15.     fn_output = 'logfile_short.txt'
  16.     lines = 1000
  17.     f1 = open(fn_input)
  18.     lineList = [f1.next() for _ in range(lines)]
  19.     f2 = open(fn_output, 'w')
  20.     f2.write(''.join(lineList))
  21.     f1.close()
  22.     f2.close()
  23. s.close()
  24.  
I didn't parse the temperature data because I'm still having trouble figuring out how to separate the temperature data from each sensor (#1 and #2 on the logfile.txt output).

1. Can someone help me make sure my mathmatical function will operate correctly to convert the temperature to Fahrenheit?

2. How can I separate the temperature data from each sensor into a separate log file?

3. Will my code for limiting the file size to 1000 lines work? I'm not at my home computer now to test this.
Nov 29 '07 #7
bvdet
2,851 Expert Mod 2GB
Because I'm a beginner in Python, this is somewhat hard for me - but I'm enjoying learning.

Here is what I have thus far (this is only a portion of my code):

Expand|Select|Wrap|Line Numbers
  1. while 1:
  2.     data, address = s.recvfrom(1024)
  3.     if not data:
  4.         break
  5.     s.sendto(data, address)
  6.  
  7.     temperature = ((9 / 5) * repr(data[:-1])) + 32
  8.  
  9.     print time.strftime("%b %d %H:%M:%S ", time.localtime()), address[0], ":", temperature)
  10.     logfile = open('logfile.txt', 'a')
  11.     print >> logfile, time.strftime("%b %d %H:%M:%S ", time.localtime()), ":", temperature)
  12.     logfile.close()
  13.  
  14.     fn_input = 'logfile.txt'
  15.     fn_output = 'logfile_short.txt'
  16.     lines = 1000
  17.     f1 = open(fn_input)
  18.     lineList = [f1.next() for _ in range(lines)]
  19.     f2 = open(fn_output, 'w')
  20.     f2.write(''.join(lineList))
  21.     f1.close()
  22.     f2.close()
  23. s.close()
  24.  
I didn't parse the temperature data because I'm still having trouble figuring out how to separate the temperature data from each sensor (#1 and #2 on the logfile.txt output).

1. Can someone help me make sure my mathmatical function will operate correctly to convert the temperature to Fahrenheit?

2. How can I separate the temperature data from each sensor into a separate log file?

3. Will my code for limiting the file size to 1000 lines work? I'm not at my home computer now to test this.
#2 - Following is one way to separate the data by sensor number. It creates a dictionary, and the sensor number is the dictionary key. The code handles the temperature conversion. From there, the data can be written to disc by key.
Expand|Select|Wrap|Line Numbers
  1. import re
  2. # limit data to 40 lines
  3. lines = 40
  4.  
  5. def c_to_f(num):
  6.     return (num*5.0/9)+32.0
  7.  
  8. f1 = open(fn_input)
  9. lineList = [f1.next() for _ in range(lines)]
  10. f1.close()
  11.  
  12. patt = re.compile(r"'(.+)'")
  13. readDict = {}
  14. for item in lineList:
  15.     key, value = [s.strip() for s in patt.search(item).group(1).split(",")]
  16.     readDict.setdefault(key, []).append(c_to_f(float(value)))
You can also split lineList this way:
Expand|Select|Wrap|Line Numbers
  1. sensor1List = [item for item in lineList if "'1," in item]
  2. sensor2List = [item for item in lineList if "'2," in item]
#3 The code I provided will limit your data to the number of lines assigned to variable lines.
Nov 29 '07 #8
Thanks bvdet, I really appreciate your help. I'm learning quite a bit, but I think you may have gone beyond my level of knowledge.

I'm not sure how to use a key with a dictionary. I've read up on dictionaries, but they seem a lot harder to use than the simple print commands that I've been using. Please keep in mind this is my first code ever in python.

I understand this part of my program:
Expand|Select|Wrap|Line Numbers
  1.     # This converts the temperature to Fahrenheit
  2.     def c_to_f(num):
  3.         return ((num*9.0/5.0) + 32.0)
  4.  
I also understand the basic print commands to save text to a file. I just can't figure out how to add what you posted, or where to add it to what I have.

The really confusing parts involve lineList, the functions, and the dictionary.

Still, even though this is difficult, I'm enjoying it. Thanks for taking the time to help.
Nov 29 '07 #9
bvdet
2,851 Expert Mod 2GB
Thanks bvdet, I really appreciate your help. I'm learning quite a bit, but I think you may have gone beyond my level of knowledge.

I'm not sure how to use a key with a dictionary. I've read up on dictionaries, but they seem a lot harder to use than the simple print commands that I've been using. Please keep in mind this is my first code ever in python.

I understand this part of my program:
Expand|Select|Wrap|Line Numbers
  1.     # This converts the temperature to Fahrenheit
  2.     def c_to_f(num):
  3.         return ((num*9.0/5.0) + 32.0)
  4.  
I also understand the basic print commands to save text to a file. I just can't figure out how to add what you posted, or where to add it to what I have.

The really confusing parts involve lineList, the functions, and the dictionary.

Still, even though this is difficult, I'm enjoying it. Thanks for taking the time to help.
I am not very good at explanations. A good way to learn is to play with the code in an interactive environment. I am using Pythonwin. A dictionary is a mapping type object (hash table, association list, etc.).
Expand|Select|Wrap|Line Numbers
  1. >>> readDict['1']
  2. [45.705555555555556, 45.68888888888889, 45.638888888888886, 45.62222222222222, 45.605555555555554, 45.56666666666667, 45.544444444444444, 45.538888888888891, 45.511111111111113, 45.477777777777781, 45.455555555555556, 45.416666666666664, 45.388888888888886, 45.327777777777776, 45.299999999999997, 45.266666666666666, 45.238888888888887, 45.200000000000003, 45.177777777777777]
  3. >>> readDict['2']
  4. [44.25, 44.605555555555554, 44.416666666666664, 44.25, 44.488888888888887, 44.31111111111111, 44.138888888888886, 43.994444444444447, 44.06111111111111, 43.988888888888887, 43.855555555555554, 43.75, 43.649999999999999, 43.566666666666663, 43.427777777777777, 43.361111111111114, 43.305555555555557, 43.233333333333334, 43.172222222222224, 43.111111111111114, 43.06111111111111]
  5. >>> 
Expand|Select|Wrap|Line Numbers
  1. for key in readDict:
  2.     print "Sensor #%s:" % key
  3.     for item in readDict[key]:
  4.         print "    %.4f" % item
Partial output:
Sensor #1:
45.7056
45.6889
45.6389
45.6222
45.6056
...........
Sensor #2:
44.2500
44.6056
44.4167
44.2500
44.4889
...........
Following is another way of getting the number of desired lines from the data file and creating a list of those lines (lineList):
Expand|Select|Wrap|Line Numbers
  1. >>> lineList = []
  2. >>> f1 = open(fn_input)
  3. >>> lines = 10
  4. >>> for i in range(lines):
  5. ...     lineList.append(f1.readline())
  6. ...     
  7. >>> for line in lineList:
  8. ...     print line,
  9. ...     
  10. Nov 28 17:34:23  76.17.211.244 : '2, 22.05'
  11. Nov 28 17:35:38  76.17.211.244 : '1, 24.67'
  12. Nov 28 17:39:23  76.17.211.244 : '2, 22.69'
  13. Nov 28 17:44:23  76.17.211.244 : '2, 22.35'
  14. Nov 28 17:45:38  76.17.211.244 : '1, 24.64'
  15. Nov 28 17:49:23  76.17.211.244 : '2, 22.05'
  16. Nov 28 17:54:23  76.17.211.244 : '2, 22.48'
  17. Nov 28 17:55:38  76.17.211.244 : '1, 24.55'
  18. Nov 28 17:59:23  76.17.211.244 : '2, 22.16'
  19. Nov 28 18:00:38  76.17.211.244 : '1, 24.52'
  20. >>> f1.close()
In this case I used readline() instead of next() and compiled the list without using a list comprehension. HTH
Nov 29 '07 #10
I'm trying to understand dictionaries, but I'm having a hard time.

I understand bits and pieces of what you have posted, but I don't know how to put all of the code together. Most of what I'm now doing is just guessing.

This is what I have thus far - any of it look right?

Expand|Select|Wrap|Line Numbers
  1.     # This converts the temperature to Fahrenheit
  2.     def c_to_f(num):
  3.         return ((num*9.0/5.0) + 32.0)
  4.  
  5.     #This separates the data by sensor number, creates a dictionary, and the sensor number is the key
  6.         import re
  7.         # limit data to 100 lines
  8.         lines = 100
  9.  
  10.         f1 = open(fn_input)
  11.         lineList = [f1.next() for _ in range(lines)]
  12.         f1.close()
  13.  
  14.         patt = re.compile(r"'(.+)'")
  15.         readDict = {}
  16.         for item in lineList:
  17.             key, value = [s.strip() for s in patt.search(item).group(1).split(",")]
  18.             readDict.setdefault(key, []).append(c_to_f(repr(data[:-1]))
  19.  
  20.     # This writes key 1 to a logfile
  21.     logfile1 = open('sensor1_value.txt', 'a')
  22.     print >> logfile1, readDict["1"]
  23.     logfile1.close()
  24.  
  25.     # This writes key 2 to a logfile
  26.     logfile2 = open('sensor2_value.txt', 'a')
  27.     print >> logfile2, readDict["2"]
  28.     logfile2.close()
Nov 30 '07 #11
bvdet
2,851 Expert Mod 2GB
I'm trying to understand dictionaries, but I'm having a hard time.

I understand bits and pieces of what you have posted, but I don't know how to put all of the code together. Most of what I'm now doing is just guessing.

This is what I have thus far - any of it look right?

Expand|Select|Wrap|Line Numbers
  1.     # This converts the temperature to Fahrenheit
  2.     def c_to_f(num):
  3.         return ((num*9.0/5.0) + 32.0)
  4.  
  5.     #This separates the data by sensor number, creates a dictionary, and the sensor number is the key
  6.         import re
  7.         # limit data to 100 lines
  8.         lines = 100
  9.  
  10.         f1 = open(fn_input)
  11.         lineList = [f1.next() for _ in range(lines)]
  12.         f1.close()
  13.  
  14.         patt = re.compile(r"'(.+)'")
  15.         readDict = {}
  16.         for item in lineList:
  17.             key, value = [s.strip() for s in patt.search(item).group(1).split(",")]
  18.             readDict.setdefault(key, []).append(c_to_f(repr(data[:-1]))
  19.  
  20.     # This writes key 1 to a logfile
  21.     logfile1 = open('sensor1_value.txt', 'a')
  22.     print >> logfile1, readDict["1"]
  23.     logfile1.close()
  24.  
  25.     # This writes key 2 to a logfile
  26.     logfile2 = open('sensor2_value.txt', 'a')
  27.     print >> logfile2, readDict["2"]
  28.     logfile2.close()
The value you are passing to c_to_f is incorrect, and you have some indentation errors. Instead of passing a list to print and redirecting to a file, you can string format each element and write the formatted elements to the file. I made some modifications as follows.
Expand|Select|Wrap|Line Numbers
  1. # This converts the temperature to Fahrenheit
  2. def c_to_f(num):
  3.     return ((num*9.0/5.0) + 32.0)
  4.  
  5. #This separates the data by sensor number, creates a dictionary, and the sensor number is the key
  6. import re
  7. # limit data to 100 lines
  8. lines = 100
  9.  
  10. f1 = open(fn_input)
  11. lineList = [f1.next() for _ in range(lines)]
  12. f1.close()
  13.  
  14. patt = re.compile(r"'(.+)'")
  15. readDict = {}
  16. for item in lineList:
  17.     key, value = [s.strip() for s in patt.search(item).group(1).split(",")]
  18.     readDict.setdefault(key, []).append(c_to_f(float(value)))
  19.  
  20. # This writes key 1 to a logfile
  21. logfile1 = open(r'H:\TEMP\temsys\sensor1_value.txt', 'a')
  22. logfile1.write("\n".join(['%.4f' % item for item in readDict["1"]]))
  23. logfile1.close()
  24.  
  25. # This writes key 2 to a logfile
  26. logfile2 = open(r'H:\TEMP\temsys\sensor2_value.txt', 'a')
  27. logfile2.write("\n".join(['%.4f' % item for item in readDict["2"]]))
  28. logfile2.close()
Nov 30 '07 #12
For some reason, the code is not working. It prints the data on the screen just fine, but doesn't write anything to a log file. When I just print "data" when the code is running, I get a result like '2, 23.70'. Does this mean I need to break this apart first?

Can anyone help? I'm very close!

Here is the main part of my code (based on what was posted earlier):
Expand|Select|Wrap|Line Numbers
  1. # This converts the temperature to Fahrenheit
  2. def c_to_f(num):
  3.     return ((num*9.0/5.0) + 32.0)
  4.  
  5. while 1:
  6.     data, address = s.recvfrom(1024)
  7.     if not data:
  8.         break
  9.     s.sendto(data, address)
  10.     print time.strftime("%b %d %H:%M:%S ", time.localtime()), address[0], ":", repr(data[:-1])
  11. s.close()
  12.  
  13. # limit data to 100 lines
  14. fn_input = 'logfile.txt'
  15. fn_output = 'logfile_short.txt'
  16. lines = 100
  17.  
  18. f1 = open(fn_input)
  19. lineList = [f1.next() for _ in range(lines)]
  20. f1.close()
  21.  
  22. patt = re.compile(r"'(.+)'")
  23. readDict = {}
  24. for item in lineList:
  25.     key, value = [s.strip() for s in patt.search(item).group(1).split(",")]
  26.     readDict.setdefault(key, []).append(c_to_f(float(repr(data[:-1]))))
  27.  
  28. # This writes key 1 to a logfile
  29. logfile1 = open(r'C:\Documents and Settings\User\My Documents\Python Scrips\sensor1_value.txt', 'a')
  30. logfile1.write("\n".join(['%.4f' % item for item in readDict["1"]]))
  31. logfile1.close()
  32.  
  33. # This writes key 2 to a logfile
  34. logfile2 = open(r'C:\Documents and Settings\User\My Documents\Python Scrips\sensor2_value.txt', 'a')
  35. logfile2.write("\n".join(['%.4f' % item for item in readDict["2"]]))
  36. logfile2.close()
  37.  
Dec 8 '07 #13
Here a "batteries included" approach using numpy and pylab

Expand|Select|Wrap|Line Numbers
  1. import numpy
  2. import pylab
  3. # see http://matplotlib.sourceforge.net/
  4.  
  5. from time import mktime
  6. from datetime import datetime
  7. # see http://pleac.sourceforge.net/pleac_python/datesandtimes.html
  8.  
  9. def c2f(strnum) : return (float(strnum)*5.0/9)+32.0
  10.  
  11. # dict to convert month abbreviations to int representations
  12. months={'Jan':1,'Feb':2,'Mar':3,'Apr':4,'May':5,'Jun':6,
  13.         'Jul':7,'Aug':8,'Sep':9,'Oct':10,'Nov':11,'Dec':12}
  14.  
  15. # list of dicts of lists to hold data
  16. sensors=[{'time':[],'ip':[],'temp':[]},{'time':[],'ip':[],'temp':[]}]
  17.  
  18. # open file
  19. fid=open('logfile.txt','r')
  20.  
  21. # the [-100:] indexing gives the last hundred entries
  22. for i, splitline in enumerate([line.split() for line in fid.readlines()[-100:]]):
  23.     tnow=datetime(2007,                    # year not in log file
  24.                   months[splitline[0]],    # month as int
  25.                   int(splitline[1]),       # date
  26.                   int(splitline[2][0:2]),  # hour
  27.                   int(splitline[2][3:5]),  # minute
  28.                   int(splitline[2][6:8]) ) # second
  29.     if i == 0: t0=tnow # save first time
  30.  
  31.     sensors[int(splitline[5][1])-1]['time'].append(mktime(tnow.timetuple())-
  32.                                                    mktime(t0.timetuple()))
  33.     sensors[int(splitline[5][1])-1]['ip'].append(splitline[3] )
  34.     sensors[int(splitline[5][1])-1]['temp'].append(c2f(splitline[6][:-1]))
  35.  
  36. fid.close()
  37.  
  38. # find temp ensemble average
  39. # we need to interpolate temp arrays first
  40. s1t,s2t=numpy.array(sensors[0]['time']),numpy.array(sensors[1]['time'])
  41. ti=numpy.arange(0.,numpy.max(numpy.concatenate((s1t,s2t))),1.)
  42. s1ti=pylab.stineman_interp(ti,sensors[0]['time'],sensors[0]['temp'])
  43. s2ti=pylab.stineman_interp(ti,sensors[1]['time'],sensors[1]['temp'])
  44. temp_ave=(s1ti+s2ti)/2.
  45.  
  46. # make plot
  47. pylab.figure()
  48. s1,=pylab.plot(sensors[0]['time'],sensors[0]['temp'])
  49. s2,=pylab.plot(sensors[1]['time'],sensors[1]['temp'])
  50. av,=pylab.plot(ti,temp_ave)
  51. pylab.legend((s1,s2,av),('Sensor 1','Sensor 2','Average'))
  52. pylab.title('Temperature from %s to %s'%(t0,tnow))
  53. pylab.ylabel('Temperature in Fahrenheit')
  54. pylab.xlabel('Time in seconds since %s'%t0)
  55. pylab.savefig('TempTime.png')
  56. pylab.show()
  57.  
Plot can be viewed here:
http://www.flickr.com/photos/rogerlew/2109181749/
Dec 14 '07 #14

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

11 posts views Thread by Maxim Kasimov | last post: by
8 posts views Thread by Fabian Braennstroem | last post: by
2 posts views Thread by BartlebyScrivener | last post: by
9 posts views Thread by flit | last post: by
8 posts views Thread by Martin | last post: by
reply views Thread by NPC403 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.