Le mardi 05 juillet 2011 19:55:21, Cole, Derek a écrit : > Right, I can do this for my already opened and read-from data set. However, > I want to have a separate file. This means I have to copy that original > data set, right? I can't seem to figure out how to copy a data set without > actually copying the raster data (which is huge in comparison to the > meta). Are you suggesting I just add another band to the already opened > file? Not entirely sure I like this approach, but it may be doable.
Well, you should study closely the GDAL API, but the general plot is : hInDS = GDALOpen(...) hOutDS = GDALCreate(...) GDALSetProjection(hOutDS, GDALGetProjectionRef(hInDS)) /* copy projection info from source dataset */ GDALGetGeoTransform(hInDS, ...) GDALSetGeoTransform(hOutDS, ...) /* copy geotransform info from source dataset*/ GDALRasterIO(GF_Write, ....) /* write imagery */ GDALClose(hOutDS) > > Derek > ________________________________ > From: Chaitanya kumar CH [chaitanya...@gmail.com] > Sent: Tuesday, July 05, 2011 1:35 PM > To: Cole, Derek > Cc: gdal-dev@lists.osgeo.org > Subject: Re: [gdal-dev] Creating modified copies of a file > > Derek, > > Writing into a raster band is a lot like reading into it. Use the function > you use to read the pixels to write the pixels back. Don't forget to close > the dataset at the end using GDALClose() [1]. Also, check out the > GDALFlushCache() and similar functions in [2]. > > [1]: http://www.gdal.org/gdal_8h.html#0984222d45a72028fcbbf1f44831ffbc > [2]: http://www.gdal.org/gdal_8h.html > > On Tue, Jul 5, 2011 at 9:16 PM, Cole, Derek > <dc...@integrity-apps.com<mailto:dc...@integrity-apps.com>> wrote: Hello, > > I think I started to ask about this before on this forum, but I have since > used GDAL a bit more and might be better to generate a new thread. > > I have been using GDAL to read in NITF files, getting the RasterBand data, > and manipulating it, and displaying the results in my viewer. > > Now, I would like to be able process data, then save it into a new NITF. > This new NITF will have the same geocoords and all of the same data as the > original, with the exception of a new raster band replacing the original. > Is there a way to create a clone of the original image WITHOUT copying the > data? I do not want to have to replicate the old data on disk, only the > overwrite it with my new data that is coming from the external processing. > I looked into creating the virtual data sets, but I am not sure if that is > my answer. If I just pass in an empty "" as the destination, it says it > will create that dataset in memory. Is this what I want to do? > > My algorithm processes only a portion of the image at a time, so what I > envisioned in my head was being able to essentially write out header /meta > information in a file, and "append" blocks of raster data into the right > place in the file, as they complete processing. This way there is no > single lag-point while waiting to create a copy of data on disk to another > place on disk, or having to create a large file on disk all at once. These > image files are 1GB+ > > Any tips for trying to set up this scenario? > > Thanks > > Derek > > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org<mailto:gdal-dev@lists.osgeo.org> > http://lists.osgeo.org/mailman/listinfo/gdal-dev > > > > -- > Best regards, > Chaitanya kumar CH. > /tʃaɪθənjə/ /kʊmɑr/ > +91-9494447584 > 17.2416N 80.1426E _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev