Hey, debuggin plpython is a bit of a pain. Maybe you are aware that you can use plpy.notice to print values during execution.
This blog <http://geoexamples.blogspot.fr/2012/01/creating-files-in-ogr-and-gdal-with.html> seems to indicate that what you do should work: driver = gdal.GetDriverByName( 'MEM' ) ds = driver.Create( '', 255, 255, 1, gdal.GDT_Int32) Maybe you can check that executing that in plain python while logged as postgres works? Cheers, Rémi-C 2016-05-18 21:26 GMT+02:00 David Haynes <hayne...@gmail.com>: > Yes because the second function in my doesn't error. > > On Wed, May 18, 2016 at 12:06 PM, Martijn Meijers <b.m.meij...@tudelft.nl> > wrote: > >> I think the gdal.getDriver call returns None. Hence the attribute error >> on the line afterwards. Are you sure that 19 is what you should pass as >> input? >> >> Martijn >> >> Verzonden vanaf mobiel. >> >> >> -------- Oorspronkelijk bericht -------- >> Van: David Haynes >> Datum:18-05-2016 17:35 (GMT+01:00) >> Aan: postgis-users@lists.osgeo.org >> Onderwerp: [postgis-users] PL/Python >> >> Hello, >> >> I have a question regarding importing the gdal library using pl/python. >> Specifically, I want to create an in memory raster using the gdal library. >> This is a snippet of code that I have written, >> >> CREATE OR REPLACE FUNCTION terrapop_area_level_to_raster2( >> sample_geog_level_id bigint, raster_variable_id bigint, raster_band bigint) >> RETURNS text AS >> $BODY$ >> from osgeo import gdal >> import numpy as np >> from osgeo import ogr, osr >> >> memDriver = gdal.GetDriver(19) >> #memDriver = gdal.GetDriverByName('MEM') >> memRast = memDriver.Create('', 10, 10, 1, gdal.GDT_Int32) >> >> This is the error I receive. A python NoneType error. Which seems to that >> the gdal class has not been imported. I have verified that gdal is >> available on the system. >> >> ERROR: AttributeError: 'NoneType' object has no attribute 'Create' >> SQL state: XX000 >> >> However, this function on the same server and database returns to me all >> the gdal drivers. Any idea how I can diagnose this problem? >> >> CREATE OR REPLACE FUNCTION gdal_drivers() >> RETURNS SETOF text AS >> $BODY$ >> >> from osgeo import gdal >> driver = gdal.GetDriverByName('MEM') >> rast = driver.Create('', 2, 4, 1, gdal.GDT_Int32) >> >> names = [] >> driverall = gdal.GetDriverCount() >> for i in range(gdal.GetDriverCount()): >> driver = gdal.GetDriver(i) >> drivername = driver.ShortName >> names.append([i,drivername]) >> >> return names >> >> $BODY$ >> LANGUAGE plpythonu VOLATILE >> >> >> >> >> >> >> _______________________________________________ >> postgis-users mailing list >> postgis-users@lists.osgeo.org >> http://lists.osgeo.org/mailman/listinfo/postgis-users >> > > > _______________________________________________ > postgis-users mailing list > postgis-users@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/postgis-users >
_______________________________________________ postgis-users mailing list postgis-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/postgis-users