<div dir="ltr">Yes because the second function in my doesn't error.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 18, 2016 at 12:06 PM, Martijn Meijers <span dir="ltr"><<a href="mailto:b.m.meijers@tudelft.nl" target="_blank">b.m.meijers@tudelft.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div></div><div>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?</div><div><br></div><div>Martijn</div><div><br></div><div><div style="font-size:8px">Verzonden vanaf mobiel.</div></div></div><br><br><div>-------- Oorspronkelijk bericht --------</div><div>Van: David Haynes <u></u> </div><div>Datum:18-05-2016  17:35  (GMT+01:00) </div><div>Aan: <a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a> </div><div>Onderwerp: [postgis-users] PL/Python </div><div><div class="h5"><div><br></div><div dir="ltr">Hello,<div><br></div><div>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,</div><div><br></div><div>CREATE OR REPLACE FUNCTION terrapop_area_level_to_raster2( sample_geog_level_id bigint, raster_variable_id bigint, raster_band bigint) RETURNS text AS</div><div><span style="white-space:pre-wrap"> </span>$BODY$   </div><div><span style="white-space:pre-wrap">      </span></div><div><span style="white-space:pre-wrap"> </span>from osgeo import gdal</div><div><span style="white-space:pre-wrap">   </span>import numpy as np</div><div><span style="white-space:pre-wrap">       </span>from osgeo import ogr, osr</div><div><span style="white-space:pre-wrap">       </span></div><div><br></div><div><span style="white-space:pre-wrap">        </span>memDriver = gdal.GetDriver(19)</div><div><span style="white-space:pre-wrap">   </span>#memDriver = gdal.GetDriverByName('MEM')</div><div><span style="white-space:pre-wrap"> </span>memRast = memDriver.Create('', 10, 10, 1, gdal.GDT_Int32)</div><div><br></div><div>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. </div><div><br></div><div><div>ERROR: AttributeError: 'NoneType' object has no attribute 'Create'</div><div>SQL state: XX000</div></div><div><br></div><div>However, this function on the same server and database returns to me all the gdal drivers. Any idea how I can diagnose this problem?</div><div><br></div><div><div>CREATE OR REPLACE FUNCTION gdal_drivers()</div><div>  RETURNS SETOF text AS</div><div>$BODY$</div><div><br></div><div>from osgeo import gdal</div><div>driver = gdal.GetDriverByName('MEM')</div><div>rast = driver.Create('', 2, 4, 1, gdal.GDT_Int32)</div><div><br></div><div>names = []</div><div>driverall = gdal.GetDriverCount()</div><div>for i in range(gdal.GetDriverCount()):</div><div><span style="white-space:pre-wrap">     </span>driver = gdal.GetDriver(i)</div><div><span style="white-space:pre-wrap">       </span>drivername = driver.ShortName</div><div><span style="white-space:pre-wrap">    </span>names.append([i,drivername])</div><div><br></div><div>return names</div><div><br></div><div>$BODY$</div><div>  LANGUAGE plpythonu VOLATILE</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>
</div></div></div><br>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/postgis-users" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/postgis-users</a><br></blockquote></div><br></div>