Difference between revisions of "GDAL2Tiles SoC 2007"

From OSGeo
Jump to navigation Jump to search
 
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Implementation of [http://www.gdal.org/gdal_drivertut.html Raster Driver for GDAL library], which will allow to write PNG/JPG tile structure as a new supported file-format. Generated tiles will contain also XML metadata, so after putting them on any webserver they could be used as data source for [http://earth.google.com/ Google Earth] (with [http://earth.google.com/kml/kml_21tutorial.html#superoverlays SuperOverlay KML]), [http://maps.google.com/ Google Maps], [http://www.openlayers.org/ OpenLayers], [http://www.worldkit.org/ WorldKit] and probably other viewers.
+
{| {{Prettytable}}
 +
| The Google Summer of Code project is finished. Results and source codes are published on project web page: [http://www.klokan.cz/projects/gdal2tiles/ GDAL2Tiles: Utility for easy tile-based publishing of raster maps and KML generation]. Usage tips and manual page is available on GDAL wiki page [http://trac.osgeo.org/gdal/wiki/UserDocs/Gdal2Tiles Gdal2Tiles Utility]. Project was accepted by GDAL community as [http://trac.osgeo.org/gdal/ticket/1763 #1763]. Utility is going to be distributed with new version of GDAL 1.5.0, but it is usable also now with stable branch of GDAL and FWTools.
 +
|}
 +
 
 +
 
 +
For suggestions and new ideas please use [[Talk:GDAL2Tiles_SoC_2007]].
 +
 
 +
[[Image:Pyramid.jpg|thumb|right|286px|Pyramid Tile Structure]]
 +
Implementation of [http://www.gdal.org/gdal_drivertut.html Raster Driver for GDAL library], which will allow to write PNG/JPG '''Pyramid Tile Structure''' as a newly supported file-format. Generated tiles will contain also XML metadata, so after putting them on any webserver they could be used as data source for:
 +
 
 +
*[http://earth.google.com/ Google Earth] (with [http://earth.google.com/kml/kml_21tutorial.html#superoverlays SuperOverlay KML])
 +
*[http://maps.google.com/ Google Maps]
 +
*[http://www.openlayers.org/ OpenLayers]
 +
*[http://www.worldkit.org/ WorldKit]
 +
 
 +
and probably other viewers.
  
 
Tile structure will follow recommendation from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification OSGEO Tile Map Service Specification].  
 
Tile structure will follow recommendation from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification OSGEO Tile Map Service Specification].  
Line 10: Line 25:
 
== Implementation details ==
 
== Implementation details ==
  
=== Tile Structure ===
+
=== Pyramid Tile Structure and Metadata ===
  
* Metadata from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification] will be created as main source of georeference (especially [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification#TileMap_Resource TileMap Resource XML]).  
+
* Metadata from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification] will be created as a main source of georeference (especially [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification#TileMap_Resource TileMap Resource XML]).  
* KML supports only EPSG:4326 (latlong with WGS84 datum) projection, so reprojection is needed if source projection is else. How to turn off not needed tiles by Regoins in KML?
+
* KML supports only EPSG:4326 (latlong with WGS84 datum) projection, so reprojection is needed if source projection is different. How to turn off unneeded tiles by Regions in KML?
* It would be nice to support zoom levels of Google Maps tiles (this have to be checked, maybe from [http://mapnik.org/ Mapnik] project, example of [http://mapnik.org/tiling/oxford/ generated tiles]. More info is available here: http://michal.guerquin.com/googlemaps.html
+
* It would be nice to support zoom levels of Google Maps tiles (this have to be checked, maybe from [http://mapnik.org/ Mapnik] project, example of [http://mapnik.org/tiling/oxford/ generated tiles]. More info is available here: http://michal.guerquin.com/googlemaps.html and http://docs.codehaus.org/display/GEOSDOC/Google+Maps
  
 
=== GDAL Driver ===
 
=== GDAL Driver ===
Line 20: Line 35:
 
* implements Create() function, so random access to format is possible (so for example direct warping of image into tiles will run).
 
* implements Create() function, so random access to format is possible (so for example direct warping of image into tiles will run).
  
=== gdal2tiles ===
+
=== GDAL2Tiles utility ===
  
 
* Command-line utility similar to existing [http://www.gdal.org/gdal_utilities.html GDAL utilities].
 
* Command-line utility similar to existing [http://www.gdal.org/gdal_utilities.html GDAL utilities].
 
* Should be able to process files without proper georeference (to publish X-Ray images, vedute and other large bitmap files too).
 
* Should be able to process files without proper georeference (to publish X-Ray images, vedute and other large bitmap files too).
  
== Possible future extension (not necessary part of SoC project) ==
+
== Possible future extension (not necessarily part of SoC project) ==
  
* Support for more viewers ([http://dev.live.com/virtualearth/sdk/ Microsoft Virtual Earth] with generator [http://research.microsoft.com/mapcruncher/ MapCruncher], [http://worldwind.arc.nasa.gov/ NASA World Wind] with generator [http://www.worldwindcentral.com/wiki/Dstile_howto DSTile], any other?)
+
* Support for [http://dev.live.com/virtualearth/sdk/ Microsoft Virtual Earth] - they have generator [http://research.microsoft.com/mapcruncher/ MapCruncher]
 +
* Support for [http://worldwind.arc.nasa.gov/ NASA World Wind]. Tile generation for [http://www.worldwindcentral.com World Wind] is done via GDAL using the dstile utility available [http://www.worldwindcentral.com/wiki/Dstile_howto here]. Source code is [http://www.worldwindcentral.com/wiki/Making_Layers here]. Does it have only fixed internal structure of tiles or tile structure (names of directories and png files) could be done by TMS recomendation?
 +
* Maybe support of [http://www.ossim.org/OSSIM/ossimPlanet.html OSSIM Planet].
 
* Simple GUI for 'gdal2tiles' under Windows/Linux/Mac done with Python (one of WxWidgets/TKinter/EasyDialogs).
 
* Simple GUI for 'gdal2tiles' under Windows/Linux/Mac done with Python (one of WxWidgets/TKinter/EasyDialogs).
 
* Implementation of GDAL Reader for generated tile structure (could be based on [https://svn.osgeo.org/svn/gdal/trunk/gdal/frmts/wcs/ gdal/frmts/wcs], thanks FrankW)
 
* Implementation of GDAL Reader for generated tile structure (could be based on [https://svn.osgeo.org/svn/gdal/trunk/gdal/frmts/wcs/ gdal/frmts/wcs], thanks FrankW)
Line 35: Line 52:
 
== Schedule ==
 
== Schedule ==
  
* May 28: Designing of file format, all XML Metadata (KML, TMS XML files, MS Virtual Earth, ...?) have to be known and tested with supported viewers, sample map is published.
+
* May 28: Designing the file format, XML Metadata formats(KML, TMS XML files, MS Virtual Earth, ...?) which will be supported have to be chosen and tested with their respective viewer applications, sample map is published.
 
* July 9: Alfa version of GDAL Driver for Tile Structure Writer is uploaded into official SVN.
 
* July 9: Alfa version of GDAL Driver for Tile Structure Writer is uploaded into official SVN.
 
* August 20: Final version of the driver as well as gdal2tiles utility are uploaded and reviewed.
 
* August 20: Final version of the driver as well as gdal2tiles utility are uploaded and reviewed.
Line 41: Line 58:
 
== Competitors ==
 
== Competitors ==
  
Commercial applications like: [http://www.arc2earth.com/ Arc2Earth] have similar functionality. Several (mostly commercial) generators for Google Earth tiles were mentioned on http://www.ogleearth.com/.
+
Proprietary applications like: [http://www.arc2earth.com/ Arc2Earth] have similar functionality. Several (mostly proprietary) generators for Google Earth tiles were mentioned on http://www.ogleearth.com/.
  
 
Microsoft Research project [http://research.microsoft.com/mapcruncher/ MapCruncher] also generates tiles, but with metadata only for their MS Virtual Earth.
 
Microsoft Research project [http://research.microsoft.com/mapcruncher/ MapCruncher] also generates tiles, but with metadata only for their MS Virtual Earth.
  
[http://www.zoomify.com/ Zoomify] could be now used as tiling program for SuperOverlay in GoogleEarth with free [http://www.zoomify.com/express.htm ZoomifyerEZ] and generator [http://www.staremapy.cz/zoomifykml/ ZoomifyKML] (which I made as part of my Master Thesis).
+
[http://www.zoomify.com/ Zoomify] could be now used as tiling program for SuperOverlay in GoogleEarth with free [http://www.zoomify.com/express.htm ZoomifyerEZ] and generator [http://www.staremapy.cz/zoomifykml/ ZoomifyKML] (which I created as a part of my Master Thesis).
  
 
== What new functionality this project brings ==
 
== What new functionality this project brings ==
  
Clear open-source implementation of tile structure export. Any application which uses GDAL library could easily export files into tile structure. Supplied utility gdal2tiles will convert [http://www.gdal.org/formats_list.html any supported file format] with georeference into tiles, it will allow batch mode processing of files.
+
Clean open-source implementation of tile structure export. Any application which uses GDAL library will easily be able to export files into a tile structure. Supplied utility gdal2tiles will convert [http://www.gdal.org/formats_list.html any supported file format] with georeference into tiles, it will also allow batch mode processing of files.
  
GDAL is strong library for processing maps and large raster files, including reprojection, so any already georeferenced maps could be easily converted for simple on-line publishing on a webserver without special server requirements (like MapServer is). Advantages of this attitude are written in [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification].
+
GDAL is strong library for processing maps and large raster files, including reprojection, so any already georeferenced maps could be easily converted for simple on-line publishing on a webserver without special server requirements (like MapServer is). Advantages of this approach are described in [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification].
  
Reader could be implemented later, which will (with support on the side of UNM MapServer) allow to access published tile structure by WMS standard, if UNM MapServer will act as proxy.
+
Reader could be implemented later, which will (with support on the side of UNM MapServer) allow to access published tile structure using WMS standard, where UNM MapServer will act as a proxy.
  
 
== Who will use results of this project ==
 
== Who will use results of this project ==
Line 59: Line 76:
 
Several organizations and individuals who handle processing of maps.
 
Several organizations and individuals who handle processing of maps.
  
Institutions who will use the 'gdal2tiles' utility from this project, as I am cooperating with them:
+
Institutions which will use the 'gdal2tiles' utility from this project, as I am cooperating with them:
* Moravian Library Brno
+
* Moravian Library in Brno, Czech Republic
 
* Historical institute of Czech Academy of Sciences
 
* Historical institute of Czech Academy of Sciences
 
* Czech National Library
 
* Czech National Library
Line 70: Line 87:
 
My name is Klokan Petr Přidal, I have finished Master degree in Applied Informatics at [http://www.muni.cz/ Masaryk University in Brno], now I am in the first semester of postgraduate study of Cartography at [http://www.cvut.cz/ Czech Technical University in Prague]. My Master thesis subject was [http://is.muni.cz/th/39656/fi_m/annotation_english.txt "Processing and Digital Publishing of Historical Documents"] ([http://www.staremapy.cz/th.pdf PDF of thesis in Czech]).
 
My name is Klokan Petr Přidal, I have finished Master degree in Applied Informatics at [http://www.muni.cz/ Masaryk University in Brno], now I am in the first semester of postgraduate study of Cartography at [http://www.cvut.cz/ Czech Technical University in Prague]. My Master thesis subject was [http://is.muni.cz/th/39656/fi_m/annotation_english.txt "Processing and Digital Publishing of Historical Documents"] ([http://www.staremapy.cz/th.pdf PDF of thesis in Czech]).
  
I am familiar with open-source projects. I did Linux/Solaris administration. I like Python language, but I have used also other languages (C language, PHP).
+
I am familiar with open-source projects. I have experience with Linux/Solaris system administration. I like Python language, but I have also used other languages (C language, PHP).
 
I have supplied some patches into Gnumeric ([http://bugzilla.gnome.org/show_bug.cgi?id=330129 #330129], [http://bugzilla.gnome.org/show_bug.cgi?id=334257 #334257]).
 
I have supplied some patches into Gnumeric ([http://bugzilla.gnome.org/show_bug.cgi?id=330129 #330129], [http://bugzilla.gnome.org/show_bug.cgi?id=334257 #334257]).
I founded project http://mplayerosx.sf.net/ and I won a competition in programming application for Mac with http://dictosx.sf.net/ (Objective-C).
+
I founded a http://mplayerosx.sf.net/ project and I also won a competition in programming application for Mac using http://dictosx.sf.net/ (Objective-C).
My primary desktop is Gnome and Linux, but I use also Mac, Windows and Solaris. I did programming for all of this platforms (mostly smaller projects).
+
My primary desktop is Gnome and Linux, but I also use Mac, Windows and Solaris. I did programming for all of these platforms (mostly smaller projects).
 +
 
 +
I am interested in historical cartography, I have several presentations about old maps and free software. I made a czech web page about it at http://www.staremapy.cz/ and registered domain http://www.oldmapsonline.org/ (which is not in use yet).
 +
 
  
I am interested in historical cartography, I have several presentations about old maps and free software. I made a czech web page about it at http://www.staremapy.cz/ and I registered domain http://www.oldmapsonline.org/ (which is not in use yet).
 
  
My homepage with contact info: http://www.klokan.cz/.
+
[[Category:Google Summer of Code]]

Latest revision as of 10:30, 1 May 2016

The Google Summer of Code project is finished. Results and source codes are published on project web page: GDAL2Tiles: Utility for easy tile-based publishing of raster maps and KML generation. Usage tips and manual page is available on GDAL wiki page Gdal2Tiles Utility. Project was accepted by GDAL community as #1763. Utility is going to be distributed with new version of GDAL 1.5.0, but it is usable also now with stable branch of GDAL and FWTools.


For suggestions and new ideas please use Talk:GDAL2Tiles_SoC_2007.

Pyramid Tile Structure

Implementation of Raster Driver for GDAL library, which will allow to write PNG/JPG Pyramid Tile Structure as a newly supported file-format. Generated tiles will contain also XML metadata, so after putting them on any webserver they could be used as data source for:

and probably other viewers.

Tile structure will follow recommendation from OSGEO Tile Map Service Specification. Simple utility 'gdal2tiles' for converting supported file-formats into new tile structure will be created.

Implemetation of the file format driver will allow to export map raster data into Google Earth, Google Maps and other online viewers from any of applications which use GDAL library.

Idea for this project was suggested by FrankW at GDAL SoC Ideas.

Implementation details

Pyramid Tile Structure and Metadata

GDAL Driver

  • implements Create() function, so random access to format is possible (so for example direct warping of image into tiles will run).

GDAL2Tiles utility

  • Command-line utility similar to existing GDAL utilities.
  • Should be able to process files without proper georeference (to publish X-Ray images, vedute and other large bitmap files too).

Possible future extension (not necessarily part of SoC project)

  • Support for Microsoft Virtual Earth - they have generator MapCruncher
  • Support for NASA World Wind. Tile generation for World Wind is done via GDAL using the dstile utility available here. Source code is here. Does it have only fixed internal structure of tiles or tile structure (names of directories and png files) could be done by TMS recomendation?
  • Maybe support of OSSIM Planet.
  • Simple GUI for 'gdal2tiles' under Windows/Linux/Mac done with Python (one of WxWidgets/TKinter/EasyDialogs).
  • Implementation of GDAL Reader for generated tile structure (could be based on gdal/frmts/wcs, thanks FrankW)
  • Zoomify Tile Structure as alternative or modification of Zoomify with support for generated structure
  • Maybe implementation of georeference for tilestructure by use of GML.

Schedule

  • May 28: Designing the file format, XML Metadata formats(KML, TMS XML files, MS Virtual Earth, ...?) which will be supported have to be chosen and tested with their respective viewer applications, sample map is published.
  • July 9: Alfa version of GDAL Driver for Tile Structure Writer is uploaded into official SVN.
  • August 20: Final version of the driver as well as gdal2tiles utility are uploaded and reviewed.

Competitors

Proprietary applications like: Arc2Earth have similar functionality. Several (mostly proprietary) generators for Google Earth tiles were mentioned on http://www.ogleearth.com/.

Microsoft Research project MapCruncher also generates tiles, but with metadata only for their MS Virtual Earth.

Zoomify could be now used as tiling program for SuperOverlay in GoogleEarth with free ZoomifyerEZ and generator ZoomifyKML (which I created as a part of my Master Thesis).

What new functionality this project brings

Clean open-source implementation of tile structure export. Any application which uses GDAL library will easily be able to export files into a tile structure. Supplied utility gdal2tiles will convert any supported file format with georeference into tiles, it will also allow batch mode processing of files.

GDAL is strong library for processing maps and large raster files, including reprojection, so any already georeferenced maps could be easily converted for simple on-line publishing on a webserver without special server requirements (like MapServer is). Advantages of this approach are described in TMS Specification.

Reader could be implemented later, which will (with support on the side of UNM MapServer) allow to access published tile structure using WMS standard, where UNM MapServer will act as a proxy.

Who will use results of this project

Several organizations and individuals who handle processing of maps.

Institutions which will use the 'gdal2tiles' utility from this project, as I am cooperating with them:

  • Moravian Library in Brno, Czech Republic
  • Historical institute of Czech Academy of Sciences
  • Czech National Library
  • National Library of Scotland
  • University of Connecticut Library (with their grant "Building a Globally Distributed Historical Sheet Map Set of Austro-Hungarian Topographic Maps, 1877-1914", cooperating with New York Public Library, University of Connecticut Library, and Library of the American Geographical Society. It is a grant about building a scalable workflow and toolset for map libraries to add cartographic content to the Web.)

Student's Biography

My name is Klokan Petr Přidal, I have finished Master degree in Applied Informatics at Masaryk University in Brno, now I am in the first semester of postgraduate study of Cartography at Czech Technical University in Prague. My Master thesis subject was "Processing and Digital Publishing of Historical Documents" (PDF of thesis in Czech).

I am familiar with open-source projects. I have experience with Linux/Solaris system administration. I like Python language, but I have also used other languages (C language, PHP). I have supplied some patches into Gnumeric (#330129, #334257). I founded a http://mplayerosx.sf.net/ project and I also won a competition in programming application for Mac using http://dictosx.sf.net/ (Objective-C). My primary desktop is Gnome and Linux, but I also use Mac, Windows and Solaris. I did programming for all of these platforms (mostly smaller projects).

I am interested in historical cartography, I have several presentations about old maps and free software. I made a czech web page about it at http://www.staremapy.cz/ and registered domain http://www.oldmapsonline.org/ (which is not in use yet).