Ejemplo n.º 1
0
from datetime import datetime 

import geopandas as gpd 

import STARTHER
import lastnedvegnett  
import skrivdataframe
import nvdbgeotricks

t0 = datetime.now()

mittfilter = lastnedvegnett.filtersjekk(  )
mittfilter['vegsystemreferanse'] = 'Fv'
# mittfilter.pop( 'kryssystem', None )
mittfilter.pop( 'sideanlegg', None )

myGdf = nvdbgeotricks.firefeltrapport( mittfilter=mittfilter, felttype='K' )
myGdf['Lengde kollektivfelt'] = myGdf['kollektivfelt_antsider'] * myGdf['lengde']
statistikk = myGdf.groupby( ['fylke'] ).agg( { 'lengde' : 'sum', 'Lengde kollektivfelt' : 'sum' } ).astype(int).reset_index()
statistikk.rename(  columns={ 'lengde' : 'Lengde en retning (m)',  'Lengde kollektivfelt' : 'Lengde per kollektivfelt (m)'  }, inplace=True  )
skrivdataframe.skrivdf2xlsx( statistikk, 'Kostra 25 - Fylkesveg med kollektivfelt.xlsx', sheet_name=, metadata=mittfilter)


# myGdf.to_file( 'kostraleveranser.gpkg', layer='kollektivfelt', driver='GPKG')
# myGdf  = gpd.read_file( 'kostraleveranser.gpkg', layer='kollektivfelt')

skrivdataframe.skrivdf2xlsx( statistikk, '../../output/Kostra 25 - Fylkesveg med kollektivfelt.xlsx', sheet_name='Fylkesveg med kollektivfelt', metadata=mittfilter)


tidsbruk = datetime.now() - t0 
t0 = datetime.now()

mittfilter = lastnedvegnett.filtersjekk()
mittfilter['vegsystemreferanse'] = 'Fv'
junk = mittfilter.pop('historisk', None)

# myGdf = lastnedvegnett.vegnetthelelandet( mittfilter=mittfilter )
# myGdf.to_file( 'vegnetthelelandet.gpkg', layer='norge', driver='GPKG')
# myGdf  = gpd.read_file( 'vegnetthelelandet.gpkg', layer='norge')
# lastnedvegnett.rapport01_gdf2excel( myGdf, filnavn='../kostraleveranse2020/Kostra 01 - Vegnett hele landet.xlsx', metadata=mittfilter)

sok = nvdbapiv3.nvdbFagdata(595)
sok.filter(mittfilter)
data = sok.to_records()
mydf = pd.DataFrame(data)

lengde = mydf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

skrivdataframe.skrivdf2xlsx(
    lengde,
    'Kostra 02 - Fylkesveg med motorveg og motortrafikkveg.xlsx',
    sheet_name='Fv med motor(trafikk)veg',
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
Ejemplo n.º 3
0
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'
}).reset_index()
telling.rename(columns={
    'nvdbId': 'Antall',
    'lengde': 'Lengde (m)'
},
               inplace=True)

skrivdataframe.skrivdf2xlsx(telling,
                            '../../output/Kostra 18 - Bruer under 10t.xlsx',
                            sheet_name='Bru aksellast under 10t',
                            metadata=mittfilter)

tidsbruk = datetime.now() - t0
Ejemplo n.º 4
0
def rapport01_gdf2excel(mygdf,
                        filnavn='vegnettkostra.xlsx',
                        sheet_prefiks='',
                        metadata=None):
    """
    Lager excel-oppsummering av lengde vegnett per fylke, kommune og vegkategori
    """

    # Konverterer lengde til km
    mygdf = deepcopy(mygdf)
    mygdf['lengde'] = mygdf['lengde'] / 1000

    # Finner kryssystem
    mygdf['kryss'] = mygdf['vegsystemreferanse'].apply(
        lambda x: harViKryssSystem(x))
    kryss = mygdf[mygdf['kryss']]

    # t1 = mygdf.groupby( [ 'fylke' ]).agg({ 'lengde' : 'sum' }).reset_index()
    t2 = mygdf.groupby(['fylke', 'vegkategori']).agg({
        'lengde': 'sum'
    }).reset_index()
    t2x = kryss.groupby(['fylke', 'vegkategori']).agg({
        'lengde': 'sum'
    }).reset_index()
    t3 = mygdf.groupby(['fylke', 'kommune']).agg({
        'lengde': 'sum'
    }).reset_index()
    t4 = mygdf.groupby(['fylke', 'kommune', 'vegkategori']).agg({
        'lengde': 'sum'
    }).reset_index()

    t2 = skrivdataframe.fylkesnr2fylkesnavn(t2)
    t2_transponert = skrivdataframe.transponerFylkePerVegkategori(t2)
    t2_transponert['Riksveg (E+R)'] = t2_transponert['E'] + t2_transponert['R']
    t2_transponert = t2_transponert[[
        'fylke', 'Riksveg (E+R)', 'E', 'R', 'F', 'K', 'P', 'S'
    ]]

    t2x = skrivdataframe.fylkesnr2fylkesnavn(t2x)
    t2x_transponert = skrivdataframe.transponerFylkePerVegkategori(t2x)
    t2x_transponert[
        'Riksveg (E+R)'] = t2x_transponert['E'] + t2x_transponert['R']
    t2x_transponert = t2x_transponert[[
        'fylke', 'Riksveg (E+R)', 'E', 'R', 'F', 'K', 'P'
    ]]

    t4_transponert = skrivdataframe.transponerKommunePerVegkategori(t4)

    # # Skal ha med formattering fra xlsxwriter, men ikke tilgjengelig akkurat nu...
    # t2.to_excel( filnavn, sheet_name=sheet_prefiks + 'Fylke per vegkategori' )
    # t3.to_excel( filnavn, sheet_name=sheet_prefiks +'per kommune')
    # t4.to_excel( filnavn, sheet_name=' per kommune og vegkategori')

    navneliste = [
        sheet_prefiks + 'Tabell fylker',  # t2_transponert
        sheet_prefiks + 'Lengde kryssystem',  # t2x_transponert
        sheet_prefiks + 'Tabell kommuner',  # t4_transponert
        sheet_prefiks + 'radvis per fylke og vegkat',  # t2
        sheet_prefiks + 'radvis per kommune',  # t3 
        sheet_prefiks + 'radvis per kommune og vegkat'
    ]  # t4

    skrivdataframe.skrivdf2xlsx(
        [t2_transponert, t2x_transponert, t4_transponert, t2, t3, t4],
        filnavn=filnavn,
        sheet_name=navneliste,
        metadata=metadata)
mittfilter['adskiltelop'] = 'med,nei'
mittfilter['sideanlegg'] = 'false'

sok = nvdbapiv3.nvdbFagdata(904)
sok.filter(mittfilter)
myGdf = nvdbgeotricks.records2gdf(sok.to_records())

myGdf_G = myGdf[myGdf['trafikantgruppe'] == 'G'].copy()
myGdf = myGdf[myGdf['trafikantgruppe'] == 'K']

# For debugging
lengde = myGdf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
telling.rename(columns={'segmentlengde': 'Lengde (m)'}, inplace=True)

skrivdataframe.skrivdf2xlsx(
    telling,
    '../../output/Kostra 06 - Fylkesveg totalvekt u 50t.xlsx',
    sheet_name='Fv totalvekt u 50t',
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
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({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby(['fylke']).agg({'segmentlengde': 'sum'}).reset_index()
telling.rename(columns={'segmentlengde': 'Lengde (m)'}, inplace=True)

skrivdataframe.skrivdf2xlsx(
    telling,
    '../../output/Kostra 11 - Fylkesveg uten fast dekke ÅDT over 5000.xlsx',
    sheet_name='Fv grus over 5000ÅDT',
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
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)']]

mittfilter = deepcopy( skjermfilter )
egfilter_skjerm = mittfilter.pop( 'egenskap' )
mittfilter['egenskapsfilter 3 Skjerm'] = egfilter_skjerm
mittfilter['egenskapsfilter 234 Voll'] = vollfilter['egenskap']


skrivdataframe.skrivdf2xlsx( [ skjermlengde, volllengde ], '../../output/Kostra 24 - Fylkesveg med stoyskjerm og voll.xlsx', sheet_name=['Fylkesveg med støyskjerm', 'Fylkesveg med voll' ], metadata=mittfilter)

tidsbruk = datetime.now() - t0 
sok = nvdbapiv3.nvdbFagdata(241)
sok.filter(mittfilter)
data = sok.to_records()
mydf = pd.DataFrame(data)

mydf_K = mydf[mydf['trafikantgruppe'] == 'K']
mydf_G = mydf[mydf['trafikantgruppe'] == 'G']

# Debugger, sjekker lengde per vegnummer
# lengde = mydf.groupby( ['fylke', 'vegkategori', 'nummer' ]).agg( {'segmentlengde' : 'sum' } ).reset_index()
# lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
# lengde['Lengde (m)'] = lengde['segmentlengde']
# lengde = lengde[[ 'fylke', 'Veg', 'Lengde (m)']]

tellingK = mydf_K.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
tellingG = mydf_G.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
tellingK.rename(columns={'segmentlengde': 'Lengde kjøreveg (m)'}, inplace=True)
tellingG.rename(columns={'segmentlengde': 'Lengde gang/sykkelveg (m)'},
                inplace=True)

skrivdataframe.skrivdf2xlsx(
    [tellingK, tellingG],
    '../../output/Kostra 03 - Fylkesveg uten fast dekke.xlsx',
    sheet_name=['Fv grus kjørende', 'Fv grus G S'],
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
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',
    sheet_name='FV med forsterket vegmerking',
    metadata=sterkfilter)

tidsbruk = datetime.now() - t0
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 )


skrivdataframe.skrivdf2xlsx( telling, '../../output/Kostra 09 - Undergang lavere enn 4m.xlsx', sheet_name='Undergang lavere enn 4m', metadata=mittfilter)

tidsbruk = datetime.now() - t0 
Ejemplo n.º 11
0
sok = nvdbapiv3.nvdbFagdata( 904 )
sok.filter( mittfilter )
myGdf = nvdbgeotricks.records2gdf( sok.to_records( ) ) 

myGdf_G = myGdf[ myGdf['trafikantgruppe'] == 'G'].copy()
myGdf = myGdf[ myGdf['trafikantgruppe'] == 'K']


lengde = myGdf.groupby( ['fylke', 'vegkategori', 'nummer' ]).agg( {'segmentlengde' : 'sum' } ).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[[ 'fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby( ['fylke' ]).agg( { 'segmentlengde' : 'sum'} ).astype(int).reset_index()  
telling.rename( columns={ 'segmentlengde' : 'Lengde (m)' }, inplace=True)


# Henter et kontrolldatasett uten "adskilte løp"
# filter2 = { 'tidspunkt' : '2020-12-31', 'vegsystemreferanse': 'Fv', 'egenskap' : egenskapfilter  }
# filter2.pop( 'adskiltelop', None  )
# filter2.pop( 'sideanlegg', None  )
# sok2 = nvdbapiv3.nvdbFagdata( 904 )
# sok2.filter( filter2 )
# mydf2 = pd.DataFrame( sok2.to_records( ) )

# print( "Lengdedifferanse MED og UTEN filter for adskilte løp:\t", myGdf['segmentlengde'].sum()- mydf2['segmentlengde'].sum())

skrivdataframe.skrivdf2xlsx( telling, '../../output/Kostra 05 - Fylkesveg aksellast u 10t.xlsx', sheet_name='Fv aksellast u 10t', metadata=mittfilter)

tidsbruk = datetime.now() - t0 
    'segmentlengde':
    'sum'
}).astype(int).reset_index()
lengde['Veg'] = lengde['vegkategori'] + 'v' + lengde['nummer'].astype(str)
nyttnavn = 'Lengde midtrekkverk totalt per vegnummer (m)'
lengde.rename(columns={'segmentlengde': nyttnavn}, inplace=True)
lengde = lengde[['fylke', 'Veg', 'kjfelt', nyttnavn]]

telling = myGdf.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
telling.rename(columns={'segmentlengde': 'Lengde midtrekkverk totalt (m)'},
               inplace=True)

kun23felt = myGdf[myGdf['kjfelt'] == '2-3felt']
telling2 = kun23felt.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
telling2.rename(columns={'segmentlengde': 'Lengde midtrekkverk 2-3felt (m)'},
                inplace=True)

skrivdataframe.skrivdf2xlsx(
    [telling2, telling, lengde],
    '../../output/Kostra 20 - Midtrekkverk to og trefelts Fv.xlsx',
    sheet_name=[
        'Midtrekkverk 2-3felt', 'Alle midtrekkverk',
        'Midtrekkverk per vegnummer'
    ],
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
mittfilter['adskiltelop'] = 'med,nei'
mittfilter['sideanlegg'] = 'false'

sok = nvdbapiv3.nvdbFagdata(105)
sok.filter(mittfilter)
myGdf = nvdbgeotricks.records2gdf(sok.to_records())

myGdf_G = myGdf[myGdf['trafikantgruppe'] == 'G'].copy()
myGdf = myGdf[myGdf['trafikantgruppe'] == 'K']

# For debugging
lengde = myGdf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
telling.rename(columns={'segmentlengde': 'Lengde (m)'}, inplace=True)

skrivdataframe.skrivdf2xlsx(
    telling,
    '../../output/Kostra 07 - Fylkesveg maks 50kmt.xlsx',
    sheet_name='Fv 50km eller lavere',
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
import nvdbapiv3
import nvdbgeotricks

t0 = datetime.now()

filter2 = lastnedvegnett.kostraFagdataFilter(mittfilter={})
filter2['egenskap'] = '4623>=5000'

sok = nvdbapiv3.nvdbFagdata(540)
sok.filter(filter2)
myGdf = nvdbgeotricks.records2gdf(sok.to_records())
myGdf.to_file('debug_grus.gpkg', layer='AADT alt over 5000', driver='GPKG')

# Debugger, sjekker lengde per vegnummer
lengde = myGdf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby(['fylke']).agg({'segmentlengde': 'sum'}).reset_index()

skrivdataframe.skrivdf2xlsx(
    telling,
    '../../output/Kostra 12 - Fylkesveg ÅDT over 5000.xlsx',
    sheet_name='Fv over 5000ÅDT',
    metadata=filter2)

tidsbruk = datetime.now() - t0
Ejemplo n.º 15
0
mittfilter['egenskap'] = egenskapfilter
mittfilter['adskiltelop'] = 'med,nei'
mittfilter['sideanlegg'] = 'false'

sok = nvdbapiv3.nvdbFagdata(904)
sok.filter(mittfilter)
myGdf = nvdbgeotricks.records2gdf(sok.to_records())

myGdf_G = myGdf[myGdf['trafikantgruppe'] == 'G'].copy()
myGdf = myGdf[myGdf['trafikantgruppe'] == 'K']

# For debugging
lengde = myGdf.groupby(['fylke', 'vegkategori', 'nummer']).agg({
    'segmentlengde':
    'sum'
}).reset_index()
lengde['Veg'] = 'FV' + lengde['nummer'].astype(str)
lengde['Lengde (m)'] = lengde['segmentlengde']
lengde = lengde[['fylke', 'Veg', 'Lengde (m)']]

telling = myGdf.groupby(['fylke']).agg({
    'segmentlengde': 'sum'
}).astype(int).reset_index()
telling.rename(columns={'segmentlengde': 'Lengde (m)'}, inplace=True)

skrivdataframe.skrivdf2xlsx(telling,
                            '../../output/Kostra 08 - maks lengde u 19m.xlsx',
                            sheet_name='Fv lengde u 19,5m',
                            metadata=mittfilter)

tidsbruk = datetime.now() - t0
Ejemplo n.º 16
0
# 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']
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)'
},
               inplace=True)

skrivdataframe.skrivdf2xlsx(
    telling,
    '../../output/Kostra 19 - Bruer hoyde mindre enn 4m.xlsx',
    sheet_name='Bru høydebegrensning under 4m',
    metadata=mittfilter)

tidsbruk = datetime.now() - t0
    'typeVeg_left': 'typeVeg',
    'kommune_left': 'kommune',
    'fylke_left': 'fylke',
    'vref_left': 'vref',
    'vegkategori_left': 'vegkategori',
    'fase_left': 'fase',
    'nummer_left': 'nummer',
    'adskilte_lop_left': 'adskilte_lop',
    'trafikantgruppe_left': 'trafikantgruppe'
}

geojoin.rename(columns=oversett, inplace=True)

tunnelGdfV2 = pd.concat([harLengde, geojoin[col]])

telling = tunnelGdfV2.groupby(['fylke']).agg({
    'nvdbId': 'nunique',
    'Lengde, offisiell': 'sum'
}).reset_index()
telling.rename(columns={
    'nvdbId': 'Antall',
    'Lengde, offisiell': 'Lengde (m)'
},
               inplace=True)

skrivdataframe.skrivdf2xlsx(telling,
                            '../../output/Kostra 16 - tunnell u 4m.xlsx',
                            sheet_name='Tunnel u 4m',
                            metadata=mittfilter)

tidsbruk = datetime.now() - t0
Ejemplo n.º 18
0
import geopandas as gpd 

import STARTHER
import lastnedvegnett  
import skrivdataframe
import nvdbgeotricks
import nvdbapiv3

t0 = datetime.now()

mittfilter = { 'tidspunkt'              : '2020-12-31', 
                'trafikantgruppe'       : 'G', 
                'detaljniva'            : 'VT,VTKB',
                'adskiltelop'           : 'med,nei',
                'historisk'             : 'true', 
                'vegsystemreferanse'    : 'Fv',
                'veglenketype'          : 'hoved', 
                'typeveg'               : 'kanalisertVeg,enkelBilveg,rampe,rundkjøring,gangOgSykkelveg,sykkelveg,gangveg,gatetun'
                }

myGdf = nvdbgeotricks.vegnett2gdf( mittfilter=mittfilter )

statistikk = myGdf.groupby( ['fylke'] ).agg( { 'lengde' : 'sum' } ).reset_index()

skrivdataframe.skrivdf2xlsx( statistikk, 'Kostra 21 gang og sykkelveg.xlsx', 
    sheet_name='Fylkesveg gang og sykkelveg', metadata=mittfilter)


myGdf.to_file( 'sykkelveg.gpkg', layer='gangsykkelveg', driver='GPKG')

tidsbruk = datetime.now() - t0 
# 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)'
},
               inplace=True)

skrivdataframe.skrivdf2xlsx(telling,
                            '../../output/Kostra 17 - Bruer fylkesveg.xlsx',
                            sheet_name='Bruer fylkesveg',
                            metadata=mittfilter)

tidsbruk = datetime.now() - t0
Ejemplo n.º 20
0
                'vref_left' : 'vref',
                'vegkategori_left' : 'vegkategori',
                'fase_left' : 'fase',
                'nummer_left' : 'nummer',
                'adskilte_lop_left' : 'adskilte_lop',
                'trafikantgruppe_left' : 'trafikantgruppe', 
                'Prosjektreferanse_left' : 'Prosjektreferanse', 
                'Brutus_Id_left' :   'Brutus_Id',
                'sluttdato_left' :  'sluttdato'
                }

lop_manglerLengde.rename( columns=oversett, inplace=True )
lop_harLengde.rename( columns=oversett, inplace=True )

tunnelGdfV2 = pd.concat( [ harLengde, lop_manglerLengde[col], lop_harLengde[col] ] )



telling = tunnelGdfV2.groupby( ['fylke' ]).agg( { 'nvdbId': 'nunique', 'Lengde, offisiell' : 'sum'} ).astype(int).reset_index()
telling.rename( columns={ 'nvdbId' : 'Antall', 'Lengde, offisiell' : 'Lengde (m)' }, inplace=True )

skrivdataframe.skrivdf2xlsx( telling, '../../output/Kostra 13 og 14 - tunnell fylkesveg.xlsx', sheet_name='Tunnel Fv', metadata=mittfilter)

langeTunneller = tunnelGdfV2[ tunnelGdfV2['Lengde, offisiell'] >= 500 ]
telling = langeTunneller.groupby( ['fylke' ]).agg( { 'nvdbId': 'nunique', 'Lengde, offisiell' : 'sum'} ).astype(int).reset_index()
telling.rename( columns={ 'nvdbId' : 'Antall', 'Lengde, offisiell' : 'Lengde (m)' }, inplace=True )

skrivdataframe.skrivdf2xlsx( telling, '../../output/Kostra 15 - tunnell lengre enn 500m.xlsx', sheet_name='Tunnel lengre enn 500m', metadata=mittfilter)


tidsbruk = datetime.now() - t0