Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Part 2 Calculate the moving average. (40 points) Start a new program temp_win2.py from your working version of temp_win1.py. Since you know that you are

Part 2 Calculate the moving average. (40 points)

Start a new program temp_win2.py from your working version of temp_win1.py.

Since you know that you are correctly getting the file name and the window parameter from the user, you can now comment out the lines that print:

Analyzing NorCal-1880-2018.csv
Using 60 for the window parameter.

image text in transcribed

anyone can help me with this? the temp_win 1 is based on

done = False while not done: x = input('Enter an integer between 0 and 60: ') if not x.isdigit(): print('Enter an integer.') else: k = int(x) if k 60: print('Enter an integer up to 60.') else: done = True

print('Using {0} for the window parameter.'.format(k))

Before calculating the moving average you will need to read the temperature data into a list so your program can read the same value over and over when sliding the window for the moving average. Change the loop in your program that reads the year and temperature data from the file into two lists: a list holding the years and a list holding the floating point temperatures. These lists will make it possible to repeatedly access the data when computing the average. Moving average calculation The moving average at position i in the list is calculated as the sum of the temperature values from position i-k to position i+k divided by the total width of the window (2*k + 1). Below is an example of the calculation for k= 5 The boxed below illustrate a window at position i with width k=5 in the temps list: i-5 i-4 i- 3 i-2 i-1 i i+1 i+ 2 i+3 i+4 i+5 ave = (temps[i-k] + ...temps[i-1] + temps[i] + temps[i+1]... + temps[i+k])/(2*k+1) year = years[i] Your calculation will not look exactly like this. You will need to implement the sum using a nested loop or using the sum() function on a slice of the list. Also note is that this calculation is not valid near the ends of the list. You should write a loop that only calculates the average for valid years. In other words if temps[i-k] can not have an index of less than 0, then i cannot be less than k. A similar constraint holds for the other end of the list. Write a loop to compute the average temperature for each valid year. Your loop should print the year and the average separated by a comma. Format the printed temperature to four decimal places using the format method. Here is an example of the output your program should produce when the user chooses to average over k=60 years; there are not too many rows since there are only 10 years in the middle of the century when there are 60 years before and 60 years after over which to average. Temperature anomaly filename: NorCal-1880-2018.csv Enter an integer between 0 and 60:60 1940,-0.2331 1941,-0.2169 1942,-0.2150 1943,-0.2228 1944,-0.2107

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Practical Issues In Database Management A Refernce For The Thinking Practitioner

Authors: Fabian Pascal

1st Edition

0201485559, 978-0201485554

More Books

Students also viewed these Databases questions