Sunday, June 29, 2008

Flight times and distances from Denver

Here is a map of the approximate flight times and distances from Denver.

View Larger Map

It is based on this map from the Denver visitor's guide (2008)

Denver Distances 2008

Saturday, June 28, 2008

iSpring - Powerpoint to Flash

iSpring - converts PowerPoint presentations into Flash - which can be then embedded into your website.


iSpring Free

iSpring Free converts your PowerPoint presentation with all external resources into one solid Flash movie. With iSpring Free you can generate .html code ready to place an .swf file on your web page or blog. iSpring wraps Flash slideshows in the attractive Player for effective navigation. iSpring supports automatic and mouse click animation step advance and looped playback.

All iSpring Free functions are accessible in your PowerPoint through the standard toolbar. Just click Quick Publish and iSpring will generate a Flash movie form your PowerPoint presentation in a few seconds.

Another free tool that allows you to host and share your PowerPoints is SlideShare.

SlideShare is the best way to share your presentations with the world. Let your ideas reach a broad audience. Share publicly or privately. Add audio to create a webinar.

SlideShare is more like YouTube; they host your files and provide code to embed the presentations in your website. Where as iSpring, gives you the flash files which you can then host how ever you like.

GIS Visualization

Here is a cool way to visualize GIS data. The following image shows flight paths over a 24 hour period over the U.S.


(link, also check out the animation)

The image is by Aaron Koblin a digital artist. Check out his site for more cool art.

Windows Live - releases a flight fare aggregator


 Cheap Flights, Airfare, Airline Tickets, Cheap Travel

Microsoft acquired FareCast and now provides it as part of it's Live suite of applications.

Also check out the FareCast blog (, it has tons of useful information that can help you pick when you should buy tickets for your next trip.

Here is how the website describes itself:

Farecast offers unique features to help you Know When To Buy™, When To Fly™, and Where To Stay™—all based on science, not marketing. And now it's available from most major U.S. and Canadian cities to destinations worldwide. Our smart travel search also allows you to easily compare, sort, and narrow down flight and hotel results for hundreds of websites. can find out if the lowest fare for a trip is rising or dropping over the next 7 days.


And here is some of the useful information that came out FareCast research (via

1. Common wisdom is wrong ...

The lowest price tends to hit between eight and two weeks before departure. Buying tickets farther in advance usually doesn't save money.

2. ... except when it's right

The rule fails during peak demand: Friday departures for spring break, and Sunday returns during the summer, Thanksgiving, and Christmas. For these, now is never too early.

3. When the price drops, jump

Fifty percent of reductions are gone in two days. If you see a tasty fare, snatch it up.

4. If prices seem high, hold off

Behavioral economists call it framing: If last year's $200 flight is now $250, you'll probably find that too dear and won't buy. Everyone else is thinking the same thing. So when airlines hike the price of a route, they often have to cut rates later to boost sales.

5. The day you fly matters

Used to be, you could count on a cheaper fare if you stayed over a Saturday night. But during spring break and summer, weekend trips are in high demand, so flights on Friday, Saturday, and Sunday can easily cost $50 more than those midweek.

6. So does the day you buy

Price drops usually come early in the week. So a ticket bought on Saturday might be cheaper the next Tuesday. That's particularly true outside the summer rush, making fall the best time for a last-minute getaway.

7. Markups vary by destination

Flights to Europe in July can be $350 higher than in May or September. If you want a summer vacation, domestic and Caribbean travel is cheaper to begin with and doesn't rise as high.

8. Stay an extra day

At the end of holidays, one more day at the destination can save you upwards of $100.

Friday, June 27, 2008

TED | Top 10 TEDTalks

Highlights from the top 10 TedTalks. (

And here is the list of the top 10 talks:

  1.  Johnny Lee demos Wii Remote hacks
  2.  Jill Bolte Taylor's powerful stroke of insight
  3.  David Gallo shows underwater astonishments
  4.  Arthur Benjamin does "Mathemagic"
  5.  Blaise Aguera y Arcas demos Photosynth
  6.  Jeff Han demos his breakthrough touchscreen
  7.  Tony Robbins asks why we do what we do
  8.  Hans Rosling shows the best stats you've ever seen
  9.  Al Gore on averting climate crisis
  10.  Ken Robinson says schools kill creativity

TED | About TED | TEDTalks

RustOleum - DryErase and Magnetic Paints


imageRust-Oleum Dry Erase Paint is a smooth, hard finish that creates a unique white writeable-erasable surface. Once dry, simply use any dry erase markers to draw or write messages and then erase! Application is easy and it has minimal odor making it safe to use indoors. Ideal for use on interior surfaces such as drywall, masonite, wood, cement, metal.

Dry Erase Paint







Rust-Oleum Specialty Magnetic latex primer is a dark gray colored base coat that allows you to create a surface that attracts magnets almost anywhere. Can be applied to wood, metal, masonry, drywall, and plaster. Create a fun and unexpected way to hang notes, photos and more.

Magnetic latex primer






Will be cool to see if you can put a coat of the magnetic latex paint up first and then apply the dry erase paint on top of that. That way any surface can become a magnetic dry-erase surface.

Bill Gates!

Bill Gates last day at work.


On his last day at Microsoft, Victoria Barret ( takes a look at his predictions that he made in his book "The Road Ahead" in 1995.

The following one is on GIS: (

Even at the 10th anniversary of The Road Ahead, one of his predictions sounded far from reality, like a yet-to-be-seen, trippy version of Mapquest: "You'll be able to jump into a map so you can navigate down a street or through the rooms of a building." Today, both Microsoft and Google offer street-view map systems, though neither will fly you through buildings.

EveryScape does have a solution - where you can move from street to inside building views. The views and the viewer are modeled similar to Google's Street View. (Take a tour of the Harvard Natural History Museum - link)

Save paper while printing in MS Word

via Digital Inspiration

shrink documents

Open the Print Preview pane and select the “Shrink One Page” setting. Word will now try to condense the same document in lesser number of pages by slightly reducing the font size and paragraph / letter spacing.

ArcGIS Desktop 9.3 Released

ArcGIS 9.3 was released today. The following link is a video demo of the new features/enhancements in ArcGIS 9.3 (ArcGIS Desktop 9.3 Demos).

ArcGIS 9.3 supports Visual Studio 2008 in ArcGIS Desktop, ArcGIS Engine, and ArcGIS Server for customization and development. In addition, ArcGIS 9.3 continues to support Visual Studio 2005. ArcGIS 9.3 still has the Visual Basic (VB) 6 Software Developer Kit (SDK) for ArcGIS Engine and ArcGIS Desktop. ArcGIS Server 9.3 supports .NET 3.5.

Online File Storage Reviews

On my post "Online File Storage", I had written about Humyo an online file storage service.

Someone took the pains to write a good comment - which I thought should become a post on its own. So here it is: (The part that is useful is the link to a page that lists 25 top online file storage providers).image

By Anonymous:

On the subject of file backup, sharing and storage ...

Online backup is becoming common these days. It is estimated that 70-75% of all PC's will be connected to online backup services with in the next decade.

Thousands of online backup companies exist, from one guy operating in his apartment to fortune 500 companies.

Choosing the best online backup company will be very confusing and difficult. One website I find very helpful in making a decision to pick an online backup company is:

This site lists more than 400 online backup companies in its directory and ranks the top 25 on a monthly basis.

Thursday, June 26, 2008

Visualizing DEMs in ArcGIS using LIDAR Analyst

I uploaded 2 videos to YouTube today that was in response to question from a user of LIDAR Analyst.

They describe how to set up visualization of the DEM and Bare-Earth DEM in ArcGIS. Instead of the default option of creating a RGB hill-shade raster this technique keeps the DEM and Hill-Shade rasters separate.

There are two major reasons that I prefer this method (instead of the RGB raster):

1. You can customize the coloring. This allows you to choose a color ramp that brings out the details in your DEM.

image DEM without hill-shade - looks flat and it is hard to make out features

image image  image

Above: DEMs colored using 3 different ranges with hill-shade rasters providing a psuedo 3D look - making it easier to see detail. (Color changes was done by simply changing the color-range associated with the symbology of the DEM raster).

2. You can query the DEM's elevation values. (With the default option - you will only get the RGB values).

image Querying of the default hill-shade raster doesn't allow you to determine elevation values because the hill-shade raster is a RGB image.

image  Querying of elevation values is possible, when DEM and hill-shade are kept separate.

Obviously the downside is that - you cannot get the colored visualization in other GIS applications. (So if you want to view the hill-shade in Imagine, you should output to one of the other options).

Visualization of DEMs in ArcGIS - shows you the technique for visualizing any DEM raster.


Visualization of Bare-Earth DEMs is basically the same steps as shown above, except shows the colors that make most sense for bare-earth DEMs.

The bare-earth was automatically extracted using LIDAR Analyst for ArcGIS. Hill-Shade rasters were created using LIDAR Analyst.

Foldable Displays

Johnny Chung is back with some more very cool demos.

The first one is a concept for foldable displays.


This second video is done by students at the University of Cambrige, where 2 Wii controllers were used to perform 3D tracking using stereo vision algorithms.

Again, very impressive.

Online File Storage

I love SkyDrive from Microsoft. It just works!image

Today I came across Humyo and what piqued my interest was the fact that they give 30gb of free space. (The only weird condition attached is that 25gb has to be media files - photos, videos, music - the rest can be of any type.) Apart from the huge amount of space that they give, the other cool feature that they have is the desktop client that they provide, that allows you to access your Humyo drive just as another drive attached to your local machine.

Unfortunately the virtual drive is not a free feature and requires a $5/month subscription fee.

If it were free, I wouldnt mind trying out the service. In the mean time if any one of you have tried it - leave your recommendation about whether I should try this tool in the comments section.


I am sure that SkyDrive at some point will release the virtual drive feature. The only thing that I dont like about SkyDrive is that if you want to give restricted access to another user, they need to have a hotmail account to log-in before being able to access the protected file. (Not everybody wants to sign up for a Hotmail account). It would be so much better if I could assign a folder or file a password and anybody with that password could then access the file.

101 Photoshop tips and techniques in a five minute video

Its been ages since I have worked with any major project with Photoshop.

This video isn't just a great refresher to getting work done really quick in Photoshop but is entertaining as well. Very cool!

Wednesday, June 25, 2008

Spreadsheet tools for coordinate conversions

Leszek Pawlowicz has posted links to Spreadsheet Tools For Lat/Long, MGRS and UTM Coordinate Conversions.

Useful for quick conversion between coordinates.

Google Map Maker

How do you get online maps for cities and countries where there may not be any publicly available digital maps. Well you crowd source them.  OpenStreetMap is one such solution that allows users to freely edit and use maps of any location on the planet.

Google is now using the same idea to source maps for areas such as Pakistan, Caribbean islands, etc., using "Google Map Maker".

According to Google

Google Map Maker is a Google Maps service that allows you add or edit features, such as roads, businesses, parks, schools and more. Using Google Map Maker tools, you can visually mark locations and add detailed information about these locations. Once you have submitted content, this information may be edited by other users or moderators. At a later time, this content may be published in Google Maps for others to see and use.


Map Maker Tools

The find to edit tools are used to query locations on the map to determine what features have already been digitized. You can then use the Add tools to add points, lines and polygons. Finally you can edit the features by adding more details.



Cities that one can edit the maps for currently are:

  • Antigua and Barbuda
  • Bahamas
  • Barbados
  • Bermuda
  • British Virgin Islands
  • Cayman Islands
  • Cyprus
  • Grenada
  • Iceland
  • Jamaica
  • Netherlands Antilles
  • Pakistan
  • St. Kitts and Nevis
  • St. Lucia
  • St. Vincent and the Grenadines
  • Trinidad and Tobago
  • Vietnam
  • Saturday, June 21, 2008

    Biomimicry: How engineers learn from evolution


    Robert Full talks about how engineers can learn from evolution seen in nature.

    Examples include Sagittal Leg Spring (how motion of 2, 4, 6 and 8 legged animals can be described in exactly the same way - they bounce like pogo sticks).

    SPRAWL robot made using Shape Deposition Manufacturing (SDM) by Stanford. (The material mimics organic materials)

    RHex (Robot Hexapod) a bouncing autonomous robot from McGill university.

    The demo of the robots starts at about 10:30 minutes into the video. RHex motion is definitely impressive and shows that probably a lot of robots in the future will have insect like motion as it makes it easier for them to negotiate different obstacles.

    Mecko Geckos is a robot that uses motion inspired from lizards. Mecko Geckos can climb walls and also on ceilings. (Built by iRobot - how long before our beloved Roombas turn into insect looking vacuum cleaners, that dont only clean our floors but also our walls and ceilings of cobwebs and dust?).

    Did you know that the ability of lizards to walk on walls and ceilings is not because of glue like substance or velcro like mechanism, but by Van der Waals forces! (That is intermolecular forces, which is possible because of nano sized spatulas and hairs present on the foot of the lizards. Sticky Secrets of the Gecko

    The study of the structure of the lizards feet is leading to the first ever "synthetic, dry, self cleaning  adhesive".

    Did you also know that Berkeley has built a 6mm robot (That doesn't move very well, but should improve as they figure out how ants move).

    Friday, June 20, 2008

    LIDAR Analyst

    Here is an article that talks about the stuff that I work on - software that aids in automated feature extraction from LIDAR data. (This is in addition to my work with Feature Analyst, which aids in automated feature extraction from EO imagery).

    In his ILMF presentation on feature extraction from LiDAR data, Overwatch Textron Systems’ Chief Operating Officer Stuart Blundell observed, "Software development is always chasing after advances in sensor capability." He is dedicated to resolving the specific requirements of LiDAR in three areas that create bottlenecks during the feature extraction process:

    • The use of multiple sensors during acquisition;
    • The merging of RGB color data or intensity data with XYZ data points;
    • High spatial resolutions and very large datasets.

    Logjams result when the software chokes while trying to accommodate all of these characteristics of LiDAR. According to Blundell, they are most likely to occur at the data registration stage, during feature extraction, or when attributes are applied to the data so it can be useful in a GIS database. If LiDAR data can be manipulated in a way that aligns with GIS-ready vector or shapefile formats, mapping experts should be able to move beyond the mere visualization of a scene and into the extraction of smaller physical features from within that scene. See Figures 4 and 5.


    Figure 4a - The first image shows a 7x7-kilometer tile of airborne LiDAR collected over Denver, Colo. The LiDAR data has been Hill Shaded using LiDAR Analyst software to support the visualization of the data. Higher elevations are in white colors and lower elevations in green.

    Figure 4b - The second image shows the Bare Earth grid automatically extracted from the LiDAR using LiDAR Analyst. The Bare Earth is used to support terrain analysis.

    Figure 4c (below) - The third image is the building footprints that are automatically extracted by LiDAR Analyst as 3D Shapefiles. LiDAR Analyst extracts simple, multi-component and complex 3D buildings from LiDAR. These 3D Shapefiles include 18 different geometric and descriptive attributes for each building such as maximum height above ground, roof type and area.


    • LiDAR Analyst is an Overwatch Textron Systems software product designed in 2004 to provide this functionality as a plug-in for ArcGIS and ERDAS Imagine. It will be available in 2008 as a plug-in for Remote View and ELT.

    Blundell also emphasizes the importance of file specification standards in software design, and lauds the work that has been completed in this area by the LiDAR Committee of the American Society for Photogrammetry and Remote Sensing. "If people are using LAS (LiDAR Data Exchange Format) standards for LiDAR, regardless of the size of the dataset, that’s standardized in a way that we can interpret information about the spatial resolution and that kind of thing," he says.

    The LAS 1.0 specification already is widely accepted in the industry. An update, LAS 1.1, incorporated features that allowed for more robust point marking. LiDAR committee member Lewis Graham represents LAS 1.1 as an interim update that remedies problems in the 1.0 specification, such as limitations in the encoding of flight line numbers. He expects the LAS 2.0 standard to be a major revision, with accommodations for more comprehensive encoding of terrain modeling and for emerging technologies such as waveform digitization.

    Figures 5a, 5b, 5c & 5d - This series from Overwatch Textron Systems shows feature extraction for identifying a dumpster.

    Read the entire article at Imaging Notes Magazine - LiDAR Advances & Challenges

    Google Maps Car Busted - Flickr


    Picture of a Google StreetView car pulled over by a cop in San Francisco. (from Flickr).

    What is interesting is that it gives us a close up look at laser sensors that Google has added to its StreetView sensor platform.

    2584019149_edae7039fc_b 2584847272_6d44abe121_b

    I had written about the new laser sensors that were first seen on Google cars trolling the streets of Europe (Google collecting 3D data). This platform looks identical to the one spotted in Milan.


    With the new angles that these images provide - it looks like there are 4 SICK laser sensors mounted on this platform. Two that are oriented to scan vertically and pointed to look on either side of the car and the other two facing front and back of the car are oriented to scan horizontally.

    This is different from the setup that Zakhor and Frueh used, where they had two SICK lasers facing the same direction, with one scanning horizontally and the other scanning vertically.

    image image

    (from, the image on the right shows the 2 scanners oriented so that one is capturing vertically - red and other horizontally - peach)

    Here is another vehicle developed by a Japanese university that uses 3 scanners. (link)


    Here is a great article on the SICK laser with pictures of what the inards of this gadget look like (Link).

    And here is what it does

    This is a time-of-flight type LIDAR, which means that it literally uses the speed of light to measure distance. A laser sends out a pulse of light, and a timer is started. The timer stops when the pulse's reflection is detected. Distance is simply T/2C, where T is the timer delay and C is the speed of light. If you rotate the entire optical assembly (or just a mirror in this case), you get very detailed polar range data.

    Finally, here is some more information on the SICK laser (link)

    And a project that uses the SICK laser for range detection using Microsoft's Robotics Studio (link)

    Tuesday, June 17, 2008

    List of Physics Games » Fun-Motion

    A physics game is one in which the player has to setup a set of machines and items so as to be able to achieve an objective. The first game that I ever played in this genre was The Incredible Machines (TIM) and The Incredible Machines 2 has been one of my favorite physics game.

    Today I found a website that not only lists physics based games - but also has reviews and interviews as well as a Top Ten List. List of Physics Games » Fun-Motion


    Also, I found this link from where you can download "The Incredible Machine" game series. (TIM2 is the best in the series in my opinion).

    (I haven't tried the above downloads and not sure about their compatibility on Vista. If you do - leave me a comment. Also make sure that you scan for viruses).

     TIM1  Time2

    As these were DOS based machines, you can use DOS-Box to play them under. (,

    Physics Games can be categorized as Rube Goldberg machines.


    TED Talks | George Dyson: The birth of the computer


    TED | Talks | George Dyson: The birth of the computer (video)

    An interesting look into the history of the computer. Mainly straddles the time during which the A-Bomb was being developed (1940s to late 1950s), which was the main impetus driving the development of the computer at that time.

    TED Talks | A nuclear-powered rocket to Saturn

    TED | Talks | George Dyson: Let's take a nuclear-powered rocket to Saturn (video)

    This video talks about the first ARPA project (funded with $1 million to General Atomic) - which was to be used to build a nuclear powered spaceship that was to take Americans to either Saturn or Jupiter in the late 1960s. NASA didn't care for this project and at the end it was canceled. The US Air-force was the one pushing for the project as it did not just have applications in space flight but also in weapons systems.

    Using nuclear bombs and directing their energy so as to be able to drive a vehicle is still an actively researched topic.

    How to Make Windows Vista Less Annoying - The best tweaks for Vista

    How to Make Windows Vista Less Annoying from has compiled a list of Vista tweaks that make the OS less intrusive and annoying. Obviously the first one that comes to mind is the disabling of the UAC. The jumps on that page - have better ways of handling UAC issues - then out-right disabling it. Very Useful.

    Other tweaks involve making copying of files faster, disabling of the automatic reboot on update feature, reduce number of balloon tips, etc.


    Monday, June 16, 2008

    Flash LIDAR

    RIT scientist Donald Figer and his team are developing a new type of detector that uses LIDAR (LIght Detection and Ranging), a technique similar to radar, but which uses light instead of radio waves to measure distances. The project will deliver a new generation of optical/ultraviolet imaging LIDAR detectors that will significantly extend NASA science capabilities for planetary applications by providing 3-D location information for planetary surfaces and a wider range of coverage than the single-pixel detectors currently combined with LIDAR.

    The device will consist of a 2-D continuous array of light sensing elements connected to high-speed circuits. The $547,000 NASA-funded program also includes a potential $589,000 phase for fabrication and testing.

    The device will consist of an array of sensors hybridized to a high-speed readout circuit to enable robust performance in space. The radiation-hard detector will capture high-resolution images and consume low amounts of power.

    The imaging component of the new detector will capture swaths of entire scenes where the laser beam travels. In contrast, today’s LIDAR systems rely upon a single pixel design, limiting how much and how fast information can be captured.

    “You would have to move your one pixel across a scene to build up an image,” Figer says. “That’s the state of the art of LIDAR right now. That’s what is flying on spacecraft now, looking down on Earth to get topographical information and on instruments flying around other planets.”

    The LIDAR imaging detector will be able to distinguish topographical details that differ in height by as little as one centimeter. This is an improvement in a technology that conflates objects less than one meter in relative height. LIDAR used today could confuse a boulder for a pebble, an important detail when landing a spacecraft.

    RIT - University News

    Sunday, June 15, 2008

    Cam-Trax - Controller based on Video Tracking

    A while back I had written about the real cool demos that Johnny Chung had made taking the Wii controller to the next level - by using it to track different kinds of objects so as to be able to work as a input device. (Johnny Chung Lee - Projects - Wii). The idea was based on using the camera in the Wii Remote to track objects (basically using the remote in a reverse configuration than the way it was intended to be used).

    The following video is from what looks like an Israeli company - that has taken video tracking to the next level - by allowing you to use almost any object as an input interface. Check out the video as words are hard to describe the coolness of what these guys have done.


    I love how they have mixed up Pong and brought that game in to the 21st century. Cant wait to play it. Wonder if Nintendo will buy this technology to incorporate it into the Wii.

    Wednesday, June 11, 2008

    GeoEye RoadTracker™ Now Available for Feature Analyst®

    Press Release

    More information:

    RoadTracker is a new tool written by GeoEye as a plugin to Feature Analyst. RoadTracker provides tools that allow for quick and easy semi automated extraction of features such as roads, streams and trails. The user needs to digitize the feature by clicking only on the end points - RoadTracker will then automatically extract the feature by analyzing and tracking the feature from the start to end point. On roads and trails that have a lot of curves in them - in my opinion - RoadTracker will save the analyst upwards of 60% of extraction time. In addition, it will also reduce errors that get introduced due to user fatigue while digitizing complex features.

    RoadTracker Key Features

    • High degree of automation speeds centerline detection
    • Automatic detection of intersections and adjustment of existing centerlines improves network accuracy
    • Automatic centerline feature attribution based on imagery analysis removes manual rework
    • 'Smart editing' simplifies feature correction workflow
    • Complements any geospatial environment that supports VLS' Feature Analyst


    RoadTracker is a proprietary application built on top of Feature Analyst. It is a semi-automated tool that detects road centerlines in orthophotos and automatically computes road attribute data when the centerlines are extracted as vector features. The tool changes the traditional workflow for centerline creation from manually intensive point-and-click digitizing to an efficient process that automates centerline creation, attribution, intersection insertion and topology cleaning. - directionsmag

    RoadTrackerImage_lg (from DirectionsMag)

    After selecting a RoadTracker editing tool from within a standard geospatial package, the user collects two pixels that approximate a new centerline's endpoints (A). RoadTracker creates an initial solution (B). Existing road features are suppressed so that when the same two endpoints are used, a new path is found that completes the loop (C). (Click for larger image)

    Thursday, June 05, 2008

    Dash Express for $299.99

    In a previous post - Dash Express - Finally a connected, crowd-sourced GPS, I had written about the DASH GPS device. The Dash is a two-way Internet connected GPS system like none other. And Amazon has it now for $299.99 and I am extremely tempted to buy it. The service still costs about $11.00 per month to use the 2 way Internet connectivity on the road - which uses cellular phone networks for communication.

    Check it out at Dash Express.


    Setting expandable environment variable in .NET

    The System.Environment class in .NET provides methods that allow you to set and retrieve environment variables via the

    Environment.SetEnvironmentVariable(variableName, value, environmentVariableTarget) and Environment.GetEnvironmentVariable(variableName)  methods.

    You can use Environment.GetEnvironmentVariable to get the values stored in expandable path variables such as %PROGRAMFILES%, %WINDIR%. (For more variables see: Environment Variables in Windows XP).

    But .NET doesn't provide you with a way to set an expandable variable as an environment variable.

    A little background behind expandable variables is in order. When expandable variables are stored in the registry, they are stored in a special registry data type called "REG_EXPAND_SZ". This is used to signal that the value held in the registry requires to be expanded and not read literally.

    If you call Environment.SetEnvironmentVariable("NewExpandedPATH", "%WinDir%, EnvironmentVariableTarget.Machine) and then call Environment.GetEnvironmentVariable("NewExpandedPATH"); the value returned is null.

    The reason is that SetEnvironmentVariable creates the NewExpandedPath value in the registry as a REG_SZ data type instead of REG_EXPAND_SZ. For some reason the BCL team decided to leave this feature out.

    To get around this issue - there are many different solutions available. One involves creating and writing REG_EXPAND_SZ data types using PInvoke. (see ADVAPI32.dll -

    Instead the solution I liked best was the one written by Greg Houston. It involves using Windows Scripting Host (WSH) to write the value to the environment. In addition, it also prompts the system to refresh the environment variables via the call to SendMessageTimeOut. This second feature is extremely important - as the environment variable becomes available immediately after it is set to the same process. (This would not happen if we decided to write directly to the registry - which would need a system restart). Read more about this solution on Greg' site (Greg Houston: How to Create and Change Environment Variables using C# or .Net).

    An important piece about this solution that I think he left out is that you need to add a reference to the COM dll (wshom.ocx - Windows Script Host Object Model on the COM tab of the Add Reference dialog).

    Here is the solution repeated from Greg's site:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    using IWshRuntimeLibrary; //add reference to wshom.ocx - Windows Script Host Object on the COM tab
    class AdvancedRegistryMethods
            [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
            [return: MarshalAs(UnmanagedType.Bool)]
            public static extern bool SendMessageTimeout(IntPtr hWnd, int Msg, int wParam, string lParam, int fuFlags, int uTimeout, out int lpdwResult);
            public const int HWND_BROADCAST = 0xffff;
            public const int WM_SETTINGCHANGE = 0x001A;
            public const int SMTO_NORMAL = 0x0000;
            public const int SMTO_BLOCK = 0x0001;
            public const int SMTO_ABORTIFHUNG = 0x0002;
            public const int SMTO_NOTIMEOUTIFNOTHUNG = 0x0008;
            public static bool SetUserVariable(string name, string value, bool isRegExpandSz) 
               return SetVariable("HKEY_CURRENT_USER\\Environment\\" + name, value, isRegExpandSz); 
            public static bool SetSystemVariable(string name, string value, bool isRegExpandSz) 
                return SetVariable("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment\\" + name, value, isRegExpandSz);
            /// <summary>
            /// return false if error occurs
            /// </summary>
            /// <param name="fullpath"></param>
            /// <param name="value"></param>
            /// <param name="isRegExpandSz">if true - written to regsitry as a REG_EXPAND_SZ</param>
            /// <returns></returns>
            private static bool SetVariable(string fullpath, string value, bool isRegExpandSz)
                    object objValue = value;
                    object objType = (isRegExpandSz) ? "REG_EXPAND_SZ" : "REG_SZ";
                    WshShell shell = new WshShell();
                    shell.RegWrite(fullpath, ref objValue, ref objType);
                    int result;
                    SendMessageTimeout((System.IntPtr)HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment", SMTO_BLOCK | SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG, 5000, out result);
                    return true;
                catch (Exception exp)
                    return false;
    Note: The environment variables are stored under this path in the registry:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

    Wednesday, June 04, 2008

    YouTube - Feature Analyst demo

    This video is a demo of our company's automated feature extraction (AFE) software - Feature Analyst. The demo is done by Jason San Souci.

    An interesting bit is the use of Feature Analyst to determine the amount that people are watering their lawns (high, medium and low in this video). This sort of an analysis is extremely important for cities that have a water shortage problem (such as Las Vegas).

    YouTube - Feature Analyst demo

    Monday, June 02, 2008

    Google collecting 3D data for StreetView


    The Google car was spotted on the streets of Milan this year. The circles in the image show 2 SICK laser sensors mounted with the rest of the sensor platform.

    Sensor 1 is mounted to scan horizontally and sensor 2 is mounted so as to scan vertically.

    Dr. Avideh Zakhor had presented her research on using a similar setup to perform 3D modeling of cities at Google in 2006. Wonder if this new sensing platform shown above is based on the research done by Fruh and Zakhor.

    GeoSimPHILLY - 3D city models of Philadelphia



    Virtual Philadelphia is a leading 3D online virtual city mirrored off the Center City of Philadelphia, PA.

    GeoSim compiles gigabytes of aerial photos, street images, laser scans and geodetic measurements of Philadelphia to build an accurate 3D city model, capable of providing a genuine life simulation of the physical streets, buildings and urban landscape with the "look and feel" of a real city.

    Read more about the modeling process at :

    More demos can be seen at