blankblank blank


Archive for the 'Google Earth' Category Page 12 of 25



KML Random Placemark Generator

To go along with its new KML grid creator, Zonums Software also has a new web app that generates a randomly-distributed set of placemarks in KML for use in Google Earth and other compatible apps. Enter latitude/longitude limits for the area along with the number of points and other parameters in the web form:

randomKMLform

Click on “Generate Points”, and get a Google Maps view of the random points:

randomGoogleMaps PM

Click on “Download KML File”, and the KML code is generated and displayed in the browser. Save the page as a KML file, and you can open it in Google Earth:

randompointsGE

Randomly-distributed points are often used for statistical sampling purposes. While KML may not be the ideal format for that application, this is at least a convenient way to generate them. If you need them in a more conventional GIS format (like a shapefile), you can use Zonum’s kml2shp application to convert the random KML points into a random point shapefile.




MGRS/UTM/Latitude-Longitude Converter

For converting to and from the Military Grid Reference System (MGRS) and UTM/LatLong, the MGRS Conversion Utility from Mentor Software is a small utility (365kB download) which does only that. During installation, everything stops for a long while, but it’s not a crash – it will eventually complete the installation process. Once installed and run, just enter one of three kinds of coordinates, UTM, latitude/longitude, or MGRS, click Enter next to the entered coordinates, and they will be converted to the other two coordinate systems:

mgrs

You can choose from 61 different datums in the “Ellipsoid” section at top. Latitude/longitude can be entered in decimal degrees, or as degree-minute-second with each set of numbers separated by a space. Set the MGRS precision with the up/down arrows; check “Use Bessel Code” for those areas where it’s appropriate for MGRS (mainly Europe – see the help file for more info).

And if you’re interested in displaying MGRS coordinate data in Google Earth, the Nearby.org.uk website has a link that plots MGRS gridlines in Google Earth, with a central marker that displays the 1-meter MGRS reference.

Addendum: See this post for a roundup of MGRS utilities.




Google Earth PhotoOverlay Tool

Brand-spanking new from the UCL Centre for Advanced Spatial Analysis (CASA) comes the Google Earth Photo Overlay Creator, a free program to aid in creating PhotoOverlays, photographic images you can embed into Google Earth to correspond to the actual view. While you can do this to a limited degree from Google Earth, and can also do it directly in KML, the GE Photo Overlay Creator simplifies the job tremendously. It also lets you “tile” a large image, similar to tiled Ground Overlays, so that it loads in only the image information necessary for that particular view. This reduces both the bandwidth and computational requirements, particularly for large images.

The program is Java, and will run in Windows, Macintosh and Linux (check the readme.txt file for info; see this Digital Urban post for a full instructional tutorial). Full support of all image formats requires that you have Java Advanced Imaging installed.

Via Digital Urban blog.

Added 11/6/07: The Google Earth Blog links to another tutorial on this tool at GELessons.




Grid Creation And Path/Polygon Measurements: Two New Online KML Tools

KML-GRID: Creates a point, line or filled polygon grid in KML. Set the desired parameters:

KMLGrid1

Clicking on “Data Fill Example” enters sample data into the boxes. For Grid Origin, it’s decimal latitude/longitude. For Increment/Decrement, it’s currently also decimal degrees, as the “Length Units” drop-down at top is currently limited to those units (wouldn’t surprise me if additional unit options were added soon). Click on “Create GRID”, and a view of the grid is shown in Google Maps (lines in this case):

10-24-2007-2.20.39 PM

Click on the “Download KML File” button, and the KML code will appear in your browser; either choose “Save As” from the File menu, or copy and paste it into a text editor and save it as a KML file there. Open it in Google Earth, and there’s your grid:

kmlgrid

A useful complement to GE-Path for creating KML grids.
KML – Area & Length: I’ve covered some other utilities that will calculate path lengths from KML code, filling in a gap in Google Earth. This new utility calculates not just path lengths, but areas as well. Paste the KML code into the text box:

kmllengtharea

For KML files that have both paths and polygons, you can calculate just the path lengths, just the areas, or both; set the units and the delimiters at top. When you click on “Process data”, you’ll get back a text window with the IDs and lengths/areas of the features in the KML file, separated on each line by the chosen delimiter. e.g. for the grid file above:

kmllengthresults




KML Time Embedder Improved With Hour-Minute-Second Ability

I posted a while back about a small utility I wrote called KML Time Embedder, which lets you embed TimeSpan or TimeStamp data into a KML file for use in Google Earth time animations. That version only allowed year-month-day times, but I said that if enough people asked, I’d add the ability to stamp with hour-minute-second in addition to year-month-day. Thanks to popular demand (two people), I’ve modified the program to include that capability.

If you haven’t already read posts one and two on this utility, the following won’t make much sense.

In the upper-right, above the checkbox to enable timezones, is a new one to enable setting the time of day for each date:

enabletimeset

Check that box, and setting the timezone is automatically enabled (and can’t be turned off). Set your local time zone relative to UTC (Greenwich Mean Time) using the dropdown at right.

With that box checked, timeset boxes will appear to the right of the date set inputs:

timeinputs

These will only become enabled for input after you’ve selected a day, and are set for 24-hour time (e.g. 2:17 PM is 14:17:00). As before, if you’re in TimeSpan mode and want it to run from the beginning time to the present, just leave the end of the timespan section blank. Click on Verify Dates to make sure they’re what you want. The program does check to see if the dates and times are valid, but I’m not 100% sure I’ve made that foolproof, so you should check them manually:

sampledatetime

If they’re what you want, click on the “Embed Time Information” button, and the output file will be written with both date and hour of day information.

If you’ve already downloaded and installed the KML Time Embedder, you can just download this small executable file (about 20 KB) and unzip it into the program directory. For that matter, the executable by itself should work fine for most people. If it doesn’t, you can download the full install program (2 MB) which now contains the updated executable.

Other free utilities can be found on the Utilities page. If you find this or any of my other utilities particularly useful and would like to show your appreciation, donations of any amount are gratefully accepted via PayPal.





Using The KML Time Embedder, Concluded

Continuing on from the last post about the KML Time Embedder (download just the executable here, or the full install here), a utility to embed time data into a KML file:

fullscreen

Correct for local time zone: The default time zone for Google Earth times is UTC (aka Greenwich Mean Time), so a day runs from 00:00 to 23:59 UTC; you can set the time for your local time zone, but you have to know where to go in the time options to do this. For longer periods of time, the offset between local time and UTC might not make a difference. But if the time period is short, and the exact start and end of the day need to occur for the data’s local time zone, then check this box, and select the offset from UTC from the dropdown; this specifies the timezone for which the data is valid:

timezone

Embed Time Information: Once you’ve set the input and output filenames, this control is enabled, but you’ll get an error message if you haven’t set a beginning or end time for TimeSpan, or a single time for TimeStamp. If you have, then the time data will be embedded after the first feature tag found in the file. Feature tags are:

  • <Folder>
  • <Document>
  • <Placemark>
  • <GroundOverlay>
  • <ScreenOverlay>
  • <PhotoOverlay>
  • <NetworkLink>

You’ll get a message window when the file is created, but that’s no guarantee that it’s valid.

Reset All: Resets everything.

Reset Dates: Leaves the filenames and UTC checkbox alone, but resets all the date settings.

Help: Opens the first post about this utility on this website (the poor man’s help file)

Exit: Quits the program.

Despite all the caveats I’ve given, the alpha testers have yet to report a serious problem with this utility in its current form, so hopefully you shouldn’t have any major problems. If you do find any bugs, drop me a line with the specifics, and the problem KML file if possible, and I’ll try to fix it. The usual disclaimers: use at your own risk, not responsible for any damage, etc.. Given that it doesn’t re-write the original file under any circumstance, and only writes text files to your hard drive, the worst thing it could probably do is not work.

This program is useful not just for assigning specific times to KML features, but also generic times that let you create animations, like animated GIFs, or showing the effects of a rising sea level on Manhattan, where the KML features are associated with a time only to create an animated effect.

Other free utilities can be found on the Utilities page. If you find this or any of my other utilities particularly useful and would like to show your appreciation, donations of any amount are gratefully accepted via PayPal.




Using The KML Time Embedder To Stamp Time Data Into A Google Earth File

Since Google Earth currently doesn’t let you add time data to a KML file, you have to use an alternate approach like manually editing the KML file, or using one of several different spreadsheet-oriented methods. I’ve put together a third option, a “simple” Windows utility called “KML Time Embedder” that will let you specify the time information in a GUI, and embed it automatically into a KML file. There are a few limitations on its use:

1. KML files only, not KMZ (but if you have a KMZ file, you can open it in Google Earth and then save it as a KML file)

2. Only simple unstyled feature tags will work, e.g. <Document> will work while the valid <Document id=”Yourstyle”> won’t; if this turns out to be a problem for a lot of people, I might fix it. But then again, if you’re adding style IDs to KML, you’re probably wouldn’t use this utility anyway.

3. Only the first feature tag will have time data embedded after it; if this is a problem, you can always save individual KML files for every separate feature using Google Earth. Feature tags are:

  • <Folder>
  • <Document>
  • <Placemark>
  • <GroundOverlay>
  • <ScreenOverlay>
  • <PhotoOverlay>
  • <NetworkLink>

4. If a document already has time data embedded in it, it will be rejected.

5. There is some error-checking, but I suspect it’s not complete, so I’ve added a “verify” function that lets you manually inspect the time information before embedding it into the file.

6. This version only embeds date time, not hour/minute/second time; if enough people ask, I might add that capability. Done! Visit this post for the details.

I’ve posted two zip files with the program. The first one is just the executable (21 kB zipped) and requires some VB6 files that are probably already installed on your computer (especially if you’re running Windows XP SP2). If it doesn’t work, or if you want the full bells-and-whistles installation with a Start Menu item, try the full install package (2 MB zipped).

When the program runs, you’ll get the following extra-fancy interface:

fullscreen

The functions are:

Open Input KML File: Selects the KML file you want to embed time data into. If it finds time data already present, it will reject the file (see #4 above). If it can’t find an acceptable “feature” tag, it gets rejected as well (see #2 above).

Enter Output KML File: Select the name of the output file. It will check to make sure you’re not specifying the input filename as the output file, and also prompt you if you select an existing filename to make sure you want to overwrite it.

Auto Output File: After you’ve enter the time data, pressing this button will create an output filename by appending the time data to the end of the input filename.

KML Time Info Mode: Specifies the type of time data to be embedded.

TimeSpan is for data that is associated with a starting and ending time. If the time runs from a start time to the present, just leave the end TimeSpan blank.

TimeStamp is for data associated with a single specific time; selecting this disables the “end TimeSpan” input.

Enter beginning/end of TimeSpan, or TimeStamp data: After you select the input file, you can enter the beginning time and/or end time if appropriate, or just a TimeStamp (in TimeStamp mode, only one set of input boxes will be visible). Type the year directly into the box, and use negative numbers for BC. The program will check for valid numbers, and will reject the year 0 as invalid (because it *is* invalid; there is no year zero in the Western BC/AD year system). If you want the TimeSpan to run from a time in the past to the indefinite present, or are doing a TimeStamp, just leave the end TimeSpan section blank. Conversely, if you want the TimeSpan to run from the indefinite past and end at a specific date, leave the beginning TimeSpan section blank.

Verify Dates: Once you’ve entered your beginning date (and end date if desired), clicking on Verify Dates will display the time data at the bottom, and do a basic check to make sure that the beginning date is before the end date. If you specify month or day for one time, but not the other, that will be brought to your attention; while it’s probably best to make sure that both dates have the same sets of data entered (year-month-day), it doesn’t appear to be mandatory in KML. There are probably bugs in my validation routines, so you should make sure the dates are correct; if you find a case where the program says the dates are valid, and they’re not, please let me know.

Concluded tomorrow ….

Other free utilities can be found on the Utilities page. If you find this or any of my other utilities particularly useful and would like to show your appreciation, donations of any amount are gratefully accepted via PayPal.




Putting Time Data Into A KML File

Last year, Google added the capability to embed time data into a KML file, allowing you to create animated time-based data displays and animations (like the examples on this blog on sea level rise animation, or converting animated GIF files into Google Earth animated images). Oddly enough, almost a year later you still can’t add time data to a KML file in Google Earth itself, but have to add it manually using a text editor, or in some limited ways when creating the file. But it’s not a particularly-complicated process, involving adding a few lines of KML code after Feature element tags; examples of Features are:

  • <Folder>
  • <Document>
  • <Placemark>
  • <GroundOverlay>
  • <ScreenOverlay>
  • <PhotoOverlay>
  • <NetworkLink>

The two time-related KML elements are TimeSpan and TimeStamp.

TimeSpan: For a set of data that encompasses a specific interval between two times, you would use the <TimeSpan> KML tag. For example, for a period spanning from August 1, 2000 to September 1, 2003, associating the time data with a <Document> tag would look like this:

<Document>

<TimeSpan>

<begin>2000-08-01</begin>

<end>2003-09-01></end>

</TimeSpan>

The rest of your Document data, followed by the </Document> tag to close it …

For a time period running from a specific start time to the present, you’d just need the <begin>…</begin> part, and leave out the <end>…</end> section; similarly, for a time period running from the indefinite past to a specific time, keep the <end>…</end> section and leave out the <begin>…</begin>.

TimeStamp: For a set of data associated with a specific time, you would use the <TimeStamp> KML tag. If the data in your KML folder is valid for June 6, 1944 at 6 AM:

<Folder>

<TimeStamp>

<when>1944-06-06T06:00:00></when>

</TimeStamp>

The rest of your Folder data, followed by the </Folder> tag to close it …

All of the details for these two time-related KML tags can be found at Google’s KML 2.2 Reference Page, including the proper formatting for date, time, and timezones.

Time data is easy enough to add to a KML file, I suppose, but it would be nice to be able to assign them to a feature directly in Google Earth, for those who don’t want to deal with editing KML files. I suspect that will be added to Google Earth sometime in the future, especially now that ArcGIS Explorer has come out with superior time-handling features, but until then I’ve created another option. In upcoming posts, I’ll describe a simple utility I’ve written that lets you add time data to a Google Earth KML file without having to know any KML.