Question: 2 9 . Implement get _ weather _ violation You now have all the tools you need to detect a weather violation. The function get

29. Implement get_weather_violation
You now have all the tools you need to detect a weather violation. The function get_weather_violation takes a weather report and a set of minimums (visibility, ceiling, wind, and crosswind) and determines whether the current weather conditions violate those minimums. Obviously it will use the functions bad_visibility, bad_winds, and bad_ceiling to determine this.
The result is returned as a string. A visibility violation is returned as "Visibility", a wind violation is returned as "Winds", and a ceiling violation is returned as "Ceiling". If there are multiple violations, this function should return "Weather". If there are no violations, it should return the empty string.
Implement this function as specified and run the test script. If you have done everything correctly, you should see the following:
Testing module violations
violations.bad_visibility passed all tests
violations.bad_wind passed all tests
violations.bad_ceiling passed all tests
violations.get_weather_report passed all tests
violations.get_weather_violation passed all tests
Again, you will notice that it will take several seconds to complete the test of get_weather_report. This is a minor inconvenience for the rest of the Python module.
def get_weather_violation(weather,minimums):
"""
Returns a string representing the type of weather violation (empty string if flight is ok)
The weather reading is a dictionary with the keys: 'visibility', 'wind', and 'sky'.
These correspond to a visibility, wind, and ceiling measurement, respectively. It
may have other keys as well, but these can be ignored. For example, this is a possible
weather value:
{
"visibility": {
"prevailing": 21120.0,
"minimum": 1400.0,
"maximum": 21120.0,
"units": "FT"
},
"wind": {
"speed": 12.0,
"crosswind": 3.0,
"gusts": 18.0,
"units": "KT"
},
"temperature": {
"value": -15.6,
"units": "C"
},
"sky": [
{
"cover": "clouds",
"type": "broken",
"height": 2100.0,
"units": "FT"
}
],
"weather": [
"light snow"
]
}
The minimums is a list of the four minimums ceiling, visibility, and max windspeed,
and max crosswind speed in that order. Ceiling is in feet, visibility is in statute
miles, max wind and cross wind speed are both in knots. For example,
[3000.0,10.0,20.0,8.0] is a potential minimums list.
This function uses bad_visibility, bad_winds, and bad_ceiling as helpers. It returns
'Visibility' if the only problem is bad visibility, 'Winds' if the only problem is
wind, and 'Ceiling' if the only problem is the ceiling. If there are multiple
problems, it returns 'Weather', It returns 'Unknown' if no weather reading is
available (e.g. weather is None). Finally, it returns ''(the empty string) if
the weather is fine and there are no violations.
Parameter weather: The weather measure
Precondition: weather is dictionary containing a visibility, wind, and ceiling measurement,
or None if no weather reading is available.
Parameter minimums: The safety minimums for ceiling, visibility, wind, and crosswind
Precondition: minimums is a list of four floats
"""

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 Programming Questions!