<?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: CreateRasterDataset problem in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/createrasterdataset-problem/m-p/446290#M12116</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Problem solved! I found the reason is that if the image file ("myimage1.img") already exist in the workspace folder, then the warning message will appear. If the file is deleted then everything works fine. Thanks for your attention.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi All,&lt;BR /&gt;&lt;BR /&gt;I met a problem when trying to create a raster file using VBA with ArcGIS 9.3. I was using the sample codes provided by ESRI (&lt;A class="jive-link-external-small" href="http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000" rel="nofollow" target="_blank"&gt;http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000&lt;/A&gt;). However, the debugging stopped at the function CreateRasterDataset with a warning of "Run-time error '91': Object variable or With block variable not set". I was sure that every variables in this function was appropriately defined and set. Anyone have any clue about the error source? Thanks in advance.&lt;BR /&gt;&lt;BR /&gt;This sample shows how to create a file raster dataset, set NoData and write pixel values.&lt;BR /&gt;How to use&lt;BR /&gt;Reference libraries: ESRI.ArcGIS.DataSourcesRaster, ESRI.ArcGIS.Geodatabase, ESRI.ArcGIS.Geometry.&lt;BR /&gt;Call this function from your code.&lt;BR /&gt;[VBA]&lt;BR /&gt;Sub CreateFileRasterDataset()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'open a raster workspace&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWs As IRasterWorkspace2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = OpenRasterWorkspace("c:\temp")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'set the origin, width and height of the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOrigin As IPoint&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Width As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Height As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOrigin = New Point&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOrigin.PutCoords 15, 15&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width = 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height = 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterDs As IRasterDataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = pWs.CreateRasterDataset("myimage1.img", "IMAGINE Image", pOrigin, Width, Height, 30, 30, 3, PT_UCHAR, New UnknownCoordinateSystem, True)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pProp As IRasterProps&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBands As IRasterBandCollection&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim nBands As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBand As IRasterBand&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set NoData if necessary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = pRasterDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nBands = pBands.Count&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = pBands.Item(k)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = pBand&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pProp.NoDataValue = 255&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a Raster from the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRaster As IRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = pRasterDs.CreateDefaultRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a pixel block for the pixels that need to write&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPB As IPixelBlock3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPnt As IPnt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPnt = New Pnt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords Width, Height&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = pRaster.CreatePixelBlock(pPnt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim v As Variant&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v = pPB.PixelData(k)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To Width - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To Height - 1&lt;BR /&gt;&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; If i = j Then v(i, j) = 255 Else v(i, j) = (i + j) / 8 'set some values that are in 8 bit range&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next j&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPB.PixelData(k) = v&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set v = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Write the pixel block with a (0,0) offset of the upper left corner&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterEdit As IRasterEdit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = pRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords 0, 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRasterEdit.Write pPnt, pPB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'clean up&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = Nothing&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Function OpenRasterWorkspace(sPath As String) As IRasterWorkspace2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Create RasterWorkspace&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWsFact As IWorkspaceFactory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = New RasterWorkspaceFactory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pWsFact.IsWorkspace(sPath) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set OpenRasterWorkspace = pWsFact.OpenFromFile(sPath, 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;End Function&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 30 Jun 2013 21:04:07 GMT</pubDate>
    <dc:creator>hhjordan</dc:creator>
    <dc:date>2013-06-30T21:04:07Z</dc:date>
    <item>
      <title>CreateRasterDataset problem</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/createrasterdataset-problem/m-p/446289#M12115</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I met a problem when trying to create a raster file using VBA with ArcGIS 9.3. I was using the sample codes provided by ESRI (&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000" rel="nofollow" target="_blank"&gt;http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000&lt;/A&gt;&lt;SPAN&gt;). However, the debugging stopped at the function CreateRasterDataset with a warning of "Run-time error '91': Object variable or With block variable not set". I was sure that every variables in this function was appropriately defined and set. Anyone have any clue about the error source? Thanks in advance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This sample shows how to create a file raster dataset, set NoData and write pixel values.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How to use&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reference libraries: ESRI.ArcGIS.DataSourcesRaster, ESRI.ArcGIS.Geodatabase, ESRI.ArcGIS.Geometry.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Call this function from your code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[VBA]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sub CreateFileRasterDataset()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'open a raster workspace&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWs As IRasterWorkspace2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = OpenRasterWorkspace("c:\temp")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'set the origin, width and height of the raster dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOrigin As IPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Width As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Height As Long&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOrigin = New Point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOrigin.PutCoords 15, 15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width = 100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height = 100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create the raster dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterDs As IRasterDataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = pWs.CreateRasterDataset("myimage1.img", "IMAGINE Image", pOrigin, Width, Height, 30, 30, 3, PT_UCHAR, New UnknownCoordinateSystem, True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pProp As IRasterProps&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBands As IRasterBandCollection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim nBands As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBand As IRasterBand&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set NoData if necessary&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = pRasterDs&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nBands = pBands.Count&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = pBands.Item(k)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = pBand&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pProp.NoDataValue = 255&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a Raster from the raster dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRaster As IRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = pRasterDs.CreateDefaultRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a pixel block for the pixels that need to write&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPB As IPixelBlock3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPnt As IPnt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPnt = New Pnt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords Width, Height&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = pRaster.CreatePixelBlock(pPnt)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim v As Variant&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v = pPB.PixelData(k)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To Width - 1&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; For j = 0 To Height - 1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If i = j Then v(i, j) = 255 Else v(i, j) = (i + j) / 8 'set some values that are in 8 bit range&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; Next j&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPB.PixelData(k) = v&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set v = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Write the pixel block with a (0,0) offset of the upper left corner&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterEdit As IRasterEdit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = pRaster&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords 0, 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRasterEdit.Write pPnt, pPB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'clean up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Public Function OpenRasterWorkspace(sPath As String) As IRasterWorkspace2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Create RasterWorkspace&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWsFact As IWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = New RasterWorkspaceFactory&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pWsFact.IsWorkspace(sPath) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set OpenRasterWorkspace = pWsFact.OpenFromFile(sPath, 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End Function&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Jun 2013 16:10:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/createrasterdataset-problem/m-p/446289#M12115</guid>
      <dc:creator>hhjordan</dc:creator>
      <dc:date>2013-06-30T16:10:14Z</dc:date>
    </item>
    <item>
      <title>Re: CreateRasterDataset problem</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/createrasterdataset-problem/m-p/446290#M12116</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Problem solved! I found the reason is that if the image file ("myimage1.img") already exist in the workspace folder, then the warning message will appear. If the file is deleted then everything works fine. Thanks for your attention.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi All,&lt;BR /&gt;&lt;BR /&gt;I met a problem when trying to create a raster file using VBA with ArcGIS 9.3. I was using the sample codes provided by ESRI (&lt;A class="jive-link-external-small" href="http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000" rel="nofollow" target="_blank"&gt;http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000011s000000&lt;/A&gt;). However, the debugging stopped at the function CreateRasterDataset with a warning of "Run-time error '91': Object variable or With block variable not set". I was sure that every variables in this function was appropriately defined and set. Anyone have any clue about the error source? Thanks in advance.&lt;BR /&gt;&lt;BR /&gt;This sample shows how to create a file raster dataset, set NoData and write pixel values.&lt;BR /&gt;How to use&lt;BR /&gt;Reference libraries: ESRI.ArcGIS.DataSourcesRaster, ESRI.ArcGIS.Geodatabase, ESRI.ArcGIS.Geometry.&lt;BR /&gt;Call this function from your code.&lt;BR /&gt;[VBA]&lt;BR /&gt;Sub CreateFileRasterDataset()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'open a raster workspace&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWs As IRasterWorkspace2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = OpenRasterWorkspace("c:\temp")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'set the origin, width and height of the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pOrigin As IPoint&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Width As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Height As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pOrigin = New Point&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pOrigin.PutCoords 15, 15&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width = 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height = 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterDs As IRasterDataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = pWs.CreateRasterDataset("myimage1.img", "IMAGINE Image", pOrigin, Width, Height, 30, 30, 3, PT_UCHAR, New UnknownCoordinateSystem, True)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pProp As IRasterProps&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBands As IRasterBandCollection&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim nBands As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pBand As IRasterBand&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set NoData if necessary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = pRasterDs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nBands = pBands.Count&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = pBands.Item(k)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = pBand&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pProp.NoDataValue = 255&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a Raster from the raster dataset&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRaster As IRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = pRasterDs.CreateDefaultRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Create a pixel block for the pixels that need to write&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPB As IPixelBlock3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pPnt As IPnt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPnt = New Pnt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords Width, Height&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = pRaster.CreatePixelBlock(pPnt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim v As Variant&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = 0 To nBands - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v = pPB.PixelData(k)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To Width - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To Height - 1&lt;BR /&gt;&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; If i = j Then v(i, j) = 255 Else v(i, j) = (i + j) / 8 'set some values that are in 8 bit range&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next j&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPB.PixelData(k) = v&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set v = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Write the pixel block with a (0,0) offset of the upper left corner&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pRasterEdit As IRasterEdit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = pRaster&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pPnt.SetCoords 0, 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pRasterEdit.Write pPnt, pPB&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'clean up&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterEdit = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRaster = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pProp = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pPB = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBand = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pBands = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pRasterDs = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWs = Nothing&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Function OpenRasterWorkspace(sPath As String) As IRasterWorkspace2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Create RasterWorkspace&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pWsFact As IWorkspaceFactory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = New RasterWorkspaceFactory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pWsFact.IsWorkspace(sPath) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set OpenRasterWorkspace = pWsFact.OpenFromFile(sPath, 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set pWsFact = Nothing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;End Function&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Jun 2013 21:04:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/createrasterdataset-problem/m-p/446290#M12116</guid>
      <dc:creator>hhjordan</dc:creator>
      <dc:date>2013-06-30T21:04:07Z</dc:date>
    </item>
  </channel>
</rss>

