= Build GDAL with support for the Norwegian SOSI format = [[TOC]] * General information on the Norwegian SOSI format in English[[BR]] ([http://www.kartverket.no/en/Standarder/SOSI/SOSI-Standard-in-English/?si=1312E52D3B0036D85BC5A610FAEBB7C6&rid=824272813&sn=Statkart]) * General information on the Norwegian SOSI format in Norwegian[[BR]] ([http://www.kartverket.no/Standarder/SOSI/SOSI-standarden-del-1/]) * Github repository of the OpenFYBA-library wich is required for the OGR-SOSI-driver[[BR]] ([https://github.com/kartverket/fyba]) * Initial discussion about the integration if a driver for the Norwegian SOSI format[[BR]] ([http://trac.osgeo.org/gdal/ticket/3638]) * Updates on the activities of the National Mapping Authority of Norway (Statens kartverk) on that topic (in Norwegian)[[BR]] ([http://labs.kartverket.no/sos/]) == Unix (Tested on Ubuntu 12.04) == === Download and build the FYBA library from the National Mapping Authority of Norway (Statens kartverk) === The SOSI driver requires the FYBA library to read and write files in the Norwegian geodata standard format SOSI. OpenFYBA is, a source code release of the FYBA library, is distributed by the National Mapping Authority of Norway (Statens kartverk) and can be downloaded from their git repository: ([https://github.com/kartverket/fyba]) The driver has the following dependencies: libtool g++ autoconfig {{{ git clone https://github.com/kartverket/fyba cd fyba autoreconf --force --install ./configure make sudo make install cd .. }}} This procedure installs the FYBA library (libfyba) and it`s dependencies (libfygm and libfyut) in /usr/local/. === Download and build GDAL === {{{ svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal cd gdal #Recreate the configure script with SOSI support sh autogen.sh ./configure --with-sosi make sudo make install }}} In addition, some Linux distributions require the shared library cache to be updated after install: {{{ sudo ldconfig }}} == Windows (Tested on Winows 7 with MS Visual Studio 2012) == Download precompiled .lib- and include-files of the OpenFYBA library from [https://github.com/kartverket/fyba/tree/win-binaries] (from folders "include" and "Lib"). Or rebuild them using the project files for MS Visual Studio and build instructions provided here [https://github.com/kartverket/fyba]. The OpenFYBA library - where the SOSI-driver is build on - consists of three parts: GM.lib, UT.lib, and FYBA.lib. Download GDAL source code from [http://trac.osgeo.org/gdal/wiki/DownloadSource] for GDAL version 1.9.2 or later (plugin-option available since revision 26547). Uncomment lines regarding SOSI-support in GDALs nmake.opt and set path to where you have your lib-files and include folder for OpenFYBA e.g.: If "SOSI_PLUGIN = YES" is uncommented SOSI-support is built as a plugin and the plugin-.dll deployed in the gdalplugin directory. If SOSI_ENABLED is uncommented it is build "normally" based on the external libs. The options SOSI_ENABLED and SOSI_PLUGIN are mutually exclusive. Uncommenting both will lead to build errors. {{{ # Uncomment for SOSI support #SOSI_ENABLED = YES SOSI_PLUGIN = YES SOSI_INC_DIR = C:/fyba/include SOSI_LIBS = C:/fyba/Lib/GM.lib C:/fyba/Lib/UT.lib C:/fyba/Lib/FYBA.lib }}} Build GDAL with MS Visual Studio [http://trac.osgeo.org/gdal/wiki/BuildingOnWindows]. Use the same compiler for both OpenFYBA and GDAL. There are older downloads including binary versions for Windows on: [https://bitbucket.org/kartverket/fyba/src/e0a53133586261258e9333ce314ba1df0a1fb63e/releases?at=releases] Since the plugin build option has been implemented, a binary version of the plugin is available in OSGeo4W. == Testing the SOSI driver == To test if the driver has been loaded, execute the following (look for "SOSI" in the results): {{{ ogrinfo --formats }}} Then test with a sample file (such as [http://trac.osgeo.org/gdal/attachment/ticket/3638/20BygnAnlegg.SOS]): {{{ ogrinfo 20BygnAnlegg.SOS ... }}} Note: When accessing a SOSI file, the SOSI driver writes out indices into a subfolder within the same directory where your SOSI files (.sos) are stored. Therefore you have to have write access to the directory containing your SOSI files. == Usage examples == Convert layers of all SOSI-files in the current directory to shape-format: {{{ dir=$(pwd) for s in $(ls ${dir}/*.sos) do name=$(echo $s | cut -f1 -d'.') layers=$(ogrinfo $s) if [ $(echo $layers | grep points | wc -l) -eq 1 ] ; then ogr2ogr ${name}_pnt.shp $s points fi if [ $(echo $layers | grep lines | wc -l) -eq 1 ] ; then ogr2ogr ${name}_lin.shp $s lines fi if [ $(echo $layers | grep polygons | wc -l) -eq 1 ] ; then ogr2ogr ${name}_pol.shp $s polygons fi done }}} Or - even simpler - convert SOSI to SQLite format. SQLite is more similar to SOSI as it allows for several layers and it is less limiting regarding column names: {{{ dir=$(pwd) for s in $(ls ${dir}/*.sos) do name=$(echo $s | cut -f1 -d'.') ogr2ogr -f SQLite ${name}.sqlite $s done }}} == Open Tickets == [[TicketQuery(status=new|assigned|reopened|enhancement|patch&keywords~=SOSI&order=priority)]]