That does help, thanks.

Casey

On 13-06-03 09:34 PM, GRASS GIS wrote:
#1988: towgs84 datum transform options not maintained with shapefile export
--------------------------------+-------------------------------------------
  Reporter:  voncasec            |       Owner:  grass-dev@…
      Type:  defect              |      Status:  new
  Priority:  normal              |   Milestone:  6.4.3
Component:  Projections/Datums  |     Version:  unspecified
  Keywords:  g.proj, v.out.ogr   |    Platform:  Linux
       Cpu:  x86-64              |
--------------------------------+-------------------------------------------

Comment(by hamish):

  Casey wrote: (grass-dev ML)
  > Thanks Hamish,
  >
  > I assumed it needed to be looked at with GDAL/OGR first when exporting
  > to a shapefile, I just wasn't sure if this was also the case when using
  > g.proj -e.

  Hi,

  I did a little digging. You get the TOWGS84 in the WKT if you use 'g.proj
  -w' and your PERMANENT/PROJ_INFO file has a towgs84 line, but not 'g.proj
  -we' (-e modifies -w, and triggers it because it implies it). Grid datum
  transform files are not handled by any variant of Well Known Text afaik (a
  slight correction to my last comment), except perhaps by using a custom
  osgeo-family "EXTENSION" keyword, which I'm not sure has been commonly
  defined yet.

  So the good news is that for generic Shapefile export you could leave off
  the v.out.ogr/g.prok '-e' flag to use generic WKT, which supports TOWGS84.
  For export to ESRI products it would be lost though, as ESRI apparently
  (according to the OGR code) doesn't support TOWGS84 statements in the WKT.


  specifically 'g.proj -we' calls GPJ_grass_to_wkt() which if the ESRI-
  compatibility flag is given calls OGR's OSRMorphToESRI() (aka
  morphToESRI()).

  morphToESRI() has this comment as it strips away any TOWGS84:
  {{{
  /* -------------------------------------------------------------------- */
  /*      Strip all CT parameters (AXIS, AUTHORITY, TOWGS84, etc).        */
  /* -------------------------------------------------------------------- */
  }}}

  OGR's StripCTParms() is called in to do that:

  {{{
   * This method will remove all components of the coordinate system
   * that are specific to the OGC CT Specification.  That is it will attempt
   * to strip it down to being compatible with the Simple Features 1.0
   * specification.
  ...
      poCurrent->StripNodes( "AUTHORITY" );
      poCurrent->StripNodes( "TOWGS84" );
      poCurrent->StripNodes( "AXIS" );
      poCurrent->StripNodes( "EXTENSION" );

      return OGRERR_NONE;
  }
  }}}


  see grass's lib/proj/convert.c and GDAL/OGR's ogr/ogr_srs_esri.cpp +
  ogrspatialreference.cpp.



  so in the case of 'g.proj -w -e' it behaves as expected, TOWGS84 is
  removed on purpose.


  hope it helps,
  Hamish



--

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to