[fdo-internals] RFC 65 Implement Resampling for GDAL Provider
Frank Warmerdam
warmerdam at pobox.com
Tue Oct 23 15:02:44 PDT 2012
Guys,
Looks good to me.
Best regards,
Frank
On Tue, Oct 23, 2012 at 2:51 PM, Greg Boone <greg.boone at autodesk.com> wrote:
> I think the RFC is ok, the final say on the code review is Frank.****
>
> ** **
>
> Greg****
>
> ** **
>
> *From:* fdo-internals-bounces at lists.osgeo.org [mailto:
> fdo-internals-bounces at lists.osgeo.org] *On Behalf Of *Trevor Wekel
> *Sent:* Sunday, October 21, 2012 10:56 PM
>
> *To:* FDO Internals Mail List
> *Subject:* Re: [fdo-internals] RFC 65 Implement Resampling for GDAL
> Provider****
>
> ** **
>
> Hi Frank,****
>
> ** **
>
> I have attached an updated patch to RFC 65 with the CPLPrintPointer
> modification and compile fixes [Makefile.am updates] for Linux. The code
> compiles and the FDO unit tests are clean on VC10 32bit Windows, VC10 64bit
> Windows, and 32bit CentOS 5.****
>
> ** **
>
> I was also able to verify the functionality visually in MapGuide on all
> three platforms. No code changes are required for MapGuide. Just add the
> following parameter to the feature source XML document:****
>
> ** **
>
> <Parameter>****
>
> <Name>ResamplingMethod</Name>****
>
> <Value>bilinear</Value>****
>
> </Parameter>****
>
> ** **
>
> If everyone is ok with the RFC “as is”, can we get it approved? I can
> check the code in the next day or so.****
>
> ** **
>
> Regards,
> Trevor****
>
> ** **
>
> ** **
>
> ** **
>
> *From:* fdo-internals-bounces at lists.osgeo.org
> [mailto:fdo-internals-bounces at lists.osgeo.org] *On Behalf Of *Frank
> Warmerdam
> *Sent:* October 12, 2012 5:30 PM
> *To:* FDO Internals Mail List
> *Subject:* Re: [fdo-internals] RFC 65 Implement Resampling for GDAL
> Provider****
>
> ** **
>
> ** **
>
> On Fri, Oct 12, 2012 at 3:20 PM, Trevor Wekel <trevor_wekel at otxsystems.com>
> wrote:****
>
> Hi Frank,****
>
> ****
>
> I was not aware of VRTWarpedDataset so did not consider it initially.****
>
> ****
>
> So I took a quick look at vrtwarped.cpp. I have a question. In
> vrtwarped.cpp, the ProcessBlock() seems to cache the results of the warp
> operation (GDALCopyWords around line 1174) into each raster band. Does
> this mean that all blocks will end up being cached?****
>
> ** **
>
> Trevor,****
>
> ** **
>
> Yes, VRTWarpedDataset will always push produced tiles into the GDAL block
> cache. Note that most drivers go through the block cache too.****
>
> ****
>
> For FDO, we basically call a ReadNext() to suck the contents of the tile
> into a buffer supplied by the caller. The ReadNext() drives the calls to
> _getTile(). As far as I can tell, our access pattern is linear and we only
> access each tile once. If we switch to using VRTWarpedDataset, will we
> have to call ProcessBlock() for each tile? Will this end up caching all
> the blocks as we do the linear read?****
>
> ** **
>
> In a web context, the ideal would be a long lived server which keeps
> around the VRTWarpedDataset for subsequent use. I not sure how practical
> that is in the FDO/MapGuide use case. In this situation caching the
> blocks can help subsequent views but there might be better other layers at
> which to do that.****
>
> ** **
>
> ****
>
> As an alternative to using VRTWarpedDataset, would it be ok to instantiate
> a GDALWarpOperation as a member of the FdoRfpStreamReaderByTileResample?
> Pseudo code would be something like this:****
>
> ****
>
>
> FdoRfpStreamReaderGdalByTileResample::FdoRfpStreamReaderGdalByTileResample()
> ****
>
> {****
>
> m_warpOp = new GDALWarpOperation();****
>
> }****
>
> ****
>
> FdoRfpStreamReaderGdalByTileResample::_getTile()****
>
> {****
>
> warpOptions = GDALCreateWarpOptions();****
>
> // populate warp options****
>
> m_warpOp->Initialize(warpOptions);****
>
> m_warpOp->WarpRegion(0,0,origXSize,origYSize);****
>
> }****
>
> ****
>
> This may improve the speed of the _getTile() call if a) Initialize() can
> be called more than once and b) the new GDALWarpOperation() does a lot of
> setup work****
>
> ** **
>
> It is more likely to be the Iniitalize() that is expensive and
> reinitialzing an existing WarpOperation is not a well trod path and likely
> to lead to pain. I advise against it. In retrospect, sticking with your
> existing approach is likely ok but you might want to get a sense of how
> much time is spent in the setup code vs. the actual warping. Larger tiles
> will help.****
>
> ** **
>
> Best regards,****
>
> ** **
>
> ****
>
> --
>
> ---------------------------------------+--------------------------------------
> I set the clouds in motion - turn up | Frank Warmerdam,
> warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush | Geospatial Software Developer****
>
> _______________________________________________
> fdo-internals mailing list
> fdo-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/fdo-internals
>
>
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam,
warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Software Developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/fdo-internals/attachments/20121023/4d17ddaf/attachment.html>
More information about the fdo-internals
mailing list