[GRASS-dev] Location wizard (missed window to select +towgs params)

Paul Kelly paul-grass at stjohnspoint.co.uk
Sun Mar 14 13:22:51 EDT 2010


Hello all,
I have a little more insight on this. See below.

On Fri, 12 Mar 2010, Paul Kelly wrote:

> On Fri, 12 Mar 2010, Markus Neteler wrote:
>
>> On Fri, Mar 12, 2010 at 8:38 PM, Martin Landa <landa.martin at gmail.com> 
>> wrote:
>>> Hi,
>>> 
>>> 2010/3/12 Massimo Di Stefano <massimodisasha at gmail.com>:
>>>>  "location wizard -> select epsg code -> search for : 3004"
>>>> 
>>>> in the paste release (build less than 1 month ago) after select the 
>>>> epsg:code(3004)
>>>> grass prompt me to the window :
>>>> 
>>>> http://img534.imageshack.us/img534/8254/schermata20100312a09564.png
>>>> 
>>>> to select the +towgs parameters
>>>> 
>>>> with the latest svn version this window doesn't appair and  the locaqtion 
>>>> is created using the default parameters :
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is not correct, and indeed seems to be a clue as to what is going on. 
The GRASS default parameters for rome40/Monte_Mario are
+towgs84=-225.000,-65.000,9.000
However the location is being created with the parameters
+towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68
i.e. the parameters with the description "Used in Italy (Peninsular Part)" 
from datumtransform.table.

This set of parameters is not being put there by GRASS; it is coming 
through from GDAL when it is used to look up the EPSG code.

>> ...
>>> it seems to be bug in g.proj -
>>> 
>>> g.proj epsg=3004 datum=-1
>>> 
>>> no output is printed...
>> 
>> When you add -t, it works:
>> 
>> g.proj epsg=3004 datum=-1 -t
>
> The fact that the -t flag needs to be specified, suggests that somehow when 
> g.proj is querying GDAL for a projection description for EPSG code 3004, it 
> is coming back fully specified, i.e. with complete towgs84 parameters, and 
> thus g.proj thinks the datum information is already all specified and 
> correct, so it doesn't even offer the option of modifying it unless the user 
> requests to override the datum information in the input co-ordinate system 
> with the -t flag. (I'm sure there is a logical reason for working like that 
> although it doesn't immediately come to mind at the minute!)

This is true, and as there have been very minimal changes in 
general/g.proj and lib/proj between RC5 and now I was initially very 
baffled. My latest hunch is to do with the CSV tables in lib/proj. I 
notice Markus has updated them at least a couple of times since RC5 - the 
latest change two weeks ago in r41248 with the description "backport from 
GDAL: big upgrade to EPSG 7.4.1 with improved datum logic" sounds 
particularly suspicious ;) I would hazard a guess that GDAL is now 
attempting to make a "best guess" at which are the most appropriate 
transformation parameters for a particular datum. Previously if there was 
a choice it left them unspecified, and GRASS prompted the user. However 
GRASS (i.e. g.proj) trusts the co-ordinate system it gets back from GDAL 
and if the datum transformation parameters are already there, then it 
doesn't query GDAL's decision! I don't subscribe to the GDAL developers 
list any more as there was too much traffic, so it's likely I've missed 
some discussion or announcement from Frank over there.

I haven't had time to test reverting the CSV files yet but if that works I 
would suggest doing it, as if that is going to be the way GDAL works from 
now on it will require quite a few changes to how g.proj works, and it is 
much too late in the release cycle of 6.4.0 to go changing things there...

More later

Paul


More information about the grass-dev mailing list