<div dir="ltr">Hello Remi,<div><br></div><div>Do you know who, what list I should report this to? In my work I found is that plpython doesn't work well with the memory drivers for gdal or ogr. Specifically when I would run the my code it might create the raster dataset in memory and the for no apparent reason it would terminate the database connection. I thought this was specific to gdal memory until I encountered some downstream issues with vector datasets. </div><div><br></div><div>The error was resolved choosing actual directories and writing the data there. I suppose that there would have to a specific plpython memory driver.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, May 21, 2016 at 5:04 AM, Rémi Cura <span dir="ltr"><<a href="mailto:remi.cura@gmail.com" target="_blank">remi.cura@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Hey,<br></div><div class="gmail_default" style="font-family:monospace,monospace">debuggin plpython is a bit of a pain.<br></div><div class="gmail_default" style="font-family:monospace,monospace">Maybe you are aware that you can use <br></div><div class="gmail_default" style="font-family:monospace,monospace">plpy.notice to print values during execution.<br><br><a href="http://geoexamples.blogspot.fr/2012/01/creating-files-in-ogr-and-gdal-with.html" target="_blank">This blog</a> seems to indicate that what you do should work: <br><pre name="code">driver = gdal.GetDriverByName( 'MEM' )
ds = driver.Create( '', 255, 255, 1, gdal.GDT_Int32)<br><br><br></pre><pre name="code">Maybe you can check that executing that in plain python while logged as postgres works?<br></pre><pre name="code">Cheers,<br>Rémi-C<br></pre><pre name="code"><br></pre><br><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2016-05-18 21:26 GMT+02:00 David Haynes <span dir="ltr"><<a href="mailto:haynesd2@gmail.com" target="_blank">haynesd2@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yes because the second function in my doesn't error.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>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></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><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><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></div></div>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">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>
<br>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">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>
</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>