|
Getting Involved
If you have already created your own Applications
and want to have them hosted or linked from EarthSLOT, please contact
us.
Want to learn more about the technology and figure
out how to create your own applications? Read on.
Note: It would be best to
visit the 3D Engines pages and try out a few Applications in the
Fly Now! page before reading this, so you will have a good idea
of what's possible..
Understanding the technologies
involved
In getting started, the most important thing to
realize is the differences between an earth model, the
applications created using them as a background,
and the 3D software engine that makes them work
together. Note that to view any of our applications listed below
or in the Fly Now! page, you must install the appropriate software;
see the Fly Now! page for more
details on software installation.
Earth Models. The earth model
consists of terrain data that defines the shape of the land and
imagery that defines the color of it. Often, many different imagery
layers are draped over the same terrain data (creating different
earth models), and typically many different imagery sources (air
photos, satellite imagery, etc) are stitched together within the
same earth model. For example, many global earth models will use
Landsat 7 satellite imagery at 15 m resolution for the entire globe,
but stitch in higher resolution air photos over cities where more
detail is desireable. Combining imagery in this way is responsible
for the differences in 'fuzziness' of the imagery and the sharp
changes in color seen across the boundaries of different imagery.
Earth models do not need to be global, they can also be simply a
rectangular area covering an area of interest; these are much smaller
and can often fit on a regular hard drive. Each 3D software engine
has a different level and method of pre-processing and real-time-processing.
Smaller datasets (say several GBs) are typically extensively pre-processed,
such that the imagery and elevation data are fused together into
a single file, which can then be put onto a CD, DVD, or FTP. For
larger earth models (many GBs or TBs), the imagery and elevation
files are left separate, and the 3D engine then processes it on
demand based on user needs. That is, if a user is looking at Paris,
data from Amsterdam are not being processed (unless another user
is looking at it). This method saves considerably pre-processing
time and better yet allows for very easy updates without need to
reprocess the entire dataset again. Though some 3D engines allow
users to add imagery directly from Applications, practically the
only way to stream very large imagery files is by embedding directly
into the Earth Model. Follow the Earth
Models link at left to learn more about the ones found on EarthSLOT.
Applications. Applications use
Earth Models as a backdrop over which they overlay of things like
street names, weather station locations, GIS layers like shapefiles,
3D moving objects like airplanes or cars, and basically anything
else that is not terrain or imagery data. The same vector data can
be overlaid onto many different globe models. These data overlays
essentially define a different application. For example, an application
on glaciers likely would not contain data on volcanoes, as a means
to both save file size and reduce clutter. But as a user, you can
merge different applications together, modify existing ones, or
create brand new ones. Unlike earth models, Applications are not
streamed from a central server but rather download whole and run
locally, since they are typically only a few megabytes in size.
Because they are not streamed, any image overlays created within
the Application must also be download whole, and this can serious
degrade flight performance, as this file sits in RAM; such Application
image overlays are often the only quick and easy way for a typical
user to ingest their own imagery. The Fly
Now! page contains our current holdings of Applications..
3D software engines. There are
many different 3D engines out there. Technically speaking the ones
we use at EarthSLOT are all 2.5D, since you cannot create or fly
through tunnels or places with more than one elevation at a given
coordinate (though this can be faked out by importing a true 3D
object and overlaying it onto an Earth Model. Other than World Wind,
all of the engines used here are proprietary and cannot be altered
by an end-user. However, most have some form of an Advanced Programming
Interface which users can use to access the engine at a low level
and create new tools or functionality. Each engine has a different
approach to its server technology, but there are some common features.
Specifically, the high resolution imagery is resampled to lower
resolutions, and this low resolution data is served first because
it takes less bandwidth. As you fly closer to the surface or to
a new location, successively higher resolution layers are sent from
the server to the user and displayed in the user's client software;
this client software can be a commercially purchased package or
something custom made, depending on whether the engine allows this
or not. These "pyramid layers" as they are called are
the key to server efficiency and user happiness. If you look closely
as you fly around, you will see blurry areas get sharper -- this
is the next successive layer in the pyramid being delivered to your
client viewer. At this time, there are no pure-HTML client viewers
that allow full motion flight in 3D, though we offer one that offers
still frame navigation, thus every 3D engine must have a client
application running locally to work. This client software uses the
user's local CPU to navigate and make requests of the server for
new imagery, distributing the workload considerably. The 3D
Engines page describes those the we work with in EarthSLOT,
with more information about each.
What does
Open Source mean in this context?
Here we are mostly talking
about the Applications themselves, not the 3D engines. If everyone's
implementation of the same engine worked differently it would be
chaos, so in our opinion it's best to leave them somewhat proprietary
in the hands of a few benevolent dictators that can ensure backwards
compatibility and quick bug fixing. However, the key open-source
and academic point here is that use of the engines
is free and that the source codes for applications created using
those engines be shared in some form. So to us, the Applications
you find on the Fly Now! page are open source and freely shared.
The rest of this page provides some examples of how to get started
creating your own applications.
Creating
Applications with Skyline Software
The easiest way to start
creating your own applications with Earth Models created using Skyline
Sofware's 3D engine is to purchase TerraExplorer Pro (TEP) from
them. The academic price for this when we bought it was $500, plus
$750 for first year tech support and maintenance. It is a hugely
powerful software package, easily allowing users
to import GIS data, 2D and 3D still or moving objects, link to SDE
servers, create routes and animate actions along the way, and much
much more. You can get a sense of the full capabilities by viewing
the Help file for TerraExplorer
Pro. The application files are binary, so they are not easy
to modify without TEP. They have a .FLY extension.
TEP can be used as
a great, easy-to-use 3D GIS, even if you do not share the
Applications on-line. Click here
and fly to McCall Glacier to see the locations of weather stations,
survey stakes, and other science equipment used in project to study
glacier/climate interactions in the Arctic.
A powerful feature of TEP
is the ability to create Applications that acts as a front-end
for prexisting web databases. Here
is an example of accessing a glacier photo database that already
existed at the National Snow and Ice Data Center. All we did was
ingest a spreadsheet with columns containing photo name, latitude,
longitude, and the url where the photo could be found. The only
tricky part was adjusting the elevation of the labels that appeared
at the same spatial coordinate so that they do not overwrite each
other. We have several other examples of this use in the
Fly Now! page.
You can also use it as a query tool for
ArcSDE servers or your own databases. Here
is an example of how to query an existing database, in this case
the World Glacier Inventory hosted at our own site (originally held
at NSIDC). When you click on glacier label, you launch ASP scipts
that build a new web page. It's not very sophisticated, but could
be made more so.
If you do not want to pay
for TerraExplorer Pro, you can still do almost everything at the
code level using their API, which is available to users through
EarthSLOT when using the Earth Models that we serve (that is, if
you have a Skyline Earth Model on your hard disk, access to the
API magically disappears). The last several chapters of the TEP
Help file describe the API commands and how to use them. For
example, here
are examples of custom viewers that you can embed into
your own web page. Use your browser to check out the code
it took to create these windows -- it's not very complicated. All
sorts of new tools can be created using this API; for example, we
are working on a tool that allows users to plan helicopter flights
into remote areas, graphically allowing the user to pick a flight
route and calculating fuel burn and need for resupply, outputting
a complete flight plan at end. This API is a hugely powerful resource.
Using TEP (or the API),
you can create routes in your Application that automatically lead
the user through the terrain and activate scripts along the way
that launch voice overs, turn layers on/off, play movies, or just
about anything you can dream up. If you click on the Overview route
in this file, you will be flown to McCall Glacier and get a quick
overview of the research there.
You can add your own imagery
or elevation data to a Skyline Earth Model, but it is tricky. Using
TEP, you can add an imagery layer, but only a small one, as larger
ones chew up too much RAM. The best way is to create your own Earth
Model, or have us do it for
you, using TerraBuilder. Our initial
vision for EarthSLOT was to create custom Earth Models for the community
ourselves as this is the difficult and expensive part, leaving the
easy and fun part of creating applications with them to end users;
this is more or less Google Earth's approach, only using Keyhole's
software rather than Skyline's as we do. Here
is an example of overlaying model output (in this case soil moisture)
over terrain. The result is a streamed product that delivers great
flight performance over the internet, and it can also be run locally
if it is downloaded in its entirety. As an example, here
is a link to the Blue Marble Next Generation Earth Models that we
created which you can download and run locally. These stand-alone
applications have a .MPT extension; the Earth Models served only
over the internet have a .TBP extension.
Creating
Applications with Google Earth
Creating simple Applications
with Google Earth is fairly
easy. Their free viewer also lets you add your own labels, merge
Applications together, and save them. If you want to import GIS
layers, you can either purchase their GIS Import Tool, or use one
of several open-source tools that others have created. The Applications
are written in KML (Keyhole Markup Language), which is an ascii
text based language similar to HTML. Because it is ascii text, users
can create their own KML files without needing Google's tools, similar
to the API available for Skyline Software. The text-based language
greatly facilitates creating custom scripts to update data sets.
For example, here
the USGS has taken their earthquake catalog and automatically posted
an updated KML file to their web page every day containing the last
week's earthquakes.
Custom images can be overlaid
onto Google Earth in two ways. First is that you can contact Google
and ask them to use your images; likely this will only work if they
are true color and of higher resolution than whatever they have
at that location. Note that because Google is selling a service
(their Earth) rather than software, you cannot create your own custom
Earth Models using it. The other method is to use Google Earth Pro
to ingest the images within the Application. This turns out to be
a tricky process. Here
is an example of this process using Hurricane Katrina imagery; note
that the imagery contained within the Application does not load
as quickly or render as smoothly as the streamed imagery underneath
it..
Creating sophisticated applications with Google
Earth is not straightforward. This is likely to change in the future
as Google throws more of its weight behind it, but simple things
like creating routes that vary in elevation are simple not possible.
Neither is it possible to script various GIS layers to turn on and
off while playing a route.
Creating
Applications with World Wind
Creating applications with World
Wind is more challenging than other 3D Engines because there
is no "Pro" tool that facilitates this. The flip side
is that being totally open source, the customizations that are possible
are greater. Their web page has details on the code and an extensive
help
and FAQ file. We haven't used it that much to date, so we have
no expertise to share here.
Creating
Applications with GeoFusion
We've only just started learning about GeoFusion,
but it seems to be a quite powerful software package. It does not
seem as fully featured out of the box as Skyline's TerraExplorer
Pro, but in some ways it seems much more extensible. In particular,
it gives users the power to blend between different streamed imagery
layers, something that none of the other engines currently do. There
are several excellent examples of this that can be found here.
|