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 / v2problem.py
Created January 13, 2021 08:17
Test av feilmelding varierende (og feil) antall objekt for spørring mot V2 av NVDB api. Krever dette bibiloteket https://github.com/LtGlahn/nvdbapi-V3
"""
Sammenligner antall objekt for et kontraktsområde fra V2 og V3, samt om
V2 gir resultater som varierer
"""
import requests
from datetime import datetime
import json
from copy import deepcopy
@LtGlahn
LtGlahn / demo_mangler_komr.py
Last active September 21, 2021 09:13
Finner NVDB vegnett der det ikke er registret kontraktsområde, ref https://www.vegdata.no/2021/09/21/hvor-mangler-vi-kontraktsomrade
"""
Hvordan finne de bitene av vegnettet som mangler kontraktsområde?
https://www.vegdata.no/2021/09/21/hvor-mangler-vi-kontraktsomrade/
"""
import requests
# Setter filter
mittfilter = { 'vegsystemreferanse' : 'Fv', 'fylke' : 34}
@LtGlahn
LtGlahn / reversiblefelt.py
Created November 12, 2021 13:44
Har vi reversible kjørefelt i NVDB?
# Først må du grabbe reposet mitt https://github.com/LtGlahn/nvdbapi-V3
# og så må du minimum få installert pandas (regneark på steroider, men i kommandolinjen eller i notebook.
# Mener pip install pandas skal funke greit for akkurat dette behovet.
# Eller du kan gå "all-inn" og ha en litt tregere installasjonsprosess, men ha en utrolig fin verktøykasse.
#
# Jeg anbefaler å gå all-inn og bruke conda til å håndtere pakker, sette opp miljøer (separate sandkasser)
# og dermed minimere smertepunkt knyttet til versjonskonflikter etc. som ellers kommer før eller siden
# hvis man flittig føyer til nye, kule ting med pip install.
#
# Min favorittoppskrift på "conda" oppsett med kule GIS-ting finnes her:
@LtGlahn
LtGlahn / python-conda-GIS-installation.md
Last active November 16, 2021 07:59
Isolere python GIS-programvare i et separat kjøremiljø

En del python GIS-programvare er basert på C-rutiner kompilert for og med python-bindinger. Installasjon av disse C-baserte pythonpakkene kan være litt trælete, og gi versjonskonflikter med andre python-pakker du ønsker å bruke. Anbefalingen er derfor å isolere det du trenger til egne python environments. Når ulike python-pakker finnes i separate kjøremiljø så minimerer du sjangsen for versjonskonflikt - og hvis det verste skulle skje så har du et utrolig mye bedre utgangspunkt for å rydde opp. Å lage et nytt kjøremiljø med ny installasjon av det du trenger er enkelt, og løser de fleste konflikter - mens det å rydde opp i versjonskonflikter på eksisterende installasjon definitivt ikke er noe for uøvde.

Slike kjøremiljø kan lages på flere måter, men fremgangsmåten vist her er det som er gjengs praksis innafor Data science - miljøet.

Steg 0 - bruk Anaconda python installasjon

@LtGlahn
LtGlahn / nvdb2geojson.py
Last active April 26, 2022 21:38
Lag geojson fra Nasjonal vegdatabank via python-biblioteket nvdbapiv3
# Kode for å lagre nvdb-objekt som geojson via dette biblioteket + (geo)pandas
# https://github.com/LtGlahn/nvdbapi-V3/
import nvdbapiv3
import geopandas as gpd
import pandas as pd
import shapely
from shapely import wkt
sok = nvdbapiv3.nvdbFagdata( 923 ) # Objekttypen 923 Beredskapsveg er et søtt, lite datasett: 38 objekter
@LtGlahn
LtGlahn / sjekkVDtall.py
Last active August 24, 2022 14:00
henter data fra NVDB api LES for å kontrollere VD sine tall
import pandas as pd
import geopandas as gpd
import STARTHER
import nvdbapiv3
import nvdbgeotricks
if __name__ == '__main__':
@LtGlahn
LtGlahn / swapLatLon.md
Last active January 11, 2023 21:46
Bytt rekkefølge på X,Y - koordinater (lat, lon) => (lon, lat)

(lat,lon) eller (lon,lat) - slik bytter du rekkefølge i shapely geometriske objekter

Dette med rekkefølgen (lon,lat) eller (lat,lon) for koordinatsystemet EPSG:4326 er traurig og fruktesløs diskusjon. Her er kode for å flippe mellom disse to variantene, dvs bytte (X,Y) => (Y,X).

Geometrien her er shapely geometriobjekter.

Denne oppskriften funket tidligere på 3D objekter uavhengig av geometritype, det kan godt hende det funker fint for din shapely-versjon:

@LtGlahn
LtGlahn / nvdbdata2geojson.md
Last active January 12, 2023 09:10
Lagre NVDB data som geojson i ulike koordinatsystem

Geojson - strengt tatt lon, lat koordinater

Geojson skal i følge spesifikasjonen strengt tatt være (lon, lat) i koordinatsystem EPSG:4326. Uten å ta opp diskusjonen om hva som er korrekt rekkefølge så må vi bytte om på koordinatene fra LES, som kommer i rekkefølgen (lat, lon)

import pandas as pd
import geopandas as gpd 
import requests
from datetime import datetime
from time import sleep
import pandas as pd
import geopandas as gpd
data = []
# url = 'https://hjortevilt2-utv.miljodirektoratet.no/api/v0/fallvilt'
url = 'https://www.hjorteviltregisteret.no/api/v0/fallvilt'
import requests
import json
import sys
from datetime import datetime, timedelta
# import pandas as pd
# import geopandas as gpd
# from shapely.geometry import Point
# from shapely import wkt