def report(request): geocoded_radar.refresh() geocoded_toca.refresh() geocoded_aladin.refresh() try: lat = float(request.GET.get('lat')) lon = float(request.GET.get('lon')) except: return { 'status': 'fail', 'error': 'Invalid parameters.' } if not (45.21 <= lat <= 47.05 and 12.92 <= lon <= 16.71): return { 'status': 'fail', 'error': 'Coordinates out of bounds.' } else: posR, rain_mmph = geocoded_radar.get_rain_at_coords(lat, lon) posT, toca_level = geocoded_toca.get_toca_at_coords(lat, lon) posA, forecast = geocoded_aladin.get_forecast_at_coords(lat, lon) utc_diff = tz2utc_diff() resp = { 'status': 'ok', 'lat': request.GET.get('lat'), 'lon': request.GET.get('lon'), 'copyright': u'ARSO, Agencija RS za okolje', 'radar': { 'updated': _datetime2timestamp(geocoded_radar.last_modified + utc_diff), 'updated_text': (geocoded_radar.last_modified + utc_diff).strftime('%Y-%m-%d %H:%M'), 'x': posR[0], 'y': posR[1], 'rain_level': mmph_to_level(rain_mmph), 'rain_mmph': rain_mmph, }, 'hailprob': { 'updated': _datetime2timestamp(geocoded_toca.last_modified + utc_diff), 'updated_text': (geocoded_toca.last_modified + utc_diff).strftime('%Y-%m-%d %H:%M'), 'x': posT[0], 'y': posT[1], 'hail_level': toca_level, }, 'forecast': { 'updated': _datetime2timestamp(geocoded_aladin.forecast_time.get(6, None)), 'x': posA[0], 'y': posA[1], 'data': forecast, } } return resp
def test_mmph_to_level(self): self.assertEqual(mmph_to_level(0.0), 0) self.assertEqual(mmph_to_level(0.5), 25) self.assertEqual(mmph_to_level(2.5), 50) self.assertEqual(mmph_to_level(15.), 75) self.assertEqual(mmph_to_level(60.), 100) self.assertEqual(mmph_to_level(1000.), 100)
def report(request): geocoded_radar.refresh() geocoded_toca.refresh() geocoded_aladin.refresh() try: lat = float(request.GET.get('lat')) lon = float(request.GET.get('lon')) except: return {'status': 'fail', 'error': 'Invalid parameters.'} if not (45.21 <= lat <= 47.05 and 12.92 <= lon <= 16.71): return {'status': 'fail', 'error': 'Coordinates out of bounds.'} else: posR, rain_mmph = geocoded_radar.get_rain_at_coords(lat, lon) posT, toca_level = geocoded_toca.get_toca_at_coords(lat, lon) posA, forecast = geocoded_aladin.get_forecast_at_coords(lat, lon) utc_diff = tz2utc_diff() resp = { 'status': 'ok', 'lat': request.GET.get('lat'), 'lon': request.GET.get('lon'), 'copyright': u'ARSO, Agencija RS za okolje', 'radar': { 'updated': _datetime2timestamp(geocoded_radar.last_modified + utc_diff), 'updated_text': (geocoded_radar.last_modified + utc_diff).strftime('%Y-%m-%d %H:%M'), 'x': posR[0], 'y': posR[1], 'rain_level': mmph_to_level(rain_mmph), 'rain_mmph': rain_mmph, }, 'hailprob': { 'updated': _datetime2timestamp(geocoded_toca.last_modified + utc_diff), 'updated_text': (geocoded_toca.last_modified + utc_diff).strftime('%Y-%m-%d %H:%M'), 'x': posT[0], 'y': posT[1], 'hail_level': toca_level, }, 'forecast': { 'updated': _datetime2timestamp(geocoded_aladin.forecast_time.get(6, None)), 'x': posA[0], 'y': posA[1], 'data': forecast, } } return resp