Archive for October, 2007

Introducing Arc2Earth V2

Posted on October 31, 2007. Filed under: Arc2Earth, ESRI, Google Earth, Google Maps |

 

GeoSpatial Training Services is in the process of creating a new e-learning course covering the Arc2Earth ArcGIS Extension (Version 2). Over the next few posts I’m going to be taking a look at the latest release of Arc2Earth and describing some of the wonderful functionality this product provides for translating your existing ArcGIS data into readable formats for Google Earth, Google Maps, and Microsoft Virtual Earth.  As an ArcGIS extension, Arc2Earth was initially built as a highly efficient tool for exporting ArcGIS data including the geometric representations of the data, labels, renderers, graphics, and layouts into a format that Google Earth understands.  However, as you’ll see, Arc2Earth has evolved into more than just an ArcGIS data export tool for Google Earth.  In addition to all the great export functionality you can also import KML/KMZ files directly to ArcGIS in geodatabase format, view raster tiles (aerial and hybrid imagery) provided by Microsoft, Yahoo, and Ask.com from within ArcMap, export your data as map tiles to Google Maps and Virtual Earth, publish data to web enabled viewers, automate exports through the scheduler process, and much more.

With the recent release of Arc2Earth V2, you now have four different versions from which to choose, each with different levels of functionality.  For detailed version and pricing inforrmation please click here.  All of the versions share the same installer and software, and a license key is used to unlock their functionality.  You can review the Feature List to determine which features are in each version.  Arc2Earth functionality is accessed through the Arc2Earth toolbar in ArcMap and the supporting Map Tile Layer toolbar. Let’s review the functionality provided by this tool. 

Exporting Data to Google Earth, Google Maps, Virtual Earth
The bread and butter utilities provided by Arc2Earth center around the ability to export your ArcGIS data into Google Earth format files (KML/KMZ) so we’ll review those first.   From the Export pulldown menu, Arc2Earth gives you the ability to perform a number of data exports.  You may choose to export only the selected layer in your ArcMap table of contents, export all layers in the table of contents, take a quick snapshot (this generates a KML Ground Overlay image) of your ArcMap data or layout view, create map tiles for import into Google Maps or Virtual Earth, export selected graphics, or create a Google Earth Superoverlay if you have large amounts of data.  The figures at the bottom of this post show various exports taken from ArcMap using Arc2Earth.

Some of the more advanced export capabilities include the ability to add time values to your exported data, create regions for displaying large amounts of data in Google Earth, extrude data for 3D data display, and the creation of map tiles for viewers.

Time Data
Using the Time Data tab in the Arc2Earth Export dialog you can add time data to your exported data.  Google Earth will then display the timeline control and allow the user to change the current timeframe of the globe.  Time values can be added manually or can come from existing attributes in your data.  Click here to learn more about the Google Earth time control.

Regions
KML Regions are a powerful feature that allows Google Earth to stream your data in pieces instead of as a whole.  If you have large datasets, this is the best way to display your data.  Regions can also be used to display data only when the user’s camera is at a certain altitude.  Regions can be created using the Regions tab in the Arc2Earth Export dialog.  To learn more about Google Earth Regions click here.

Data Extrusion
I think this is probably my favorite export capability in Arc2Earth because of the stunning visualizations that are possible.  In Google Earth, vector data can be displayed in 3D, and by using an attribute field or existing Z-values in your ArcGIS data you can export 3D data similar to the figures you see below. 

Map Tile Exporter
The Arc2Earth Map Tile Exporter can be used to create map tiles for Google Maps, Microsoft Virtual Earth, or Superoverlays for Google Earth.  Map tiles can be exported to a local computer, web server, or Amazon S3 storage.  Map viewers can also be created for each of these products similar to the screenshot below.

Importing Data to ArcGIS 
In addition to being able to export data from ArcGIS, Arc2Earth also provides import tools that give you the ability to visualize imagery and hybrid raster tiles from Microsoft, Yahoo, and Ask.com as custom layers in ArcMap.  This gives you the ability to add in background aerial imagery to your data or layout view.  Notice in the figure below that a Microsoft Aerials layer has been added to the table of contents.

The loading of these custom raster layers is accomplished through the use of the Map Tile Layer toolbar.  Arc2Earth downloads the raster tiles over the Internet in small chunks, and seams them together for display in ArcMap.  In addition, Arc2Earth monitors the current map extent and downloads the appropriate tiles to display for the current map extent.  Tiles are automatically georeferenced so that they will display no matter what spatial reference you have set in your map.

In addition to opening the Map Tiles Toolbar, the Import menu item can also be used to import KML, KMZ, GeoRss, and Atom files into ArcMap.  The importer can either create a new feature class or update an existing class in either a PGDB or ArcSDE instance.

Arc2Earth Geoprocessing Tool
Arc2Earth integrates into the ArcGIS geoprocessing framework by providing a custom geoprocessing tool that can be used from any script or model or directly from ArcToolbox.  This geoprocessing tool can be a great resource when combined with other tools or in a model as the final output parameter.

Arc2Earth Scheduler
The Arc2Earth Scheduler is a separate program that runs outside the main Arc2Earth extension, and is only available with the Enterprise license level.  Scheduler maintains a list of jobs that will run at user defined intervals (hourly, daily, weekly, etc).  This is great for automating regularly scheduled exports to Google Earth, Google Maps, or Virtual Earth. 

One Last Tidbit
 Display Microsoft Virtual Earth inside ArcMap.  More information coming soon on this!

Arc2Earth has many other useful functions for integrating ArcGIS with Google Earth, Google Maps, and Virtual Earth and we’ll go into more detail in our posts in the near future.

For more information on e-learning and instructor led courses provided by GeoSpatial Training Services please click here.

Arc2Earth Screenshots

Read Full Post | Make a Comment ( None so far )

Arc2Earth News

Posted on October 29, 2007. Filed under: GeoSpatial Training Services, Google Earth, Google Maps |

GeoSpatial Training Services is pleased to announce that it has formed a business partnership with Arc2Earth.  Under this agreement, GeoSpatial Training Services will provide a customized e-learning course for the Arc2Earth ArcGIS extension.  In addition, GeoSpatial Training will also become a reseller of Arc2Earth software.  In the near future you will be able to purchase Arc2Earth directly from GeoSpatial Training Services along with the new e-learning course detailing how to use Arc2Earth to export your ArcGIS Data to Google Earth, Google Maps, and Microsoft Virtual Earth.  In addition, our related e-learning courses including “Mastering KML in Google Earth“, “Integrating ArcGIS Desktop and Google Earth“, and “Introduction to the Google Maps API” are also available through GeoSpatial Training Services as a bundle. 

Arc2Earth Version 2 was recently released and is packed with new features for exporting your data from ArcMap into Google Earth, Google Maps, and Virtual Earth formas as well as importing map tiles into ArcMap.  For more information on the new features available in Arc2Earth Version 2 please click here.

Read Full Post | Make a Comment ( None so far )

Tripp Corbin Named ESRI Top 5 Instructor

Posted on October 29, 2007. Filed under: ESRI |

GeoSpatial Training Services would like to congratulate Tripp Corbin of Keck & Wood, Inc. on his recent recognition from ESRI as a Top 5 Authorized Instructor for the 3rd Quarter of 2007.  Keck & Wood, an authorized reseller of e-learning courses from GeoSpatial Training Services, offers official ESRI training classes such as “Introduction to ArcGIS I” and “Introduction to ArcGIS II”.  These classes introduce new users to the basic functions and capabilities of ArcGIS Desktop software.  They form the foundation for new ArcGIS users.  In addition to introductory classes, Keck & Wood provides more advanced GIS training such as “Using AutoCAD Data in ArcGIS” or custom training classes based on clients specific needs.  All classes offered by Keck & Wood count as credit toward getting or maintaining the GISP certification from the GIS Certification Institute.  In addition, Keck & Wood is an authorized reseller of e-learning courses from GeoSpatial Training Services. 

 Tripp recently co-authored the e-learning and instructor led versions of the “Using AutoCAD Data in ArcGIS” course.  If you haven’t had the opportunity to take this course yet please take some time to discover how it be of benefit to you and/or your organization.

To see a schedule of upcoming instructor led GIS classes delivered by Keck & Wood please click here.

For more information on the e-learning version of this course please click here.

Read Full Post | Make a Comment ( None so far )

Creating Dynamic Google Earth Applications with Python

Posted on October 8, 2007. Filed under: Google Earth, Network Links |

In previous posts I’ve covered the general concepts and underlying KML that drives Google Earth Network Link functionality.  What I’d like to do in this post is introduce you to the concept of using CGI scripting with the Python programming language to create dynamic mapping applications.   Python is an easy to use, open-source, extensible, interpreted language which many ESRI users are already familiar with for accomplishing geoprocessing tasks in ArcGIS. 

The Task
The goal of this post is to create a dynamic Google Earth application showing active wildland fire events in North America.  To accomplish this task we’re going to use the Network Link functionality provided by Google Earth in conjunction with a Python CGI script that will process comma delimited text files provided by the Fire Information for Resource Management Systems (FIRMS).  FIRMS generates new files each day and updates are applied to the files at approximately four hour intervals throughout the day.

Server Setup
A Google Earth Network Link gives you the ability to serve data from a remote server and is commonly used to distribute data to large numbers of users.  In this case we’ll be using a web server running IIS to process the Python script.  You will need to make sure that Python has been installed on the server that will run the script(s) and that your web server software (IIS in this case) is properly configured to run Python scripts.  Please click here to get detailed information on configuring IIS to use Python.  Please note that this step is not optional and your Python script will not run correctly until the web server has been configured.

Overview
In the figure below you will see a representation of the basic process of what takes place in a dynamic Google Earth application.  We’ll start with a KML file (WildlandFire.kml) which contains <NetworkLink> and <Link> elements that point to a Python script called generateFirePoints.py.  This script reads the daily FIRMS wildland fire data for North America and parses out the geographic coordinates (latitude, longitude) along with a confidence value and generates a KML data stream containing the wildlife fires to be plotted.  Finally, the data is presented in Google Earth. 

Creating WildlandFire.kml
My previous post gave you the details on the KML elements related to Network Links so I’m not going to rehash this information here, but I do want to cover the relevant elements used to point to your Python script.  As you may recall, the <NetworkLink> element contains a <Link> child element which can be used to point to a KML/KMZ file or CGI script.  The <href> child element of <Link> is where you specify the URL to your CGI script.  For example:

<Link>
   <href>http://www.geospatialtraining.com/GE/scripts/generateFirePoints.py</href&gt;
</Link>

The KML file that contains this link (WildlandFire.kml) makes a call to the Python script generateFirePoints.py located on a remote web server.  Click here to retrieve the full text of the WildlandFire.kml file.  To see the KML code you’ll need to open this file with a text editor.  Note the <refreshMode> and <refreshInterval> elements.  The value “onInterval” in the <refreshMode> element specifies that the Python script will be called on a time interval.  The time interval is given in seconds using the <refreshInterval> element.  In this case we’re using a four hour time interval. 

Python Script Contents
Our Python script (generateFirePoints.py) needs to do a number of things to correctly deliver a KML stream back to Google Earth. 

  • Return a response code of HTTP 200 (the web server takes care of this)
  • Set the response’s content type to text/plain or application/vnd.google-earth.kml+xml
  • Parse the FIRMS wildland fire text file for current fire locations
  • Build the appropriate KML elements and send to GE in a data stream

Response Content Type 
When responding to a request from Google Earth, you must set the response’s content-type to a suitable MIME type.  The MIME type for KML files is

  • application/vnd.google-earth.kml+xml

Before returning the KML stream containing your data you must set this MIME type which can be done with the following line of Python code:

print “Content-Type: application/vnd.google-earth.kml+xml”

Parsing the File
Each day FIRMS integrates remote sensing and GIS technologies to deliver hotspot/wildland fire locations in multiple formats including comma delimited text files containing coordinate information in the form of latitude and longitude coordinates along with other attribute information including the time of acquisition and a confidence value.  For our purposes in this example we’ll primarily be concerned with pulling out the coordinate values for plotting in Google Earth.  The text files are posted to the FIRMS ftp site each morning at 00:00 UTC.  The file continues to be updated throughout the day as new data becomes available.  The format for these files is as follows:

Latitude
Longitude
Brightness Temp
Along scan pixel size
Along track pizel size
Date
Time of acquisition
Satellite (A=Aqua and T=Terra)
Confidence

And here is an example:
36.549,-82.964,318.7,1.0,1.0,10/02/2007/1625/T/70

To download the sample file I’ve used in this post click here.

In this example we’re primarily interested in pulling out the latitude and longitude coordinates which will then be streamed as KML elements to Google Earth.  File manipulation including parsing comma delimited text files is extremely easy to do in Python.  Let’s examine the final generateFirePoints.py file.  Right Click and select Save to download a copy of the file.  Go ahead and open the file using a Python editor such as IDLE or with a text editor like Wordpad.  The first few lines of code simply set content type, KML header, KML body, and KML footer variables.  The only real item of note is in the kmlBody variable where we set up the <Style> element for the icon that we will use to display wildland fires in Google Earth. 

The real heart of the Python script is the next section.  We first open the FIRMS file and read in the contents of the file one line at a time into a list variable.  For purposes of this example we’ve hard-coded the path to the file name.  FIRMS creates new files each day for North America and the rest of the world and the filenames reflect the continent plus the year and Julian date so obviously hard-coding the file name would not work in a real application since the most up to date file name changes daily.  However, for our purposes in this example it will suffice.

We then loop through each line in the file and pull out the latitude, longitude, and confidence values, and write them into a KML stream.  The end result is a unique <Placemark> for each wildland fire that will be displayed in Google Earth.

Finally, we send the KML stream to Google Earth through the print statement along with the final KML output.  Notice that we first send the content type through the “print contentType” statement.  You will also need to close the FIRMS file.

The resulting display in Google Earth will look something like the figure below.

Our “Mastering KML in Google Earth” and upcoming “Creating Dynamic Google Earth Applications” cover these subjects in great detail.  For more information regarding training services from GeoSpatial Training Services please click here.

Read Full Post | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...

Follow

Get every new post delivered to your Inbox.

Join 46 other followers