Por defecto cuando instalamos ArcGIS en nuestro PC, las rejillas o ficheros de extensión “.gsb” que nos encontramos y que se emplean para la transformación de Datum ED50<->ETRS89, suelen estar obsoletas o sucede que nos encontramos con una única rejilla que afecta exclusivamente a la península.
A continuación se explica paso a paso cómo debemos incorporar y/o actualizar en ArcGIS (v9.3 o inferiores) las últimas rejillas recomendadas por el IGN para cambio de datum ED-50<->ETRS89 en formato Ntv2.
Este artículo está basado en la publicación de una nota técnica en el año 2009 por el Gobierno de la Rioja- IDERioja http://www.iderioja.larioja.org/
1.- En la web del CNIG (IGN) http://www.cnig.es/ Ir al apartado Descargas/Herramientas/GRID_SHIFT_FILE V2009: REJILLA PARA CAMBIO DE DATUM ENTRE ED50 Y ETRS89 EN FORMATO NTV2,

2.- Al descargar y descomprimir el fichero, nos encontramos los ficheros “R2009V9.gsb” y “BALR2009.gsb” para la península y para Baleares respectivamente. La última actualización corresponde al año 2009

Estas rejillas son las necesarias en ArcGIS para que además de poder llevar a cabo la transformación correcta entre los datum ED50 y ETRS89 (en ambos sentidos) , poder también incorporar una transformación ajustada entre ED50 y WGS84 (en ambos sentidos), definidas ambas con los mismos parámetros de transformación.
3.- En el directorio donde se encuentran los archivos del programa ArcGIS situarse en la carpeta “pedata\ntv2” (en la que se guardan por países los archivos de transformación por mallas regulares), habitualmente en la ruta:
C:\Archivos de programa\ArcGIS\pedata\ntv2
4.- En ntv2, si no estuviera creado, generar el directorio “spain” y en él guardar el/los archivos de correcciones “.gsb” (Si estuviera creado “spain” entonces sustituir la rejilla que viene instalada por defecto, normalmente denominada “SPED2ETV2.gsb”, por la nueva para la península “R2009V9.gsb”)
5.- El siguiente paso será modificar el archivo de plantilla “Normal.mxt” para actualizarlo. Este archivo se encuentra en la siguiente ruta:
C:\Documents and Settings\<nombre usuario>\Datos de programa\ESRI\ArcMap\Templates.
6.- Pare ello ejecutar ArcMap y abrir un mapa nuevo vacío.
7.- En el menú Tools seleccionar Macros -> Visual Basic Editor (se ejecuta el editor de Visual Basic).

8.- En la barra de herramientas Proyecto del editor, situada a la izquierda de la pantalla, explorar el árbol hasta: Normal (Normal.mxt) -> ArcMap Objetos -> ThisDocument (doble clic en ThisDocument, se abre la ventana de diálogo).
9.- Copiar en esta ventana activa del editor de visual Basic, el siguiente texto que contiene el código de la subrutina en VB (en su caso, sustituir el código que apareciera escrito por este otro que se indica debajo del esquema)

10.- Hacer clic en el botón con el símbolo play (Ejecutar -> Ejecutar Sub/User Form) del menú superior, guardar el archivo (Archivo -> Guardar como “Normal.mxt” y se habrá actualizado la plantilla) y salir del editor de Visual Basic (Archivo -> Cerrar y volver a ArcMap).


Desde este momento el proyecto activo, cualquier proyecto nuevo y todos los ya existentes
que se abran con ArcMap incorporan la transformación de cambio de datum correcta entre
ED50 y ETRS89.
11.- Comprobación:
Para comprobar que la transformación se ha incorporado correctamente a la aplicación basta con:
• Abrir un proyecto que tenga alguna capa de información en ED50 o un “.shp” en ED50 en
un proyecto nuevo.

• Entrar en el gestor de sistemas de referencia, en la barra de menús: View -> Data Frame
Properties. Hacer clic en Transformations .. y en el desplegable Into: seleccionar la opción
World\WGS84 (la última de la serie de posibilidades).

• En el desplegable inferior (Using:) debe aparecer: ED50_WGS84_ESPAÑA y debajo:
Method: NTv2 – dataset=spain/R2009V9. Si no es así el programa no está incorporando la transformación correcta.
También funciona en sentido contrario:

NOTA
• Observar que con esta actualización de plantilla “Normal.mxt”, en el código de la subrituna en VB hemos considerado únicamente la rejilla para la península: “R2009V9”. Si necesitamos incorporar la rejilla recomendada por el IGN para la islas Baleares: “BALR2009.gsb” , entonces el código para actualizar la plantilla “.mxt” sería el siguiente:
Private Function MxDocument_NewDocument() As Boolean CambioDatumED50ETRS89 CambioDatumED50WGS84 End Function Private Function MxDocument_OpenDocument() As Boolean CambioDatumED50ETRS89 CambioDatumED50WGS84 End Function Sub CambioDatumED50ETRS89() ' Start by getting a handle on the current FocusMap Dim pMxDoc As IMxDocument Set pMxDoc = Application.Document Dim pMap As IMap Set pMap = pMxDoc.FocusMap ' Set the input spatial reference to ED50 Dim pGCSin As IGeographicCoordinateSystem ' Dim pSpRef1 As ISpatialReference Dim pSpRFc As SpatialReferenceEnvironment Set pSpRFc = New SpatialReferenceEnvironment Set pGCSin = pSpRFc.CreateGeographicCoordinateSystem(4230) ' Set pSpRef1 = pGCSin ' pSpRef1.SetFalseOriginAndUnits -180, -90, 1000000 ' Set the output spatial reference to ETRS89 ' Dim pSpRef2 As ISpatialReference Dim pGCSout As IGeographicCoordinateSystem Set pGCSout = pSpRFc.CreateGeographicCoordinateSystem(4258) ' Set pSpRef2 = pGCSout ' pSpRef2.SetFalseOriginAndUnits -180, -90, 1000000 Dim pNTv2 As IGridTransformation Set pNTv2 = New NTv2Transformation ' A grid-based transformation has its data name set to ' dataset_<country>/<filename> pNTv2.Name = "ED50_ETRS89_ESPAÑA" pNTv2.GridDatasetName = "dataset_spain/BALR2009.gsb” pNTv2.PutSpatialReferences pGCSin, pGCSout ' pNTv2.Load ' Add the transformation to the operation set Dim pGTSet As IGeoTransformationOperationSet Set pGTSet = New GeoTransformationOperationSet ' The Map uses IMapGeographicTransformations to access the geogtrans Dim pMapGeo As IMapGeographicTransformations Set pMapGeo = pMap Set pGTSet = pMapGeo.GeographicTransformations pGTSet.Set esriTransformForward, pNTv2 pGTSet.Set esriTransformReverse, pNTv2 'Now refresh the map DoEvents pMxDoc.ActiveView.Refresh End Sub Sub CambioDatumED50WGS84() ' Start by getting a handle on the current FocusMap Dim pMxDoc As IMxDocument Set pMxDoc = Application.Document Dim pMap As IMap Set pMap = pMxDoc.FocusMap ' Set the input spatial reference to ED50 Dim pGCSin As IGeographicCoordinateSystem ' Dim pSpRef1 As ISpatialReference Dim pSpRFc As SpatialReferenceEnvironment Set pSpRFc = New SpatialReferenceEnvironment Set pGCSin = pSpRFc.CreateGeographicCoordinateSystem(4230) ' Set pSpRef1 = pGCSin ' pSpRef1.SetFalseOriginAndUnits -180, -90, 1000000 ' Set the output spatial reference to WGS84 ' Dim pSpRef2 As ISpatialReference Dim pGCSout As IGeographicCoordinateSystem Set pGCSout = pSpRFc.CreateGeographicCoordinateSystem(4326) ' Set pSpRef2 = pGCSout ' pSpRef2.SetFalseOriginAndUnits -180, -90, 1000000 Dim pNTv2 As IGridTransformation Set pNTv2 = New NTv2Transformation ' A grid-based transformation has its data name set to ' dataset_<country>/<filename> pNTv2.Name = "ED50_WGS84_ESPAÑA" pNTv2.GridDatasetName = "dataset_spain/BALR2009.gsb” pNTv2.PutSpatialReferences pGCSin, pGCSout ' pNTv2.Load ' Add the transformation to the operation set Dim pGTSet As IGeoTransformationOperationSet Set pGTSet = New GeoTransformationOperationSet ' The Map uses IMapGeographicTransformations to access the geogtrans Dim pMapGeo As IMapGeographicTransformations Set pMapGeo = pMap Set pGTSet = pMapGeo.GeographicTransformations pGTSet.Set esriTransformForward, pNTv2 pGTSet.Set esriTransformReverse, pNTv2 'Now refresh the map DoEvents pMxDoc.ActiveView.Refresh End SubVisita http://www.sinfogeo.es/es/listadocursos/tig/109-curso-arcgis.html si quieres conocer detalles sobre nuestro curso de ArcGIS




