From 35a2e4fbfad0a9282980c6f13dc96009c1906b5b Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 2 Apr 2023 17:16:39 +0200 Subject: Exploded naive prototype into modularized package --- waterspout-radar.py | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 waterspout-radar.py (limited to 'waterspout-radar.py') diff --git a/waterspout-radar.py b/waterspout-radar.py deleted file mode 100644 index ec58e64..0000000 --- a/waterspout-radar.py +++ /dev/null @@ -1,45 +0,0 @@ -import argparse -import os - -import szilagyi -from geopy.geocoders import Nominatim -from metpy import calc -from metpy.units import units -from windy import point_forecast -from windy import Windy - - -_L = point_forecast.Level - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("location") - args = parser.parse_args() - key = os.getenv("WINDY_KEY") - if not key: - raise RuntimeError("expected windy's api key") - locator = Nominatim(user_agent="waterspout-radar") - location = locator.geocode(args.location) - coords = (location.latitude, location.longitude) - registry = units - model = point_forecast.Model.ICONEU - levels = tuple(_L) - windy = Windy(registry) - forecast = windy.point_forecast(key, *coords, model, ("temp", "dewpoint", "wind", "pressure"), levels) - for pred in forecast: - dt = abs(pred.at('temp', _L.H850) - pred.at('temp', _L.SURFACE)) - pressure, _ = calc.lcl(pred["pressure"][0], pred["temp"][0], pred["dewpoint"][0]) - lcl = calc.pressure_to_height_std(pressure) - pressure, _ = calc.el(pred['pressure'], pred['temp'], pred['dewpoint']) - el = calc.pressure_to_height_std(pressure) - ccd = (el - lcl).to(units.ft) - try: - swi = szilagyi.calculate_swi(dt, ccd, pred.at('wind_u', _L.H850)) # merge with wind_v - except ValueError: - swi = -10 - print(pred.timestamp, dt, ccd, swi) - - -if __name__ == '__main__': - main() -- cgit v1.1