Analyzing monthly precipitation in De Bilt
Let's take a look at the De Bilt precipitation data in 0.1 mm from KNMI. They are using the convention again of -1 representing low values. We are again going to set those values to 0:
We will load the dates converted to months, rain amounts, and rain duration in hours into NumPy arrays. Again, missing values needed to be converted to NaNs. We then create masked arrays for NumPy arrays with missing values. The code is as follows:
to_float = lambda x: float(x.strip() or np.nan) to_month = lambda x: dt.strptime(x, "%Y%m%d").month months, duration, rain = np.loadtxt(sys.argv[1], delimiter=',', usecols=(1, 21, 22), unpack=True, converters={1: to_month, 21: to_float, 22: to_float}) # Remove -1 values rain[rain == -1] = 0 # Measurements are in .1 mm rain = .1 * ma.masked_invalid(rain) # Measurements are in .1 hours duration = .1 * ma.masked_invalid(duration)
We can calculate some simple statistics, such as minimum, maximum, mean, standard deviation...