import geopandas as gpd import pandas as pd import numpy as np 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()
import geopandas as gpd import pandas as pd import numpy as np import STARTHER 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)
from datetime import datetime import geopandas as gpd import pandas as pd import numpy as np from copy import deepcopy 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)
import pandas as pd import numpy as np 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', 'overlapp': overlappfilter }) 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'
from copy import deepcopy import geopandas as gpd 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={ 'overlapp': '591(5277 < 4 AND (5270=8168 OR 5270=8149))', 'egenskap': '1263=7304' }) # 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(60) sok.filter(mittfilter) bruGdf = nvdbgeotricks.records2gdf(sok.to_records()) bruGdf.to_file('brudebug.gpkg', layer='nyeHoydeBegrBruer', driver='GPKG') # 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']
from datetime import datetime from copy import deepcopy import geopandas as gpd import pandas as pd import numpy as np import STARTHER import lastnedvegnett import skrivdataframe import nvdbapiv3 t0 = datetime.now() sterkfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={'egenskap': '9500=13384'}) vegmerksok = nvdbapiv3.nvdbFagdata(836) vegmerksok.filter(sterkfilter) vegmerk = pd.DataFrame(vegmerksok.to_records()) vegmerklendge = vegmerk.groupby(['fylke']).agg({ 'nvdbId': 'nunique', 'segmentlengde': 'sum' }).reset_index() vegmerklendge.rename(columns={ 'nvdbId': 'Antall', 'segmentlengde': 'Lengde (m)' }, inplace=True) skrivdataframe.skrivdf2xlsx( vegmerklendge, '../../output/Kostra 23 - Fylkesveg med forsterket midtoppmerking.xlsx',
from datetime import datetime from copy import deepcopy import geopandas as gpd 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())
from datetime import datetime from copy import deepcopy import geopandas as gpd import pandas as pd import numpy as np import STARTHER import lastnedvegnett import skrivdataframe import nvdbapiv3 t0 = datetime.now() skjermfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={ 'egenskap' : '1247=1994'} ) skjermsok = nvdbapiv3.nvdbFagdata( 3 ) skjermsok.filter( skjermfilter ) skjerm = pd.DataFrame( skjermsok.to_records( ) ) skjermlengde = skjerm.groupby( ['fylke' ]).agg( { 'nvdbId': 'nunique', 'segmentlengde' : 'sum' } ).reset_index() skjermlengde.rename( columns={ 'nvdbId' : 'Antall', 'segmentlengde' : 'Lengde (m)' }, inplace=True ) vollfilter = lastnedvegnett.kostraFagdataFilter( mittfilter={ 'egenskap' : '1286=1996'} ) vollsok = nvdbapiv3.nvdbFagdata( 234 ) vollsok.filter( vollfilter ) voll = pd.DataFrame( vollsok.to_records( ) ) volllengde = voll.groupby( ['fylke' ]).agg( { 'nvdbId': 'nunique', 'segmentlengde' : 'sum' } ).reset_index() volllengde.rename( columns={ 'nvdbId' : 'Antall', 'segmentlengde' : 'Lengde (m)' }, inplace=True ) # lengde['Veg'] = 'FV' + lengde['nummer'].astype(str) # lengde['Lengde (m)'] = lengde['segmentlengde'] # lengde = lengde[[ 'fylke', 'Veg', 'Lengde (m)']]