This repository has been archived by the owner on Jun 22, 2019. It is now read-only.
forked from haugsand/VegdataLabs
/
tunneler_med_utildekket_peskum.py
96 lines (84 loc) · 3.41 KB
/
tunneler_med_utildekket_peskum.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# -*- coding: utf-8 -*-
import logging
from nvdb import query
from nvdb import query_search
from nvdb import csv_skriv
from nvdb import Objekt
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
requests_log = logging.getLogger("requests")
requests_log.setLevel(logging.WARNING)
objekttyper = [{'id': 581, 'antall': 10000}]
lokasjon = {'fylke': [17]}
tunneler = query_search(objekttyper, lokasjon)
csv_list = []
tunnel_nr = 0
for tunnel in tunneler.objekter():
tunnel_nr += 1
logger.info('Bearbeider tunnel %s av %s' % (tunnel_nr, tunneler.antall))
tunnel = Objekt(tunnel)
row = {
'lengde': 0,
'pe_skum': None,
'pe_skum_lengde': 0,
'pe_skum_reg_lengde': 0,
'pe_skum_reg_areal': 0
}
try:
tunnel.assosiasjoner(67)
except KeyError:
logger.warning('Tunnel (# %s) har ingen tunnelløp' % tunnel.id)
else:
for i in tunnel.assosiasjoner(67):
try:
tunnellop = Objekt(query(i['relasjon']['uri']))
except Exception, e:
logger.error('Tunnel (# %s) har referanse til tunnelløp som '
'ikke er tilgjengelig: %s' % (tunnel.id, e))
else:
row['lengde'] += tunnellop.lengde()
try:
tunnellop.assosiasjoner(70)
except KeyError:
pass
else:
for j in tunnellop.assosiasjoner(70):
try:
frostsikring = Objekt(query(j['relasjon']['uri']))
except Exception, e:
logger.error('Tunnelløp (# %s) har referanse til et objekt '
'som ikke er tilgjengelig: %s' % (tunnel.id, e))
else:
try:
frostsikring.egenskaper()
except KeyError:
logger.warning('Vann- og frostsikring (# %s) '
'har ingen egenskaper' % frostsikring.id)
else:
if frostsikring.egenskap(1132, enum=12281):
row['pe_skum'] = 'Ja'
row['pe_skum_lengde'] += frostsikring.lengde()
row['pe_skum_reg_lengde'] += float(frostsikring.egenskap(7543, verdi=0))
row['pe_skum_reg_areal'] += int(frostsikring.egenskap(9307, verdi=0))
logger.debug(row)
try:
tunnelnavn = tunnel.egenskap(5225)
except KeyError, e:
logger.warning('Tunnel (# %s) har ingen egenskaper' % tunnel.id)
tunnelnavn = None
fylke = tunnel.lokasjon('fylke')
kommune = tunnel.lokasjon('kommune')
# Legger til en rad per tunnel
csv_row = [
tunnelnavn, fylke, kommune, int(row['lengde']), row['pe_skum'],
int(row['pe_skum_lengde']), float(row['pe_skum_reg_lengde']),
int(row['pe_skum_reg_areal'])
]
csv_list.append(csv_row)
csv_header = [
'Tunnelnavn', 'Fylke', 'Kommune', 'Total lengde', 'Utildekket PE-skum',
'Lengde med PE-skum', 'Registrert lengde',
'Registrert areal'
]
csv_list.insert(0, csv_header)
csv_skriv('tunneler_med_utildekket_peskum.csv', csv_list)