======================================== QGIS → S-57 Converter — Installation ======================================== REQUIRED: Python 3.9+ REQUIRED: GDAL with S-57 support ───────────────────────────────────────── OPTION A: Windows — Easiest (OSGeo4W) ───────────────────────────────────────── 1. Download OSGeo4W: https://trac.osgeo.org/osgeo4w/ 2. Run installer → Advanced Install → Select: - gdal - python3-gdal - python3-geopandas (or install via pip) 3. Use the "OSGeo4W Shell" to run the converter: cd "D:\Proyectos Software\QGISS57Converter" python converter.py myproject.qgs ───────────────────────────────────────── OPTION B: Conda / Mamba (Recommended) ───────────────────────────────────────── conda create -n s57 python=3.11 conda activate s57 conda install -c conda-forge gdal geopandas pip install lxml cd "D:\Proyectos Software\QGISS57Converter" python converter.py myproject.qgs ───────────────────────────────────────── OPTION C: QGIS Python environment ───────────────────────────────────────── QGIS already includes GDAL. Run from QGIS Python console: import sys sys.path.append(r"D:\Proyectos Software\QGISS57Converter") from converter import convert convert("myproject.qgs", None, None, False, True, True) ───────────────────────────────────────── INSTALL other dependencies ───────────────────────────────────────── pip install geopandas lxml pyproj ───────────────────────────────────────── VERIFY installation ───────────────────────────────────────── python -c "from osgeo import gdal; drv = gdal.GetDriverByName('S57'); print('S-57 driver:', drv.GetDescription() if drv else 'NOT AVAILABLE')" ======================================== USAGE ======================================== # List layers and their S-57 mapping: python converter.py project.qgs --list # Convert: python converter.py project.qgs # Custom output name: python converter.py project.qgs --output CO1CO01M.000 # Custom config: python converter.py project.qgs --config my_config.json # No prompts (convert all mapped layers): python converter.py project.qgs --force ======================================== LAYER NAMING — IMPORTANT ======================================== You have THREE options for mapping your QGIS layers to S-57: OPTION 1 (easiest): Name your layers directly with S-57 acronyms - Layer named "COALNE" → coastline - Layer named "DEPARE" → depth area - Layer named "SOUNDG" → soundings See s57_objects.json for all available object classes. OPTION 2: Name layers in Spanish or English (auto-detected) - Layer named "costa" or "coastline" → auto → COALNE - Layer named "fondos" or "batimetria" → auto → DEPARE - Layer named "sondas" → auto → SOUNDG See cell_config.json → "layer_mappings" for full list. OPTION 3: Add custom mappings to cell_config.json "layer_mappings": { "mi_capa_costa": "COALNE", "datos_profundidad": "DEPARE" } ======================================== CELL NAMING CONVENTION (IHO S-57) ======================================== Format: CC1AA##X.000 CC = 2-letter country code (CO=Colombia, US=USA, etc.) 1 = Navigational Purpose (1=overview...6=berthing) AA = 2-letter area code ## = serial number (01, 02...) X = compilation scale indicator (M=medium) Example: CO3CA01M.000 = Colombia, scale 1:50000, Caribbean area Edit "cell_name" in cell_config.json accordingly. ======================================== COMMON S-57 OBJECT CLASSES ======================================== COALNE Coastline (lines) LNDARE Land Area (polygons) DEPARE Depth Area (polygons) — needs DRVAL1, DRVAL2 attributes DEPCNT Depth Contour (lines) — needs VALDCO attribute SOUNDG Soundings (points) — needs VALSOU (depth value) attribute LIGHTS Lights (points) BUOYLAT Lateral Buoy (points) BCNLAT Lateral Beacon (points) ACHARE Anchorage Area (polygons) HRBARE Harbour Area (polygons) BERTHS Berth (polygons/lines) OBSTRN Obstruction (any) WRECKS Wreck (polygons/points) FAIRWY Fairway (polygons) RESARE Restricted Area (polygons) RIVERS River (polygons/lines) M_COVR Coverage (polygons) — required in valid ENCs See s57_objects.json for complete list.