Category Archives: wind

I needed to generate a wind speed time series for a simulation, and couldn’t find any pre-existing code in Python to achieve this.

However, I did find the following post on using a Markov autoregressive function to achieve the same in R:

http://procomun.wordpress.com/2010/11/02/how-to-simulate-wind-speed-time-series-with-r/

So I’ve copied the mathematics used there and ported it across to Python, but with a bit of OOP rearrangement to give an object which will compute values on demand. In retrospect, a full-on generator class might be more pythonic, but I’ll leave that for now.

First some imports and helper functions:

 1234567891011121314151617 #!/usr/bin/env python import datetime import math import numpy import random import operator from collections import Counter #homegrown weibull probability function #scipy.stats.exonweib.pdf gives different result from R dweibull function def weibullpdf(data,scale,shape):     return [(shape/scale)*((x/scale)**(shape-1))*math.exp(-1*(x/scale)**shape) for x in data]     #matrix-vector multiplier from http://code.activestate.com/recipes/121574-matrix-vector-multiplication/ #equivalent to %*% in R def matmult4(m, v):     return [reduce(operator.add,map(operator.mul,r,v)) for r in m]