[Qgis-developer] v.generalize in Processing: wrong output projection

Andre Joost andre+joost at nurfuerspam.de
Mon Oct 20 07:51:29 PDT 2014


Am 20.10.2014 08:45, schrieb Paolo Cavallini:
> Il 19/10/2014 11:30, Andre Joost ha scritto:
>
>> The parameters are the same, so not really wrong. QGIS often does not recognize
>> similar projections when the name does not fit.
>>
>> The only thing missing is the +wgs84 parameter from EPSG:23030:
>>
>> +proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs
>
> exactly, in fact there is a shift due to that
>>
>> Those parameters are often ignored in shapefiles, and QGIS does not find the right
>> EPSG code without them.
>
> do you know if there is a ticket about this? it is unclear to me where exactly the
> problem belongs:

GRASS is started with
g.proj -c proj4="+proj=utm +zone=32 +ellps=intl 
+towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"

So the command line for GRASS is correct. From that point on, GRASS does 
not do any reprojections on the data, so GRASS is working ok. ED50 is 
not mentioned explicitely in the projection definition. I'm not sure if 
an EPSG-code can be given instead.


> * the processing backend adding a (from QGIS point of view) malformed prj
 > * Processing itself not copying the right prj to the output
 > * QGIS failing to interpret valid parameters

The .prj that QGIS creates:

PROJCS["ED50_UTM_zone_32N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]

and the one from GRASS:
PROJCS["UTM_Zone_32_Northern_Hemisphere",GEOGCS["GCS_international",DATUM["D_unknown",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]

with false names, but correct parameters, and no towgs84 in both cases. 
It seems that GRASS does some WKT guessing on its own, instead of just 
taking that of the input file to the output file.

But QGIS also creates a .qpj file with TOWGS84 parameters and the EPSG code:

PROJCS["ED50 / UTM zone 
32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 
1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","23032"]]

This is for compatibility with shapefiles from ESRI, which never include 
TOWGS84 in the .prj

Maybe we should ask the processing dev to copy the .qpj from the input 
to the output file without further change. Or hand over the EPSG code on 
the GRASS command line unless a custom CRS is used.

I don't know if there is a ticket, and whether to address it to GRASS or 
processing. Perhaps to both.

Greetings,
André Joost




More information about the Qgis-developer mailing list