<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: RasterToNumPyArray gives an error in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497588#M39078</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry, I'm not at work so don't have access to ArcGIS to test an example. I think the mosaic tool will do what you need though:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Mosaic_To_New_Raster/001700000098000000/"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Mosaic_To_New_Raster/001700000098000000/&lt;/A&gt;&lt;SPAN&gt; or &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000097000000"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000097000000&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 17 Dec 2011 20:14:10 GMT</pubDate>
    <dc:creator>Luke_Pinner</dc:creator>
    <dc:date>2011-12-17T20:14:10Z</dc:date>
    <item>
      <title>RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497583#M39073</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm having problems by using RasterToNumPyArray.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With the smal test data base it works, but if I try with a huge dataset (columns and rows: 67000, 58000, cellsize: 100 m) it gives me this error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Python26\ArcGIS10.0\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 309, in RunScript&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debugger.run(codeObject, __main__.__dict__, start_stepping=0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Python26\ArcGIS10.0\Lib\site-packages\pythonwin\pywin\debugger\__init__.py", line 60, in run&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _GetCurrentDebugger().run(cmd, globals,locals, start_stepping)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Python26\ArcGIS10.0\Lib\site-packages\pythonwin\pywin\debugger\debugger.py", line 624, in run&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exec cmd in globals, locals&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\ES_Map\recreationnew\RecNumpy2.py", line 31, in &amp;lt;module&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in1 = arcpy.RasterToNumPyArray(arcpy.env.workspace + "\\eu_coastna") #arcpy.RasterToNumPyArray(input1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\__init__.py", line 1113, in RasterToNumPyArray&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _RasterToNumPyArray(*args, **kwargs)&lt;BR /&gt;RuntimeError: ERROR 999998: Unexpected Error.&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;could you help me please.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;here is a simple example of my code&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Dec 2011 06:30:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497583#M39073</guid>
      <dc:creator>GraziaZulian</dc:creator>
      <dc:date>2011-12-16T06:30:26Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497584#M39074</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That's because your raster is too big to fit in memory. A 67000*58000 (1 band) 8 bit raster is 4GB, 16 bit is 7GB and 32 bit is 14GB...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you must use numpy, you will have to clip out smaller sections/tiles of your raster, convert to numpy array, process each tile separately and then convert back to raster and mosaic.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking at the commented out section of your code, you don't need to use numpy at all, all those operations can be done in spatial analyst map algebra.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Dec 2011 20:07:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497584#M39074</guid>
      <dc:creator>Luke_Pinner</dc:creator>
      <dc:date>2011-12-16T20:07:54Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497585#M39075</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I know that with the map algebra a can complete the same tasks, but I'm looking for a way to create less intermediate datasets and make my process less time consuming (I need 1 week to complete it). I'm working at continental scale with 25 m resolution data (The code I put was just a test).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you some suggestions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a way, for example to work with array by row?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Dec 2011 05:43:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497585#M39075</guid>
      <dc:creator>GraziaZulian</dc:creator>
      <dc:date>2011-12-17T05:43:21Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497586#M39076</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can specify what part of the raster to extract to a numpy array - RasterToNumPyArray(in_raster, lower_left_corner, ncols, nrows).&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/NumPyArrayToRaster/000v00000130000000/"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/NumPyArrayToRaster/000v00000130000000/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So you could loop through and process a few rows at a time.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Dec 2011 09:53:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497586#M39076</guid>
      <dc:creator>Luke_Pinner</dc:creator>
      <dc:date>2011-12-17T09:53:34Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497587#M39077</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, but I can't figure out how to rebuild the output dataset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you give me an example?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Dec 2011 17:02:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497587#M39077</guid>
      <dc:creator>GraziaZulian</dc:creator>
      <dc:date>2011-12-17T17:02:15Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497588#M39078</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry, I'm not at work so don't have access to ArcGIS to test an example. I think the mosaic tool will do what you need though:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Mosaic_To_New_Raster/001700000098000000/"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Mosaic_To_New_Raster/001700000098000000/&lt;/A&gt;&lt;SPAN&gt; or &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000097000000"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000097000000&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 17 Dec 2011 20:14:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497588#M39078</guid>
      <dc:creator>Luke_Pinner</dc:creator>
      <dc:date>2011-12-17T20:14:10Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497589#M39079</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I need to go back to office as well to try.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll let you know tomorrow,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the question is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do I loop for rows and cols? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inside the loop I calculate&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and then? do I create n rasters and than make the mosaic?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then I could delete the temporary rasters.... this could let me save space.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you give a look to the code that I'll post tomorrow?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 18 Dec 2011 05:44:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497589#M39079</guid>
      <dc:creator>GraziaZulian</dc:creator>
      <dc:date>2011-12-18T05:44:55Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497590#M39080</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Do I loop for rows and cols?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Depends on the type of raster you are using. Some rasters are tiled internally and it is much more efficient to access by tiles or blocks. Geodatabase rasters have 128x128 pixel tiles (by default), GRIDS are 256x4 (col then row), tiffs can be tiled or untiled (safest to process one row at a time).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is some code to process by tile (the commented out stuff is arcpy related that I can't test as I'm not at back work until January).&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;ncols=67000
nrows=58000
cellsize=2
xmin=0
ymax=58000
## ^^ Get all this info from your original raster

tile_size=(128,128) #GDB rasters=(128,128), tif=(ncols,1), GRID=(256,4)
ntiles = 4 #no. of tiles to process at a time

#arcpy.env.Extent=in_raster
#arcpy.env.outputCoordinateSystem=in_raster
#arcpy.env.cellSize=in_raster
#new_raster=arcpy.CreateRasterDataset(out_path, out_name, cellsize, pixel_type, 
#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spatial_reference)
for row in range(0,nrows,tile_size[1]):
&amp;nbsp;&amp;nbsp;&amp;nbsp; for col in range(0,ncols,tile_size[0]*ntiles):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colend=min([ncols,col+tile_size[0]*ntiles-1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowend=min([nrows,row+tile_size[1]-1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xstart=xmin+(cellsize*col)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ystart=ymax-(cellsize*(rowend+1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Processing cols',col,':',colend
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Processing rows',row,':',rowend
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Extracting lower left corner:',xstart,ystart
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #array=RasterToNumPyArray (in_raster, arcpy.Point(xmin,ystart), ncols, step)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Do your processing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #out_raster=NumPyArrayToRaster(array, arcpy.Point(xmin,ystart), cellsize, cellsize)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #arcpy.Mosaic_management(out_raster,new_raster)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:52:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497590#M39080</guid>
      <dc:creator>Luke_Pinner</dc:creator>
      <dc:date>2021-12-11T21:52:09Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497591#M39081</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, I'm working on it now. I'll let you know&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Dec 2011 08:32:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497591#M39081</guid>
      <dc:creator>GraziaZulian</dc:creator>
      <dc:date>2011-12-19T08:32:16Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497592#M39082</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to replace the holes on the Aster DEM with the values from the Ferranti DEM, and I get the same error as described in the first post. Therefore, I've decided to proceed with tiles. Now I receive the following error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;File "C:\Python27\ArcGIS10.1\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 320, in RunScript&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debugger.run(codeObject, __main__.__dict__, start_stepping=1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Python27\ArcGIS10.1\Lib\site-packages\Pythonwin\pywin\debugger\__init__.py", line 60, in run&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _GetCurrentDebugger().run(cmd, globals,locals, start_stepping)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Python27\ArcGIS10.1\Lib\site-packages\Pythonwin\pywin\debugger\debugger.py", line 655, in run&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exec cmd in globals, locals&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\tests\aster_dem\aster_dem.py", line 53, in &amp;lt;module&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_raster = arcpy.CreateRasterDataset_management(arcpy.env.workspace, "aster_fix", cellsize, pixel_type, spatialReference)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\management.py", line 11265, in CreateRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise e&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ExecuteError: ERROR 999999: Error executing function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (CreateRasterDataset).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am quite new to the python and arcpy, so the probability that I have some stupid mistakes inside is quite high. Any kind of help would be really appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import os, sys&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import string, math&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import numpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from arcpy.sa import *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;# os.chdir(r"D:\tests\aster_dem")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.workspace = r"D:\tests\aster_dem"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.overwriteOutput = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# input data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ferranti = arcpy.Raster(arcpy.env.workspace + "\\dhm25_ferranti_wgs84.tif")&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;aster = arcpy.Raster(arcpy.env.workspace + "\\e84_aster_switzerland_clip.tif")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# spatial analyst extension check&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.CheckOutExtension("Spatial")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# difference&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;difference = aster - ferranti&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;difference.save(arcpy.env.workspace + "\\difference.tif")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;threshold = -300&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# data description&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;spatialReference=arcpy.Describe(ferranti).spatialReference&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inRasterDesc = arcpy.Describe(ferranti)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# coordinates of the lower left corner&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xmin = inRasterDesc.Extent.XMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xmax = inRasterDesc.Extent.XMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ymin = inRasterDesc.Extent.YMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ymax = inRasterDesc.Extent.YMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# cell size, raster size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rasMeanCellHeight = inRasterDesc.MeanCellHeight&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rasMeanCellWidth = inRasterDesc.MeanCellWidth&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;nrows = inRasterDesc.Height&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ncols = inRasterDesc.Width&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;cellsize = rasMeanCellHeight&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# tiles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;tile_size=(128,128) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ntiles = 2 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pixel_type = "16_BIT_UNSIGNED"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;RasterType = 'TIF'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;new_raster = arcpy.CreateRasterDataset_management(arcpy.env.workspace, "aster_fix", cellsize, pixel_type, spatialReference)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for row in range(0,nrows,tile_size[1]):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for col in range(0,ncols,tile_size[0]*ntiles):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colend = min([ncols,col+tile_size[0]*ntiles-1])&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowend = min([nrows,row+tile_size[1]-1])&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xstart = xmin + (cellsize*col)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ystart = ymax - (cellsize*(rowend+1))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Processing cols',col,':',colend&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Processing rows',row,':',rowend&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Extracting lower left corner:',xstart,ystart&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ferranti_arr = arcpy.RasterToNumPyArray(ferranti, arcpy.Point(xmin,ystart), ncols, nrows)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aster_arr = arcpy.RasterToNumPyArray(aster, arcpy.Point(xmin,ystart), ncols, nrows)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; difference_arr = arcpy.RasterToNumPyArray(difference, arcpy.Point(xmin,ystart), ncols, nrows)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if difference_arr[row,col] &amp;lt; threshold:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aster_arr[row,col] = ferranti_arr[row,col]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_raster = NumPyArrayToRaster(aster_arr, arcpy.Point(xmin,ystart), cellsize, cellsize)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Mosaic_management(out_raster,new_raster)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you in advance!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Olga&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Jun 2013 09:44:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497592#M39082</guid>
      <dc:creator>OlgaChesnokova</dc:creator>
      <dc:date>2013-06-20T09:44:49Z</dc:date>
    </item>
    <item>
      <title>Re: RasterToNumPyArray gives an error</title>
      <link>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497593#M39083</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I ran into this issue so I wrote an iterator class to do this. In my case I wanted to return the X,Y,Z values but you could easily modify to return the numpy array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It can be used simply like this:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; block &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; RasterBlockIterator&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;raster&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; no_data_val&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;no_data_val&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
   &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; point &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; block&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
      x &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; point&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
      y &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; point&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; 
      z &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; point&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The iterator class. If you want the numpy array just return the arr on line 62. By default it works in blocks of 1000*1000&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;class&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;RasterBlockIterator&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
    &lt;SPAN class="string token"&gt;"""Iterator that extracts tiles of data from a Esri Raster."""&lt;/SPAN&gt;

    &lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;__init__&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Raster&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; tile_size&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; no_data_val&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;np&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;nan&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="string token"&gt;"""
        :param raster: Raster to iterate
        :param tile_size: size of each block/tile to extrac to numpy array
        :param no_data_val: value in the raster which should be treated as no data
        """&lt;/SPAN&gt;
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tile_size &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tile_size
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;raster &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;no_data_val &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; no_data_val
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;cell_size &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;meanCellHeight
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pos &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;

        &lt;SPAN class="comment token"&gt;# work out the size of all the block to create. They won't be extracted at this point&lt;/SPAN&gt;
        t_rows &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;height
        t_cols &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;width
        x_min &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;XMin
        y_min &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; raster&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;YMin
        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tiles &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; row &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; range&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; t_rows&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; tile_size&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; col &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; range&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; t_cols&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; tile_size&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
                colend &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; min&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;t_cols&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; col &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; tile_size&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                rowend &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; min&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;t_rows&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; row &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; tile_size&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                xstart &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; x_min &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;col &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;cell_size&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                ystart &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; y_min &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;row &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;cell_size&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tiles&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;append&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;namedtuple&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'tile'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'colstart colend rowstart rowend xstart ystart'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
                    colstart&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;col&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    colend&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;colend&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    rowstart&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;row&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    rowend&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;rowend&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    xstart&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;xstart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    ystart&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;ystart
                &lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

    &lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;__iter__&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; self

    &lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;__len__&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; len&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tiles&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

    &lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;__next__&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;&amp;gt;&lt;/SPAN&gt; List&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;Tuple&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;float&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; float&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; float&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;

        &lt;SPAN class="keyword token"&gt;try&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
            tile &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tiles&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pos&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;except&lt;/SPAN&gt; IndexError&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;raise&lt;/SPAN&gt; StopIteration

        lower_l &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Point&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;xstart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ystart&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
        ncols &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;colend &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;colstart
        rnrows &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rowend &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rowstart
        arr &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;RasterToNumPyArray&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;raster&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; nodata_to_value&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;np&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;nan&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                       lower_left_corner&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;lower_l&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                                       ncols&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;ncols&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; nrows&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;rnrows&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
        &lt;SPAN class="comment token"&gt;# Loop over rows and extract X,Y,Z&lt;/SPAN&gt;
        output_data &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;
            &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;j &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;cell_size &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;xstart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; i &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;cell_size &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; tile&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ystart&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; value&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; i&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; row &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; enumerate&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;arr&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; j&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; value &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; enumerate&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;row&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;not&lt;/SPAN&gt; self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;no_data_val &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; value &lt;SPAN class="operator token"&gt;and&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;not&lt;/SPAN&gt; np&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;isnan&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;value&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
        &lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

        self&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;pos &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; output_data‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;```&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:52:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/rastertonumpyarray-gives-an-error/m-p/497593#M39083</guid>
      <dc:creator>DavidWilton</dc:creator>
      <dc:date>2021-12-11T21:52:12Z</dc:date>
    </item>
  </channel>
</rss>

