<?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: How to write data to a new raster dataset ? in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-write-data-to-a-new-raster-dataset/m-p/177083#M4575</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jeff,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you see the &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/How_to_access_pixel_data_using_the_RawBlocks_object/000100000022000000/"&gt;VB/.NET sample&lt;/A&gt;&lt;SPAN&gt;? Does that help?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Robert&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 20 May 2011 17:18:21 GMT</pubDate>
    <dc:creator>RobertBerger</dc:creator>
    <dc:date>2011-05-20T17:18:21Z</dc:date>
    <item>
      <title>How to write data to a new raster dataset ?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-write-data-to-a-new-raster-dataset/m-p/177082#M4574</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;BR /&gt;&lt;SPAN&gt;I'm trying to create a raster dataset and out some values in it but after the code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;execution the data are not written to my created dataset. The folder that was created is deleted&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;at the end of the execution and only 'info' folder is left. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the code I'm using:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; VARIANT_BOOL isPermanent = TRUE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Float grid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; enum rstPixelType outputDataType = PT_FLOAT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; VARTYPE variantType = VT_R4;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // create the grid raster dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; long rows = 100;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; long cols = 100;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; long numberOfBands = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; wchar_t* gridType = L"GRID";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IRasterDatasetPtr ipRasterDataset = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IWorkspacePtr ipWorkspace = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; wchar_t* directory = L"C:\\MyFolder\\";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IWorkspaceFactoryPtr ipRasterWorkspaceFactory(CLSID_RasterWorkspaceFactory);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; HRESULT hr = ipRasterWorkspaceFactory-&amp;gt;OpenFromFile(CComBSTR(directory), 0, &amp;amp;ipWorkspace);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; // query the rasterworkspace2 inteface from the created workspace object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IRasterWorkspace2Ptr ipRasterWorkspace2(ipWorkspace);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; // set up the coordinates of the top-lef point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IPointPtr ipOriginPoint(CLSID_Point);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipOriginPoint-&amp;gt;put_X(0.0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipOriginPoint-&amp;gt;put_Y(0.0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; double cellSize = 1.0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; wchar_t* shortFileName = L"test";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Create the dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRasterWorkspace2-&amp;gt;CreateRasterDataset(CComBSTR(shortFileName), CComBSTR(gridType),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ipOriginPoint, cols, rows, cellSize, cellSize, numberOfBands, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; outputDataType, NULL, isPermanent, &amp;amp;ipRasterDataset);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; // Query the band collection interface from the rasterdataset object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IRasterBandCollectionPtr ipRasterBandCollection(ipRasterDataset);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Get the raster band interface&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IRasterBandPtr ipRasterBand = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; int bandIndex = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRasterBandCollection-&amp;gt;Item(bandIndex, &amp;amp;ipRasterBand);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Get the RawPixels interface from the raster band object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IRawPixelsPtr ipRawPixels(ipRasterBand);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Create pixel block to hold the block data (numberRowsPerBlock)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IPixelBlockPtr ipPixelBlock = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IPntPtr ipSizePoint(CLSID_DblPnt);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipSizePoint-&amp;gt;SetCoords(cols, rows);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRawPixels-&amp;gt;CreatePixelBlock(ipSizePoint, &amp;amp;ipPixelBlock);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; // Read data (is needed realy for an emoty dataset ?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IPntPtr ipStartPoint(CLSID_DblPnt);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipStartPoint-&amp;gt;SetCoords(0, 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRawPixels-&amp;gt;Read(ipStartPoint, ipPixelBlock);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; VARIANT byteDataVariant;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ::VariantInit(&amp;amp;byteDataVariant);&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IPixelBlock3Ptr ipBlock(ipPixelBlock);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipBlock-&amp;gt;get_PixelDataByRef(bandIndex, &amp;amp;byteDataVariant);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; BYTE* data = (BYTE*)((*byteDataVariant.pparray)-&amp;gt;pvData);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // cast to float since data are float&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; float *floatData = (float *) data;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // put some value in the array&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for (int rowIndex = 0; rowIndex &amp;lt; rows; rowIndex ++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for (int colIndex = 0; colIndex &amp;lt; cols; colIndex ++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; long index = colIndex + rowIndex*colIndex;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; floatData[index] = index;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } // colIndex&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; } // rowIndex&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipBlock-&amp;gt;put_PixelData(bandIndex, byteDataVariant);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; // Write the pixel block to the band (rawpixels) at the start point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IUnknownPtr cache;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRawPixels-&amp;gt;AcquireCache(&amp;amp;cache);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRawPixels-&amp;gt;Write(ipStartPoint, ipPixelBlock);&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; long numberRef = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hr = ipRawPixels-&amp;gt;ReturnCache(cache, &amp;amp;numberRef);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there is some thing wrong with the above code ? as at first a 'test' folder is created with an 'info' folder. But at the end of execution 'test' folder is gone.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jeff&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 May 2011 02:00:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-write-data-to-a-new-raster-dataset/m-p/177082#M4574</guid>
      <dc:creator>JeffLacoste</dc:creator>
      <dc:date>2011-05-19T02:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to a new raster dataset ?</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-write-data-to-a-new-raster-dataset/m-p/177083#M4575</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jeff,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you see the &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/How_to_access_pixel_data_using_the_RawBlocks_object/000100000022000000/"&gt;VB/.NET sample&lt;/A&gt;&lt;SPAN&gt;? Does that help?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Robert&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 May 2011 17:18:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/how-to-write-data-to-a-new-raster-dataset/m-p/177083#M4575</guid>
      <dc:creator>RobertBerger</dc:creator>
      <dc:date>2011-05-20T17:18:21Z</dc:date>
    </item>
  </channel>
</rss>

