[fdo-internals] RFC 65 Implement Resampling for GDAL Provider
Orest Halustchak
orest.halustchak at autodesk.com
Wed Oct 24 05:23:34 PDT 2012
+1
Orest
-----Original Message-----
From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Haris Kurtagic
Sent: Tuesday, October 23, 2012 6:03 PM
To: FDO Internals Mail List
Subject: Re: [fdo-internals] RFC 65 Implement Resampling for GDAL Provider
+1
Haris
On Wed, Oct 24, 2012 at 12:00 AM, Greg Boone <greg.boone at autodesk.com> wrote:
> Well, +1 again.
>
>
>
> Voting has been open for some time now. Final votes are due tomorrow,
> by 5pm ET.
>
>
>
> Greg
>
>
>
> From: fdo-internals-bounces at lists.osgeo.org
> [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Trevor
> Wekel
> Sent: Tuesday, October 23, 2012 5:54 PM
>
>
> To: FDO Internals Mail List
> Subject: Re: [fdo-internals] RFC 65 Implement Resampling for GDAL
> Provider
>
>
>
> Ok. Thanks Greg. I make a couple of small updates to the RFC and
> attached the latest code yesterday.
>
>
>
> Regards,
>
> Trevor
>
>
>
> From: fdo-internals-bounces at lists.osgeo.org
> [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Greg Boone
> Sent: October 23, 2012 3:52 PM
> To: FDO Internals Mail List
> Subject: Re: [fdo-internals] RFC 65 Implement Resampling for GDAL
> Provider
>
>
>
> 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::FdoRfpStreamReaderGdalByTileResa
> mple()
>
> {
>
> 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
>
_______________________________________________
fdo-internals mailing list
fdo-internals at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-internals
More information about the fdo-internals
mailing list