About | Contact | SUBMIT PRESS | Advertise | FAQ
Newsletters | Twitter |
HomeNewsArticlesExpertsDataJobsEDULBSSTOREEVENTSDirectoryBLOGPHOTOSSocial Media
Software | Spotlights on Geospatial Data | Webmaps and Web Services | Mashup Zone | IMAGING | Hardware | Social Media  
advertisement

Top Geo News
Put Your News here! 
Social Connect




vimeostumble


GISuser Sponsor


GISuser Videos


See also SpatialVideos Youtube

Recent Site Additions
Webinars
GIS Job Opportunities
 

Loads of GIS Jobs!

Research Analyst in Geospatial Analytics
GIS Specialist III
Implementation Specialist
GIS Technician (Temporary)
quantitative Internet Geographer/Sociologist
Engineering Technician-GIS
Senior GIS Web Developer
UX Designer/Developer Lead
State GIS Coordinator
Project Manager
GISuser Sponsor

Directory
G-Map 
Category: iPhone LBS Apps


GISuser Sponsor


feed

AnyGeo - Anything Geospatial

↑ Grab this Headline Animator

GISuser Feed

Hot Job

hot gis tech job
JavaScript Developer, VA

Home arrow Articles arrow Web Services arrow Earthquake Mapping with OGC and Open Source Tools     

HOT JOB
post a GIS job * JOBS * Project Manager VA / JavaScript Developer 
Browse GIS/GEO Job Opportunities
/ 2013 Geotech Salary Survey
Submit News/tips to press @gisuser.com
Earthquake Mapping with OGC and Open Source Tools E-mail
Written by Tom Kralidis   
12 May 2005
One thing I've always found useful about USGS website is the neat "latest earthquakes" listing given each day. So one day I said to myself, "boy, wouldn't it be great if this type of information were available as a map for users to embed in their application?" 

The Open Geospatial Consortium (OGC) produces specifications web mapping, geographic information and processing. Perhaps the most used to date is the Web Map Service specification, which defines a common interface to interact with a server's geographic data through visualizations of maps. The Web Feature Service allows for users to access raw, actual data in Geography Markup Language (GML), which is an open XML format for geospatial data. Using common standards allows for maps and data to be delivered as "services", as opposed to static data download. This lets applications developers connect to geospatial data dynamically and fetch for a given area of interest, temporal slice, or attributional query.

There are many software tools which support the WMS specification. The neat thing about common standards is that servers can communicate with eachother regardless of what kind of software is used a given organization. In this particular example, I've chosen to use the University of Minnesota MapServer software. MapServer supports a number of OGC specifications, and can be run on a number of given operating systems. In addition, MapServer is free, open source software.

So, what I'm going to do is use MapServer to serve the latest earthquake data through a WMS server. Here are the steps involved:

  • use Perl script to format the data to GML
  • configure mapfile to serve GML as a WMS layer
  • add reference layers through WMS
  • publish URL

Data Formatting

MapServer accepts a number of different geospatial data formats, including GML. I wrote a quick Perl script which fetches the remote ASCII records from the USGS website and converts them to GML as a format MapServer, and any GML aware software, can work with. The neat thing about the output GML is that, as an XML format, it is interoperable and self-describing, which means applications which support GML can work with this data. Also, any XML processor can work with and process this data. Nice!

MapServer also works with shapefiles as input. Shapefiles are a binary encoded set of files which store geospatial data. Shapefiles are useful when GML becomes too large to work with. Since this is a small dataset, GML is a nice, application neutral, human readable file format to work with. GML can be thought of as a data transfer format over the Internet. We'll see later how MapServer can read a shapefile as a WFS and return GML on the fly. The Perl script to generate a shapefile is very similar to GML, except that we use Mapscript, a module which exposes MapServer functions in a number of languages, such as Java, PHP, and, in this case, Perl.

As the source data changes with time, I've opted to schedule a process to run every 10 minutes to freshen the data.

Mapfile Configuration

MapServer provides a CGI standalone process which is driven by a configuration file, called a "mapfile". Mapfiles contain layer information, data connections, area of interest, and so on.

So I wrote the mapfile to point to the output GML data. The mapfile is setup to act as an OGC WMS and OGC WFS.

At this point, any WMS client can make a request to MapServer as a WMS and have a map of the earthquakes returned to them. Here's a sample GetMap request:  

http://host/cgi-bin/mapserv/mapserv?map=/home/tkralidi/|config.map&service=
WMS&version=1.1.1&request=GetMap&format=image/png&width=500&height=300&srs=
EPSG:4326&layers=neis&bbox=-180,-90,180,90&styles

and here is the image which is returned by the URL:

At this point, any WMS client can connect to this data and integrate into their application with other data.

MapServer also acts as a WMS client, which means MapServer itself can connect to other WMS services and fetch maps for you, which you can return to your client. So the next step we take is to add some reference layers (imagery, political boundaries, coastlines). These reference layers themselves come from remote WMS servers. Here's a GetMap request which shows the earthquake data atop the reference data:

http://host/cgi-bin/mapserv/mapserv?map=/home/tkralidi/config.map&service=
WMS&version=1.1.1&request=GetMap&format=image/png&width=500&height=300&srs=
EPSG:4326&layers=envisat_meris,polbnd,coast,neis&bbox=-180,-90,180,90&styles

and here is the image returned by the URL:

Pretty neat and not alot of effort! One can make this as simple or as complex as they wish. The most simple thing to do is to add this as an HTML image tag in your webpage:

IMG height=300 alt="[ recent earthquakes ]" 
src="http://host/cgi-bin/mapserv/mapserv?map=/home/tkralidi/config.
map&service=WMS&version=1.1.1&request=GetMap&format=image/png&width=
500&height=300&srs=EPSG:4326&layers=envisat_meris,polbnd,coast,neis&bbox=
-180,-90,180,90&styles=" width=500 border=0

I've included the Perl script and sample mapfile for download.

Links

Thanks to Tom for this cool submission! You can contact him for comments at tomkralidis-at-hotmail-dot-com - More about Tom HERE

Last Updated ( 18 May 2005 )
 
< Prev   Next >

Submit Your GIS/Geo News/PR

blog comments powered by Disqus
Geo EDU Tip
EDU Webinars - 10 Awesome GeoTech Webinar Resources
SUGGESTED BOOK - Getting to Know ArcGIS for Desktop
HOT Devices
Video - Trimble Positions and the Geo Explorer 6000 XH
Social Media Tips
10 Map Services Your Business MUST Be Listed in
500 Social Media Marketing Tips: Essential Advice, Hints and Strategy for Business: Facebook, Twitter, Pinterest, Google+, YouTube, Instagram, LinkedIn, and More!
 
Recent Directory Listings
1. GeoJobsBIZ
    Category: Careers and Employment
    Created: May 21, 2013
2. Wolf-GIS - Mobile GIS...
    Category: iOS Developers
    Created: May 14, 2013
3. Wolf-GIS
    Category: Application Developers
    Created: May 14, 2013
4. Purple WiFi Presence...
    Category: Location Based Services (LBS)
    Created: May 14, 2013
5. Cal Poly - certificate...
    Category: College Programs and Universities
    Created: May 14, 2013
Show more...
Featured Events

 List Your Event Here 

THE GISuser Newsletter

See Recent edition
newsletter

subscribe GISuser

We won't share your address!
Sponsor

Popular Stuff!


GISuser Site Sponsor


Most Popular
Dev Tips


Programming with Python

GISuser HOT Spots!

Google Mashup Zone
GISuser WebMaps
Free Data Articles
Spotlights & Tips
GISuser Resumes
Data Links
10 Cool Things
The LBS Zone!


Partner Sites


lbszone.com


symbianone

A Spatial Media LLC property




Spatial Media, LLC ©2003 - 2013 All rights reserved / Privacy Statement