Estoy tratando de aplicar el consejo en el blog de George MacKerron sobre Usando la transformación OSTN02 en PostGIS sin embargo estoy utilizando el servicio Amazon RDS donde no tengo acceso al sistema de archivos subyacente. ¿Alguna recomendación sobre si / cómo es posible o una solución alternativa para aplicar transformaciones más precisas del British National Grid a WGS84?
Respuestas
¿Demasiados anuncios?Entonces, esta no es exactamente la solución que estaba buscando, pero parece ser una solución alternativa sólida. La mayoría de los conjuntos de datos con los que trabajo se suministran en formato de archivo, shape o fgdb y utilizo el ogr2ogr y OSTN02 como se describe aquí. Para datos de puntos en CSV creo un archivo vrt y uso ogr2ogr siguiendo el consejo aquí. Ocasionalmente obtengo datos como un archivo de volcado de postgis en BNG, después de muchos intentos descubrí que ogr2ogr aceptará tanto la entrada como la salida como postgis y esto funciona realmente bien. En una instancia de EC2 en la misma región que mi RDS me conecto a la base de datos fuente con ogr2ogr, apunto a un archivo de transformación local en la instancia de EC2 y luego doy una tabla de destino en la misma DB y parece funcionar realmente bien y de manera bastante rápida. Una base de datos de polígonos a escala de GB de contornos de edificios procesados en un par de horas.
El código que usé es el siguiente:
ogr2ogr \
-f PostgreSQL -s_srs "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs +nadgrids=~/ostn02/OSTN02_NTv2.gsb" -t_srs EPSG:27700 \
-lco schema=MI_ESQUEMA -lco precision=NO -lco create_schema=off -nln TABLA_A_CREAR -lco overwrite=yes \
-lco geometry_name=geom PG:'dbname=staging' PG:'dbname=staging' TABLA_A_CONVERTIR -lco --config PG_USE_COPY YES \
-progress
No es una solución perfecta, pero una buena solución alternativa.
Estoy buscando exactamente el mismo escenario y aún no he encontrado una solución alternativa pura para RDS. Podría valer la pena presentar una solicitud de función al respecto, pero imagino que será de baja prioridad (¡mira cuánto tiempo tomó para que pg_routing estuviera disponible!)
La única solución práctica alternativa que he encontrado hasta ahora es reproyectar los datos antes de la ingestión. Actualmente estoy haciendo esto sobre la marcha en python mientras inserto (ya que necesito todo en mercator web de todos modos para esta aplicación) pero probablemente configuraré un contenedor de docker que descargue e instale automáticamente las cuadrículas de cambio de datum OSTN02 y OSTN15 en los próximos días para facilitar un poco las cosas en el futuro.