En 2007 por medio del Real Decreto 1071/2007 en España se produjo el paso de un sistema geodésico local y heterogéneo (ED50) que tomaba como elipsoide de referencia el internacional de Hayford 1924 (Datum Postdam) a uno Global y homogéneo (ETRS89) que toma como elipsoide de referencia el GRS80 (Datum Global) para la Península Ibérica e Islas Baleares. Para las Islas Canarias se adoptó como sistema geodésico el REGCAN95.
Como la mayoría de Software GIS, QGIS emplea la librería PROJ.4 para la gestión del S.C. Para transformar las coordenadas de ED50 a ETRS89, por defecto esta librería no aplica método de transformación bidimensional con modelo de distorsión mediante rejilla NTv2 recomendado y elaborado por el IGN. Sin embargo, si son capaces de interpolar en la rejilla NTv2 para obtener la transformación de ED50 a ETRS89.
La rejilla tiene un formato estándar, el NTv2 (National Transformation Version 2), se trata de un fichero binario con extensión (*.gsb), en el cual se recoge la transformación, que ha sido calculado a partir de datos conocidos en ambos sistemas de referencia. La rejilla aplica el método de superficie de mínima curvatura, por el cual se minimiza la curvatura total sobre una rejilla creada a partir de una distribución discreta de puntos.
Existen dos rejillas de transformación NTv2 una para la península ibérica (PENR2009.gsb) y otra para baleares (BALR2009.gsb), las cuales contienen los incrementos de longitud y latitud entre estos dos datum, ambas pueden ser descargadas de la web del IGN. Este método de transformación permite la conversión tanto de capas Raster como Vectoriales con una precisión centimetrada.
Para emplear este método de transformación tenemos 3 posibles opciones:
Opción 1: Crear un s.c. personalizado.
1. Descargamos los archivos de rejilla v de la web del IGN, y los pegamos en el directorio de proyecciones de QGIS.
2. Creamos un S.C. personalizado que aplique esta rejilla para la transformación. Para ello accedemos a través del menú Configuración > SRC personalizado.
A este S.C. personalizado le debemos especificar el nombre con el cual lo vamos a identificar y sus parámetros descritos en la nomenclatura PROJ4 que emplea QGIS.
La expresión para una capa cuyas coordenadas están tomadas en el S.C. ED50 UTM 30N y que emplea como método de transformación el formato de rejilla queda del siguiente modo:
+proj=utm +zone=30 +ellps=intl +nadgrids=C:\Program Files\QGIS 2.18\share\proj\PENR2009.gsb +units=m +wktext +no_defs
Los elementos que constituyen la expresión son:
+ proj: indica el nombre de la Proyección.
+ Zone: nos indica el huso de la proyección UTM.
+ Ellps: indica el nombre del elipsoide, en este caso es el elipsoide Internacional (1924).
+ El ajuste del datum puede estar basado en un ajuste al elipsoide WGS84 mediante métodos de 3 o 7 parámetros (+towgs84) o en base a un archivo de rejilla NTv2 (+nadgrid) del cual indicamos su ubicación en el disco.
+ Units: indica las unidades del S.C.
+ No_defs: indica que no se emplea el archivo predeterminado
La transformación es bidireccional, es decir no importa si la transformación se produce de ETRS89 a ED50 o al revés.
3. Creado el S.C. Personalizado, debemos establecer el S.C. del mapa, especificamos el EPSG 25830 (ETRS89 UTM 30).
4. Cargamos las capas que queremos transformar de ED50 a ETRS89.
5. Le “definimos el S.C.” a estas capas, especificando el S.C. personalizado al cual le hemos aplicado la transformación mediante la rejilla NTv2.
6. Finalmente empleando la función “Guardar como” aplicamos la proyección de la capa de ED50 a ETRS89.
Opción 2: Editar la base de datos de QGIS en la cual guarda las transformaciones para aplicar dicha transformación por defecto.
Para que la transformación de ED50 a ETRS89 mediante rejilla NTv2 se integre por defecto en la base de datos srs.db de QGIS, debemos:
1. Pegar los archivos de rejilla en la carpeta de proyecciones de QGIS. Dependiendo del método que hemos empleado en la instalación de QGIS, se ubica en el directorio:
• C:\OSGeo4W64\share\proj
• C:\Archivos de programa\QGIS 2.18\ apps\grass\grass-7.4.0\etc
2. Comprobar que la librería de proyección de QGIS apunta a el directorio de proyecciones en el cual hemos pegado el fichero de rejilla. Para ello, abrimos el archivo “env.bat” mediante el wordpad. Este archivo, dependiendo del método de instalación de QGIS que hemos empleado, se ubica en el directorio:
• C:\OSGeo4W64\apps\grass\grass-7.4.0\etc
• C:\Archivos de programa\QGIS 2.18\ apps\grass\grass-7.4.0\etc
En dicho archivo observaremos la siguiente línea:
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
Que nos indica que la variable de entorno (PROJ_LIB) apunta hacia la carpeta raíz de QGIS (%OSGEO4W_ROOT%\) en el directorio PROJ (\share\proj) en la cual hemos pegado el archivo de rejilla.
3. Para que dicha transformación sea la predeterminada cuando apliquemos la transformación entre ED50 y ETRS89 debemos editar la Base de Datos srs.db, que se encuentra en el directorio de recursos de QGIS:
C:\OSGeo4W64\apps\qgis-ltr\resources
Esta base de datos recoge las diferentes transformaciones entre sistemas. Podemos abrirlo y editarlo con cualquier gestor de bases de datos, por ejemplo, DB BROWSER FOR SQLite (versión portable).
4. Abrimos la tabla “Datum Transform” y en la pestaña de Browser Data creamos los nuevos registros para las rejillas PENR2009.gsb y BALR2009.gsb., de este modo QGIS relaciona los SRC con dichas transformaciones.
5. Dado que la transformación basada en la rejilla NTv2 no se encuentra en la base de datos, agregamos un nuevo registro en la tabla de transformación de datums de la base de datos srs.db, especificando los siguientes datos:
– S.C. Origen (código EPSG).
– S.C. Destino (código EPSG).
– Método de transformación empleado (código EPSG).
– Nombre de la rejilla y su extensión.
– Nivel de Preferencia.
– Si es actual.
– Código del área.
Para que podamos seleccionar el método de transformación de rejilla al aplicar una proyección, debemos marcar la casilla “Preguntar la transformación de datum cuando no haya predefinida” al cual podemos acceder desde el menú Configuración > Opciones > Pestaña SRC.
Opción 3: Plugin NTv2.
Un método alternativo, para facilitarnos este trabajo, seria emplear el Plugin NTv2 Datum Transformations. Para ello solo tenemos que instalar el Plugin.
Una vez instalado debemos acceder a las Opciones del menú Procesos, y dejamos marcada la casilla de verificación para el Proveedor NTV2.
Abrimos la caja de herramientas de procesado y encontraremos el plugin NTv2. Desplegamos el país en el cual pretendemos aplicar la transformación de coordenadas. Cada país dispone de su propio archivo NTv2. Observaremos que podemos elegir entre transformar un archivo Raster o un archivo Vectorial.
En la ventana emergente solo tenemos que indicar:
– Capa de entrada a proyectar.
– Tipo de transformación: de ED50 (Old Data) a ETRS89 o viceversa.
– Old Datum: Algunos países, como en el caso de España, pueden disponer de varios S.C. posibles dentro de su territorio (ED50 UTM 29N, ED50 UTM 30N o ED50 UTM 31N). En estos casos debemos especificar el S.C..
– Archivo de rejilla que pretendemos aplicar.
– Nombre y ubicación en el disco de la capa de salida proyectada.
Tras aplicar el procesamiento obtenemos la capa proyectada.
Felicidades por el artículo, es muy interesante. ¿Podrías explicar cómo hacerlo con la versión 3.x de QGIS?
Muchas gracias.
Un saludo.
Buenas tardes Abel,
Gracias por su comentario, dentro de unos días publicaremos la entrada utilizando QGIS 3.
Reciba un cordial saludo.
Buenas.
Acabo de instalar el Qgis 3.4 y no encuentro el NTV2 para España, que es el que venía utilizando con el 2.18.
¿Saben si hay previsión de que salga?
¡Gracias!