Tuesday, March 24, 2009

Processing GeoEye-1 GeoStereo Imagery in LPS

I mentioned last week that I would outline the workflow steps in LPS for creating terrain, orthophotos, and 3D vector data from GeoEye-1 GeoStereo imagery.


GeoEye-1 has both panchromatic (0.41 meter resolution) and multispectral (1.65 meter resolution) sensors, and I performed the processing with the panchromatic data because it is higher resolution. For this particular project I have RPC imagery (a single stereo pair) along with surveyed ground control points. Although the imagery is lower resolution than most airborne photography, one of the big benefits is that the image footprint is much bigger - this can dramatically decrease time and effort for certain parts of the workflow (e.g. mosaic seam editing).

In LPS the processing is straightforward: set up the project > measure ground control points > run automatic point measurement > perform the bundle adjustment > generate and edit terrain > perform orthorectification. 3D feature extraction can come anytime after the bundle adjustment is performed. What follows is an overview of the workflow. I won't go into the minute details but will cover the major workflow steps.

Block (project) setup is easy: just choose the model (GeoEye RPC) and then add the images in the LPS Project Manager. At this point processes like image pyramid generation can be performed as well.

A GeoEye-1 project in the LPS Project Manager

After the block is setup, the next step is to use point measurement in either stereo or mono mode to measure the ground control points. This is where we relate file/pixel coordinates with real-world XYZ coordinates from the GCPs. Typically this can be a time-consuming step but LPS has an "automatic XY drive" capability that puts you in the approximate area when you're ready to measure a point. After the GCPs are measured automatic tie point measurement can be run, which will generate tie points. Users have full control over the tie point pattern so there is a high degree of flexibility. After generating tie points, bundle adjustment can be performed in LPS Core. I won't delve into too much detail here, but this process involves running an adjustment, reviewing the results, refining if necessary, and then accepting the results once they are suitable. This is a critical step, because after triangulation we have our first data product: a stereo pair. Stereo pairs are crucial for 3D product generation, because XYZ measurements can be made from them. That means 3D terrain products and vector layers can now be generated.

Viewing a control point in stereo

The next step is to generate a terrain layer that can be used as a source during orthorectification, and may also be used as a product in it's own right. The Automatic Terrain Extraction tool in LPS can generate a surface and allow a high degree of control with regards to post spacing, filtering, smoothing, and more. In this example I used it to generate a 5 meter IMG grid, displayed below.

Terrain displayed in ERDAS TITAN

After performing terrain editing to create a bare earth DEM, I created an orthophoto from one of the 0.5 meter panchromatic GeoEye images. Terrain editing (in stereo) is important because surface objects such as multi-story buildings can introduce error into orthophotos if they are included in the terrain source. The orthophoto is displayed below.

Digital orthophoto in ERDAS TITAN

With a 0.5 meter resolution, it is also possible to extract 3D features such as buildings. I collected a few in PRO600 and then exported them to KML for display in GoogleEarth.

3D KML Buildings in GE

Note that other tools (in this case Stereo Analyst for ERDAS IMAGINE) can also be used for 3D feature extraction. Here is a building collected as a 3D shapefile with texture applied. Note that this is not generic texture, but rather the actual texture from the pan GeoEye-1 imagery. While it doesn't cover all facades, it does add a level of realism that adds to a 3D scene.

In summary, the process for created value-added geospatial data products from GeoEye-1 GeoStereo imagery can be accomplished by following the steps identified above. In a relatively short period of time, an array of 3D products can be derived that have value in a number of different applications. It will be exciting to see what kinds of applications come out of GeoEye-1 stereo imagery in future months and years!

5 comments:

Anonymous said...

You mention for the project creation: "just choose the model (GeoEye RPC)" !!!!
Where is that option? I am using LPS 9.3 and under Rational Fuctions you can find several options but no Geoeye RPC.
Do you have any particular fix or plugin installed?
I would appreciate any hints

Ryan Strynatka said...

GeoEye RPC should show up at the bottom of the list - but I believe it was justed added recently in the LPS 9.3.2 release. If you don't want to upgrade you can just use the ORBIMAGE RPC option. It is the same RPC format.

Anonymous said...

Thank you very much for your quick response.
I will ask my technical admin to install the 9.3.2 version.
Again, many thanks.

Tuna Unsal said...

Hello Ryan,
I have a problem which you may have an idea on.
I'm need to orthorectify a number of geoeye-1 scenes in lps. I have the 9.3.2 version and the appropriate camera model. I do not face any problem in any process but even having a 1m accuracy the resulting ortho scenes shift 10-15meters systematicaly. The scenes from different strips shift to different ways which made me think thet the rpc.txt may not be read well. The scenes I use are not the original psms since they were shiped as three files (RGB) seperately. We stacked them to have single rgb scenes and used one of the rpc.txt files in the corresponding folder (since the row/column numbers are the same).
Do you have ny idea why such a shift occur although there is no problem with the rmse calculated?
Thanks

Ryan Strynatka said...

A colleague suggested that it may be a datum mismatch issue. Can you please ensure the DEM and GCPs are in the same datum and also in same horizontal and vertical units as the projection set in LPS? Also, what type of DEM are you using as a terrain source for orthorectification? If you are using DTED and STRM, the vertical datum is mean sea level (EGM 96) and you will need to recalculate the elevation values.