import STARTHER import lastnedvegnett import skrivdataframe import nvdbapiv3 import nvdbgeotricks t0 = datetime.now() # egenskapfilter_bk904_u10t = 'egenskap(10901)=18186 OR egenskap(10901)=18187 OR egenskap(10901)=18188 OR egenskap(10901)=18189 OR egenskap(10901)=18190' # overlappfilter = '904(10901=18186 OR 10901=18187 OR 10901=18188 OR 10901=18189 OR 10901=18190)' mittfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={'egenskap': '1263=7304 OR 1263=7305'}) sok = nvdbapiv3.nvdbFagdata(60) sok.filter(mittfilter) bruGdf = nvdbgeotricks.records2gdf(sok.to_records()) # Oppsummerer bru. Her må vi ta hensyn til at noen av bruene mangler egenskapen "Lengde" bruGdf_medLengde = bruGdf[~bruGdf['Lengde'].isnull()].drop_duplicates( subset='nvdbId') bruGdf_uLengde = bruGdf[bruGdf['Lengde'].isnull()].copy() bruGdf_uLengde['Lengde'] = bruGdf_uLengde['segmentlengde'] bru_alleharLengde = pd.concat([bruGdf_medLengde, bruGdf_uLengde]) telling = bru_alleharLengde.groupby(['fylke']).agg({ 'nvdbId': 'nunique', 'Lengde': 'sum' }).reset_index() telling.rename(columns={ 'nvdbId': 'Antall', 'lengde': 'Lengde (m)'
import lastnedvegnett import skrivdataframe import nvdbapiv3 import nvdbgeotricks t0 = datetime.now() # Tunneller (evt tunnelløp) som overlapper med høydebegrensning under 4m overlappfilter = '591(5277<4)' mittfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={'overlapp': overlappfilter}) # Henter tunneler sok = nvdbapiv3.nvdbFagdata(581) sok.filter(mittfilter) tunnelGdf = nvdbgeotricks.records2gdf(sok.to_records()) tunnelGdf.to_file('tunneldebug.gpkg', layer='tunnelpunkt_u_4m', driver='GPKG') # Dessverre er det noen tunneller som mangler egnenskapen "Lengde, offisiell" # Vi skal supplere manglende data fra tunnelløp # aller først deler vi tunnel-datasettet i to manglerLengde = tunnelGdf[tunnelGdf['Lengde, offisiell'].isnull()].copy() harLengde = tunnelGdf[~tunnelGdf['Lengde, offisiell'].isnull()] # Først få tak i tunnelløp sok = nvdbapiv3.nvdbFagdata(67) sok.filter(mittfilter) tLopGdf = nvdbgeotricks.records2gdf(sok.to_records()) tLopGdf.to_file('tunneldebug.gpkg', layer='tunnelpunkt_u_4m', driver='GPKG') # Lager en buffer rundt tunnel (punktobjekt) og gjør geografisk join
import STARTHER import lastnedvegnett import skrivdataframe import nvdbapiv3 import nvdbgeotricks t0 = datetime.now() mittfilter = lastnedvegnett.kostraFagdataFilter() mittfilter['egenskap'] = '1216=3615' mittfilter['overlapp'] = '540(4623>=5000)' sok = nvdbapiv3.nvdbFagdata(241) sok.filter(mittfilter) myGdf = nvdbgeotricks.records2gdf(sok.to_records()) myGdf.to_file('debug_grus.gpkg', layer='grus aadt over 5000', driver='GPKG') # Debugger, henter det inverse søket. filter2 = lastnedvegnett.kostraFagdataFilter(mittfilter={}) filter2['overlapp'] = '241(1216=3615)' filter2['egenskap'] = '4623>=5000' sok = nvdbapiv3.nvdbFagdata(540) sok.filter(filter2) aadt_Gdf = nvdbgeotricks.records2gdf(sok.to_records()) aadt_Gdf.to_file('debug_grus.gpkg', layer='AADT over 5000 grus', driver='GPKG') # Debugger, sjekker lengde per vegnummer lengde = myGdf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
import pandas as pd import numpy as np import STARTHER import lastnedvegnett import skrivdataframe import nvdbapiv3 import nvdbgeotricks t0 = datetime.now() mittfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={ 'egenskap' : '5277 < 4 AND 5270=8151' } ) # mittfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={ 'egenskap' : ' 5277 < 4 AND ( 5270=8168 OR 5270=8149 ) ', 'overlapp' : '60(1263=7304)'} ) # mittfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={ 'overlapp' : '591(5277 < 4 AND ( 5270=8168 OR 5270=8149 ) ) ', 'egenskap' : '1263=7304'} ) sok = nvdbapiv3.nvdbFagdata( 591 ) sok.filter( mittfilter ) myGdf = nvdbgeotricks.records2gdf( sok.to_records( ) ) # myGdf.to_file( 'brudebug.gpkg', layer='nyeHoydeBegrBruer', driver='GPKG') # Debugger hvilken effekt overlapp med bru evt måtte ha... filter2 = deepcopy( mittfilter ) filter2['overlapp'] = '60' sok = nvdbapiv3.nvdbFagdata( 591 ) sok.filter( filter2 ) testGdf = nvdbgeotricks.records2gdf( sok.to_records()) telling = myGdf.groupby( ['fylke' ]).agg( { 'nvdbId': 'nunique' } ).astype(int).reset_index() telling.rename( columns={ 'nvdbId' : 'Antall', 'lengde' : 'Lengde (m)' }, inplace=True )