there is no real condition for a flower.
flowers grow at random, maximum once per dyson tree. the probability is set by a level variable, i.e. it can vary from level to level. It can also be set for each asteroid seperately, which is probably rarely done (i havent analyzed the levels so i dont know for sure, its just an assumption).
The probability is a fractional number between 0 (=flowers are impossible) and 1 (=flower guaranteed on each tree).
Note that flowers only grow on "mature" trees (i think that means level 3 or 4 and higher).
The point when a flower starts to grow is set at random by the game logic. I dont know precisely how it decides, but it should be somewhat evenly distributed.