On 8/5/2011 9:14 AM Susana Iraiis Delgado Rodriguez said...

Hello list!
I have a python script which works with other libraries in order to
create maps. The script looks for an extension in a specific directory
and with mapnik makes the thumbnails.
The module works fine from Python command line and Pyton IDLE, but I
need this program to run from MS-DOS, when I added the try statement it
started to fail. Module runs but doesn't do what I need. Console shows:

C:\Python26>shp2png.py C:\\ .png
Iniciando...
Listo

What am I doing wrong?


First, get rid of the encompassing try: except block so you can see any actual errors instead of trapping them. Place print statements at various points to test and confirm values. Read up on pdb.set_trace() to assist when prints don't quite help enough. Start your diagnostics from there and post the the actual traceback results when you get stuck.

Emile


import mapnik
import os,fnmatch, sys
from mapnik import LineSymbolizer,PolygonSymbolizer,PointSymbolizer
from osgeo import ogr,gdal,osr

directorio = sys.argv[1]
extension = sys.argv[2]


drop this...
try:


outdent this...
     if len(sys.argv) == 3:
         print 'Iniciando...'
         file_list = []
         folders = None
         for root, folders, files in os.walk( directorio+'\\' ):
             for filename in fnmatch.filter(files, extension):
                 file_list.append(os.path.join(root, filename))

throw a print statement here to confirm that file_list has valid contents (I suspect not)

         for row, filepath in enumerate(file_list, start=1):
             dir(LineSymbolizer().stroke)
             shapeData = ogr.Open(filepath)
             shp = 'Error al abrir el archivo' +filepath
             if shapeData is None:
                 print shp
                 continue
             layer = shapeData.GetLayer()
             defn = layer.GetLayerDefn()
             geo = defn.GetGeomType()
             (ruta, filename) = os.path.split(filepath)
             archivo = os.path.splitext(filename)
             i = archivo[0]+'.png'

             m = mapnik.Map(800,500,"+proj=latlong +datum=WGS84")
             m.background = mapnik.Color('#EBEBEB')
             s = mapnik.Style()
             r=mapnik.Rule()

             if geo == 3 or geo == -2147483645:
                 print "Trabajando mapa "+ruta+"\\"+filename+" con
geometria "+ str(geo)

r.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('#EB784B')))

r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(170%,170%,170%)'),0.9))
                 s.rules.append(r)
                 m.append_style('My Style',s)
                 lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
                 try:
                     lyr.datasource =
mapnik.Shapefile(base=ruta,file=archivo[0])
                     lyr.styles.append('My Style')
                     m.layers.append(lyr)
                     m.zoom_to_box(lyr.envelope())
                     mapnik.render_to_file(m,i, 'png')
                     print "La imagen " +i+ " fue creada."
                 except RuntimeError, e:
                     print 'Shapefile invalida'
                     continue

             elif geo == 2 or geo == -2147483646:
                 print "Trabajando mapa "+ruta+"\\"+filename+" con
geometria "+ str(geo)

r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('#EB784B'),0.9))
                 s.rules.append(r)
                 m.append_style('My Style',s)
                 lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
                 try:
                     lyr.datasource =
mapnik.Shapefile(base=ruta,file=archivo[0])
                     lyr.styles.append('My Style')
                     m.layers.append(lyr)
                     m.zoom_to_box(lyr.envelope())
                     mapnik.render_to_file(m,i, 'png')
                     print "La imagen " +i+ " fue creada."
                 except RuntimeError, e:
                     print 'Shapefile invalida'
                     continue

             elif geo == 1 or geo == -2147483647:
                 print "Trabajando mapa "+ruta+"\\"+filename+" con
geometria "+ str(geo)
                 blue =
mapnik.PointSymbolizer('C:\Python26\icono.png','png',50,50)
                 blue.allow_overlap = True
                 s=mapnik.Style()
                 r=mapnik.Rule()
                 r.symbols.append(blue)
                 s.rules.append(r)
                 m.append_style('My Style',s)
                 lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
                 try:
                     lyr.datasource =
mapnik.Shapefile(base=ruta,file=archivo[0])
                     lyr.styles.append('My Style')
                     m.layers.append(lyr)
                     m.zoom_to_box(lyr.envelope())
                     mapnik.render_to_file(m,i, 'png')
                     print "La imagen " +i+ " fue creada."
                 except RuntimeError, e:
                     print 'Shapefile invalida'
                     continue
             else:
                 print "Algo fallo y no entro a ninguna de las geometrias"
         print "Listo"
     else:
             print "Tus argumentos no son correctos"

... and drop this
except IndexError:
     print "Tus argumentos no son correctos"




_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to