[mapserver-users] Need Help with Custom (Raster) Data as Input

Rahkonen Jukka Jukka.Rahkonen at mmmtike.fi
Tue Jan 20 07:41:51 EST 2009


Hi,
 
You have decided to take the most rocky road that exists. Georeferencing scanned paper maps is not extra easy and I have not seen many good, easy to use free utilities for doing that. If you just want to learn Mapserver I would recommend you to acquire some ready, georeferenced images to start with.  But if you are not afraid then just go ahead.
 
First, your Mapserver map will remain empty because your output extents are 
EXTENT -2200000 -712631 3072800 3840000
 UNITS DD
while all your scanned maps have their upper left corner at point zero, zero
Upper Left  (    0.0,    0.0)
 
By the way, unit DD in the mapfile means decimal degrees but judged by number values in extent line I guess that they mean meters.
 
What you should do is to georeference your scanned images. It means that in some way you must tell Mapserver what place on Earth the images are presenting.  In most simple case giving coordinates of one corner and pixel sizes in east-west and south-north direction is enough. That is the information that ESRI style world file is giving.  For scanned maps it may not give very good results because images are more or less rotated.  Therefore more ground control points (GCP) would be needed. If the original map has coordinate grid then finding good GPSs is easy.  
 
A rather simple to use georeferencing utility that I have tried is available as Quantum GIS plugin.  Unfortunately it did not do very good job for me but it may have been improved since then.  I have been mostly feeding coordinates manually for gdal_translate utility and warped images then to target projection with gdalwarp but I wouldn't say that its a great pleasure to work like that.  Combining the user interface of QGis and gdal_translate-gdalwarp chain would give rather a nice tool for georeferencing.
Or maybe the same functionality could be added to OpenEV that comes with FWTools package.
 
By the way, most simple way to get your scanned image visible is to adjust mapfile extents to suit your imagery there around point 0,0.  No other data would suit with your image but at least you can see that the system works.
 
-Jukka Rahkonen-
 
________________________________

Lähettäjä: Muizudeen Kusimo [mailto:devboyng at gmail.com] 
Lähetetty: 20. tammikuuta 2009 13:43
Vastaanottaja: Rahkonen Jukka; vtammineni at roulacglobal.com; mapserver-users at lists.osgeo.org
Aihe: Re: [mapserver-users] Need Help with Custom (Raster) Data as Input



	Dear Rahkonen,
	
	Thank you for your mail, it was very helpful.
	
	I have done the following:
	
	1) Converted my .jpeg files to .tif and run the gdaltindex program to georeference them. It returned a .shp, .shx and .dbf files. But I don't have any .tfw file yet. Please see output of GDALTINDEX below.
	
	2) I tested my .map file with the shp2img utility and it generated a blank (white) .png file for me. Expectedly, the same blank file displays as blank in the browser (i.e. Ka-Map UI).
	
	My new questions:
	
	1) My maps were scanned from a paper map, does this affect my ability to Georeference them? 
	2) How do I determine the Projection of the scanned map images?
	
	Thanks.
	
	GDALTINDEX OUTPUT (condensed):
	==========================
	C:\ms4w\Apache\cgi-bin>gdalinfo c:\ms4w\apps\test\tmp\pg19.tif
	Driver: GTiff/GeoTIFF
	Files: c:\ms4w\apps\test\tmp\pg19.tif
	Size is 1098, 1696
	Coordinate System is `'
	Metadata:
	  TIFFTAG_XRESOLUTION=200
	  TIFFTAG_YRESOLUTION=200
	  TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
	Image Structure Metadata:
	  COMPRESSION=LZW
	  INTERLEAVE=BAND
	Corner Coordinates:
	Upper Left  (    0.0,    0.0)
	Lower Left  (    0.0, 1696.0)
	Upper Right ( 1098.0,    0.0)
	Lower Right ( 1098.0, 1696.0)
	Center      (  549.0,  848.0)
	Band 1 Block=1098x8 Type=Byte, ColorInterp=Palette
	  Color Table (RGB with 256 entries)
	    0: 0,0,0,255
	    1: 165,171,167,255
	    2: 255,197,98,255
	    3: 239,168,102,255
	    4: 206,150,75,255
	     .
	     . #removed to conserve space
	     .
	  255: 177,169,148,255
	
	C:\ms4w\Apache\cgi-bin>
	
	The test.map file I used:
	=================
	MAP
	 NAME test
	 STATUS ON
	 SIZE 1280 1280
	 EXTENT -2200000 -712631 3072800 3840000
	 UNITS DD
	 #IMAGECOLOR 255 255 255
	 IMAGETYPE JPEG
	
	 WEB
	   IMAGEPATH "c:\ms4w\apps\test\tmp\"
	   IMAGEURL "c:\ms4w\apps\test\"
	 END
	
	 LEGEND
	   TRANSPARENT TRUE
	 END
	
	 SCALEBAR
	   TRANSPARENT TRUE
	 END
	
	 LAYER
	   NAME "My Sample Location"
	   TYPE RASTER
	   STATUS ON
	   TILEINDEX "tmp\pg19.shp"
	   TILEITEM "Location"
	 END
	END #MAP END
	
	
	@Venkat
	
	I hope my mail gives a clearer picture of my status for your further advice.
	
	Thanks.
	
	
	On Tue, Jan 20, 2009 at 1:04 AM, Rahkonen Jukka <Jukka.Rahkonen at mmmtike.fi> wrote:
	

		Hi,
		 
		First of all your jpeg files need to be georeferenced.  Jpeg files are most often georeferenced with world files which are named as .jgw.  Sometimes they are named as .tfw, even that name is actually reserved for tiff files.  And Mapserver understands also world files named as .wld.
		If your images are georeferenced you can continue to building one single layer from all of your images.  It is done with gdaltindex utility program.  Gdaltindex is building a shapefile that records the extents of all the images to be indexed.
		Third step is to make a new raster layer that is using the shapefile index as a catalogue for finding the actual image files that needs to be opened when user is requesting a map from a certain area.
		 
		This should be enough to show you images as a single layer.  It would be a benefit to know the projection where the images are because otherwise they cannot be reprojected.  And for optimising performance it may be good to convert jpeg images to tiffs, but you can just start from jpegs and see if you are happy with the speed.
		In conclusion:
		1. Check georeferencing and projection, gdalinfo program is a good help in this.
		2. Make tileindex with gdaltindex
		3. Make a new raster layer in mapfile referring to just created tileindex file.
		 
		-Jukka Rahkonen-
		 


________________________________

			Lähettäjä: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta Muizudeen Kusimo
			Lähetetty: 20. tammikuuta 2009 10:45
			Vastaanottaja: mapserver-users at lists.osgeo.org
			Aihe: [mapserver-users] Need Help with Custom (Raster) Data as Input
			
			
			Hello Everyone,
			
			I am new to MapServer, however I am working on an application that is similar to Google Maps albeit with my own custom maps.
			
			The problem is:
			
			1) I have several maps mostly in .jpeg format and would like to use them as Data Inputs for this Web Application. I can't seem to get it done correctly. Must I convert these maps to a SHAPEFILE i.e. .shp or what? If so, how do I convert them?
			
			My development platform is:
			
			- Microsoft Windows XP
			- Ka-Map
			- MapServer (MS4W)
			
			Thanks.
			
			NB: I am re-reading the documentation for a solution.
			


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20090120/9e4c5940/attachment.html


More information about the mapserver-users mailing list