<div dir="ltr">Hi Benjamin,<div><br></div><div>This does appear to work, I am now able to use vsimem file handlers with gdal rasters to go from numpy arrays to qgis raster layers effectively.  Very exciting, thanks for this tip!  I had another QGIS dev question, but I will start a new thread for that.</div><div><br></div><div>For anyone else, this is all that I did:</div><div><br></div><div>dataset = gdal_driver.Create('/vsimem/imagetst.tif', cols, rows, no_bands, gdal.GDT_Float32, creation_options)<br></div><div>...write array to band, set geotransform, etc....</div><div><br></div><div>rlayer = QgsRasterLayer('/vsimem/imagetst.tif', 'imagetst', 'gdal')</div><div><br></div><div>Thanks again,</div><div>Eric</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 3, 2021 at 12:57 AM Benjamin Jakimow <<a href="mailto:benjamin.jakimow@geo.hu-berlin.de">benjamin.jakimow@geo.hu-berlin.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Verdana,Geneva,sans-serif">
<p>Hi Eric,</p>
<p>you might try to use a /vsimem/ path. For example, save your image to "/vsimem/myimage.tif" and<br>open it as QgsRasterLayer. I haven't tested it with gdal.Datasets, but it works with with ogr.DataSources.<br>Probably you shouldn't overwrite or delete the "/vsimem" object while QGIS has still a reference on it.</p>
<p>More details here: <a href="https://gdal.org/user/virtual_file_systems.html#vsimem-in-memory-files" target="_blank">https://gdal.org/user/virtual_file_systems.html#vsimem-in-memory-files</a></p>
<p>Greetings,</p>
<p>Benjamin</p>
<p id="gmail-m_4914963047853608685reply-intro">On 2021-03-03 00:00, Eric Younkin - NOAA Federal wrote:</p>
<blockquote type="cite" style="padding:0px 0.4em;border-left:2px solid rgb(16,16,255);margin:0px">
<div id="gmail-m_4914963047853608685replybody1">
<div dir="ltr">Hello,
<div> </div>
<div>I've been trying to figure out how to draw grids and lines from numpy arrays without driving to a raster/vector file first.  I tried using the gdal 'MEM' driver to make a gdal Dataset from a numpy array and pass that in as a QgsRasterLayer, I get the following:</div>
<div> </div>
<div>>>> memobj<br><osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x0000019B3131AC30> ><br>>>> QgsRasterLayer(memobj, 'testlayer', 'gdal')</div>
Traceback (most recent call last):<br>  File "<input>", line 1, in <module><br>TypeError: QgsRasterLayer(): arguments did not match any overloaded call:<br>  overload 1: too many arguments<br>  overload 2: argument 1 has unexpected type 'Dataset'
<div>
<div> </div>
<div>
<div>The only other approach that I could find was:</div>
<div> </div>
<div><a href="https://gis.stackexchange.com/questions/201804/how-to-create-raster-layer-directly-from-numpy-array-in-qgis-without-saving-to" rel="noopener noreferrer" target="_blank">https://gis.stackexchange.com/questions/201804/how-to-create-raster-layer-directly-from-numpy-array-in-qgis-without-saving-to<br></a></div>
<div> </div>
<div>but I suspect that the return from the processing.run command is probably a temp file, so it is still going to file.  Is there not a way to generate a raster layer from a numpy array without writing to file first?<br><br>Thanks,<br>Eric</div>
<div> </div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"><span><span style="color:rgb(0,0,255)">Eric Younkin<br>Physical Scientist<br></span></span></div>
<div dir="ltr"><span><span style="color:rgb(0,0,255)">NOAA OCS, </span></span><span style="color:rgb(0,0,255);font-size:12.8px">Hydrographic Systems and Technology Branch</span></div>
<div dir="ltr"><span><span style="color:rgb(0,0,255)">1315 East-West Highway</span></span></div>
<div dir="ltr"><span><span style="color:rgb(0,0,255)">N/CS11, Room 6604<br>Silver Spring, MD 20910</span></span></div>
<div><span><span style="color:rgb(0,0,255)">Office: </span></span><span style="font-family:arial,sans,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(0,0,255)">240-847-8208</span></span></div>
<div dir="ltr"><span><span style="color:rgb(0,0,255)"> Cell: 828-331-8197</span><br></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div style="margin:0px;padding:0px;font-family:monospace">_______________________________________________<br>QGIS-Developer mailing list<br><a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noopener noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noopener noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div>
</blockquote>
<p><br></p>
<div id="gmail-m_4914963047853608685signature">-- <br>
<div style="margin:0px;padding:0px;font-family:monospace">--<br>Benjamin Jakimow, Doctoral Researcher<br>Earth Observation Lab | Geography Department | Humboldt-Universität zu Berlin<br><br>e-mail: <a href="mailto:benjamin.jakimow@geo.hu-berlin.de" target="_blank">benjamin.jakimow@geo.hu-berlin.de</a><br><br>phone:  +49 (0) 30 2093 6894<br>mobile: +49 (0) 157 5656 8477<br>fax:    +49 (0) 30 2093 6848<br>mail:   Unter den Linden 6 | 10099 Berlin | Germany<br>room: 2'222</div>
</div>
</div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><span><font color="#0000ff">Eric Younkin<br>Physical Scientist<br></font></span></div><div dir="ltr"><span><font color="#0000ff">NOAA OCS, </font></span><span style="color:rgb(0,0,255);font-size:12.8px">Hydrographic Systems and Technology Branch</span></div><div dir="ltr"><span><font color="#0000ff">1315 East-West Highway</font></span></div><div dir="ltr"><span><font color="#0000ff">N/CS11, Room 6604<br>Silver Spring, MD 20910</font></span></div><div><span><font color="#0000ff">Office: </font></span><span style="font-family:arial,sans,sans-serif;font-size:13px;white-space:pre-wrap"><font color="#0000ff">240-847-8208</font></span></div><div dir="ltr"><span><font color="#0000ff">
Cell: 828-331-8197</font><br>
</span></div></div></div></div></div></div></div></div></div></div></div></div>