[OpenLayers-Users] WMS question

Robert Sanson SansonR at asurequality.com
Mon Jul 21 17:11:48 EDT 2008


Hi Linda
 
If you need to split the imagery into smaller tiles, the Python Image library can do it. The following Python script can read in PNG, JPG or TIF files with associated world reference files and split them into 10 x 10.
 
Once the splitting has been done, gdaltindex can create an index Shape file which can then be served via Mapserver.
_______________________________________
import sys, string, os
import Image
 
for infile in sys.argv[1:]:
    try:
        im = Image.open(infile)
        imname, imformat = string.split(str(infile),".")
        imwidth, imheight = im.size
        #print str(imwidth), str(imheight)
        # read in world file
        if (imformat == "jpg"):
            worldf = open(imname+".jgw","r")
        elif (imformat == "png"):
            worldf = open(imname+".pgw","r")
        elif (imformat == "tif"):
            worldf = open(imname+".tfw","r")
        dmpout = open("temp.dmp","a")
        pixelsize1 = float(worldf.readline())
        rot1 = worldf.readline()
        rot2 = worldf.readline()
        pixelsize2 = worldf.readline()
        xulc = float(worldf.readline())
        yulc = float(worldf.readline())
        worldf.close()
        leftbnd = xulc - (0.5 * pixelsize1)
        upperbnd = yulc + (0.5 * pixelsize1)
        rightbnd = leftbnd + (imwidth * pixelsize1)
        bottombnd = upperbnd - (imheight * pixelsize1)
        dmp = infile + ", " + str(leftbnd) + ", " + str(bottombnd) + ", " + str(rightbnd) + ", " + str(upperbnd) + "\n"
        dmpout.writelines(dmp)
        dmpout.close()
        if ((imwidth % 10) != 0) or ((imheight % 10) != 0):
            #print str(infile) + " is not neatly divisible by 10"
            imwidth = int((round(imwidth / 10)) * 10)
            imheight = int((round(imheight / 10)) * 10)
            im = im.resize((imwidth,imheight),Image.BICUBIC)
            im.save(infile)
        imtilex = imwidth / 10
        imtiley = imheight / 10
        yi = 0
        upper = 0
        while yi < 10:
            xi = 0
            left = 0
            while xi < 10:
                bottom = upper + imtiley
                right = left + imtilex
                box = (left, upper, right, bottom)
                imsub = im.crop(box)
                # print left, upper, right, bottom
                subname = imname+".0"+str(xi)+"0"+str(yi)+"." + imformat
                imsub.save(subname)
                #print subname
                xi = xi + 1
                left = right
            upper = bottom
            yi = yi + 1
        
    except IOError:
        pass
_____________________________________________
Cheers,
 
Robert Sanson
 
Robert Sanson, BVSc, MACVSc, PhD
Geospatial Services
AsureQuality Limited
PO Box 585, Palmerston North
NEW ZEALAND

Phone: +64 6 351-7990
Fax: +64 6 351-7919
Mobile: 021 448-472
E-mail: sansonr at asurequality.com 

>>> "Linda Rawson" <linda.rawson at gmail.com> 22/07/2008 8:29 a.m. >>>
This is really off topic but I need some help.  We have a mapping provider that can give us georeferenced images that would in turn need to be split up into tiles and put on a WMS service.  How does a complete novice go about this?  What should I tell them to give us the images in?  Should they be in geo-tiff format?  Is there some kind of image splitter that takes the big image and splits it into tiles?

-- 
Linda Rawson 



Click here ( https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== ) to report this email as spam.
------------------------------------------------------------------
The contents of this email are confidential to AsureQuality. If you have received this communication in error please notify the sender immediately and delete the message and any attachments. The opinions expressed in this email are not necessarily those of AsureQuality. This message has been scanned for known viruses before delivery. AsureQuality supports the Unsolicited Electronic Messages Act 2007. If you do not wish to receive similar communications in future, please notify the sender of this message.
------------------------------------------------------------------


This message has been scanned for malware by SurfControl plc. www.surfcontrol.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20080722/a9aada45/attachment.html


More information about the Users mailing list