Yesterday’s post showed how to create a sea level rise flooding animation in Google Earth, like this one:
But if you downloaded the KMZ file used to create this animation, and ran it with 3D buildings turned on at the tip of Manhattan, the final image you’d get with 12 meters of flooding looks like this:
And there’s a problem with the accuracy of this image: there’s no actual depth to the flooding, i.e. the lower levels of the buildings aren’t covered with water. In fact, some of the buildings you can see in the view above would be completely covered with water if this were a more realistic depiction. That’s because no absolute altitude was assigned to the image overlays used in creating the animation, so they are “clamped” to the terrain level. But by assigning a height to every overlay image in the animation, one can create a realistic effect where the flooding doesn’t just cover more area as the sea level rises, but covers the bottom levels of some buildings, and completely covers other ones. This would be similar to the animations shown in the movie “An Inconvenient Truth”, and in one sense even better. In that movie, the flooding was show in overhead views, while the Google Earth animation can be viewed at an oblique angle of your choosing, with 3D buildings.
If you haven’t read the previous post, you should do so now, since much of what follows won’t make sense without it. Of course, if you’re only interested the final results and not how I got there, you can scroll down to the bottom to see the animations and download the KMZ file :).
The animation above uses 61 overlays, representing the areal extent of flooding as the sea level rises from 0 meters to 12 meters in increments of 0.2 meters. So you’d think that the easiest way to add depth to the flooding animation would be to assign an absolute altitude to every image overlay that corresponds to its flooding height. And that’s basically the way to do it, but I found that there’s a pair of complications:
- You can only assign integer values for the altitudes, i.e. you can specify 1 meter, 2 meters, 3 meters, and so on, but you can’t specify 1.2 meters, 2.6 meters, 3.8 meters, etc.. The only solution is to assign every image overlay an integer altitude, which will make the animated effect of rising water a bit jerky. No way around it, though.
- I tried to assign logical integer altitudes to the overlays: 0 meters clamped to the ground, 1 meter absolute elevation for every overlay from 0.2 meters to 1 meter, 2 meters for 1.2 meters to 2.0 meters, etc.. But I found that I got weird animation effects, where sections of flooding would appear and disappear inappropriately, most likely due to some interaction between the Google Earth terrain and the overlays. To get rid of this, I set every image overlay from 0.2 -1.0 to 2 meters in absolute elevation, 1.2 – 2.0 to 3 meters, all the way to 11.2 – 12.0 being at 13 meters absolute elevation. This will exaggerate the flooding level by 1.0 – 1.8 meters, but the effect is fairly small, and doesn’t make a huge difference in the final results (3-6 feet of added apparent flooding depth, but the flooding extent is unchanged).
To add altitude to the image overlay, you have two options:
1. In the KML or KMZ file created yesterday, opened and displayed in the Google Earth places pane at the left, right-click on every image overlay and choose Properties. Then click on the “Altitude” tab, and enter the appropriate altitude and set the mode at “Absolute”, which sets the image overlay height at the level above sea level; setting it at “Relative” would make the image overlay height relative to the underlying terrain.
2. It’s probably faster to add the altitude data and mode directly to the original KML data file. To every set of data for an image overlay, you would add the following lines:
Where “x” is the height in meters you’re setting that image overlay to be at. For example, in the snippet of KML file below, for the image overlay that corresponds to 11.4 meters of sea level rise, “x”is set to 13 in the text indicated in bold:
<href>N:/Manhattan 12-meter/Manhattan 12-meter by 0.2 no label/LEVEL11.4.gif</href>
You would add a similar set of code to define altitude in every section that defines an image overlay’s properties.
By adding this altitude data to the image overlays, the flooding effects become more realistic, especially when you have the 3D buildings layer turned on. The first video example shows the effects of a 12-meter sea level rise, the “doomsday scenario” of “An Inconvenient Truth”, which would happen if the Greenland icecap melted completely and the West Antarctic ice shelf collapses. It shows the same general area as the picture at top, but notice that buildings that are high and dry in the top picture now become submerged as the sea level rises to cover them:
The second example overlooks the site of Ground Zero:
The colored “streaking” in the videos is an artifact of the video capture, and doesn’t show up in the actual Google Earth view. If you want to try this out yourself, you can download the KMZ file here for this Google Earth flooding animation. Turn on the “3D Buildings” layer, as in the videos above, for the most realistic effects.Next week, I’ll post on creating this kind of animation, but using vector overlays instead of raster; it can take longer to create vector KML overlays, but it can have some advantages over using raster images.