Category Archives: GIS

GeoServer 2.6.2, Programmatically Registering an SLD

While using GeoServer 2.6.2 for a project, I ran into an issue registering a styled layer descriptor (SLD) over the REST interface.

The SLD in question uses a PointSymbolizer, referring to a graphic in the same directory as the SLD. When I login to GeoServer’s administrative interface, I can easily create the SLD from scratch, and everything validates/saves/displays as expected. Original SLD.

Continue reading

NOAA Specific Area Message Encoding (SAME)…Geocoded

While working on a web services project I needed to parse Specific Area Message Encoding (SAME) geocodes from NOAA (Wikipedia) (NOAA). Specifically, I needed to be able to parse the six-digit geocodes from HERE, and get a lat/lon back. From what I can tell, this list won’t be changing much, so server side geocoding is preferred. I figured this had been done by someone, somewhere…yet looking through NOAA’s official documentation and Googling did not result in geocoded geocodes.

Using Java stub code and the Google Geocoding API, I generated a geocoded list of each entry…

Local Copy of Original List: SameCode.txt
Geocoded Version: SameCodeGeocoded.txt

Technical notes:
0. The string delimiter is now a semicolon.
1. This list is up to date as of 04.27.2014.
2. The Google Geocoding API only allows 2500 queries a day for personal use. I split up the list and ran the code twice over a 48 hour period.
3. The API had some trouble with a few of the U.S. Pacific Islands, using Google Earth and Wikipedia, I hand annotated those ones (less than half a dozen).

Weather Underground Web API using C#, Part 2

For part 2 of the Weather Underground API post, I’ll be taking weather data, and injecting it into a KML file. The Keyhole Markup Language (KML) is an XML based format that allows geographic data e.g. lines, points, polygons, to be easily seen in compatible viewers.

Using the previous post as a starting point, we’ll be adding:

  • Front Matter. Starts the KML file, defines the encoding, has a concise description of the file.
  • Style Section. Defines the way the balloons and text will look in the KML file.
  • KML Encoding. The information from the Wunderground API call is encapsulated in pertinent KML.
  • System.IO.File. Is used to write the output file.

Continue reading

Weather Underground Web API using C#, Part 1

In the off hours, I’ve been teaching myself C#…a simple enough object oriented language, with the benefit of using the .NET framework. If you’re targeting Windows, it’s incredibly easy…features like file IO and serial port communications work effortlessly.

I have a list of tasks that I complete before I refer to myself as ‘capable’ in a new language:

  • Helloworld
  • Web API Access
  • File IO
  • XML Parsing
  • GUI Creation
  • Serial Communication
  • System Call
  • Directory Management
  • Database Connectivity
  • 3rd Party Library Integration
  • Error Catching/Mitigation
  • Logging

Continue reading

Blue Marble Mosaic

Recently, I decided to push www.olympianengine.com to Google App Engine. Google App Engine is a platform for building and hosting web applications on Google Web Servers (wikipedia).

I hit an immediate show-stopper: the maximum size for any single file is 1048576 bytes. I spent a night chopping up the bluemarble.tif from the GeoTIFF tutorial, such that I can load it in chunks, then realized I have large KML files on another website that I have no intention of chopping up.

Continue reading

GeoServer Manipulation

GeoServer is an open source GIS server that propagates geospatially enabled information. Data is ingested as shapefiles, GeoTIFFs, geospatially enabled databases etc. and then displayed using Open Geospatial Consortium standards, namely WMS and WFS. This allows any software product that has a WMS/WFS ingest to accept these served layers, i.e. Google Earth, OpenLayers, ESRI products.

Many users have run into the issue of updating their GeoServer installation with new data programmatically. There is a partial module for a RESTful configuration, but has not been fully implemented. There is also an excellent code sample here that is the basis for this tutorial. However, with 1.6.0, and the new integrated security subsystem, the code no longer functions properly.

Continue reading

GeoTIFF Creation

A common method for creating raster data that can be ingested into a GIS system, is to encode the data into a GeoTIFF. A GeoTIFF is a TIFF image file, with geographic tags that allow the image to have a geographic presence.

In this tutorial we will cover:
1. Creating a TIFF from a bitmap using libtiff.
2. Creating metadata and a world file for the GeoTIFF using libgeotiff.
3. Encoding the TIFF and metadata to make the GeoTIFF using libgeotiff.
4. Checking the correctness of the GeoTIFF.

Continue reading