Modeling of Clouds from Satellite Images Using Metaballs

Yoshinori Dobashi†, Tomoyuki Nishita††, Hideo Yamashita†††, Tsuyoshi Okita††

Hiroshima City University
3-4-1 Ozukahigashi, Asaminami-ku,
Hiroshima, 731-3194, Japane-mail:{doba, okita}@im.hiroshima-cu.ac.jp††

Fukuyama University
985 Sanzo, Higashimura-cho,
Fukuyama, 729-0292, Japane-mail:nis@eml.hiroshima-u.ac.jp†††

Hiroshima University
1-4-1 Kagamiyama,
Higashi-hiroshima, 739-8527
e-mail:yama@eml.hiroshima-u.ac.jp

Abstract
This paper proposes an image-based modeling ofclouds where realistic clouds are created from satellite
images using metaballs. The intention of the paper is forapplications to space flight simulators, the visualizationof the weather information, and the simulation ofsurveys of the earth. In the proposed method, the density
distribution inside the clouds is defined by a set of
metaballs. Parameters of metaballs, such as center
positions, radii, and density values, are automaticallydetermined so that a synthesized image of clouds
modeled by using metaballs is similar to the originalsatellite image. We also propose an animation method
for clouds generated by a sequence of satellite images
taken at some interval. The usefulness of the proposed
method is demonstrated by several examples of clouds
generated from satellite images of typhoons passing
through Japan.

1. Introduction
Recently, simulation of natural phenomena, such as
water, smokes, fire, clouds, have been attempted incomputer graphics[1][2][3][4][5][6][7]. Clouds play animportant role when generating images of outdoor
scenes, the earth viewed from outer space and thevisualization of weather information. This paper
proposes a method for modeling large scale clouds
viewed from space such as typhoon. A lot of methods
have been developed for modeling clouds and can beclassified into two groups.
Methods in the first group create clouds byprocedural modeling. Voss and Musgrave have tried tocreate realistic clouds using fractals[8][9]. Gardner has

produced realistic images of clouds by using Fourier
synthesis[10]. However, this does not create a true
three-dimensional geometric model. Ebert et al. haveused solid texture to generate clouds in three
dimensional space[11]. They have also developed amethod combining metaballs and a noise function tomodel clouds[12]. Sakas has modeled clouds by using
spectral synthesis[13], and Nishita et al. create clouds bygenerating metaballs using the idea of fractals[6]. Using
these methods, however, creating clouds that the user
pictures in the mind is very difficult since a lot ofparameters have to be specified by trial and error. Stamand Fuime have developed a simple method formodeling clouds[14]. In their method, a user specifies
density values at several points in three dimensional
space. Then the density distribution of clouds is obtainedby interpolating the specified density values. Although
this method can create realistic clouds, it is impracticalto create large scale clouds viewed from space. Methods
for modeling a set of clusters of clouds have also beendeveloped. Musgrave creates typhoon by the proceduralapproach[16]. Nishita et al. have modeled clouds togenerate realistic images of the earth viewed fromspace[27]. In both these methods, however, clouds are
simply modeled by applying 2D fractals. The color andshape of clouds change depending on both the viewpoint
and the position of the sun. These methods cannot
simulate such kind of effects.
Methods classified in the second group model clouds
by simulating the physical process of the clouds
forming[15][3][5]. In these methods, however, there isoften a high computational cost when simulating clouds
over the earth.
To address this problem, we propose a new method
for modeling three dimensional clouds based on asatellite image. In recent years, many methods ofimage-based rendering and/or modeling have beendeveloped in computer graphics[17][18][19][20][21][22]. The proposed method makes use of theimage-based approach to generate clouds. Lee et al. also
use satellite images to generate clouds in order tovisualize the weather information[23]. However, theyuse polygons to model them, resulting in bad-looking
clouds. In the proposed method, the density distributionof clouds is represented by using metaballs. Parametersof metaballs (center positions, effective radii, anddensity values) are determined automatically so that asynthesized image of clouds modeled by metaballs
coincides with the satellite image. Together with thesatellite image, the proposed method makes use of thefact that the color of clouds can be calculated byintegrating the scattered light due to particles in them.
Using this method, clouds with a shape and color similar
to real clouds can be automatically generated. Moreover,this paper also proposes an animation method for clouds
generated by a sequence of satellite images. In order todemonstrate the usefulness of the method, it is applied toanimations of the visualization of weather informationand the earth viewed from space.
In the following sections, the basic idea of modelingclouds is described in section 2. Next, in section 3, thedetails of the modeling method are discussed. In section
4, the method for animating the generated clouds is
proposed. And in section 5, several examples aredemonstrated. Finally in section 6, conclusions of thepaper and future works are discussed.

2. Basic Idea of Modeling Clouds from a
Satellite Image
Various representations can be used for modelingclouds, such as voxels[15], procedural functions[12][16], and metaballs (or blobs)[5][6]. Using metaballs,
clouds can be animated easily by moving their centers.
Therefore, in this paper, metaballs are used to model
them as shown in Fig. 1.
A density value at a point P in the cloud is given by
the following equation.
Nρ( P) ≈ ∑ q j f (rj , R j ) ,
j =1

(1)

sun lightIsunzcloudsscreenviewpoint P v(satellite image)
Pc

Lvb

P

viewing ray
pixel itφPabase planeIb Pbmetaballs

Figure 1: Geometry of clouds.
where N is the number of metaballs, qj the density at thecenter of a metaball j, f the field function, and Rj theradius of the metaball. And rj is the distance between the
point P and the center position of a metaball, Cj, that is,r j = P − C j . We use the field function proposed by
Wyvill et al.[24]. That is,() + 17 / 9 ⋅ (r / R )− 22 / 9 ⋅ (r / R ) + 1 ,f (r j , R j ) = −4 / 9 ⋅ r j / R j

6

j

4

j

2

j

j

when r j ≤ R j , otherwise 0.
Determining parameters of the metaballs is equivalent
to solving an inverse problem of determining the density
distribution inside the clouds so that an image ofsynthesized clouds is similar to a satellite image. The
problem is, however, very complicated and hard to solve.
Therefore, we assume that the multiple scattering can beneglected. Furthermore, for modeling clouds, theattenuation of light due to cloud particles isapproximated as a constant. Despite these assumptions,
there is no unique solution to the problem. Therefore,
the parameters of the metaballs are heuristicallydetermined as follows. First, each pixel of the satellite
image is classified into either cloud region or
background region. To do this, the satellite image isconverted to a monotone one. Then pixels withintensities higher than a specified threshold are
identified as clouds. Next, one metaball is added at the
pixel with the maximum intensity in the cloud region.
After that, its radius and density at the center are
optimized and the approximated image is calculatedusing the clouds modeled by metaballs. Then a newmetaball is added if the error between the satellite image
and the approximated image is greater than a specified
threshold. These processes are repeated until the error isless than the threshold.
The overview of the proposed method is as follows.
1. Classifying the pixels in the satellite image intoeither cloud regions or background regions.

2.

Generating a metaball at the pixel with the
maximum intensity in cloud regions of the satellite
image.
3. Optimizing the radius and the density value at thecenter of the metaball.
4. Calculating the approximated image using theclouds modeled by metaballs.
5. If the error between the satellite image and theapproximated image is less than a specified
threshold, stop. Otherwise go to step 6 after
calculating the image of difference between thesatellite image and the approximated image.
6. Go to step 3 after generating a metaball at the pixel
with the maximum intensity in clouds regions of
the image of difference.
In the following sections, details of the method are
discussed.

3. Modeling Clouds Using Metaballs
In this section, the method for determining
parameters is proposed after describing the method for
calculating the error between the satellite image and thesynthesized image by using clouds modeled bymetaballs.

3.1 Calculating the Error between Satellite
Image and Synthesized Image

particles from Pv to Pb. Similarly, τ(t) is the opticallength from Pb to P, τ(s) from Pc to P (see Fig. 1). By
putting Eq. 1 into Eq. 3, the following equation is
obtained.
I i ( λ ) = I b ( λ ) exp( − τ ( Lvb , λ ))Pa

1 M ( true )∑ ( I i − I i ) 2 → min ,M i =1(2)where M is the number of pixels in the satellite image,and Ii(true) and Ii are the intensity of the satellite image
and the intensity of the synthesized image at pixel i,
respectively. In the following, the calculation method of
Err is described.
As shown in Fig. 1, let the density be ρ(t) at a point P
in the distance t from the viewpoint Pv. Then theintensity Ii is calculated by the following equation[25].
I i ( λ ) = I b ( λ ) exp( − τ ( Lvb , λ )) + I sun ( λ )β( φ, λ )P× ∫Pb ρ(t ) exp( − τ(t , λ ) − τ( s, λ ))dt ,a(3)
where Ib is the background color, λ the wave length, Lvb
the distance between the viewpoint Pv and a point Pb,β(φ,λ) the phase function of cloud particles, φ the phaseangle between the viewing ray and the sun direction, Isunthe intensity of the sun light outside the atmosphere.
τ(Lvb,λ) is the optical length from Pv to Pb. The opticallength is obtained by integrating the density of cloud

j =1

exp( − τ (t , λ ) − τ ( s, λ ))}dt ,(4)where,tN

τ(t , λ ) = c ∫0 ∑ q j f j (rj , R j )dt ,

(5)

j =1

and c is the extinction coefficient. Since it is difficult todetermine the parameters of metaballs so that theintensity of the satellite image coincides with theintensity calculated by Eq. 4, it is approximated asfollows. First, the wavelength is neglected since
scattering of light due to cloud particles obeys Mie
scattering and the spectrum of scattering is not muchinfluenced. Therefore, the satellite image is converted toa monotone one. Second, the attenuation terms
exp(-τ(Lvb,λ)) and exp(-τ(t,λ)-τ(s,λ)) in Eq. 4 areapproximated as constants κ1 and κ2. Note that theseapproximations are only for modeling clouds. Then, thefollowing equation is obtained.
P N

I i = I b κ 1 + I sun β( φ)κ 2 ∫Pb ∑ q j f (rj , R j )dta

The parameters of the metaballs are determined sothat the mean square error between the satellite image
and the synthesized image is minimized, that is:
Err =

N

+ I sun ( λ )β( φ, λ ) ∫Pb { ∑ q j f j (rj , R j )

j =1

N

= I b κ 1 + I sunβ( φ)κ 2 ∑ q j F (rj , R j ) ,
j =1

(6)

(i = 1, K , M )where ,Pout

F (rj , R j ) = ∫Pinj f (r j , R j )dt ,j(7)

Pjin and Pjout the intersection point of the viewing raywith the metaball j. F is the integrated function of the
field function f and can be calculated analytically[26].
To obtain the background intensity, Ib, a satellinte image
without clouds is required. In this paper, it is obtainedby assembling the background regions of a set ofsatellite images by hand. Then, the intensity, Ii, of thesynthesized image can be calculated by Eq. 6. This canbe calculated incrementally every time a new metaball isadded. Let us assume Ii(old) is the intensity before adding
the metaball k and Ii(new) the intensity after adding it.
Then,
I i( new ) = I i( old ) + I sunβ(φ, λ )q k F (rk , Rk ) .

(8)

The second term in Eq. 8 is evaluated at the pixels

intensity distribution of viewpoint
satellite image
viewint ray

screen

the next metaball in order to avoid the same pixel being
chosen for the center point.

3.3 Optimization of Radius and Density atCenter
The basic idea for calculating radius Rk and density qk
at the center of the metaball k is to search for the optimalvalues by changing them little by little. Fig. 3 shows theprocess for determining the radius and density. In Fig. 3,

base plane
metaballintensity ofsatellite image

Figure 2: Determination of center of
metaballs.
through which the viewing rays intersect the metaball k.
Therefore, Ii can be calculated with a small computation
cost, resulting in faster the optimization processes forthe parameters.
Using Ii obtained by the above method, the error, Err,between the satellite image and the synthesized image iscalculated. Metaballs are added repeatedly until theerror is less than a specified tolerance.

integrated
distribution ofdensity of a metaball

initialdensitybaseplanemetaballinitial radius
(a)
error

3.2 Determining Center of Metaball
When the number of metaballs becomes large, thecomputation for generating images takes a long time.
Therefore, the number of metaballs should be as small as
possible. Depending on the position of the center of eachmetaball, the number of metaballs changes forrepresenting the clouds within the tolerance. The
integrated function F of the field function f has a peakvalue at rj=0 and decreases gradually as rj increases,
finally becoming zero at rj=Rj. The number of metaballs
tends to be small when the center position is chosen
where the function F fits the intensity distribution of thesatellite image. The reason for this is that the intensity
distribution of cloud images is smooth and the
distribution around the pixel with the maximum intensity
is considered to be similar to the distribution of thefunction F. Therefore, the center position is determinedon the viewing ray through the pixel with the maximum
intensity. In order to determine the center position inthree dimensional space, a base plane is set by the user
(see Fig. 2). The center point of the metaball is set to theintersection point of the viewing ray with the base plane.
When the metaballs are already placed at theintersection point, the intersection point of the viewing
ray with the metaballs is calculated and the center is set
to the nearest point as shown in Fig. 2. After one
metaball is generated, the image of the difference iscalculated. Then it is used for determining the center of

(b)

(c)

optimaldensity qk

optimal radius Rk(d)Figure 3: Optimization steps for thedensity and radius.
the base plane is parallel to the image plane and thedotted curve indicates the function, F(qk, Rk). For thissearch, the upper limit R* for the radius is specified by
the user.
The radius Rk and the density qk are determined tominimize the difference of intensity between thesynthesized image and the satellite image at pixels inside
the radius of the metaball. In Fig. 3, the shaded areas
indicate the difference. First, an initial radius and density
are set to d and I i / F (0.0, δ ) , respectively (Fig. 3(a)).
That is, the integrated value of the field function along
the ray through the center of the metaball coincides with
the intensity of the pixel corresponding to the center.
Next, the density is fixed and the optimal radius thatminimize the error is calculated by incrementing theradius by d (Fig. 3(b)). Then, after making the density
smaller by w, the optimal radius is searched for again(Fig. 3(c)). By making the density smaller, the radius
can be larger, hence one metaball can cover a larger area.
This results in reducing the number of metaballs. This
process is repeated until the optimal radius and density
are found (Fig. 3(d)). In this paper, d is set to the size of
one pixel and w is specified by the user. Note that ametaball is deleted if the density becomes zero while
searching.

4. Animation of Clouds
In this section, an animation method for clouds is
proposed. First, clouds are modeled from satellite
images taken at a certain intervals. Then they are
animated by interpolating the parameters of themetaballs.
In traditional morphing techniques, the user specifies

segments. However, this method is not applicable to theanimation of clouds. Clouds in one image moveaccording to the flow of the atmosphere, resulting in theclouds in the next image. Therefore, their movement
cannot be expressed just by interpolating the featurepoints. Although the flow analysis of the atmosphere isrequired for obtaining the exact movement of clouds,
this computation is too expensive. So, in the proposed
method, the user inputs the flow as Bezier curves byobserving a sequence of satellite images. Fig. 4(a) shows
an example of flow curves specified by the user. Using
these, a flow vector at the center of a metaball is
calculated as follows (see Fig. 4(b)). First, the minimum
distance dk and closest point Pk from the center point toeach Bezier curve are calculated. If the distance dk isless than a specified distance D, the Bezier curve affects
the movement of the metaball. Then tangent vector vk at
the closest point is calculated. The flow vector v at the
point is defined as the weighted sum of the tangent
nvectors, that is, v = ∑ wk v k . n is the number of Bezier
k =1

curves inside the domain of influence. The weights, wk ,is calculated as follows.
First, contribution ratio, ak, is calculated by:2 dk 
10−.

ak = 
 D
0.0


( d k ≤ D) .
( d k > D)

Then the weight, wk, is calculated by normalizing ak,,that is,flow curves
flow vector

d2

d1
d0

metaballdomain of influence(a)flow curves(b)

Figure 4: Calculation of flow vectors.
the features of images by using points or line segments
and intermediate images are generated by taking
correspondence between these feature points or line

(9)

n

wk = a k / ∑ a j .

(10)

j =1

Each metaball moves toward the flow vector v at thecenter of the metaball. In order to realize the smoothtransition from one image to the next image, eachmetaball is faded in and out by changing the density at
the center. If all the metaballs are faded in/out at thesame time, one can see “cross dissolve” in the transition.
To avoid this, different ones are faded in and out
randomly at different times.

5. Examples
Fig. 5 shows examples of clouds using satellite
images viewed from space. Fig. 5(a) is an infrared imageof a typhoon taken from the meteorological satellite,“HIMAWARI”. Fig. 5(b) shows clouds modeled bymetaballs. By comparing Fig. 5(a) with Fig. 5(b), it canbe seen that the proposed method can generate clouds
similar to those in satellite images. Fig. 5(c) shows thesame clouds viewed from a different viewpoint. Since
clouds are modeled in three dimensional space, they areseen from different viewpoints and shadows are cast on
Japan. Note that, to generate Figs. 5(b) and (c), the colorof the clouds are calculated by taking into account thesingle scattering of light, i.e. by using Eq. 4. As shownin Figs. 5(c). The infrared image used here is available
on the internet 1 , and was recorded at 18:00 on
September 15, 1995.
In this example, the number of metaballs is 8506 andthe calculation time for generating the clouds is 13
seconds using Silicon Graphics Indigo2 MAXIMUMIMPACT (195 MHz MIPS R10000). The calculation
time for generating Fig 5(b) is 3.7 minutes on the samemachine.
Next, the proposed method is applied to the makingof animations. We made two. For these animations,thirteen satellite images were used to generate clouds
and nine hundred images were produced by using themethod described in section 4. Fig. 6 shows images fromthe one, entitled “Weather Report”, that visualizes
weather information. In this animation, the movement ofa typhoon passing across Japan is visualized. These
examples show that the proposed method can generaterealistic clouds even if the viewpoint is varied.
Fig. 7 shows examples of the animation of the earth
viewed from space. In this animation, the position of thesun changes. The color of the earth is calculated bytaking into account the effect of the scattering of bothsunlight and sky light due to the atmosphere by using themethod developed by Nishita et. al.[27]. In Fig. 7(a), the1

Several sites provide satellite images. For example,
http://www.jwa.go.jp/gms.html.

sun is behind the viewer, turning the color of the clouds
red. In Figs. 7(b) and (c), the sun is above the clouds.
And finally in Fig. 7(d), the sun is hidden behind theearth. These examples show that the optical effects canbe simulated since 3D clouds are generated. These
effects cannot be simulated just by mapping the satellite
image as textures.

6. Conclusions
By using metaballs, a method for modeling clouds inthree dimensional space from a single satellite image has
been proposed. By making use of a satellite image ofreal clouds, the proposed method can generate clouds
with authentic shape and color. We have also proposed
an animation method for clouds modeled by metaballs.
Using the proposed method, 3D clouds are generated
and they can be viewed from arbitrary directions. The
color of the clouds can be calculated by simulating theoptical effects. Furthermore, to animate clouds, they are
generated from a series of satellite images and shapes ofclouds at each frame are obtained by interpolating them.
There are several future projects that remain: (1) In
order to increase realism by adding various plausible
fine features, some kind of turbulence model such as theone used in [14] or [12] should be included. (2) To
model clouds more accurately, methods for theestimation of the height of clouds from satellite
images[23] should be incorporated. (3) Extending the
proposed method to generate clouds from photographs
taken from the ground will be useful for modelingclouds such as cumulonimbi.

References[1] R. V. Klassen, “Modeling the Effect of the
Atmosphere on Light," ACM Trans. on Graphics,
vol.6, No.4, pp. 215-237 (1987).
[2] K. Kaneda, G. Yuan, E. Nakamae, T. Nishita,“Photorealistic Visual Simulation of Water Surfaces
Taking into account Radiative Transfer," Proc. of
CG&CAD'91 (China), pp. 25-30 (1991).
[3] J. Stam, E. Fiume, “Turbulent Wind Fields for
Gaseous Phenomena," Proc. of SIGGRAPH'93, pp.
369-376 (1993).
[4] N. Max, “Efficient Light Propagation for Multiple
Anisotropic Volume Scattering," Proc. of the Fifth
Eurographics Workshop on Rendering, pp. 87-104(1994).
[5] J. Stam, E. Fiume, “Dipicting Fire and Other
Gaseous Phenomena Using Diffusion Processes,"
Proc. of SIGGRAPH'95, pp. 129-136 (1995).
[6] T. Nishita, Y. Dobashi, E. Nakamae, “Display of
Clouds Taking into Account Multiple Anisotropic
Scattering and Sky Light," Proc. of SIGGRAPH’96,

pp. 379-386 (1996).
[7] N. Foster, D. Metaxas, “Modeling the Motion of aHot, Turbulent Gas," Proc. of SIGGRAPH'97,
pp.181-188 (1997).
[8] R. Voss, “Fourier Synthesis of Gaussian Fractals: 1/f
noises, landscapes, and flakes,” SIGGRAPH’83:
Tutorial on State of the Art Image Synthesis, Vol.
10 (1983).
[9] F. K. Musgrave, “A Note on Ray Tracing Mirages,”
IEEE Computer Graphics and Applications, Vol. 10,
No. 6, pp. 10-12 (1990).
[10] G.Y. Gardener, “Visual Simulation of Clouds,"
Computer Graphics, Vol.19, No.3, pp. 279-303(1985).
[11] D. S. Ebert and R. E. Parent, “Rendering andAnimation of Gaseous Phenomena by Combining
Fast Volume and Scanline A-Buffer Techniques,”
Computer Graphics, Vol. 24, pp. 357-366 (1990).
[12] D. S. Ebert, “Volumetric Modeling with Implicit
Functions: A Cloud is Born,” Visual Proceedings,
SIGGRAPH’97, pp. 147 (1997).
[13] G. Sakas, “Modeling and Animating Turbulent
Gaseous Phenomena Using Spectral Synthesis,” The
Visual Computer, Vol. 9, No. 4, pp. 200-212(1993).
[14] J. Stam, E. Fiume, “A Multiple-Scale Stochastic
Modelling Primitive," Proc. of Graphics
Interface’91, pp. 24-31 (1991).
[15] J. T. Kajiya and B. P. V. Herzen, “Ray Tracing
Volume Densities,” Computer Graphics, Vol. 18, pp.
165-174 (1984).
[16] D. S. Ebert, F. K. Musgrave, P. Peachey, K. Perlin,
and S. Worley, “Texturing and Modeling: A
Procedural Approach,” AP Professional, pp.
267-294 (1994).
[17] S. M. Seitz and C. R. Dyer, “View Morphing,” Proc.
of SIGGRAPH’96, pp. 21-30 (1996).
[18] M. Levoy and P. Hanrahan, “Light Field
Rendering,” Proc. of SIGGRAPH’96, pp. 31-42(1996).
[19] S. J. Gortler, R. Grzeszczuk, R. Szeliski, M. F.
Cohen, “The Lumigraph,” Proc. of SIGGRAPH’96,
pp. 43-54 (1996).
[20] Y. Horry, K. Anjyo, K. Arai, “Tour Into Picture:
Using a Spidery Mesh Interface to Make Animationfrom a Single Image,” Proc. of SIGGRAPH’97,
pp.225-232 (1997).
[21] D. Terzopoulos and A. Witkin, “Physically-based
Models with Rigid and Deformable Components,”
IEEE Computer Graphics and Applications, Vol. 8,
No. 6, pp. 41-51 (1988).
[22] P. E. Debevec, C. J. Taylor, J. Malik, “Modelingand Rendering Architecture from Photographs: A
hybrid geometry- and image-based approach,” Proc.
of SIGGRAPH’96, pp. 11-20 (1996).

[23] C. A. Lee, C. Kesselman, S. Schwab,“Near-Real-Time Satellite Image Processing:
Metacomputing in CC++,” IEEE Computer
Graphics and Applications, Vol. 16, No. 4, pp.
79-84 (1996).
[24] G. Wyvill and A. Trotman, “Ray-Tracing Soft
Objects," Proc. of CG International, pp. 439-475(1990).
[25] K. Kaneda, T. Okamoto, E. Nakamae, T. Nishita,“Photorealistic Image Synthesis for Outdoor
Scenery under Various Atmospheric Conditions,"
The Visual Computer, Vol.7, No.5&6, pp. 247-258(1991).
[26] T. Nishita and E. Nakamae, “A Method for
Displaying Metaballs by using Bezier Clipping,”
Computer Graphics Forum, Vol. 13, No. 3, pp.
271-280 (1994).
[27] T. Nishita, S. Takao, T. Katsumi, E. Nakamae,“Display of The Earth Taking into AccountAtmospheric Scattering,” Proc. of SIGGRAPH’93,
pp. 175-182 (1993).

(a) a satellite image.

(a)(b) clouds modeled by metaballs.

(b)
Figure 6: Examples of the visualizationof weather information.

(c) clouds viewed from different viewpoint.
Figure 5: Clouds generated from asatellite image.