Tuesday, May 06, 2008

Cyclone Nargis and GDACS

I've added a few new datasets to EarthBrowser's "Featured External Layers", which is below the main dataset element in the EarthBrowser control window.

I'm temporarily putting in a high resolution MODIS overlay of Cyclone Nargis from earthobservatory.nasa.gov. It's a really large image so be patient, it takes a little while to download. Due to a bug in Flash for large images scaled to be small, it doesn't look very good far away, but looks better as you zoom in. Hopefully they've got a fix for this in the works.



I've also added the Global Disaster Alert and Coordination System kml dataset which is updated with real-time information for ongoing disasters and recovery around the globe. To view the information for each disaster, you have to navigate through the list of elements in the control window, I wish they would put in placemarks to view the great information they have more easily.

Finally, the Europe Media Monitor layer is a news aggregation service that plots global news stories on a map and provides an overview and link to the geo-located story.

I'm also hoping to have an update out later this week with a timezone fix for sunrise/sunsets and also a global grid overlay feature.

Monday, May 05, 2008

EarthBrowser 3.0, 5 days in

Version 3 is doing very well over the past 5 days. It's selling better than I'd hoped for, the django based system I am using for the main website and for the separate data server have held up incredibly well with just a few hiccups. Amazon S3 really helps me to take the load off of my servers. I've got a handle on the tech support emails over the weekend, there are still a lot left however. I try to answer each and every person with a question or problem with a personal message. I think that kind of respect and care for each customer has really helped the business over the years. My goal is to have no unhappy customers, if I can't fix your problem or you are still not satisfied, you get a refund, it's pretty simple.

Thanks for the mention James, Mickey, Lxnyce and Bull.

Some people are wondering why would they should support EarthBrowser as shareware when they can get Google Earth, Microsoft's Virtual Earth and NASA WorldWind for free. Well you get EarthBrowser for free too, you are just reminded to help support the future development of the shareware if you like it enough to use it. Google Earth is great but it isn't your computer's operating system, you CAN use more than one virtual globe at the same time.

EarthBrowser may not have 2 inch resolution datasets, but the weather layers really blow away anything the other globes offer, in fact the weather forecast layers blow away most of what I've seen from the major weather providers offer. I'm talking with CustomWeather to see if we can do some sort of exchange of data for perhaps exclusive use of EarthBrowser on their website. I think that would really make them stand out from their competitors.

KML is great! New datasets are being added to EarthBrowser all the time, if you only know where to find them. Today I noticed from one of my favorite blogs Frank Taylor's Google Earth Blog that there is a new dataset available from NASA showing the total electron count in the earth's ionosphere. I like it so much I think I'll add it to the Featured Datasets in EarthBrowser. The red areas indicate a large concentration of electrons which may cause problems with communications. It is neat to see that the electrons build up on the daytime side of the earth and disperse shortly after darknes.



If you want to see the animated link of the ionosphere for the past 24 hours in EarthBrowser just drag this link onto the EarthBrowser window. Or if you are reading this blog with EarthBrowser's embedded web-browser, just click on the link. There is also a light weight version of this file that just shows the current condition.

Wednesday, April 30, 2008

EarthBrowser 3.0


EarthBrowser 3.0


Finally, it's out. Thank you to all of my wonderful supporters!!!

I transferred over the domain name to the development server and within about 20 minutes VersionTracker picked it up and I'm getting sales already.

Steve Wozniak was the 11th person to register version 3. He's been great to me and has bought several site licenses for schools. Maybe someday I'll be able to talk with the guy...

I have to give a tip of my hat to the Papervision 3D guys. They were my initial inspiration for the flash version, and although I wound up writing my own specialized rendering code, they deserve a lot of credit for what they have done! I'll go into details about how I did some things in flash in future posts, it has never been easy or fast to do software rendering. I'll also talk about some of my plans for the future.

Right now I'm sipping on a Paulaner Salvator Dopple Bock and basking in the euphoria of 4.5 years of hard work coming to fruition.

Tuesday, April 29, 2008

EarthBrowser 3.0 goes live tomorrow

Hopefully people will like it.

It's shareware, which means you can use it for free for as long as you like. However, I'm funding it out of my own pocket, which is pretty much empty at this point. So if you want all the features and don't want to be annoyed by reminders to register please pay the modest fee and help me to make it better and better. Upgrades discounted for current users of course. Oh, by the way, registered users will be able to embed EarthBrowser with their own content on their personal websites within the next several weeks.



I just wanted to say thank you to everyone who has been so encouraging to me over the past few years; my wife, children and friends. I couldn't have done it without you.

Sunday, April 27, 2008

Do I seem frustrated and bitter?

I was just called out on the tone of my blog posts by someone I've known and respected for a long time. He said that he was a little surprised by my writing after reading my blog for the first time. I seemed bitter and frustrated, perhaps mostly at Google, and that isn't how he knows me. I guess I'm a little bitter, Google pretty much put me out of business years ago by releasing Google Earth for free. Hopefully EarthBrowser 3.0 will attract enough customers to keep my family stocked up on food, diapers and other necessities.

I have taken a confrontational approach to many of my posts, some of this tone is conscious, some isn't. I actually try to be a little controversial and opinionated on the blog because I'm just some joe-schmo and nobody wants to read some random guy's opinions that are mushy and congenial. That's not exciting or even interesting.

Unfortunately when writing in the blog some of my gigantic ego shows through which generally wouldn't happen in a conversation with me. I think that most programmers have really big egos, but mostly about their own coding abilities. In a self-preservation kind of way, I have to think that I'm a good programmer to tackle such a large problem by myself. I think that is just the nature of programming, no confidence = no code.

That said, I'm going to try to tone it down. Sorry libKML guys, hope I haven't offended anyone, I realize that it is just an alpha version.

Monday, April 14, 2008

KML, libkml and the "standard" mistake

Passing off KML to the OGC so it could become a "standard" was a big mistake for Google.

I consider myself well versed in the KML format since I just implemented most of it's features, and found them to be needing much more in the way of styling. KML will now change at a glacial rate due to the standards process, right when it needs to change the most! Google Earth's feature set will now become dictated by an outside entity, with their input of course, but that's no way to develop software! Why would they cripple Google Earth like that?

Also libkml has been released and it was exactly what I thought it would be, a glorified xml validation script for the kml dialect. I predict that no significant software will choose to link that library in.

I have to say the lamest thing about KML is the whole Style/StyleMap tag collection that enables one to set a separate style on an icon for mouse-over events. It's a great way to have a non-standardized interface since everyone rolls their own mouse-over effect for each placemark style!

I've implemented a few of my own extensions to the KML format which I will go into detail about later. They are mostly aimed at visibility and styling extensions. One of the most useful extensions is the tag which allows one to control the visibility of a Feature element (Placemark or GroundOverlay) globally based on camera elevation. This is much easier than setting up one of those elements, especially for a single placemark.

Tuesday, April 08, 2008

EarthBrowser 3.0 Imminent

EarthBrowser 3.0 is currently in beta testing and I think that it might live up to my prediction to revolutionize virtual globes. It should be released within the next two weeks.



Floundering In The Past

I have been working on version 3 of EarthBrowser since 2004 and it is finally coming to fruition. Up until about a year ago, I was still working on a version that was based on OpenGL with a Python scripting engine. It was basically a new platform that would do seamless version updates, enable users to extend the interface programmatically, do extremely fast raster and vector map projections on multi-gigabyte data files using JPEG-2000 incremental decompression. Use a hexagonal dataset grid to feed the fragment shader based clipmap engine for smooth panning around the poles with no perspective distortion. I was also downloading, pan-sharpening and color-space correcting the Landsat 15m dataset. Bit-torrent distributed datasets were integrated, relief mapping and atmospheric diffusion were supported. It really is a masterpiece, but then Google Earth was given away for free and sales of version 2 began to dry up as I was digging myself deeper and deeper.



The Turning Point

Then along came Modest Maps which introduced me to Flash programming. Once again plunging into yet another new technology, I decided to make a quick sliding map with a few datasets for people to put on their websites for free advertising. Then I saw Papervision3D and realized that I could do a globe. It was a little too slow for my needs so I ported my C++ game engine kernel over to Flash. I kept adding features expecting to hit the limit of what was possible with Flash and I never did. Around June I put the OpenGL version on the back burner and began working full time on a web version of EarthBrowser.


Unexpected Windfall

This February Adobe released Adobe AIR which enabled me to bring my EarthBrowser back to the desktop. AIR has some *really* nice features that make EarthBrowser much more powerful than I imagined it could be in my last post. There is an integrated web browser, right within EarthBrowser 3.0 now. That is huge and you won't really understand how easy it makes things until you browse some geo-websites and drag and drop KML links right into your placemarks folder or look at the Wikipedia page for a city or country.



Weather Datasets

There are a lot of other nice features that you won't see in Google Earth or Microsoft's Virtual Earth. I've been creating a lot of real-time datasets generated from the NOAA Forecast Models to give regions of rainfall, snowfall, humidity, temperature and many other measurements which are all animated across the globe with an intuitive time slider. Continental US doppler radar, earthquakes, volcanoes, webcams and many more datasets are all there and animated too.



Finally: KML Integration

KML support in EarthBrowser 3.0 is really nice and intuitive. There is a Panarimio KML file that allows you to see pictures from all over the world as you zoom in closer. You can download a KML or KMZ file directly within the embedded browser or drag and drop it from your desktop. EarthBrowser even has some extensions to the KML format that I felt were missing and greatly enhance the expressiveness of the format. But I'll save that for another post.



KML Mashup Tool

EarthBrowser 3.0 has really been designed to be a KML authoring and mashup tool. If you want to save a single feature from a dataset, just drag a placemark icon from the globe right into your placemarks folder and it will make a copy. You can drag out any combination of items in your placemark folder onto a text editor to make a custom KML mashup file to post it on your own website or share it with your friends. Version 3.1 will extend EarthBrowser from your desktop to your website. It will be easy since it is based on Flash technology. A simple and seamless way of creating and distributing your personal or corporate geospatial content.


I'm Not a Machine, Or Am I?

Is it possible for one man to compete with Google and Microsoft? Not really, and I'm not trying to. I want to make EarthBrowser an excellent tool for education, weather watching and KML authoring and have it be just enjoyable to use. Google and Microsoft are working hard to... hmmm... put buildings in... add more resolution... see star texture tiles and some other stuff. It takes a team of coders and a multi-billion dollar company to give this kind of software away for free. That's why I have to charge for it. I've spent countless sleepless nights and many evenings and weekends away from my family. I've gone into debt while sales of version 2 have dropped to almost nothing, trying desperately to get this new version done. I really have to thank my wife and children for their patience in allowing me to pursue the dream of owning my own business making virtual globes. Once sales pick up again with version 3, crossing fingers, I can focus on adding even more great features, but I'll talk about those later.

Thursday, January 10, 2008

EarthBrowser 3.0 to be released soon

It's been hard keeping quiet about it for so many months, I'm really excited about all the great new features.

Some of the major new features are:
- Supports 90% of KML
- US Doppler radar
- Rain/Snow/Temperature forecasts

Version 3 is not just another 3d globe, but will revolutionize virtual globes for reason's that will be obvious when you first run it.

If you are a customer and would like to participate in the Beta program, please drop me an email and state any relevant testing experience (not necessarily required, but helpful).

Here is a small preview:


That's all for now.

Thursday, September 20, 2007

Fast Steradian Intersection Correction

I just wanted to go back and mention that if the sum of the steradian angles is greater than 180 degrees, then due to the sine and cosine functions, the simple formula breaks down. However, we know that if the sum of the angles is greater than 180 degrees then by definition they intersect. Due to this, we should also store the steradian angle along with the angle sine and cosine.
So the revised intersection test algorithm becomes:

angle_a + angle_b > pi or dot(normal_a, normal_b) >= cos_a*cos_b - sin_a*sin_b

Not as pretty. A speedup for large coverages :-) but a slowdown for everything else... :-(

Simplified GeoJSON proposal

I've come up an extremely simplified GeoJSON example which can do everything that the current GeoJSON specification can do but with only 4 core elements. Every element is a feature and can contain a list of points, lines and polygons or other features. Everything else in the GeoJSON spec is pretty much taken from some OGC standard or another. It's important not to get caught up in the past we are at the beginning of a potential standard, as Sean said in his post: "there's only one first chance to get a standard right." The only thing that I think might be questionably useful about this would be the nesting of features.

{
"points":[
[x0,y0], [x1,y1], ..., [xn,yn]
],
"lines":[
[x0,y0, x1,y1, ..., xn,yn],
...
],
"polygons":[
[
[x0,y0, x1,y1, ..., xn,yn],
...
],
[
[x0,y0, x1,y1, ..., xn,yn],
...
],
...
],
"features":[
{
"points":[
[x0,y0], [x1,y1], ..., [xn,yn]
],
"lines":[
...
]
},
...
]
}


Also an optional "crs" coordinate reference system can contain an EPSG code, ESRI WKT (Well Known Text) or a PROJ.4 projection string or all 3. If none is specified, the default is decimal degrees in the WGS84 datum. The coordinate reference system of the parent cascades down the to all children until a child specifies one.

"crs":{
"epsg":"4326",
"wkt":"COMPD_CS["OSGB36 / British National Grid...",
"proj4":"+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"
}



Another useful item would be an optional "bounds" element that specifies the bounding envelope in the element's crs.
"bounds":[min_lon, min_lat, max_lon, max_lat]


Minimalistic and precise.