Happy New Year Mountains!

by Gong Liu January 20, 2012 09:27

The Video

At the beginning of the year I made the following Youtube video as a retrospective of my hiking/climbing activities in 2011. I have been asked how to make it and hence this post.

2011 was a fantastic year for me as a hiker. I logged some 430 hiking miles, summited more than 30 unique mountain peaks, visited 6 national parks, and met a bunch of awesome people. Here is a list of all the hiking trips I did in 2011:

How to Make It

Making the video involves these steps:

  1. Create the 3D greeting signs
  2. Erect the signs on mountain tops
  3. Create a tour visiting each sign
  4. Play and record the tour as a video

I'll explain each step in detail. But before you continue, make sure you have the following software tools:

Create the 3D greeting signs

Here are the steps to create a 3D greeting sign:

  1. Launch Google SketchUp
  2. Click Tools -> 3D Text
  3. Enter a greeting text and set the height and thickness (extruded) of the text, as shown in Fig. 1. You want to make the sign big enough so that it can be seen miles away. I set the text height 30 ft. As a comparison the famous Hollywood Sign is 45 ft tall.
  4. Use the Paint Bucket on the tool bar to paint the text in the color or texture of your choice, as shown in Fig. 2.
  5. Click File -> Export -> 3D Model..., enter a name for the file where the 3D model will be saved, select .dae format, which is what Google Earth recognizes, and press OK. This will save your 3D sign to a .dae file, say "Hello.dae".
  6. Repeat steps 2 - 5 for each additional sign you have. Each sign must have its own .dae file.


Fig. 1. Enter text and its height and thinkness


Fig. 2. Color the text using Paint Bucket tool

Erect the signs on mountain tops

Basically you'll need to create a KML document that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"
xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document>
  <name>Hello Sign Demo</name>
  <Folder>
   <name>Hello</name>
   <Placemark id="Hello">
    <name>Hello</name>
    <description><![CDATA[Hello Hollywood]]></description>
    <Model>
     <altitudeMode>relativeToGround</altitudeMode>
     <Location>
      <longitude>-118.322212</longitude>
      <latitude> 34.134282</latitude>
      <altitude>15</altitude>
    </Location>
    <Orientation>
     <heading>0</heading>
     <tilt>-90</tilt>
     <roll>0</roll>
    </Orientation>
    <Scale>
     <x>1</x>
     <y>1</y>
     <z>1</z>
    </Scale>
    <Link>
     <href>Hello.dae</href>
    </Link>
   </Model>
  </Placemark>
 </Folder>
</Document>
</kml>

Here are some highlights about the KML document:

  • The 3D model, "Hello.dae", is referenced under the <Link> tag. This assumes that "Hello.dae" is in the same folder as the KML document.
  • <tilt>-90</tilt> erects the sign from horizontal position to vertical position.
  • If you want to align the long side of the sign (width) to a mountain ridge or a certain direction, adjust the <roll>.
  • You need to know the latitude/longitude coordinates of the mountain top where you want to put the sign. The coordinates go under the <Location> tag.
  • The altitude is relative to the ground as indicated by the <altitudeMode> tag. Within the long side of the sign the mountain top may not be level. If you set altitude to 0 (ground level), part of the sign may be buried underground. You need to adjust <altitude> so that the whole bottom of the sign is just above the ground.
  • I put the <Placemark> that represents the 3D sign in a <Folder> for easy organizing. For each additional sign, just add another <Folder>.

Fig. 3 shows what it looks like when the KML document is loaded in Google Earth.


Fig. 3. The "Hello" sign is put on top of Mt Lee, above the famous Hollywood Sign.

Create a tour visiting each sign

In Google Earth a tour in its simplest form is just a series of camera points looking at an object of interest. Google Earth has a built-in touring feature that automatically generates a tour based on a predefined path. The automatically generated tour is fixed in terms of range (distance from camera to object), tilt (camera angle) and speed. It is most suitable for flying by a hike trail, for example. In our case, we are interested in individual 3D signs, not the paths between them. We want to see a sign/mountain top in different distances, angles and directions. This means we have to create the tour manually, one camera point at a time. It can be quite time consuming, if we have a lot of signs and each sign requires multiple camera points. However, the flip side is that we are our own film director. How cool is that?! We decide the camera settings, the shots, and overall effects. We can swipe across the sign, pierce through the sign, approach and leave the sign in any angle, direction and speed we like. It's all up to our imagination and creativity!

As an example I have created 4 views (camera points) around our "Hello" sign, as shown in Fig. 4.


Fig. 4. Four camera points looking at "Hello" sign

Here are the steps to turn a view into a <gx:FlyTo> tag - the building block of a tour:

  1. Manipulate Google Earth to form the view you want using the navigation controls.
  2. Click the Record a Tour button. The tour recorder appears at the bottom-left of the map screen.
  3. Click the Record button twice in quick succession. This creates a mini tour of current view and brings up the Tour Player at the bottom-left of the map screen.
  4. Click the Save button on the Player and the OK button in the New Tour dialog box. This adds an Untitled Tour entry to the KML document tree in the left-hand panel.
  5. Right click the Untitled Tour entry and select Cut.
  6. Open a text editor, such as Notepad, and Paste the Untitled Tour to the text editor.
  7. You should see two <gx:FlyTo> tags in the editor. Copy the first one and paste it to the KML document that contains your 3D sign.
  8. Repeat steps 1 - 7 for each additional camera point.
  9. Repeat steps 1 - 8 for each additional sign.

The final result looks like this:

<Document>
  <name>Hello Sign Demo</name>
  <open>1</open>
  <gx:Tour>
    <name>Play me!</name>
    <gx:Playlist>
 
      <gx:FlyTo>
        <gx:duration>7.0</gx:duration>
         <LookAt>
          <longitude>-118.3215414751394</longitude>
          <latitude>34.13467476710581</latitude>
          <altitude>0</altitude>
          <heading>-0.7037646645994531</heading>
          <tilt>77.98378575832396</tilt>
          <range>299.6121338753385</range>
          <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
        </LookAt>
      </gx:FlyTo>

      <gx:Wait>
        <gx:duration>6.0</gx:duration>
      </gx:Wait>

      <gx:FlyTo>
        <gx:duration>3.0</gx:duration>
        <gx:flyToMode>smooth</gx:flyToMode>
        <LookAt>
          <longitude>-118.3219234024494</longitude>
          <latitude>34.13433034303296</latitude>
          <altitude>0</altitude>
          <heading>53.48179823778509</heading>
          <tilt>78.30176989580932</tilt>
          <range>200.1038065956998</range>
          <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
        </LookAt>
      </gx:FlyTo>

      <gx:FlyTo>
        <gx:duration>3.0</gx:duration>
        <gx:flyToMode>smooth</gx:flyToMode>
        <LookAt>
          <longitude>-118.3221082458166</longitude>
          <latitude>34.134407451771</latitude>
          <altitude>0</altitude>
          <heading>130.6419059159441</heading>
          <tilt>79.00718054353172</tilt>
          <range>130.4629410309265</range>
          <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
        </LookAt>
      </gx:FlyTo>

      <gx:FlyTo>
        <gx:duration>3.0</gx:duration>
        <gx:flyToMode>smooth</gx:flyToMode>
        <LookAt>
          <longitude>-118.3208095498427</longitude>
          <latitude>34.13467780708835</latitude>
          <altitude>0</altitude>
          <heading>-123.1213268708733</heading>
          <tilt>76.57841332587158</tilt>
          <range>73.18637186655157</range>
          <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
        </LookAt>
      </gx:FlyTo>

    </gx:Playlist>
  </gx:Tour>

  <Folder>
    <!-- the Hello Placemark here -->
  </Folder>
</Document>

Some key points about the KML document:

  • For each <gx:FlyTo> add a <gx:duration> tag to allow some time for Google Earth to fly from previous point and current point.
  • For the first <gx:FlyTo> add extra <gx:Wait> time to allow tiled map images fully loaded. This is especially helpful for a slow computer with slow internet connection.
  • For each subsequent <gx:FlyTo> add <gx:flyToMode>smooth</gx:flyToMode> tag to allow smooth transition from one point to the next.
  • You can use <gx:SoundCue> to add background music to the tour.
  • You can use <gx:AnimatedUpdate> to pop up a balloon with additional information about the sign or the mountain.

Play and record the tour as a video

Once you have created the KML document that includes your 3D signs and the tour visiting each of them, you can play the tour by opening the KML in Google Earth, highlighting the tour entry in the left-hand panel, and clicking the Play Tour button, as shown in Fig. 5.


Fig. 5. Play a tour

To make a video out of the tour, you can use one of the following three methods, depending on what software and hardware you have:

  • Using Google Earth Pro. Google Earth Pro Edition has a built-in video capture function.
  • Using 3rd party screen recording program. I tried Camtasia Studio but I had difficulty to record a HD video with it. Playing the tour and recording the screen in full HD at the same time turned out to be too much for my lil' old computer.
  • Recording off the screen with your camcorder or camera. I ended up using this method for the video in this post. Just set my point n' shoot camera on a tripod and recorded the screen and sound in one shot. Not the best quality but good enough for a Youtube video.

As a final touch I used the simple video editing features in Youtube to add annotations and credits. Of course you can use your favorite video edting program to do the same and much more to make your video look more professional.

Downloads

Hello Sign Example HelloSignDemo.kmz 15.2 KB
Happy New Year Mountains with background music HappyNewYearMountains.kmz 25.7 MB
Happy New Year Mountains w/o background music HappyNewYearMountains1.kmz 3.17 MB

Hiking Trail Fly-by Tours with Google Earth

by Gong Liu October 30, 2011 18:00

Mt. Baldy via Acorn Trail, Pine Mountain & Dawson Peak 

The route is considered one of the hardest routes to the Baldy Summit. This rollercoaster hike challenges you both ways, out and back.

Trail stats: 16 miles r.t., 7600 ft elev. gain.

Music: "A Little Piece" by The Jezabels

C2C (Cactus to Clouds)

C2C is ranked the #5 hardest dayhike in America by Backpacker Magazine for its insane elevation gain and mileage. Skyline Trail up, Marion Mountain Trail down.

Trail stats: 21.7 miles, 11200 ft elev. gain. 

Music: "'Till I Collapse" by Eminem & Nate Dogg 

LA Marathon 2011 Training Schedule

by Gong Liu December 07, 2010 18:37

The following is my 16-week marathon training schedule adapted from Mark Bravo's Intermediate Level Plan.

 

Here are some highlights about this schedule:

  • It requires only 4 running days per week, while most marathon training schedules, including the one I used for my first marathon, require 5 running days per week. This allows me to incorporate more cross training which makes it less boring.
  • The schedule is very long-run centric - more than 40% weekly mileage is from Sunday long run. It includes three 20+ milers while most beginning/intermediate level schedules only have one or two 20 milers.
  • I like the fact that the schedule builds in some "stepback" weeks, which allows recovery and prevents injury.
  • I also like the fact that resting days are on Saturdays. This way I have fresh legs to run the Sunday long runs.
  • Since this is my second marathon, I have a time goal in mind. Based on my latest half marathon time (2:07:00) and my best half marathon time (1:56:25), my predicted full marathon finish time should be around 4:15:00, or marathon goal pace (MGP) 9:44 per mile. Most Friday runs and the last 20 miler should be done in this pace. MGP will be recalculated based on the finish time of the first 20 miler. 
  • I add Tempo and Hill running (TH) to the schedule. Tempo run pace will be determined based on 80-90% of maximum heart rate. I'll do this in the gym on a treadmill because I'll have better control over the speed and incline there.
  • Cross Training (CT) includes cardio machines (stationary bike, elliptical trainer, stairmaster, etc.), weight training, core training, and dynamic stretching. Easy Cross Training (ECT) will be done with less duration and intensity, and can also be a resting day if necessary.   

Now that I have set the goal and made the plan, all I have to do is to follow it through without injury, hopefully. 

Motivational Quote

"Every morning in Africa, a gazelle wakes up. It knows it must outrun the fastest lion or it will be killed. Every morning in Africa, a lion wakes up. It knows that it must run faster than the slowest gazelle, or it will starve. It doesn't matter whether you're a lion or a gazelle when the sun comes up you'd better be running." -Anon

 

Take on the Forrest Gump Route

by Gong Liu April 18, 2010 19:55

My cross country workout tracker has proven to be a smashing success. Here is what I have achieved since I started the tracker a little bit over a year ago:

  • Lost more than 20 lbs
  • Body fat has dropped 5%, from 20% to 15%
  • Got some impressive cardiovascular readings for my age
    • Total cholesterol: 160 mg/dL, HDL/LDL: 67/85 mg/dL
    • Blood pressure: 106/67 mmHg, close to that of an athlete according to this chart
    • Maximum heart rate: 172 bpm
    • Resting heart rate: 40 bpm, not bad at all compare to Lance Armstrong's 32 bpm
  • Finished my first half marathon with an above average Age Grade
  • The training of my first marathon is well underway
  • I am in the best shape I've been in since my 20's

To maintain these benefits in long term, I need to take on something grander, more ambitious. What I have in mind is the Forrest Gump Route. According to my research, the route consists of 5 cross country trips with a total distance of some 15,000 miles. Supposedly, Forrest Gump did it in over 3 years. Since I have a full time job and a life other than just fitness, I will allow myself to cover the same distance in 5 years through daily workout. And like my previous cross country workout, every activity by any means counts, running, biking, hiking, cardio machines, swimming, you name it. Here is a breakdown in percentage of mileage I try to maintain:

  • 60% - by bike or stationary bike
  • 25% - by running outdoor or on treadmill
  • 15% - by cardio machines, hiking, etc.

I credit much of my improvement in physical fitness as well as mental strength to the intensive marathon training. I would like to do this once a year just to reassure my fitness level. If I can run a marathon, I must be in good shape. Here are some local marathon events that I have targeted on:

  • Orange County Marathon 2010 (Done!)
  • Los Angeles Marathon 2012 (Done!)
  • Orange County Marathon 2012 (Done!)
  • Long Beach ICB Marathon
  • Rock 'n' Roll Marathon San Diego
  • Surf City USA Marathon

Goal Statement

So here is a summary of my goals:

  • Traverse the Forrest Gump Route in 5 years through daily workout
  • Long term commitment to fitness and healthy diet
  • Run a few marathons along the way

The Tracker

I will use the following tracker to track my progress. I will update it on a daily basis. So please come back and check it often. Just zoom in and hover your mouse cursor on the little red dots to see my daily activities.

 

About

A seasoned computer professional. A tofu culture evangelist...
more >>

Tag Cloud

Calendar

<<  April 2017  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar
Copyright © 2008-2011 Gong Liu. All rights reserved. | credits | contact me
The content on this site represents my own personal opinions, and does not reflect those of my employer in any way.