[GRASS-dev] PROJ6 support in GRASS

Even Rouault even.rouault at spatialys.com
Wed Sep 25 13:55:06 PDT 2019


On mercredi 25 septembre 2019 22:47:21 CEST Markus Metz wrote:
> Several different methods might be available to reproject from one CRS to
> another CRS. PROJ6 can select the most appropriate method if a bounding box
> is provided. This means that the selected method depends on the bounding
> box and that results of a reprojection can differ depending on the provided
> bounding box.
> 
> In GRASS, this bounding box can be obtained from the current region. That
> means if the current region changes, the method and thus the results of
> coordinate reprojection might change. This effect can not be underestimated.
> 
> With the current pull request #118 the current region is used to help PROJ6
> select the best method, and [r|v].import should work as before. Results can
> be different compared to PROJ5 or earlier.
> 
> IMHO, there is no way around that users become more familiar with details
> of coordinate reprojection and need to read the output of [r|v].proj
> carefully regarding different methods known to PROJ6.
> 
> PROJ6 will not use the best method if any required datum transformation
> grid is not available. Users will need to obtain the corresponding grid
> themselves, which raises another question: where to put this grid? On
> Linux, this would be e.g. /usr/share/proj, but if the user can not write to
> /usr/share/proj, the grids need to be saved somewhere in $HOME, and PROJ6
> must look at that place. This problem, i.e. the place where PROJ6 should
> look for in $HOME is not yet solved AFAICT (proj-6.2.0).

Applications may decide for an appropriate user directory and set it with 
proj_context_set_search_paths() (in that case this overrides PROJ_LIB or 
hardcoded directories, so you have to add in the search paths if this is the 
desired behaviour)

QGIS has code to do exactly that:
https://github.com/qgis/QGIS/blob/65359bc7eafbfe967c669d1428eeedb87c5cd2a1/
src/core/qgsapplication.cpp#L312
and
https://github.com/qgis/QGIS/blob/d45c3dd4f1e8fe3642d42d84aa978b28dba913aa/
src/core/qgsprojutils.cpp#L258

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the grass-dev mailing list