<br>Hello list! <br>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.<br>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:<br>
<br>C:\Python26>shp2png.py C:\\ .png<br>Iniciando...<br>Listo<br><br>What am I doing wrong?<br><br>import mapnik<br>import os,fnmatch, sys<br>from mapnik import LineSymbolizer,PolygonSymbolizer,PointSymbolizer<br>from osgeo import ogr,gdal,osr<br>
<br>directorio = sys.argv[1] <br>extension = sys.argv[2] <br>try:<br> if len(sys.argv) == 3: <br> print 'Iniciando...'<br> file_list = []<br> folders = None<br> for root, folders, files in os.walk( directorio+'\\' ):<br>
for filename in fnmatch.filter(files, extension):<br> file_list.append(os.path.join(root, filename))<br> for row, filepath in enumerate(file_list, start=1): <br> dir(LineSymbolizer().stroke)<br>
shapeData = ogr.Open(filepath)<br> shp = 'Error al abrir el archivo' +filepath<br> if shapeData is None:<br> print shp<br> continue<br> layer = shapeData.GetLayer()<br>
defn = layer.GetLayerDefn()<br> geo = defn.GetGeomType()<br> (ruta, filename) = os.path.split(filepath) <br> archivo = os.path.splitext(filename)<br> i = archivo[0]+'.png'<br>
<br> m = mapnik.Map(800,500,"+proj=latlong +datum=WGS84")<br> m.background = mapnik.Color('#EBEBEB')<br> s = mapnik.Style()<br> r=mapnik.Rule()<br> <br>
if geo == 3 or geo == -2147483645:<br> print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+ str(geo)<br> r.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('#EB784B')))<br>
r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(170%,170%,170%)'),0.9))<br> s.rules.append(r)<br> m.append_style('My Style',s)<br> lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")<br>
try:<br> lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])<br> lyr.styles.append('My Style')<br> m.layers.append(lyr)<br> m.zoom_to_box(lyr.envelope())<br>
mapnik.render_to_file(m,i, 'png')<br> print "La imagen " +i+ " fue creada."<br> except RuntimeError, e:<br> print 'Shapefile invalida'<br>
continue <br> <br> elif geo == 2 or geo == -2147483646:<br> print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+ str(geo)<br>
r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('#EB784B'),0.9))<br> s.rules.append(r)<br> m.append_style('My Style',s)<br> lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")<br>
try:<br> lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])<br> lyr.styles.append('My Style')<br> m.layers.append(lyr)<br> m.zoom_to_box(lyr.envelope())<br>
mapnik.render_to_file(m,i, 'png')<br> print "La imagen " +i+ " fue creada."<br> except RuntimeError, e:<br> print 'Shapefile invalida'<br>
continue <br><br> elif geo == 1 or geo == -2147483647:<br> print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+ str(geo)<br>
blue = mapnik.PointSymbolizer('C:\Python26\icono.png','png',50,50)<br> blue.allow_overlap = True<br> s=mapnik.Style()<br> r=mapnik.Rule()<br> r.symbols.append(blue)<br>
s.rules.append(r)<br> m.append_style('My Style',s)<br> lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")<br> try:<br> lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])<br>
lyr.styles.append('My Style')<br> m.layers.append(lyr)<br> m.zoom_to_box(lyr.envelope())<br> mapnik.render_to_file(m,i, 'png')<br>
print "La imagen " +i+ " fue creada."<br> except RuntimeError, e:<br> print 'Shapefile invalida'<br> continue <br>
else:<br> print "Algo fallo y no entro a ninguna de las geometrias"<br> print "Listo"<br> else:<br> print "Tus argumentos no son correctos"<br>
except IndexError:<br> print "Tus argumentos no son correctos"<br><br><br>