Skip to content

Instantly share code, notes, and snippets.

View LtGlahn's full-sized avatar

Jan Kristian Jensen LtGlahn

  • Norwegian Public Road Adminstration
  • Trondheim, Norway
  • X @LtGlahn
View GitHub Profile
@LtGlahn
LtGlahn / finnmetrering.py
Last active June 7, 2017 08:45
Check alignment of NVDB road network and metering system (vegreferanse)
# -*- coding: utf-8 -*-
"""
Check alignment of NVDB road network and metering system (vegreferanse)
in a particular point at the road network, specified as road
link ID and (non-dimmensional) linear reference position.
Usage:
(roadDir, meterDir) = nvdbdirection( 971429, 0.2) # Input: NVDB Road linkID
# and position
@LtGlahn
LtGlahn / kontraktsjekkNvdb.py
Last active June 15, 2017 16:55
Artig med kontraktsområder... Sjekker hvor mange som finnes innenfor Trondheim kommune.
# Trenger disse funksjonene: https://github.com/LtGlahn/nvdbapi-V2/blob/master/nvdbapi.py
#
from nvdbapi import *
# Tom liste som holder navn på kontraktsområdene vi finner
kontraktsomr = []
# Henter et heldekkende objekt fra NVDB
vegref = nvdbFagdata( 532)
vegref.addfilter_geo( { 'kommune' : '1601', 'vegreferanse' : [ 'E', 'R', 'F', 'K' ] })
@LtGlahn
LtGlahn / flereSkiltplater.py
Last active June 29, 2017 21:13
#NVDBapi fetching NVDB by object ID (and type). See also https://github.com/LtGlahn/nvdbapi-V2
# -*- coding: utf-8 -*-
"""Fetching a bunch of objects of a specifid type from Norwegian National
road database (NVDB). See https://www.vegvesen.no/nvdb/apidokumentasjon/
Here, we set up a geographic filter for a certain road number (fv30) and county (16),
and a property filter (skiltnummer = Fartsgrense 70 km/t).
"""
import requests
import json
# -*- coding: utf-8 -*-
"""
Finn lengde av grusveger (vegdekke med massetype = grusveg)
Supplerer rapportgenerator http://labs.vegdata.no/nvdb-rapporter/
som går mot V1 av NVDB api, og derfor ikke klipper lengder på kommunegrenser
ref http://api.vegdata.no/endepunkt/vegobjekter.html
"""
import requests
@LtGlahn
LtGlahn / sykkelulykker.py
Created June 1, 2018 11:59
Eksempel på hvordan du kan gjøre komplekse spørringer mot NVDB og få dumpet resultatet som geojson med lengde- og breddegrad.
"""
Created on Thu May 31 10:41:18 2018
Henter trafikkulykker etter 2012 med datterobjekt 571 av typen sykkel, og
lagrer som geojson med lat/lon koordinat (srid=4326)
"""
import nvdbapi
import nvdb2geojson
@LtGlahn
LtGlahn / tunnel_ulykker.py
Last active June 29, 2018 22:44
Tunneller og tunnelløp-relasjoner NVDB
# -*- coding: utf-8 -*-
"""
Finner ulykker i tunneller ut fra kjent tunnelID.
Forutsetter at dette biblioteket er i søkestien (evt i samme mappe):
https://github.com/LtGlahn/nvdbapi-V2
Metodikk: For alle tunnell-Id'er
* Hent alle relasjoner tunnell->tunnelløp
* For alle tunnelløp:
* hent veglenkeposisjoner
@LtGlahn
LtGlahn / paginer_nvdbapiV3_bomstasjon.py
Last active May 7, 2020 04:01
Demo pagineringseksempel NVDB api V3
import requests
import json
import datetime
# Konfigurering
outputfile = 'paginering45.json'
url_tomside = 'http://jansimple.pythonanywhere.com/static/tompaginering.json'
minimumantall = 300 # Dropper skriving hvis vi ikke får flere objekter enn som så
# Interne variabler
@LtGlahn
LtGlahn / framtidigtunnel.py
Last active August 19, 2020 14:32
Finne NVDB-objekter med startdato inn i framtida
"""
Konseptutvikling / demonstrasjon av hvordan du finner vegobjekt med framtidig startdato i NVDB
Eksemplet leter etter tunneler (587) som har startdato > dagen i dag.
Per 19. august vet vi om ett objekt med startdato = 10. september 2020.
(https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/581/1008940122/1)
Vi har funnet to metoder som begge virker:
- Metode 1: Hente alle versjoner (alle start/sluttdatoer) for en objekttype
- Metode 2: Hent alle forekomster som antas å være gyldig en gang langt inn i framtida
@LtGlahn
LtGlahn / vegrefendring2010oslo.py
Last active August 28, 2020 10:42
Hvilke veger fikk endret status og eierskap i Oslo ved forvaltningsreformen? Dvs fra europa-, riks- og fylkesveg => kommunalveg?
"""
Analyserer hvilke europa, riks og fylkesveger som ble til kommunalveger nyttår 2010 i Oslo
Forutsetter at du har geopandas og dette biblioteket tilgjengelig https://github.com/LtGlahn/nvdbapi-V3
"""
import sqlite3
import geopandas as gpd
import pandas as pd
@LtGlahn
LtGlahn / tunnelnavnssr.py
Created November 11, 2020 10:30
Stedsnavn i SSR versus navn på tunneller i NVDB
"""
Script som sammenligner navn på tunneller i NVDB med stedsnavn i SSR
Logikken er som følger:
- Søk i SSR skjer innafor boundingbox laget fra 500 meter buffer rundt tunnelløpene
(de forekomstene av objekttype 67 Tunnelløp som er datterobjekter av denne forekomsten av 581 Tunnel)
- Hvis nødvendig, søker vi flere ganger i SSR:
1. Først på eksakt match på NVDB navnet
2. Deretter wildcard-søk etter *tunnel* (innafor boundingbox)