[GRASS-dev] S-JTSK strikes back

Paul Kelly paul-grass at stjohnspoint.co.uk
Fri May 4 07:18:09 EDT 2007


OK I think I see now what you are noticing. This seems like a slightly
different problem again from the one we came across last time. In general
I think the Krovak support in OGR/PROJ needs completely re-done using
proj=kocc; it is not enough to keep coming across little issues like this
and filing bug reports for OGR but anyway let's have a look...

On Thu, 3 May 2007, Markus Neteler wrote:

> On Thu, May 03, 2007 at 12:09:19PM +0200, Markus Neteler wrote:
>
> cat Area_topolcianky.prj
> PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Meter",1.0]]

Saving this to a file tmp.prj and running g.proj -p wkt=tmp.prj gives

-PROJ_INFO-------------------------------------------------
name       : Krovak
proj       : krovak
ellps      : bessel
lat_0      : 49.5
lon_0      : 24.83333333333333
alpha      : 30.28813975277778
k          : 0.9999
x_0        : 0
y_0        : 0
no_defs    : defined
-PROJ_UNITS------------------------------------------------
unit       : Meter
units      : Meters
meters     : 1

> g.proj wkt=Area_topolcianky.prj
> WARNUNG: Datum 'Jednotne_Trigonometricke_Site_Katastralni' not recognised
>         by GRASS and no parameters found.
> g.proj -w
> PROJCS["Krovak",
>    GEOGCS["bessel",
>        DATUM["unknown",
>            SPHEROID["Bessel_1841",6377397.155,299.1528128]],
>        PRIMEM["Greenwich",0],
>        UNIT["degree",0.0174532925199433]],
>    PROJECTION["Krovak"],
>    PARAMETER["latitude_of_center",49.5],
>    PARAMETER["longitude_of_center",24.83333333333333],
>    PARAMETER["azimuth",0],
>    PARAMETER["pseudo_standard_parallel_1",0],
>    PARAMETER["scale_factor",0.9999],
>    PARAMETER["false_easting",0],
>    PARAMETER["false_northing",0],
>    UNIT["Meter",1]]
>
> It has picked up at least 0.9999 (lost pseudo_standard_parallel_1 etc).

This goes through two translations here (WKT to GRASS format and back to 
WKT), so is more complicated and I will come back to it later. But note 
that scale_factor =0.9999 is present in the orginal WKT above. I see 
Pseudo Standard Parallel is gone, but again have to ask - is it important 
for the PROJ.4 version of proj=krovak? I really have no idea.

> If I do the same with OGR, I get
> ogrinfo -so Area_topolcianky.shp Area_topolcianky
> INFO: Open of `Area_topolcianky.shp'
>      using driver `ESRI Shapefile' successful.
>
> Layer name: Area_topolcianky
> Geometry: Polygon
> Feature Count: 1
> Extent: (1255514.000000, 473866.000000) - (1256400.000000, 474752.000000)
> Layer SRS WKT:
> PROJCS["S-JTSK_Krovak",
>    GEOGCS["GCS_S_JTSK",
>        DATUM["Jednotne_Trigonometricke_Site_Katastralni",
>            SPHEROID["Bessel_1841",6377397.155,299.1528128]],
>        PRIMEM["Greenwich",0.0],
>        UNIT["Degree",0.0174532925199433]],
>    PROJECTION["Krovak"],
>    PARAMETER["False_Easting",0.0],
>    PARAMETER["False_Northing",0.0],
>    PARAMETER["Pseudo_Standard_Parallel_1",78.5],
>    PARAMETER["Scale_Factor",0.9999],
>    PARAMETER["Azimuth",30.28813975277778],
>    PARAMETER["Longitude_Of_Center",24.83333333333333],
>    PARAMETER["Latitude_Of_Center",49.5],
>    PARAMETER["X_Scale",1.0],
>    PARAMETER["Y_Scale",1.0],
>    PARAMETER["XY_Plane_Rotation",0.0],
>    UNIT["Meter",1.0]]
> Id: Integer (6.0)
> AREA: Real (19.11)
> PERIM: Real (19.11)
>
> Apparently GRASS is still lacking something.

The WKT description here is just an exact copy of the one you posted at 
the top of the e-mail there and hasn't been processed at all. So no 
surprises that it hasn't changed.

Therefore it seems some information (the pseudo standard parallel value) 
is lost when converting from WKT into GRASS format, and some more 
information (the alpha value) is lost when converting from GRASS format 
back to WKT. Is this important? I don't know anyway how important alpha 
and pseudo standard parallel are. Are they important for proj=krovak or 
does it just ignore it? It seems alpha corresonds to Azimuth in the WKT and 
OSRImportFromProj4() isn't converting it properly, but I really don't know 
how important it is for proj=krovak so wouldn't like to get too deeply 
involved there... Likewise for Pseudo_Standard_Parallel_1 and 
OSRExportToProj4().

Paul




More information about the grass-dev mailing list