[NUUG kart] Hvordan kjenne igjen SOSI-filer?

Petter Reinholdtsen pere at hungry.com
Fri May 3 22:15:13 CEST 2019


Takk for nyttige innspill, alle sammen.  De kom godt med, og ga meg nok
til å forsøke å lage et endringsforslag til 'file', basert på koden
tilgjengelig fra <URL: https://github.com/file/file/ >.

Forsøk på å få SOSI-sekretariatet til å fastsette og registrere en
MIME-type for SOSI har ikke lyktes så langt, så i mangel av noe bedre
har jeg tenkt å definere application/vnd.sosi som så vil returneres av
'file --mime' når den treffer på en SOSI fil.  Vurderte text/vnd.sosi,
da det jo er et tekstformat, men endte under tvil opp med application/.

Her er mitt utkast til endringsforslag så langt.  Det sjekker ikke at
filen endrer på .SLUTT (fant ikke ut hvordan), og vil ikke kjenne igjen
filer som starter med BOM, tror jeg.  Den kjenner dog igjen filer lagt
ut av kartverket, og skriver ut følgende for eksempelfilene jeg har
testet med så langt:

20Tekst5000biterISO8859-10.sos:                                     SOSI map data, version 4.0, charset ISO8859-10
Basisdata_5054_Indre_Fosen_25832_N50AdministrativeOmrader_SOSI.sos: SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50Arealdekke_SOSI.sos:            SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50BygningerOgAnlegg_SOSI.sos:     SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50Hoyde_SOSI.sos:                 SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50Restriksjonsomrader_SOSI.sos:   SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50Samferdsel_SOSI.sos:            SOSI map data, version 4.5, charset ISO8859-1
Basisdata_5054_Indre_Fosen_25832_N50Stedsnavn_SOSI.sos:             SOSI map data, version 4.5, charset ISO8859-1
20BygnAnlegg.SOS:                                                   SOSI map data, version 4.0, charset ISO8859-10

diff --git a/magic/Magdir/sosi b/magic/Magdir/sosi
new file mode 100644
index 00000000..edc0763e
--- /dev/null
+++ b/magic/Magdir/sosi
@@ -0,0 +1,30 @@
+#------------------------------------------------------------------------------
+# $File: $
+# SOSI
+# Summary: Systematic Organization of Spatial Information
+# Long description: Norwegian text based map format
+# File extension: .sos
+# Full name:    Petter Reinholdtsen (pere at hungry.com)
+# Reference: https://en.wikipedia.org/wiki/SOSI
+#
+# Example SOSI files available from
+# https://trac.osgeo.org/gdal/ticket/3638
+# https://nedlasting.geonorge.no/geonorge/Basisdata/N50Kartdata/SOSI/
+# https://nedlasting.geonorge.no/geonorge/Samferdsel/Elveg/SOSI/
+#
+# Start with ".HODE" and end with ".SLUTT", might have BOM at the
+# start and following ".HODE" near the start there is "\n..TEGNSETT "
+# followed by the charset and "\n" or "\r\n", as well as
+# "\n..SOSI-VERSJON " followed by the format version and "\n" or
+# "\r\n".
+
+0       string  .HODE           SOSI map data
+>5      search  \n..SOSI-VERSJON
+>>&1   string  x               \b, version %s
+>5      search  \n..TEGNSETT
+>>&1   string  x               \b, charset %s
+!:mime application/vnd.sosi
+!:ext sos
+#-7      string  \n.SLUTT
+#-8      string  \n.SLUTT\n
+#-9      string  \n.SLUTT\r\n
diff --git a/magic/Makefile.am b/magic/Makefile.am
index 244eebdc..21312cb4 100644
--- a/magic/Makefile.am
+++ b/magic/Makefile.am
@@ -256,6 +256,7 @@ $(MAGIC_FRAGMENT_DIR)/smalltalk \
 $(MAGIC_FRAGMENT_DIR)/smile \
 $(MAGIC_FRAGMENT_DIR)/sniffer \
 $(MAGIC_FRAGMENT_DIR)/softquad \
+$(MAGIC_FRAGMENT_DIR)/sosi \
 $(MAGIC_FRAGMENT_DIR)/spec \
 $(MAGIC_FRAGMENT_DIR)/spectrum \
 $(MAGIC_FRAGMENT_DIR)/sql \

Tar gjerne imot forslag til forbedringer før jeg sender
endringsforslaget oppstrøms om noen dager.  Er det forresten noen som
bruker .sosi på SOSI-filer, eller bruker alle .sos?

-- 
Vennlig hilsen
Petter Reinholdtsen


More information about the kart mailing list