User:NKA/Laste ned fra SSR2

From OpenStreetMap Wiki
Jump to navigation Jump to search

DRAFT

Introduksjon

Denne siden gir en kort beskrivelse av hvordan man laster ned stedsnavn fra siste versjon av Kartverkets sentrale stedsnavnregister, heretter kalt SSR2. Stedsnavn fra første versjon av registeret kunne lastes ned ved å bestille filer fra Kartverket, men for SSR2 må man inntil videre bruke WFS.

Her er noen referanse-dokumenter som er nyttige:

Verktøy for nedlastning

Det er ikke så mange programmer for nedlastning mot WFS-tjenster ennå. Verktøyene må også ha støtte for WFS 2.0 og komplekse strukturer, som SSR2 bruker. Her er noen aktuelle alternativer:

  • QGIS sammen med WFS 2.0 Client plugin (jeg har dog hatt problemer med at noen av stedsnavnene havner feil på kartet)
  • Wget
  • cURL (ligger allerede i MacOS)

Wget og cURL kjøres fra terminalvinduene. Jeg har bare testet cURL, men Wget skal virke med de samme paramterne som vist i eksemplene nedenfor.

Resultatfilene er i GML 3.2.1-format og er i nøstede strukturer med flere forekomster av ulike skrivemåter og forskjellige forekomster i historiske kart. Man må derfor etter nedlastningen lese resultatfilen i et program som kan tolke GML 3.2.1. JOSM leser ikke dette formatet. Jeg har brukt QGIS til å lese inn filen. Deretter eksporterer jeg den videre til Excel for videre bearbeiding (om datamengdene er små nok), og deretter videre som CSV-fil til JOSM.

Resultatfiler fra andre og enklere WFS-tjenester uten for komplekse strukturer kan leses direkte inn i Excel for Windows (ikke støttet på Mac).

Det finnes sikkert andre og bedre metoder - gi gjerne tilbakemelding.

Eksempler

Eksemplene er gitt for cURL, men de skal også virke for Wget. De datafeltene man skal søke på (kommunenavn, fylkesnummer etc nedenfor) ser man i applikasjonsskjemaet i datamodellen som det er linket til øverst på denne siden. Se også veiledningen det er linket til for mer sammensatte spørringer. Nedlastningen tar relativt langt tid fordi samtlige datafelt for hvert navneobjekt hentes ned. For å bare teste, legg til f.eks. "&count=100" nedenfor for å begrense antallet objekter som skal hentes ned.

Laste ned alle stedsnavn for en kommune, gitt ved kommunenavn

Eksempel for Vestre Toten kommune:

curl  -o Stedsnavn_V_Toten.gml "http://wfs.geonorge.no/skwms1/wfs.stedsnavn50?VERSION=2.0.0&SERVICE=WFS&srsName=EPSG:4326&REQUEST=GetFeature&TYPENAME=Sted&resultType=results&Filter=%3CFilter%3E%20%3CPropertyIsEqualTo%3E%20%3CValueReference%20xmlns:app=%22http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0%22%3Eapp:kommune/app:Kommune/app:kommunenavn%3C/ValueReference%3E%20%3CLiteral%3EVestre Toten%3C/Literal%3E%20%3C/PropertyIsEqualTo%3E%20%3C/Filter%3E" --header "Content-Type:text/xml"

Filteret ovenfor ser slik ut i klarere tekst:

<Filter> 
	<PropertyIsEqualTo> 
		<ValueReference xmlns:app="http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0">
			app:kommune/app:Kommune/app:kommunenavn 
		</ValueReference> 
		<Literal>
			Vestre Toten
		</Literal> 
	</PropertyIsEqualTo> 
</Filter>

Laste ned alle navn for en kommunene, gitt ved kommunenummer

Eksempel for kommune nr 1840 (Saltdal kommune):

curl -o Stedsnavn_Saltdal.gml "http://wfs.geonorge.no/skwms1/wfs.stedsnavn50?VERSION=2.0.0&SERVICE=WFS&srsName=EPSG:4326&REQUEST=GetFeature&TYPENAME=Sted&resultType=results&Filter=%3CFilter%3E%20%3CPropertyIsEqualTo%3E%20%3CValueReference%20xmlns:app=%22http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0%22%3Eapp:kommune/app:Kommune/app:kommunenummer%3C/ValueReference%3E%20%3CLiteral%3E1840%3C/Literal%3E%20%3C/PropertyIsEqualTo%3E%20%3C/Filter%3E" --header "Content-Type:text/xml"

Filteret ovenfor ser slik ut i klarere tekst:

<Filter> 
	<PropertyIsEqualTo>
		<ValueReference xmlns:app="http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0">
			app:kommune/app:Kommune/app:kommunenummer
		</ValueReference> 
		<Literal>
			1840
		</Literal> 
	</PropertyIsEqualTo> 
</Filter>

Laste ned alle stedsnavn for et fylke, gitt ved fylkesnummer

Eksempel for fylke nr 18 (Nordland):

curl -o Stedsnavn_Nordland.gml "http://wfs.geonorge.no/skwms1/wfs.stedsnavn50?VERSION=2.0.0&SERVICE=WFS&srsName=EPSG:4326&REQUEST=GetFeature&TYPENAME=Sted&resultType=results&Filter=%3CFilter%3E%20%3CPropertyIsEqualTo%3E%20%3CValueReference%20xmlns:app=%22http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0%22%3Eapp:kommune/app:Kommune/app:fylkesnummer%3C/ValueReference%3E%20%3CLiteral%3E01%3C/Literal%3E%20%3C/PropertyIsEqualTo%3E%20%3C/Filter%3E" --header "Content-Type:text/xml"

Filteret ovenfor ser slik ut i klarere tekst:

<Filter> 
	<PropertyIsEqualTo> 
		<ValueReference xmlns:app="http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0">
			app:kommune/app:Kommune/app:fylkesnummer
		</ValueReference> 
		<Literal>
			18
		</Literal> 
	</PropertyIsEqualTo> 
</Filter>

Laste ned alle forekomster av én bestemt navneobjekttype

Eksempel for alle kirker i Norge:

curl -o Kirker.gml "http://wfs.geonorge.no/skwms1/wfs.stedsnavn50?VERSION=2.0.0&SERVICE=WFS&srsName=EPSG:4326&REQUEST=GetFeature&TYPENAME=Sted&resultType=results&Filter=%3CFilter%3E%20%3CPropertyIsEqualTo%3E%20%3CValueReference%20xmlns:app=%22http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0%22%3Eapp:navneobjekttype%3C/ValueReference%3E%20%3CLiteral%3Ekirke%3C/Literal%3E%20%3C/PropertyIsEqualTo%3E%20%3C/Filter%3E"  --header "Content-Type:text/xml"

Filteret ovenfor ser slik ut i klarere tekst:

<Filter> 
	<PropertyIsEqualTo> 
		<ValueReference xmlns:app="http://skjema.geonorge.no/SOSI/produktspesifikasjon/Stedsnavn/5.0">
			app:navneobjekttype
		</ValueReference> 
		<Literal>
			kirke
		</Literal> 
	</PropertyIsEqualTo> 
</Filter>