Question: Please help. The constants are: COLUMN_ID = 0 COLUMN_NAME = 1 COLUMN_HIGHWAY = 2 COLUMN_LAT = 3 COLUMN_LON = 4 COLUMN_YEAR_BUILT = 5 COLUMN_LAST_MAJOR_REHAB =

Please help.

The constants are:

COLUMN_ID = 0 COLUMN_NAME = 1 COLUMN_HIGHWAY = 2 COLUMN_LAT = 3 COLUMN_LON = 4 COLUMN_YEAR_BUILT = 5 COLUMN_LAST_MAJOR_REHAB = 6 COLUMN_LAST_MINOR_REHAB = 7 COLUMN_NUM_SPANS = 8 COLUMN_SPAN_DETAILS = 9 COLUMN_DECK_LENGTH = 10 COLUMN_LAST_INSPECTED = 11 COLUMN_BCI = 12

INDEX_BCI_YEARS = 0 INDEX_BCI_SCORES = 1 MISSING_BCI = -1.0

EARTH_RADIUS = 6371

This is an example of one of the bridges which is a list.

def create_example_bridge_1() -> list: """Return a bridge in our list-format to use for doctest examples.

This bridge is the same as the bridge from row 3 of the dataset. """

return [ 1, 'Highway 24 Underpass at Highway 403', '403', 43.167233, -80.275567, '1965', '2014', '2009', 4, [12.0, 19.0, 21.0, 12.0], 65.0, '04/13/2012', [['2013', '2012', '2011', '2010', '2009', '2008', '2007', '2006', '2005', '2004', '2003', '2002', '2001', '2000'], [MISSING_BCI, 72.3, MISSING_BCI, 69.5, MISSING_BCI, 70.0, MISSING_BCI, 70.3, MISSING_BCI, 70.5, MISSING_BCI, 70.7, 72.9, MISSING_BCI]] ]

def create_example_bridges() -> List[list]: """Return a list containing three unique example bridges.

The bridges contained in the list are from row 3, 4, and 33 of the dataset (in that order). """ return [ create_example_bridge_1(), create_example_bridge_2(), create_example_bridge_3() ]

Here is a helper function:

def calculate_distance(lat1: float, lon1: float, lat2: float, lon2: float) -> float: """Return the distance in kilometers between the two locations defined by (lat1, lon1) and (lat2, lon2), rounded to the nearest meter.

>>> calculate_distance(43.659777, -79.397383, 43.657129, -79.399439) 0.338 >>> calculate_distance(43.42, -79.24, 53.32, -113.30) 2713.226 """

# This function uses the haversine function to find the # distance between two locations. You do NOT need to understand why it # works. You will just need to call on the function and work with what it # returns. # Based on code at goo.gl/JrPG4j

# convert decimal degrees to radians lon1, lat1, lon2, lat2 = (math.radians(lon1), math.radians(lat1), math.radians(lon2), math.radians(lat2))

# haversine formula t lon_diff = lon2 - lon1 lat_diff = lat2 - lat1 a = (math.sin(lat_diff / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(lon_diff / 2) ** 2) c = 2 * math.asin(math.sqrt(a))

return round(c * EARTH_RADIUS, 3)

With the data above, I need help with the bodies of the functions.

def trim_from_end(raw_data: list, count: int) -> None: """Update raw_data so that count elements have been removed from the end.

Preconditions: - count >= 0 - len(raw_data) >= count

>>> my_lst = [[72.3, 69.5, 70.0, 70.3, 70.5, 70.7, 72.9], '', '72.3', '', \ '69.5', '', '70', '', '70.3', '', '70.5', '', '70.7', '72.9', ''] >>> trim_from_end(my_lst, 14) >>> my_lst [[72.3, 69.5, 70.0, 70.3, 70.5, 70.7, 72.9]] """

def clean_span_data(raw_spans: str) -> List[float]: """Return a list of span lengths from raw_spans, in the same order that they appear in raw_spans.

Precondition: - raw_spans is in the appropriate format (see handout for details)

>>> clean_span_data('Total=64 (1)=12;(2)=19;(3)=21;(4)=12;') [12.0, 19.0, 21.0, 12.0] """

def clean_bci_data(bci_years: List[str], start_year: int, bci_scores: list) -> \ None: """Update bci_years so that each element contains the year as a string, starting from start_year and decreasing by one for each subsequent element, until bci_years has the same length as bci_scores. Also update bci_scores so that all non-empty string values are float values, and all empty string values are MISSING_BCI.

Preconditions: - len(bci_years) == 0 - len(bci_scores) > 0 - start_year - len(bci_scores) >= 0 - every value in bci_scores is either an empty string or can be converted to a float

>>> years = [] >>> scores = ['', '72.3', '', '69.5', '', '70.0', '', '70.3', ''] >>> clean_bci_data(years, 2013, scores) >>> years ['2013', '2012', '2011', '2010', '2009', '2008', '2007', '2006', '2005'] >>> scores [-1.0, 72.3, -1.0, 69.5, -1.0, 70.0, -1.0, 70.3, -1.0] """

I will upvote if code works

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!