En este artículo descubrirás cómo cargar un archivo ENC en formato S57 en QGis 3.34 y descargar una simbología de carta náutica para aplicársela.
Dado que el anterior artículo sobre el formato S57 y la visualización de cartas náuticas electrónicas (ENC) con QGis data de 2015, ya era hora de publicar una actualización para las versiones actuales de QGis (3.34 en el momento de la publicación de este artículo).
Las fuentes de información para las zonas costeras no se limitan a las fuentes terrestres tradicionales. Los mapas marinos pueden proporcionar información muy útil y, desde el punto de vista del renderizado, pueden producir documentos ricos y de gran impacto.
Las cartas náuticas electrónicas (ENC) son la fuente más adecuada para integrar rápidamente grandes cantidades de información. En un solo lote de datos, se puede encontrar toda la información contenida en una carta náutica: línea de costa, batimetría, balizamiento, etc.
A diferencia de lo que ocurre en Estados Unidos y otros países, donde las cartas náuticas son gratuitas y están disponibles simplemente descargándolas, en Francia hay que pagar por ellas, lo que ralentiza enormemente su distribución y uso.
Las cartas ENC se distribuyen en un formato de la Oficina Hidrológica Internacional (IHB) llamado S-57. Este formato es uno de los formatos vectoriales de las cartas ENC. Este formato es uno de los formatos vectoriales que pueden cargarse directamente en QGis. Por tanto, puedes abrir un mapa ENC en QGis y visualizar su contenido. Pero el problema es que está mostrando su contenido con símbolos convencionales por defecto, que no tienen ninguna relación con la simbología utilizada en una carta náutica.
Este es el resultado de cargar un archivo S-57 en QGis.
Puedes, por supuesto, tomar capa por capa y asignarle una simbología apropiada. Hay alrededor de 75 capas en una ENC clásica.
Sugerimos algo un poco más rápido.
Si quieres probar este procedimiento y no tienes un mapa ENC a mano, puedes descargar un mapa americano gratuito de la página web de la NOAA haciendo clic aquí.
Cómo funciona el procedimiento
En lugar de cargar directamente el archivo S57, vamos a realizar un tratamiento previo para crear archivos shape de las distintas capas presentes. Esto es esencial si se quiere mostrar una simbología preestablecida, pero también significa que se pueden integrar sólo las capas que se deseen en otros procesos actuales.
Para crear los archivos shape utilizaremos la biblioteca GDAL de Qgis. Utilizando una línea de comandos, recuperaremos las tablas S57 y crearemos un shape para cada tipo de geometría y objeto.
Para ello, basta con abrir la ventana shell OSGeo4W:
Se abre la ventana Shell
Vamos a traducir el formato S57 en una serie de archivos shp que guardaremos en un nuevo directorio.
La línea de comandos a introducir es la siguiente
ogr2ogr -skipfailures output input
output: es el nombre de un directorio vacío donde se guardarán los ficheros shp creados
input: es el fichero S-57 a traducir, con su extensión .000. Tenga en cuenta que el árbol de ficheros S57 no es constante. Asegúrese de introducir la ruta del fichero con extensión .000.
Si utilizamos esta línea de comandos, sin otras opciones, por ejemplo
ogr2ogr -skipfailures c:\blog\nautical\ENC603360 c:\blog\nautical\FR603360\2\0\FR603360.000
Obtendremos una forma por tipo de objeto S57, por ejemplo el objeto MARCUL (cultivos marinos). El problema es que los objetos SD57 pueden ser puntos, líneas o polígonos simultáneamente. Este es el caso de MARCUL. Sin ninguna otra opción en la línea de comandos, obtendremos un shapefile del primer tipo encontrado para MARCUL, ignorando las demás geometrías.
Por lo tanto, realizaremos tres traducciones:
la primera seleccionando todas las entidades de tipo punto presentes:
ogr2ogr -skipfailures -where «OGR_GEOMETRY=’POINT’ or OGR_GEOMETRY=’MULTIPOINT'» C:/test/puntos C:\test\2D7DK000.000
la segunda seleccionando todas las entidades de línea presentes:
ogr2ogr -skipfailures -where «OGR_GEOMETRY=’LINESTRING’ or OGR_GEOMETRY=’MULTILINESTRING'» C:/test/lines C:\test\2D7DK000.000
la tercera seleccionando todas las entidades poligonales presentes:
ogr2ogr -skipfailures -where «OGR_GEOMETRY=’POLYGON’ or OGR_GEOMETRY=’MULTIPOLYGON'» C:/test/polygons C:/test\2D7DK000.000
Los errores mostrados corresponden a una de las limitaciones del formato shapefile. Algunos atributos de los objetos S57 están en formato ‘lista’, que no existe en shapefile. La mayoría son atributos del tipo ‘categoría’ del objeto. Si necesita estos atributos, deberá transformar los archivos S57 en una base de datos postgresql/postgis. Esta opción no se tratará en este artículo. Cuando se crea el shapefile, el atributo de lista simplemente se ignora. El resto de los atributos que no están en formato lista se transforman sin ningún problema. La simbología no tendrá en cuenta el tipo específico de objeto, sino que sólo utilizará un símbolo genérico.
Si ahora observas el contenido del directorio, verás que efectivamente se han creado los shapes.
Así pues, dispones de hasta 73 archivos shapefile de tipo punto, 45 archivos shapefile de tipo línea y 89 archivos shapefile de tipo polígono, pero sigues sin disponer de simbología para QGis. El número de shapefile depende de los objetos presentes en el mapa que está procesando. Si un tipo de objeto no está presente en un archivo ENC (.000), no se genera ningún archivo shape.
Recursos de simbología QGis
Es necesario descargar un archivo zip que contiene
- un gran número de símbolos svg que hemos creado y agrupado en un directorio «nautical». Por defecto, te aconsejamos que copies este directorio en la raíz de la unidad c:.
- un proyecto QGis (versión 3.34) llamado S57.qgs con la asignación de cada símbolo a cada capa de forma.
Si instalas el directorio «nautical» en otra ubicación, deberás editar el archivo del proyecto y sustituir todas las apariciones de C:/nautical por su directorio.
Guarda el archivo S57.qgs en un lugar seguro sin realizar ningún otro cambio. Para cada mapa ENC, cópiala en el directorio creado con ogr2ogr. Es imprescindible no utilizarlo directamente porque cualquier modificación, por ejemplo la ausencia de un objeto, quedará memorizada y ya no dispondrás de este objeto en un futuro mapa.
Para descargar el archivo, haz clic aquí.
Visualización del mapa ENC en QGis con la simbología adecuada
Ahora todo lo que tienes que hacer es copiar el archivo de proyecto QGis descargado, s567.qgs, en el directorio con las formas creadas en el paso anterior. A continuación, carga este proyecto en QGis.
Si falta algún objeto en el mapa, aparecerá una ventana mostrando las capas que faltan:
Debes hacer clic en el botón «Eliminar capas no utilizables» y, a continuación, en el botón «Aceptar«. A continuación, verás los datos con una simbología de mapa náutico, tras hacer zoom sobre la nueva extensión del mapa (la capa M_COVR corresponde al derecho de vía del mapa)
Observará que falta algo en su mapa: los valores de la sonda. Para añadirlos, consulte el artículo S57 mapas marinos con QGis: visualización de sondas . Para visualizarlos, no sólo tiene que trabajar en la simbología, porque los objetos SOUNDG tienen el valor de la sonda en la geometría (XYZ).