<div dir="ltr">I am learning Geo development. I am following the example from the book 'Geospatial Python Development'<div><br></div><div>I am stuck with the tutorial where it does the InvGeoTransform the raster data (obtain the l10g here <a href="https://www.ngdc.noaa.gov/mgg/topo/gltiles.html">https://www.ngdc.noaa.gov/mgg/topo/gltiles.html</a> and the header file l10g.hdr from here <a href="https://www.ngdc.noaa.gov/mgg/topo/elev/esri/hdr/">https://www.ngdc.noaa.gov/mgg/topo/elev/esri/hdr/</a>)</div><div><br></div><div>The error that I received is: too many values to unpack at the line where it does the InvGeoTransform()</div><div><br></div><div><br></div><div>The python code in the book is: </div><div><br></div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:Menlo;font-size:9pt"><span style="color:rgb(204,120,50)">import </span>sys<span style="color:rgb(204,120,50)">, </span>struct<br><span style="color:rgb(204,120,50)">from </span>osgeo <span style="color:rgb(204,120,50)">import </span>gdal<br><span style="color:rgb(204,120,50)">from </span>osgeo <span style="color:rgb(204,120,50)">import </span>gdalconst<br><br>minLat  = -<span style="color:rgb(104,151,187)">48<br></span>maxLat  = -<span style="color:rgb(104,151,187)">33<br></span>minLong = <span style="color:rgb(104,151,187)">165<br></span>maxLong = <span style="color:rgb(104,151,187)">179<br></span><span style="color:rgb(104,151,187)"><br></span>dataset = gdal.Open(<span style="color:rgb(106,135,89)">"l10g"</span>)<br>band = dataset.GetRasterBand(<span style="color:rgb(104,151,187)">1</span>)<br><br>t = dataset.GetGeoTransform()<br>success<span style="color:rgb(204,120,50)">,</span>tInverse = gdal.InvGeoTransform(t)<br><span style="color:rgb(204,120,50)">if not </span>success:<br>    <span style="color:rgb(136,136,198)">print</span>(<span style="color:rgb(106,135,89)">"Failed!"</span>)<br>    sys.exit(<span style="color:rgb(104,151,187)">1</span>)<br><br>x1<span style="color:rgb(204,120,50)">,</span>y1 = gdal.ApplyGeoTransform(tInverse<span style="color:rgb(204,120,50)">, </span>minLong<span style="color:rgb(204,120,50)">, </span>minLat)<br>x2<span style="color:rgb(204,120,50)">,</span>y2 = gdal.ApplyGeoTransform(tInverse<span style="color:rgb(204,120,50)">, </span>maxLong<span style="color:rgb(204,120,50)">, </span>maxLat)<br><br>minX = <span style="color:rgb(136,136,198)">int</span>(<span style="color:rgb(136,136,198)">min</span>(x1<span style="color:rgb(204,120,50)">, </span>x2))<br>maxX = <span style="color:rgb(136,136,198)">int</span>(<span style="color:rgb(136,136,198)">max</span>(x1<span style="color:rgb(204,120,50)">, </span>x2))<br>minY = <span style="color:rgb(136,136,198)">int</span>(<span style="color:rgb(136,136,198)">min</span>(y1<span style="color:rgb(204,120,50)">, </span>y2))<br>maxY = <span style="color:rgb(136,136,198)">int</span>(<span style="color:rgb(136,136,198)">max</span>(y1<span style="color:rgb(204,120,50)">, </span>y2))<br><br>width = (maxX - minX) + <span style="color:rgb(104,151,187)">1<br></span>fmt = <span style="color:rgb(106,135,89)">"<" </span>+ (<span style="color:rgb(106,135,89)">"h" </span>* width)<br><br>histogram = {} <span style="color:rgb(128,128,128)"># Maps elevation to number of occurrences.<br></span><span style="color:rgb(128,128,128)"><br></span><span style="color:rgb(204,120,50)">for </span>y <span style="color:rgb(204,120,50)">in </span><span style="color:rgb(136,136,198)">range</span>(minY<span style="color:rgb(204,120,50)">, </span>maxY+<span style="color:rgb(104,151,187)">1</span>):<br>    scanline = band.ReadRaster(minX<span style="color:rgb(204,120,50)">, </span>y<span style="color:rgb(204,120,50)">, </span>width<span style="color:rgb(204,120,50)">, </span><span style="color:rgb(104,151,187)">1</span><span style="color:rgb(204,120,50)">,<br></span><span style="color:rgb(204,120,50)">                               </span>width<span style="color:rgb(204,120,50)">, </span><span style="color:rgb(104,151,187)">1</span><span style="color:rgb(204,120,50)">,<br></span><span style="color:rgb(204,120,50)">                               </span>gdalconst.GDT_Int16)<br>    values = struct.unpack(fmt<span style="color:rgb(204,120,50)">, </span>scanline)<br><br>    <span style="color:rgb(204,120,50)">for </span>value <span style="color:rgb(204,120,50)">in </span>values:<br>        <span style="color:rgb(204,120,50)">try</span>:<br>            histogram[value] += <span style="color:rgb(104,151,187)">1<br></span><span style="color:rgb(104,151,187)">        </span><span style="color:rgb(204,120,50)">except </span><span style="color:rgb(136,136,198)">KeyError</span>:<br>            histogram[value] = <span style="color:rgb(104,151,187)">1<br></span><span style="color:rgb(104,151,187)"><br></span><span style="color:rgb(204,120,50)">for </span>height <span style="color:rgb(204,120,50)">in </span><span style="color:rgb(136,136,198)">sorted</span>(histogram.keys()):<br>    <span style="color:rgb(136,136,198)">print</span>(height<span style="color:rgb(204,120,50)">, </span>histogram[height])</pre><br></div><div>* when I do: gdalinfo l10g, i got this info:</div><div><div>Driver: EHdr/ESRI .hdr Labelled</div><div>Files: l10g</div><div>       l10g.hdr</div><div>Size is 10800, 6000</div><div>Coordinate System is `'</div><div>Origin = (90.000000000000497,-0.000000000000500)</div><div>Pixel Size = (0.008333333333000,-0.008333333333000)</div><div>Corner Coordinates:</div><div>Upper Left  (  90.0000000,  -0.0000000) </div><div>Lower Left  (  90.0000000, -50.0000000) </div><div>Upper Right ( 180.0000000,  -0.0000000) </div><div>Lower Right ( 180.0000000, -50.0000000) </div><div>Center      ( 135.0000000, -25.0000000) </div><div>Band 1 Block=10800x1 Type=Int16, ColorInterp=Undefined</div><div>  NoData Value=-500</div></div><div><br></div><div>* And my gdalinfo --version shows: GDAL 2.3.0dev, released 2017/99/99</div><div><br></div><div>Can anyone show me what the issue is?</div><div><br></div><div>Thank you</div><div><br></div><div><br></div></div>