""" This package provides a software implementation of an approximation of the Szilagyi Waterspout Index. The calculated values for SWI are continuous. The wind-speed at 850 hPa is ignored as the nomogram dictates it as a simple on/off criterion. There is only one function provided, so the use should be straight-forward. For example:: >>> import szilagyi >>> round(szilagyi.calculate_swi(10.5, 24100), 3) 0.811 >>> round(szilagyi.calculate_swi(7, 12500), 3) -4.88 """ from ._nomogram import calculate_swi as _calculate_swi from ._nomogram import MAX_TEMPERATURE_DIFFERENCE, MAX_CONVECTIVE_CLOUD_DEPTH def calculate_swi(temperature_difference, convective_cloud_depth): """ Calculates the Szilagyi Waterspout Index for *temperature_difference* and *convective_cloud_depth*. These are expected to be respectively: Celsius degrees, and feet. May raise :exc:`ValueError` if the values are not in range of the original nomogram. """ if temperature_difference < 0 or temperature_difference > MAX_TEMPERATURE_DIFFERENCE: raise ValueError(f"temperature_difference must be within <0, {MAX_TEMPERATURE_DIFFERENCE}> range") if convective_cloud_depth < 0 or convective_cloud_depth > MAX_CONVECTIVE_CLOUD_DEPTH: raise ValueError(f"convective_cloud_depth must be within <0, {MAX_CONVECTIVE_CLOUD_DEPTH}> range") return _calculate_swi(temperature_difference, convective_cloud_depth)