<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 7, 2014 at 10:28 PM, Even Rouault <span dir="ltr"><<a href="mailto:even.rouault@spatialys.com" target="_blank">even.rouault@spatialys.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Le jeudi 07 août 2014 22:26:07, Varun Saraf a écrit :<br>

<div class="">> Hello,<br>
><br>
> Thanks. I will use that.<br>
><br>
> When the PostGISRasterDataset::SetProjection method returns, a segmentation<br>
> fault is being shown. The methods I have made changes to IWriteBlock,<br>
> IRasterIO are not being called. What is the following flow of methods that<br>
> are called? What could be the issue?<br>
<br>
</div>You're in the best position to know ;-) More seriously without looking at the<br>
code, I can only suggest you attaching a debugger or running Valgrind to<br>
identify the flaw. (assuming you are developing on Linux)<br></blockquote><div><br></div><div>Hello,</div><div><br></div><div>First of all, I will take guilt for my mistake: as Even said, gdal_translate will always call CreateCopy, as stated at <a href="http://www.gdal.org/classGDALDriver.html#a2c897da2a6e25169cccc49ef48797ce1">http://www.gdal.org/classGDALDriver.html#a2c897da2a6e25169cccc49ef48797ce1</a>. My (wrong) assumption was that if you force a modification with regard to the source raster (like providing a different outsize), gdal_translate will avoid CreateCopy. My fault.</div>

<div><br></div><div>Default implementation of CreateCopy will call Create at the end, but as PostGIS Raster driver provides its own implementation of CreateCopy, this doesn't happen. Quick fix, as also Even suggested, avoid the PostGIS Raster implementation of CreateCopy.</div>

<div><br></div><div>Varun, about the use of FetchSRSId, I think is a good idea too. The problem is your WKT representation of the SRS is a bit different from the representation stored in PostGIS (btw, where does your WKT representation come from?). Well, both of them have the authority code 32644. You just need a method to get this SRID from the WKT.</div>

<div><br></div><div>One way to do it was the query in PostGIS Raster implementation of SetProjection (<a href="http://trac.osgeo.org/gdal/browser/trunk/gdal/frmts/postgisraster/postgisrasterdataset.cpp#L3024">http://trac.osgeo.org/gdal/browser/trunk/gdal/frmts/postgisraster/postgisrasterdataset.cpp#L3024</a>), but it doesn't work for you (again, the PostGIS WKT representation is a bit different, so, the query doesn't return a value). </div>

<div><br></div><div>Another way is, like Even suggested, to reuse OGRPGDataSource::FetchSRSId (Even, correct me if this isn't what you meant). You just need to build an instance of OGRSpatialReference from your WKT string (<a href="http://www.gdal.org/classOGRSpatialReference.html#a10e93344649a380d75b9925ad53d86ac">http://www.gdal.org/classOGRSpatialReference.html#a10e93344649a380d75b9925ad53d86ac</a>), and then call FetchSRSId using a pointer to that instance as argument (check the method: <a href="http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp#L1931">http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp#L1931</a>).</div>

<div><br></div><div>Don't hesitate to reuse this method and change PostGISRasterDataset::SetProjection if needed.</div><div><br></div><div>Oh, and +1 to use a debugger (I suggest ddd) and valgrind to check memory problems.</div>

<div><br></div><div>Best regards (and thanks, Even)</div><div><br></div><div>Jorge</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div class="im"><br>
><br>
> Regards,<br>
> Varun Saraf<br>
><br>
><br>
> On Fri, Aug 8, 2014 at 1:22 AM, Even Rouault <<a href="mailto:even.rouault@spatialys.com">even.rouault@spatialys.com</a>><br>
><br>
> wrote:<br>
> > Le jeudi 07 août 2014 21:26:31, Varun Saraf a écrit :<br>
> ><br>
> > <a href="http://trac.osgeo.org/gdal/browser/trunk/gdal/frmts/postgisraster/postgis" target="_blank">http://trac.osgeo.org/gdal/browser/trunk/gdal/frmts/postgisraster/postgis</a><br>
> > ra<br>
> ><br>
> > > sterdataset.cpp#L3024<br>
> ><br>
> > I suggested you to look at OGRPGDataSource::FetchSRSId() (<br>
> ><br>
> > <a href="http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pg/ogrpgdat" target="_blank">http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pg/ogrpgdat</a><br>
> > asource.cpp )<br>
> > . It contains everything you need. You could/should actually reuse it<br>
> > directly<br>
> > in PostgisRaster.<br>
> ><br>
> > --<br>
> > Spatialys - Geospatial professional services<br>
> > <a href="http://www.spatialys.com" target="_blank">http://www.spatialys.com</a><br>
<br>
--<br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com" target="_blank">http://www.spatialys.com</a><br>
</div><div class=""><div class="h5">_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Jorge Arevalo<br>Freelance developer<br>

<br><a href="http://about.me/jorgeas80" target="_blank">http://about.me/jorgeas80</a>
</div></div>