+towgs84 in st_write
On Tue, 12 Dec 2017, Edzer Pebesma wrote:
On 12/12/2017 11:27 PM, Roger Bivand wrote:
Does sf use morphToESRI()?
No.
I think the "ESRI Shapefile" driver changed - at one stage it was needed
during writing some time ago, I think. Now the driver simply does it
itself (line 763 in ogrsf_frmts/ogrshapedatasource.cpp:
* -------------------------------------------------------------------- */
/* Create the .prj file, if required. */
/* -------------------------------------------------------------------- */
if( poSRS != NULL )
{
CPLString osPrjFile =
CPLFormFilename( NULL, pszFilenameWithoutExt, "prj");
// The shape layer needs its own copy.
poSRS = poSRS->Clone();
poSRS->morphToESRI();
char *pszWKT = NULL;
VSILFILE *fp = NULL;
if( poSRS->exportToWkt( &pszWKT ) == OGRERR_NONE
&& (fp = VSIFOpenL( osPrjFile, "wt" )) != NULL )
{
VSIFWriteL( pszWKT, strlen(pszWKT), 1, fp );
VSIFCloseL( fp );
}
CPLFree( pszWKT );
poSRS->morphFromESRI();
}
So the driver is doing what it believes ArcGIS would like to read - the
*.prj file isn't well specified. In https://issues.qgis.org/issues/2154
Frank Warmerdam wrote eight years ago: "Yes, OGR does strip the towgs84
parameter when writing the .prj file. TOWGS84 is not a legal construct in
an ESRI Projection Engine string (for .prj files)."
Sounds like another reason to abandon shapefiles as not fit for purpose.
Roger
Roger Bivand Department of Economics, Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no Editor-in-Chief of The R Journal, https://journal.r-project.org/index.html http://orcid.org/0000-0003-2392-6140 https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en