Thanks Luke this is exactly the approach I have used, solving the issue To me looks strange that a layer can't exist without the datasource in the scope, with other GIS API is not so. But anyway, good to know best regards
----- Original Message ---- From: "Pinner, Luke" <luke.pin...@environment.gov.au> To: Python Gis <pygis2...@yahoo.com> Cc: gdal-dev@lists.osgeo.org Sent: Thu, July 22, 2010 1:21:23 AM Subject: RE: [gdal-dev] python bindings: strange behavior with layer The datasource "ds" is still going out of scope as it is local to your "getLayer2" function. Lots of ways to avoid this. Try not wrapping it up in a function, or return a tuple of datasource and layer e.g. def getDSandLayer(shape_fullname): ds = ogr.Open(shape_fullname, 0) layer = ds.GetLayer(0) print 'Name from method: %s' % layer.GetName() return ds,layer; ds,layer = getLayer2('output/myshape.shp') print 'Name from main: %s' % layer.GetName() Luke ------ If you have received this transmission in error please notify us immediately by return e-mail and delete all copies. If this e-mail or any attachments have been sent to you in error, that error does not constitute waiver of any confidentiality, privilege or copyright in respect of information in the e-mail or attachments. Please consider the environment before printing this email. ------ _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev