Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer Jelle Genné
Promotor: prof. dr. ir. Dick Botteldooren Begeleiders: Luc Dekoninck, dr. ir. Bert De Coensel Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: toegepaste natuurkunde
Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Voorwoord Toen ik zocht naar onderwerpen voor mijn eindwerk, zocht ik naar iets dat dicht bij het alledaagse leven staat. Met dit onderwerp heb ik gevonden wat ik zocht. Verkeer en vervuiling zijn twee onderwerpen waar bijna elke inwoner van België dagelijks mee te maken heeft. Dit maakt het onderwerp dus zeer interessant en tastbaar. Ook het multidisciplinaire karakter van het onderwerp sprak me aan. Om te beginnen werden stoffen die schadelijk zijn voor de gezondheid behandeld. Daarnaast kwam ook een modelering van het verkeer aan bod. Tenslotte werden ook de processen in de atmosfeer die ervoor zorgen dat de polluenten zich verspreiden besproken. Dat laatste onderwerp was behoorlijk ingewikkeld, hier kwam turbulentie aan bod en over dit onderwerp is een citaat van Heisenberg me bijgebleven: "When I meet God, I am going to ask him two questions: Why relativity? And why turbulence? I really believe he will have an answer for the first." Het was zeer interessant om me in deze zaken te verdiepen en te weten dat ik een onderwerp behandelde waar zelfs een van de grootste geniën van vorige eeuw problemen mee had.
De auteur geeft de toelating deze masterproef voor consulatie beschikbaar te stellen en delen van de masterproef te kopiëren voor eigen gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. The author gives permission to make this master dissertation available for consultation and to copy parts of this master dissertation for personal use. In the case of any other use, the limitations of the copyright have to be respected, in particular with regard to the obligation to state expressly the source when quoting results from this master dissertation.
Jelle Genné – 16 augustus 2011 ii
Overzicht
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer Jelle Genné
Promotor: prof. dr. ir. Dick Botteldooren Begeleiders: Luc Dekoninck en dr. ir. Bert De Coensel
In dit eindwerk wordt de verspreiding van enkele polluenten in een deel van Gentbrugge gemodelleerd om zo de blootstelling aan de polluenten te voorspellen. De polluenten die beschouwd worden zijn fijn stof, stikstofoxides en geluid. Elk van deze polluenten kan een negatieve invloed hebben op de gezondheid. Er wordt vertrokken van een microsimulatie van het verkeer in Gentbrugge om alzo de emissiedata in het gebied te voorspellen. Vervolgens wordt een model opgesteld om de verspreiding van fijn stof en stikstofoxides te modelleren. Dit model wordt gebruikt om kaarten te maken met de gemiddelde vervuiling in het projectgebied. Daarnaast worden er ook blootstellingsgrafieken voor individuele voertuigen opgesteld aan de hand van het model. Voor geluid wordt een ander model gebruikt en aan de hand van dit model worden geluidskaarten gemaakt voor het projectgebied.
Sleutelwoorden: Blootstelling, PM10, NOx, geluid, verkeersimulatie.
iii
Extended Abstract
Spatial simulation of personal exposure to pollutants in traffic Jelle Genné Abstract – In this thesis a model to predict concentrations of PM 10 and NOx in Gentbrugge is created. With this model average pollution maps and exposure diagrams can be made that estimate the actual pollution and exposure in Gentbrugge. Another model [1] is used to estimate the noise levels in Gentbrugge, noise maps are made that predict average sound levels in the project area. The emission data used in the models is obtained from a microsimulation in Paramics. The models predict strongly varying pollution levels over the area. The dispersion model for PM 10 and NOx also predicts a strong fluctuation of the concentrations in time. Keywords – Exposure, PM10, NOx, Noise, traffic simulation.
the models. Firstly the microsimulation software Paramics is described, then the origins and adverse health effects of the pollutants are discussed and finally the processes that disperse the pollutants in the atmosphere are introduced. A. Microsimulation The data for the emissions of the vehicles that are used in the dispersion models, are gathered from a microsimulation of the traffic in Gentbrugge. Microsimulation is a technique that models individual object such as cars and companies [2]. These objects obey several rules and every time step their state is updated. In this way, large systems can be simulated and a general view can be maintained. The microsimulation software that will be used here is Paramics. In Paramics driver-unit-vehicles (DVU) are modelled, these are units that can represent cars. The DVU’s move on links between nodes, with links representing streets and nodes representing dead ends, intersections or changes. For the movements of DVU’s three models are used [3]: the car-following model, the lane-changing model and the intersection model. These models aim to simulate traffic as realistically as possible.
I. INTRODUCTION
Every day inhabitants of cities get exposed to the harmful gasses of exhausts of vehicles while commuting. These gasses contain pollutants that can damage health, including particulate matter and nitrogen oxides. Beside to these gasses, people in cities also get exposed to traffic noise. This noise can also be seen as a pollutant since studies revealed that high noise levels can harm health too. Since these pollutants have an adverse effect on health, it can be useful to measure or model their dispersion in order to assess exposure to these pollutants. In this thesis their dispersion will be modelled. A model for the dispersion of particulate matter with a diameter smaller than 10µm (PM10) and nitrogen oxides (NOx) will be created in this thesis. This model allows to create average pollution maps of an area in Gentbrugge and to estimate exposure to pollutants for commuters in the area. Another model [1] to estimate the propagation of sound, will be used in order to estimate sound levels in Gentbrugge and make noise maps.
B. Pollutants The three pollutants considered here are PM10, NOx and noise. PM10 can be natural or anthropogenic. Natural forms of PM10 are for example small dust particles, pollen or ash particles [4]. The sources considered in this thesis are vehicle exhausts. In cities the amount of PM10 produced by exhausts, can exceed natural forms of PM10 [4]. Fine dust can have adverse health effects, it can for example lead to myocardial infarction [5]. NOx includes both NO and NO2. It is produced in a natural way by for example lightning and it is also produced in car exhausts. NO2 can lead to respiratory problems and cardiovascular diseases [6]. Sound can also be seen as a pollutant. It is produced in cars by their engines and by their aerodynamics. According to a WHO study [7] high
II. BACKGROUND In this chapter some background concepts will be given that are important for the implementation of
iv
Extended abstract
v
environmental sound levels can lead to cardiovascular diseases, cognitive impairments, sleeping disorders and annoyance. C. Atmospheric boundary layer To get a clearer view on the dispersion of PM10 and NOx, the atmospheric boundary layer has to be studied. This layer is the bottom 500m to 3000m part of the troposphere and is influenced by both the ground and the upper troposphere [4]. An important characteristic of the boundary layer is its stability. Air does not rise in a stable atmosphere, which means that pollution remains close to the ground under stable conditions. Another important characteristic is wind, wind transports pollution over large areas. Thus the more wind, the more pollution drifts away from its source [4]. The formula that describes the dispersion of a pollutant in the atmosphere is [4]:
N vN D 2 N Rn t n
(1)
and the dispersion in a link is described by: N 2 uN lv 2 N Rn t x z n
(2)
In these formulas N represents the concentration of the pollutant in kg∙m-3, v is the wind speed in m∙s-1, u and v are components of the wind speed, D is the molecular diffusion coefficient in m2∙s-1, which can be neglected, l is a characteristic mixing length [8] in m and Rn are external processes that influence the pollutant concentration in km∙m-3∙s-1, these processes include the generation of the considered pollutant in exhausts. Formula (1) and (2) are the formulas that will be used to create the dispersion model for PM10 and NOx. III. COMPOSITION OF THE MODEL In order to use the model, first some emission data have to be obtained, those data will be extracted from a network in Paramics. These data can be used in the dispersion model for PM10 and NOx on the one hand and for the propagation model for noise [1] on the other hand. Those two models and the network in Paramics will be discussed in this chapter. A. The network in Paramics The area modelled in Paramics is a part of Gentbrugge. This area is implemented as a network with 451 nodes and 567 links. The network is made as realistically as possible, satellite images and a grid provided by the city of Ghent are used, and the
Jelle Genné
right speed limits and priority rules are implemented in the network. A total of approximately 47900 DVU’s are simulated in the Paramics simulation. Those DVU’s have origins and destinations that resemble real trips taken by inhabitants of Ghent. From these simulation the emission data for PM10, NOx and noise are saved in separate files that are used in the dispersion models. B. Dispersion model for PM10 and NO Formula (1) and (2) are used to create the dispersion model. The formulas are discretised in order to use them in a grid with finite dimensions for each grid element, dx, dy and dz. Also the time step is discretised. In this way, each time step, the concentrations in each element are adjusted. Separate equations are found to update the concentrations for atmosphere elements and link elements, also for link elements next to nodes an adaptation for the equations is made. To implement the model, the atmosphere is added over the network. Each atmosphere element has dimensions of 68m×76m×10m. The dimensions of the link elements vary from link to link, dx for example is always taken one fifth of the link length. C. Propagation model for noise To estimate noise levels in Gentbrugge, a model [1] that was already available at the department was used. This model uses beam tracing to simulate the propagation of noise. IV. RESULTS With the dispersion model for PM10 and NOx, pollution maps, that give the average concentration over four hours, can be made. It can be seen in these maps that the concentration of pollutants in the atmosphere is three orders of magnitude smaller than the concentration in the links. This means the effect of the atmosphere on local pollution might be small. It also means that the stability of the atmosphere has no profound effect on the results. The wind has a significant effect on the concentrations of pollutants in the links. It can be seen that a higher wind speed means less pollution in the streets. Furthermore the model predicts that streets that run parallel with the wind speed are more polluted than streets perpendicular to the wind. This effect is not intuitive and might mean there is a problem with the model. Apart from these average pollution maps, exposure diagrams are created. The same effects as in the maps can be seen on these diagrams, but the overall pollution levels are higher. This means that,
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Extended abstract
vi
according to the model, exposure to pollutants is higher than predicted by average pollution maps. Another effect is that exposure to pollutants varies strongly in time and space. Four noise maps were created with the available model [1], one for the average noise levels for each hour between 6h and 10h. On these maps it can be seen that traffic noise is a rather local problem. On the big roads noise levels of 70 dB(A) and more are predicted, while at the smaller roads, noise levels rarely exceed 60dB(A). Outside the project area, noise levels rapidly fall to 30dB(A). REFERENCES [1] B. de Greve, T. De Muer, D. Botteldooren, “Outdoor beam tracing over undulating terrain,” Forum Acusticum 2005, Budapest, Hungary, 2005. [2] International Microsimulation Organisation: “What is Microsimulation?” International Microsimulation Association, [Online]. Available:
Jelle Genné
http://www.microsimulation.org/IMA/What%20is%20microsim ulation.htm. [Accessed: June 29, 2011]. [3] G. Duncan, “Paramics Technical report: Car-Following, Lane-changing and Junction modelling,” Quadstone Ltd, July 1998, [Online]. Available: http://www.paramics-online.com/paramicslibrary.php. [Accessed: June 28, 2011]. [4] M. Z. Jacobson, Fundamentals of atmospheric modelling, second edition, New York: Cambridge University Press, 2005. [5] A. Peters, S. von Klot, M. Heier, I. Trentinaglia, A. Hörmann, E. Wichmann en H. Löwel, “Exposure to traffic and the onset of myocardial infarction,” The New England journal of medicine, 351, 17, pp. 1721-1730, 21 October 2004. [6] A. Chaloulakou, I. Mavroidis, I. Gavriil, “Compliance with the annual NO2 air quality standards in Athens. Required NOx levels and expected health implications,” Atmospheric environment, 42, pp. 454-465, 2008. [7] WHO Regional Office for Europe, Burden of environmental disease from environmental noise: quantification of healthy life years lost in Europe. Copenhagen, Danmark: WHO Regional Office for Europe, 2011. [8] C. Mensink, A. Colles, L. Janssen en J. Cornelis, “Integrated air quality modelling for the assessment of air quality in streets against the council directives,” Atmospheric Environment, vol. 37, pp. 5177-5184, 25 juli 2003.
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Inhoudsopgave
Voorwoord ...................................................................................................................................... ii Overzicht ....................................................................................................................................... iii Extended Abstract.......................................................................................................................... iv Lijst van de gebruikte afkoringen en symbolen ............................................................................. ix 1.
Inleiding ................................................................................................................................ 1
2.
Achtergrond........................................................................................................................... 3 2.1. 2.1.1.
Inleiding tot microsimulaties ..................................................................................... 3
2.1.2.
Geschiedenis en werking van Paramics .................................................................... 5
2.2.
Fijn stof (PM10) ........................................................................................................ 12
2.2.2.
Stikstofoxides (NOx)................................................................................................ 13
2.2.3.
Geluidsvervuiling .................................................................................................... 14
5.
Beschrijving van de atmosferische grenslaag .............................................................. 15
De gebruikte modellen ........................................................................................................ 19 3.1.
Beschrijving Paramics-netwerk .................................................................................. 19
3.2.
Emissiedata .................................................................................................................. 24
3.3.
Dispersiemodel voor PM10 en NOx ............................................................................. 25
3.3.1.
Afleiding van het model .......................................................................................... 25
3.3.2.
Implementatie van het model................................................................................... 30
3.4. 4.
Beschrijving van de polluenten ................................................................................... 11
2.2.1.
2.3. 3.
Beschrijving van het microsimulatiemodel van Paramics ............................................ 3
Propagatiemodel geluid ............................................................................................... 34
Resultaten en implementatie van de verspreidingsmodellen .............................................. 35 4.1.
Fijn stof en stikstofoxides ............................................................................................ 35
4.2.
Geluid .......................................................................................................................... 48
Besluit ................................................................................................................................. 52 vii
Inhoudsopgave
viii
Bibliografie ................................................................................................................................... 54 A.
Appendix: Inputbestanden en broncode van het dispersiemodel ...................................... A-1
A.1.
De inputbestanden ..................................................................................................... A-1
A.2.
Broncode van het model ............................................................................................ A-4
A.2.1.
dispersionModel.py............................................................................................ A-4
A.2.2.
init.py ................................................................................................................. A-6
A.2.3.
node.py............................................................................................................... A-8
A.2.4.
link.py .............................................................................................................. A-10
A.2.5.
atmosphere.py .................................................................................................. A-11
A.2.6.
constants.py...................................................................................................... A-16
A.2.7.
vehicles.py ....................................................................................................... A-17
A.2.8.
Plot.py .............................................................................................................. A-18
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Lijst van de gebruikte afkoringen en symbolen CFM:
Auto-volgend model (Eng.: car-following model).
D:
Moleculaire diffusiecoëfficiënt in m2∙s-1.
DALY:
Door beperking aangetaste levensjaren (Eng.: disability-adjusted life years).
DVU:
Bestuurder-voertuig-element (Eng.: driver-vehicle-element).
EUR-A:
Andorra,
België,
Cyprus,
Denemarken,
Duitsland,
Finland,
Frankrijk,
Griekenland, Ierland, IJsland, Israël, Italië, Kroatië, Luxemburg, Malta, Monaco, Nederland, Noorwegen, Oostenrijk, Portugal, San Marino, Slovenië, Spanje, Tsjechië, het Verenigd Koninkrijk, Zweden en Zwitserland. GA:
Gewenste afstand in m.
J:
Concentratieflux van de polluenten in kg∙m-2.
Kh:
Maalstroomdiffusiecoëfficiëntenmatrix, diagonaalmatrix met als elementen Kh,xx, Kh,yy en Kh,zz in m2∙s-1.
l:
Karakteristieke menglengte in m.
LCM:
Baanvak veranderend model (Eng.: lane-changing model).
N:
Concentratie van een polluent in kg∙m-3.
NO:
Stikstofmonoxide.
NO2:
Stikstofdioxide.
NOx:
Verzamelnaam voor de stikstofoxides.
OD-matrix:
Oorsprong-bestemmingsmatrix (Eng.: origin-demand matrix)
PDN:
Negatieve perceptiedrempel voor een snelheidsverschil in m∙s-1.
PDP:
Positieve perceptiedrempel voor een snelheidsverschil in m∙s-1.
PM10:
Fijn stof (Eng.: particulate matter) met een diameter kleiner dan 10µm.
RA:
Riskante afstand in m.
Rn:
Externe processen die de concentraties der polluenten beïnvloeden in kg∙m-3∙s-1.
SA:
Remafstand in m.
t:
Tijd in s.
v:
Windsnelheid met als componenten u, v en w in m∙s-1.
VA:
Veilige afstand in m.
WHO:
Wereldgezondheidsorganisatie (World Health Organisation).
x, y, z:
Positieparameters
ix
1. Inleiding Inwoners van steden worden elke dag blootgesteld aan de uitlaatgassen van voertuigen tijdens hun deelname aan het verkeer, dit geldt zowel voor automobilisten als fietsers en voetgangers. Deze uitlaatgassen bevatten stoffen die schadelijk zijn voor de gezondheid, zoals fijn stof en stikstofoxides. Fijn stof en stikstofoxides kunnen onder andere leiden tot hart- en vaatziektes1,2,3 en ademhalingsproblemen4,5. Niet enkel de uitlaatgassen van wagens kunnen beschouwd worden als polluenten, maar ook het geluid geproduceerd in het verkeer kan gezien worden als vervuiling. Geluid tast net als fijn stof en stikstofoxides de gezondheid aan. De geluidsvervuiling kan leiden tot hartinfarcten, cognitieve stoornissen bij kinderen, slaapstoornissen en een hoge mate van ergernis6. Aangezien deze polluenten een negatieve invloed hebben op de gezondheid, kan het zeer zinvol zijn om de blootstelling aan deze polluenten te meten of te modelleren. Op de website van de Intergewestelijke Cel voor het Leefmilieu (IRCEL-CELINE) staan metingen voor de concentraties van verschillende polluenten in meetstations in België voor de voorbije 15 dagen7. Op de site worden echter enkel concentraties weergeven die opgemeten zijn op vaste plaatsen, lokale effecten kunnen dus niet afgeleid worden van deze metingen. In figuur 1 staan opgemeten concentraties black carbon in een gebied in Gent, de figuur is gemaakt binnen de vakgroep door Luc Dekoninck. Op de figuur is duidelijk te zien dat de concentratie sterk fluctueert van plaats tot plaats.
figuur 1 – Gemeten concentraties black carbon in ng∙m-3 in een deel van Gent. De data in deze figuur zijn afkomstig uit een onderzoek van Luc Dekoninck.
De concentraties van de polluenten op zo veel plaatsen meten is een zeer arbeidsintensieve taak, daarom worden vaak simulaties gebruikt om deze concentraties te voorspellen. Er bestaan verschillende soorten simulaties8, de twee eenvoudigste zijn de dichtheidsmodellen (Eng.: Proximity models) en de interpolatiemodellen. De dichtheidsmodellen stellen dat hoe dichter men 1
1. Inleiding
2
zich bij een vervuilingsbron bevindt, hoe meer last men er van ondervindt. Bij interpolatiemodellen wordt, door de concentratie van een polluent op verschillende plaatsen te meten, een schatting gemaakt van de concentraties op plaatsen tussenin de plaatsen waar de metingen zijn uitgevoerd. Zoals duidelijk blijk in figuur 1, zullen deze twee modellen geen correct beeld geven van de lokale vervuiling binnen een stad. In dit werk wordt de blootstelling aan drie verkeersgerelateerde polluenten in een deel van Gentbrugge bestudeerd. Zowel de concentraties van fijn stof met een diameter kleiner dan 10µm (PM10) en stikstofoxides (NOx), geproduceerd tijdens het verbrandingsproces in de motoren, als de geluidsniveaus, veroorzaakt door de motoren en de wielen van de wagens, worden geschat in het projectgebied. Om dit te doen wordt vertrokken van een microsimulatie in Paramics om de emissies van de voertuigen in Gentbrugge te schatten. De emissiedata van deze simulatie zullen vervolgens gebruikt worden in twee modellen om de verspreiding van de polluenten te bepalen. Voor PM10 en NOx zal een dispersiemodel gebaseerd op de continuïteitsvergelijkingen ontwikkeld worden om zo de concentraties te modelleren in functie van de tijd en de positie. Uit de gevonden data zullen kaarten gemaakt worden die de gemiddelde vervuiling in de straten weergeven. Aangezien er aanwijzingen zijn dat een korte hoge blootstelling aan een polluent erger is dan een lange lage blootstelling, met een zelfde gemiddelde blootstelling, zullen er ook blootstellingsdiagrammen voor individuele voertuigen gemaakt worden. Deze diagrammen geven de concentratie waarin een voertuig zich bevindt in functie van de plaats van het voertuig en de tijd. Ook zullen er blootstellingsdiagrammen geschat worden voor fietsers. Voor het geluid wordt er een propagatiemodel gebruikt dat al in de vakgroep voorhanden was10. Met dit model zullen geluidskaarten gemaakt worden die uurgemiddeldes weergeven. Aangezien het zeer lang duurt om met dit model een kaart te maken, zijn er maar vier kaarten gemaakt. Voor geluid zijn er dus geen kaarten gemaakt die de geluidsniveaus in functie van de tijd weergeven en zijn er ook geen blootstellingsdiagrammen gemaakt. De blootstelling dient dus geschat te worden aan de hand van gemiddelde geluidsniveaus.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond In dit hoofdstuk zullen enkel begrippen ingeleid worden die belangrijk zijn voor de implementatie van het dispersiemodel van PM10 en NOx en het propagatiemodel voor geluid. Ten eerste zal het microsimulatiemodel van Paramics besproken worden. Dit model werd gebruikt om de emissies van de voertuigen in het projectgebied in Gentbrugge te voorspellen. Vervolgens worden de beschouwde polluenten besproken. Zowel voor PM10, NOx als geluid zullen het ontstaan in het verkeer en de schadelijke gezondheidseffecten besproken worden. Tenslotte worden de processen in de atmosferische grenslaag besproken die ertoe leiden dat PM10 en NOx zich kunnen verspreiden over het gebied.
2.1.
Beschrijving van het microsimulatiemodel van Paramics
De data van de emissies van de voertuigen in het verkeer zullen berekend worden aan de hand van het microsimulatiemodel van Paramics. Deze emissiedata zullen de inputgegevens zijn voor het dispersiemodel en het propagatiemodel, dus zal de microsimulatie aan de basis liggen van de vervuilingskaarten en blootstellingsdiagrammen die gemaakt zullen worden in dit eindwerk. In deze paragraaf zal eerst een inleiding tot microsimulaties gegeven worden en vervolgens zal de werking van Paramics bestudeerd worden. 2.1.1. Inleiding tot microsimulaties Bij microsimulatiemodellen11 wordt rekening gehouden met individuele eenheden, in dit eindwerk zijn deze eenheden voertuigen, maar ook personen of bedrijven kunnen deze rol op zich nemen. Elk van deze eenheden wordt voorgesteld als een uniek object met enkele geassocieerde attributen, voor voertuigen kunnen deze attributen onder andere de agressiviteit, de vertrouwdheid en de bestemming zijn. De toestanden van deze eenheden worden elke tijdstap volgens bepaalde regels aangepast en alzo wordt een situatie gesimuleerd. De versnelling, en dus de snelheid, van de voertuigen in Paramics op een link wordt bijvoorbeeld bepaald volgens het auto-volgendmodel12. Microsimulaties bieden vaak een grafische interface waarop het gemodelleerde systeem op een dynamische wijze wordt weergegeven. Een voorbeeld wordt gegeven in figuur 2, in deze figuur wordt een klein netwerk in Paramics weergegeven. Op de tekening zijn de verschillende individuele eenheden duidelijk te zien, dit zijn de witte, blauwe en groene rechthoekjes die voertuigen voorstellen. Deze eenheden bewegen op de links die voorgesteld worden als stukken straat tussen twee kruispunten. Op de figuur is duidelijk te zien waar het meeste verkeer zich bevindt. Hoewel elke eenheid individueel wordt gesimuleerd, is er een duidelijk overzicht van de 3
2. Achtergrond
4
situatie. Het netwerk getoond in figuur 2 is een zeer klein netwerkje, voor realistische simulaties worden grotere netwerken geïmplementeerd.
figuur 2 – Een klein netwerk in Paramics waarop de verschillende simulatieeenheden (de voertuigen) en de links waarop deze bewegen duidelijk te zien zijn.
Microsimulatiemodellen kunnen ook toegepast worden om de effecten van verschillende beleidskeuzes te voorspellen13. Belangrijk om deze effecten te simuleren is een dataset met de economische en socio-demografische eigenschappen van alle simulatie-eenheden (bijvoorbeeld individu’s, huishoudens of bedrijven), de regels opgelegd door het beleid en een theoretisch model dat de gedragsrespons van de simulatie-eenheden modelleert. In China werd onderzoek gedaan over het verzekeringsbeleid voor werknemers aan de hand van microsimulaties14. Het medisch gedrag van individu’s werd gemodelleerd en de effecten van verschillende beleidskeuzes werden voorspeld aan de hand van microsimulaties. Door middel van deze simulaties probeerde men een beeld te krijgen op de evolutie van de medische kosten en probeerde men te achterhalen welke groepen het meeste invloed hebben op de gezondheidskosten. Nog een andere toepassing van microsimulaties, is het modelleren van terroristische aanslagen15. Voor deze toepassing wordt een samenleving gesimuleerd waarin een terroristische aanslag plaatsvindt. Zowel een biologische aanval als een bomaanslag worden bestudeerd. Voor de biologische aanval wordt de verspreiding van een ziekte bekeken. Deze ziekte verspreidt zich bijvoorbeeld door menselijke contacten. De situatie van de bomaanslag houdt rekening met terroristen, politie en burgers. De terroristen doen op een bepaald moment een bom ontploffen en
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
5
mogen niet gedetecteerd worden alvorens de bom is ontploft, de politie zoekt naar de terroristen en de burgers kunnen sterven tijdens de aanslag. Deze situatie wordt gemodelleerd, om zo de slaagkans van de aanval, rekening houdende met verschillende politiestrategieën, te bekijken. Door middel van de resultaten van de simulaties kan een vergelijk gemaakt worden tussen verschillende strategieën om terroristische aanvallen te voorkomen of hun effecten te verminderen. Het is echter wel van belang om in het hoofd te houden dat de modellen hierboven beschreven, slechts benaderingen van de werkelijkheid zijn. Om de modellen te evalueren, kan men bijvoorbeeld voorbije gebeurtenissen simuleren en de bekomen resultaten vergelijken met reële data. Als een goede overeenkomst gevonden wordt, is het redelijk om te veronderstellen dat de modellen toekomstige situaties zullen voorspellen met een goede overeenkomst. Om een grotere zekerheid te bekomen kan men ook meerdere simulaties laten lopen met licht andere beginvoorwaardes of met een andere startwaarde (Eng.: seed) voor de toevalsgenerator (Eng.: random number generator). 2.1.2. Geschiedenis en werking van Paramics Hieronder volgt een bespreking van Paramics. Er zal eerst een korte geschiedenis van Paramics gegeven worden en vervolgens wordt ingegaan op de werking van Paramics. De drie belangrijkste modellen waarop de werking van Paramics gebaseerd is, zullen besproken worden. Paramics is in 1986 gecreëerd door SIAS16. Samen met het Edinburgh Parallel Computing Centre (EPCC) van de universiteit van Edinburgh werd Paramics verder ontwikkeld in 1992. In de demonstratiepaper17 werden 280.000 voertuigen in real time gesimuleerd in een groot netwerk rond Edinburgh. In 1996 ontstond Quadstone Ltd. als een spin-off van de universiteit van Edinburg. SIAS en Quadstone Ltd. sloten een joint venture en vormden samen Paramics Traffic Simulation Ltd. Maar in 1998 besloten SIAS en Quadstone Ltd. deze joint venture te beëindigen wegens verschillende bedrijfsvizies. Sindsdien bieden SIAS en Quadstone Ltd. hun eigen versie van Paramics aan en werden de twee versies los van elkaar verder ontwikkeld. In de rest van deze thesis wordt verder enkel gewerkt met Paramics van Quadstone Ltd. Telkens de naam Paramics gebruikt wordt, wordt het microsimulatieprogramma van Quadstone Ltd. bedoeld. Hieronder volgt een beknopte uitleg van de werking van Paramics, voor een meer uitgebreide uitleg wordt verwezen naar de handleiding18. Zoals reeds gezegd is Paramics een microsimulatieprogramma en worden in microsimulaties alle eenheden apart gemodelleerd. De eenheden in Paramics zijn de verschillende deelnemers aan het verkeer. Deze deelnemers zijn
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
6
bijvoorbeeld auto’s, vrachtwagens of voetgangers en worden bestuurder-voertuig-elementen (Eng.: driver-vehicle-element) of DVU’s genoemd. Deze DVU’s bewegen zich voort op linken (Eng.: links) tussen knopen (Eng.: nodes). Deze linken zijn analoog aan straten in het echte leven, de knopen komen respectievelijk overeen met het einde van een doodlopende straat, een mogelijke verandering in de straat en een kruispunt, respectievelijk voor een knoop geassocieerd met één, twee of meerdere links. Met een verandering in de straat kunnen bijvoorbeeld een verandering van de maximum snelheid, een verkeerslicht of een hoek bedoeld worden. In Paramics worden de eigenschappen van de linken en de knopen opgeslagen in bestanden met een lijst van deze eigenschappen. De eigenschappen van de knopen respectievelijk de linken worden opgeslagen in het extensieloze bestand nodes respectievelijk link. De andere eigenschappen van het netwerk, zoals de bestemmingsmatrix en de voorrangsregels, worden op dezelfde manier opgeslagen in extensieloze bestanden, voor de gegeven voorbeelden is de naam van deze bestanden demands en priorities. De precieze betekenis van de bestemmingsmatrix en voorrangsregels, en enkele andere eigenschappen zullen in §3.1 besproken worden. Voor de beweging van de DVU’s op de linken worden twee modellen gebruikt: een autovolgend model (Eng.: car-following model) of CFM en een baanvak-veranderend model (Eng.: lane-changing model) of LCM. Als een DVU van de ene link naar de andere overgaat, dit wil dus zeggen dat de DVU zich op een knoop bevindt, dan wordt een kruispuntenmodel (Eng.: intersection model) gebruikt. Hieronder worden de modellen beschreven waarop de modellen in Paramics zijn gebaseerd, een technisch rapport uit 199812 zal hierbij als leidraad gebruikt worden. Het is echter wel belangrijk om op te merken dat de modellen die in de huidige versie van Paramics gebruikt worden, reeds sterk geëvolueerd zijn sinds 1998 opdat ze de realiteit beter zouden benaderen. De huidige modellen zijn confidentieel om de concurrentiepositie van Paramics niet aan te tasten. Auto-volgend model (CFM) De exacte werking van het CFM dat besproken wordt in het technisch rapport12 is niet te achterhalen, aangezien de exacte modellen confidentieel gehouden worden. In deze paragraaf wordt om die reden eerst het model van Fritzsche19,20 besproken, op dit model is het CFM van Paramics gebaseerd. Het model van Fritzsche is een psychofysisch model aangezien er zowel rekening wordt gehouden met de fysische aspecten van de wagen en het gedrag van de bestuurders. Met de fysische aspecten wordt bijvoorbeeld de maximale acceleratie van de voertuigen bedoeld. Dit is de reden waarom het begrip DVU is ingevoerd, aangezien voertuig en bestuurder een eenheid
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
7
vormen in het model. De situatie die in de eerste plaats wordt bestudeerd is deze uit figuur 3, waar twee DVU’s zich op één baanvak bevinden, er wordt bestudeerd op welke manier DVU i achter DVU j rijdt.
i
j
figuur 3 – Een enkel baanvak waarop zich twee DVU’s bevinden. DVU i (blauw) volgt DVU j (grijs).
Men kijkt enkel naar de interactie tussen twee dichtste buren, indien er bijvoorbeeld een andere DVU voor j rijdt, houdt i daar geen rekening mee. Dit is slechts een aanname, maar ik de realiteit wordt deze aanname vaak zeer goed benaderd, hetgeen geïllustreerd wordt in kettingbotsingen. DVU i beschikt op een bepaald tijdstip t over de kennis van de positie van zijn voorbumper xi in m, zijn snelheid vi in m∙s-1 en zijn versnelling ai in m∙s-2, daarnaast zijn deze grootheden van DVU j ook bekend voor DVU i. Verder zal vooral gebruikt gemaakt worden van het afstandsverschil, Δx = xj – xi, en het snelheidsverschil, Δv = vj – vi, tussen beide DVU’s. Er wordt een drempel opgesteld waaronder een verschil in snelheid niet fysiologisch vast te stellen is, zowel voor een positief als een negatief snelheidsverschil: PDN k PDN x s j
PDP k PDP x s j
fx,
2
2
fx
en
(1)
hierbij staat PDN en PDP respectievelijk voor de perceptiedrempel voor een positief en een negatieve snelheidsverschil in m∙s-1, kPDP/PDN en fx zijn modelconstanten respectievelijk in m-1∙s-1 en m∙s-1, en sj is een effectieve lengte van DVU j in m. Snelheidsverschillen tussen ΔvPDN en ΔvPDP zijn niet waarneembaar voor DVU i. Verder worden er nog vier andere drempels gedefinieerd voor de afstand tussen DVU i en j:
de gewenste afstand, GA, in m,
de riskante afstand RA, in m,
de veiling afstand VA, in m en
de rem- of stopafstand SA, in m.
GA is de afstand tot DVU j die i wil behouden of bereiken, deze wordt gedefinieerd als: GA s j TG vi ,
(2)
in deze formule staat TG voor de gewenste tijdsafstand tussen de twee DVU’s in s. Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
8
Als een DVU zich dichter dan RA bij een ander voertuig bevindt, dan zal het sterk afremmen om een botsing te voorkomen. RA wordt gedefinieerd als: RA s j TR v j ,
(3)
waarbij TR de tijdsafstand in s is tussen twee DVU’s waaronder gevaar optreed. VA is de afstand tussen DVU’s waarboven, bij een positief snelheidsverschil Δv, een versnelling van DVU i toegelaten is. Deze afstand is: VA s j TV vi ,
(4)
met TV een tijdsafstand in s. Aangezien de maximale deceleratie van een DVU gelimiteerd is, zal er ook steeds een eindige stopafstand SA ten opzichte van DVU j zijn. Deze afstand wordt gedefinieerd als: SA RA
v 2 , bm
(5)
waarbij Δbm een modelparameter is in m∙s-2. De waarden van de parameters in formules (1) – (5) zijn te vinden in de paper van Fritzsche19 en een paper waarin verschillende CFM’s worden vergeleken20. De curves die volgen uit de formules zijn afgebeeld in figuur 4.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
9
Afstand Δx (m)
Vrije zone PDN SA Volgzone II Inhaalzone
GA
Volgzone I VA
RA Gevaarzone Verschil in snelheid Δv (m∙s-1) figuur 4 – De curves die volgen uit formules (1) – (5) in functie van het verschil in snelheid. De curves zijn opgesteld voor vj = 20 m/s, met de parameters uit de paper van Fritzsche19 en een vergelijkende paper20. De curves definiëren vijf verschillende zones die het gedrag van de DVU’s bepalen.
Op de figuur zijn vijf verschillende zones aangeduid, het gedrag van de DVU’s wordt geregeld aan de hand van de zone waarin het koppel (Δx, Δv) zich bevindt. Indien dit koppel zich in de gevarenzonen bevindt, zal de DVU zo snel mogelijk moeten afremmen om een botsing te voorkomen. In de inhaalzone is de DVU zijn voorligger aan het naderen, er zal er licht afgeremd moeten worden opdat de DVU niet in gevaar komt. Bevinden de onderlinge afstand en het snelheidsverschil zich in de volgzone, dan zal er geen actie ondernomen worden door de beschouwde DVU. De laatste zone is de vrije zone, in deze zone zal een DVU versnellen tot zijn gewenste snelheid bereikt is, vervolgens zal de DVU deze snelheid blijven aanhouden Voor een meer gedetailleerde uitleg over dit model wordt verwezen naar de gebruikte papers19,20. Ook in het model in het technisch rapport12 wordt gebruik gemaakt van het verschil in afstand en snelheid. De zones zijn anders gedefinieerd in dit rapport. Er wordt ook rekening gehouden met een plotse acceleratie of deceleratie van de voorliggende DVU. Voor meer informatie wordt verwezen naar het technische rapport zelf.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
10
Baanvak-veranderend model (LCM) Net als voor het CFM, is de exacte werking van het LCM uit de technische beschrijving van Paramics uit 199812 niet te achterhalen. Daarom wordt hier, net als in vorige paragraaf, een model uit de paper van Fritzsche19 besproken. Dit model wordt hier slechts beknopt besproken, en er volgt enkel een kwalitatieve beschrijving. Voor het LCM worden twee verschillende situaties onderscheden zoals afgebeeld in figuur 5. Voor de eerste situatie verandert DVU i van het rechter naar het linker baanvak, dit is afgebeeld in figuur 5.a. In figuur 5.b is de omgekeerde situatie aangegeven, hierbij wordt veranderd van het linker naar het rechter baanvak. Deze twee situaties zijn verschillend aangezien het linker en het rechter baanvak doorgaans niet hetzelfde gebruik hebben: het linker baanvak wordt gebruikt door de snellere DVU’s opdat zij de tragere DVU’s zouden kunnen inhalen. Is het inhaalmanoeuvre gedaan, dan gaat de DVU doorgaans terug naar de rechterrijstrook. Deze regels gelden echter niet meer als er voorgesorteerd word, maar dit wordt hier buiten beschouwing gelaten.
figuur 5 – Een baanvak-veranderend manoeuvre. In a) gaat DVU i van het rechter naar het linker baanvak, in b) omgekeerd. Enkel de dichtste twee buren van i zijn getoond.
In het hier beschouwde LCM wordt net als in het CFM enkel rekening gehouden met de dichtste buren. Beschouwen we DVU i uit figuur 5 a) of b), dan wordt er enkel rekening gehouden met de DVU’s op het zelfde baanvak direct voor of achter i, namelijk j en m, en de dichtste DVU’s op het naburig baanvak voor en achter i, namelijk k en l. Als eerste beschouwen we nu de situatie uit figuur 5 a), de situatie waarin DVU i naar het linker baanvak gaat. In dit geval wordt rekening gehouden met DVU j, k en l. Met j wordt rekening gehouden, aangezien de intentie van i om van baanvak te veranderen ontstaat uit een voorspelde hindering door j, zou j sneller gaan dan i, dan zou er geen verandering van baanvak nodig zijn. Verder moet het ook mogelijk zijn om van baanvak te veranderen, hiervoor wordt naar de posities en snelheden van DVU l en k gekeken. De afstand tussen l en k dient groot genoeg te zijn, en te blijven, zodat i zich veilig tussen deze twee DVU’s kan plaatsen. In het technisch rapport12 staan formules die een voorwaarde geven voor deze afstand. Verder is het ook belangrijk dat er een voordeel voor i is nadat dit DVU van baanvak is veranderd. De duale situatie uit figuur 5 b), waarbij DVU i naar het rechter baanvak overgaat, is verschillend. DVU i zal enkel van rijbaan veranderen als k voor een gegeven periode gevolgd kan Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
11
worden zonder dat de snelheid van i dient te veranderen. Verder dient ook rekening gehouden te worden met de twee achterliggende DVU’s, l en m. Het manoeuvre mag l en m zeker niet in gevaar brengen. Kruispuntenmodel In deze paragraaf wordt het kruispuntenmodel uit het technisch rapport 12 beknopt beschreven. Het kruispuntenmodel is een tweedimensionaal model, in tegenstelling tot het CFM en het LCM, welke in essentie eendimensionale modellen zijn. Dit zorgt ervoor dat dit model iets complexer is en meer rekentijd nodig zal hebben, dit zal geen grote problemen opleveren aangezien het aantal DVU’s op de knopen normaal veel kleiner is dan het aantal DVU’s op de linken. In het model worden gelokaliseerde eenheidsvectoren gebruikt om de knopen of kruispunten te beschrijven, deze kunnen geschreven worden als (x, y, θ), waarbij x en y de positie van de vector weergeven en θ de richting van de vector ten opzichte van een bepaalde referentie-as. Deze vectoren bevatten de informatie over de punten vanwaar en de richtingen waarin het kruispunt verlaten dient te worden. Deze uitgangspunten komen overeen met het begin van de nieuwe linken. De methode gebruikt in het model werkt als volgt: door op een iteratieve wijze steeds een punt te bereken waarnaar het DVU zichzelf moet richten in de volgende tijdstap, wordt in een laatste tijdstap het gewenste uitganspunt in de juiste richting bereikt. In dit model dient ook rekening gehouden te worden met de voorwaardes voor de richtingverandering tijdens een bepaald tijdsinterval. Deze zijn het gevolg van de minimale draaicirkel van de wagen en de wrijvingskrachten die op de banden werken. In figuur 7 van het technisch rapport12 is een mooi voorbeeld te zien van de trajecten tussen twee punten die door dit model berekend worden voor verschillende uitgansrichtingen. Deze drie modellen beschrijven de kern van Paramics, verdere eigenschappen die van belang zijn in dit eindwerk, zullen in §3.1 besproken worden aan de hand van hun gebruik.
2.2.
Beschrijving van de polluenten
De polluenten die in dit eindwerk beschouwd worden zijn PM10, NOx en geluid. De verspreiding van deze polluenten doorheen het projectgebied zal bestudeerd worden. Aangezien deze polluenten een negatieve impact hebben op de gezondheid, kan kennis van de blootstelling aan de polluenten van de inwoners van het projectgebied zeer belangrijk zijn.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
12
2.2.1. Fijn stof (PM10) Een eerste polluent die beschreven word is fijn stof. Met fijn stof wordt een mix van zeer kleine vaste deeltjes en aerosols bedoeld met een grootte die varieert van de nanometer- tot de micrometerschaal21. De term PM10 groepeert alle deeltjes met een effectieve diameter kleiner dan 10µm, naast PM10 bestaan ook de termen PM2.5 en PM1 die respectievelijk de deeltjes met een diameter kleiner dan 2,5µm en 1µm groeperen. In dit eindwerk zal enkel PM10 beschouwd worden. Veel van de beschrijving van het fijn stof hieronder komt uit een handboekboek over atmosferisch modeleren22. Fijn stof kan op verschillende manieren ontstaan en is niet noodzakelijk door de mens gecreëerd. Natuurlijke ingrediënten van fijn stof zijn onder andere stuifmeel of pollen, kleine stofdeeltjes van de grond die door de wind worden meegenomen, asdeeltjes van bosbranden en deeltjes die vrijkomen bij vulkaanuitbarstingen. Naast deze natuurlijke vorm van fijn stof, is er ook de menselijke bijdragen tot het fijn stof. Deze bijdrage wordt vooral veroorzaakt door onze nood aan energie, namelijk door het opbranden van fossiele brandstof, biobrandstof en biomassa. In deze thesis wordt de verspreiding van fijn stof die voorkomt in de uitstoot van wagens, bestudeerd. De uitstoot van benzinewagens bestaat vooral uit organische materie die kleiner is dan een micrometer, black carbon, sulfaat en elementair silicium, ijzer, zink en zwavel. Voor dieselwagens worden de zelfde componenten teruggevonden, en daarnaast ook ammonium en een grotere hoeveelheid black carbon en organische materie. De hoeveelheid fijn stof op de wereld die door mensen wordt gecreëerd is veel kleiner dan de hoeveelheid die op een natuurlijke wijze ontstaat. In dichtbebouwde gebieden kan het omgekeerde echter waar zijn. Daarom is het zinvol om de hoeveelheid fijn stof veroorzaakt door de uitstoten van wagens te modeleren in een stedelijk gebied om alzo de gezondheidsrisico’s te kunnen inschatten. Fijn stof ligt aan de basis van verschillende gezondheidsproblemen, zo kan de blootstelling aan fijn stof de aanzet geven tot hartaanvallen23 en andere hart- en vaatziekten1,2, de longfunctie verminderen4 en het beenmerg aantasten24. Er werd aangetoond dat de dagelijkse mortaliteit in 21 steden met 0,6% steeg voor elke 10µg∙m-3 extra PM10 in de atmosfeer21. Er zijn ook aanwijzingen dat een korte sterke blootstelling aan PM 10 schadelijker is dan een langdurige kleinere blootstelling waarbij in beide situaties de gemiddelde blootstelling gelijk is9. Het kan dus zeer leerzaam zijn om de tijdsafhankelijke blootstelling aan PM 10 te modelleren, op deze manier kan de totale blootstelling en de piekblootstelling bepaald worden.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
13
2.2.2. Stikstofoxides (NOx) De tweede polluent die beschouwd wordt in dit werk is NO x, met NOx worden zowel stikstofmonoxide (NO) en stikstofdioxide (NO2) bedoeld, ook deze paragraaf is vooral gebaseerd op het handboek over atmosferisch modelleren22. NO is een kleurloos gas en wordt op natuurlijke wijze gecreëerd door bijvoorbeeld blikseminslagen. Daarnaast komt NO ook vrij bij de verbrandingsprocessen in de motor van een auto. NO2 is een bruin gas en wordt vooral gevormd door de fotochemische oxidatie van NO, daarnaast ontstaat NO 2 tijdens de verbranding van fossiele brandstoffen. De menselijke productie van NOx in steden is echter veel groter dan de natuurlijke productie. Zowel NO als NO2 zijn radicalen, wat wil zeggen dat ze een ongepaard elektron hebben en dus gemakkelijk deelnemen aan chemische reacties. NOx is een belangrijke component van fotochemische smog. Door reacties van NO x met organische gassen kan ozon gevormd worden onder invloed van zonlicht, dus kan fotochemische smog ook een aanzienlijke hoeveelheid ozon bevatten, vooral bij helder weer. Naast ozon zijn er ook zware organische moleculen aanwezig in fotochemische smog, vooral aromaten. Fotochemische smog komt vooral voor bij een temperatuurinversie, zie §2.3. Zowel NOx als ozon zijn schadelijk voor de gezondheid. NO2 leidt bijvoorbeeld tot ademhalingsproblemen en hart- en vaatziekten3, terwijl ozon kan leiden tot een reversibele verslechtering van de ademhaling en biologische veranderingen die longschade en ontstekingen teweeg kunnen brengen5. Hieronder staat tabel 1 met de maximale gemiddelde concentraties PM 10, O3 en NO2 die toegelaten zijn door de Europese Unie. In het verdere verloop zullen NO en NO2 steeds samen beschouwd worden als NOx, de chemische reacties tussen NO, NO2 en ozon komen niet aan bod om de concentraties te bepalen. Een indicatie voor de verhouding tussen NO en NO 2 die uitgestoten worden door de voertuigen, is dat volgens metingen uitgevoerd in 1987 in California 85% van de massa van de totale uitstoot NOx bestond uit NO, deze totale uitstoot was voor 76% toe te schrijven aan mobiele bronnen zoals wagens, camions en vliegtuigen 22.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
14
tabel 1 – De maximale gemiddelde concentraties van ozon, stikstofdioxide en PM10 in de lucht volgens de Europese Unie21. †Mag niet meer dan zeven dagen per jaar overschreden worden.
Maximale toegestane concentratie in µg∙m-3, uitgemiddeld over een tijd van
Ozon (O3) Stikstofdioxide (NO2) PM10
1 uur
8 uur
1 dag
1 jaar
-
120
-
-
200
-
-
40
-
-
50†
20
2.2.3. Geluidsvervuiling De derde vorm van vervuiling die in dit werk behandeld wordt is de geluidsvervuiling. Met geluidsvervuiling wordt elke vorm van omgevingsgeluid bedoeld, dit kan gaan van het geluid veroorzaakt door het verkeer, zowel op de wegen als in de lucht, en de industrie tot het geluid van festivals en spelende kinderen. In het model dat gebruikt zal worden om de geluidsniveaus te schatten in Gentbrugge, zal enkel rekening gehouden worden met het geluid geproduceerd door voertuigen die deelnemen aan het verkeer. Het geluid van voertuigen heeft twee bronnen, ten eerste is er het geluid geproduceerd door de aandrijving, dit is het geluid van de motor en de uitlaat, daarnaast is ook het aerodynamische geluid, deze vorm van geluid wordt veroorzaakt door de wrijving met de lucht en het bandgeluid25. Binnen de WHO werden recent de gezondheidseffecten van geluid in kaart gebracht 6. De effecten zijn voor alle soorten geluidsvervuiling en worden uitgedrukt in het aantal verloren DALY, waarbij DALY staat voor disability-adjusted life years of door beperkingen aangepaste levensjaren. Deze eenheid is de som van het aantal verloren levensjaren en het aantal levensjaren met een beperking gewogen met de ernst van de beperking, deze wegingsfactor ligt tussen nul voor perfect gezond en één voor dood. De totale geluidsoverlast kan leiden tot cardiovasculaire ziektes zoals een hoge bloeddruk en ischemische hartaandoeningen zoals een hartinfarct. De hartinfarcten veroorzaken 61000 verloren DALY per jaar in West-Europa. Daarnaast kan een blootstelling aan geluid leiden tot cognitieve storingen bij kinderen wat leidt tot 45000 verloren DALY per jaar bij kinderen tussen 7 en 19 jaar in de EUR-A-landen. Bij 95dB(A) is het effect bij alle kinderen aanwezig, onder de 50dB(A) komt het effect niet voor. Verder zijn er ook slaapstoornissen die een verlies van 903000 DALY per jaar veroorzaken bij inwoners van steden in de EU met meer dan 50000 inwoners. Ook tinnitus wordt veroorzaakt door de geluidsoverlast, 22000 DALY per jaar worden hierdoor in de Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
15
EUR-A-landen verloren. Een laatste effect is het de ergernis, dit effect wordt door de WHO ook behandeld aangezien de WHO gezondheid definieert als een staat van compleet fysiek, mentaal en sociaal welzijn. Deze ergernis leidt tot maar liefst 654000 verloren DALY per jaar bij de EUbevolking die in steden van meer dan 50000 inwoners leeft. Al deze gezondheidseffecten indachtig, worden er in de EU tussen de 1.0 en 1.6 miljoen DALY verloren per jaar.
2.3.
Beschrijving van de atmosferische grenslaag
Om een beter inzicht te krijgen in de processen die de polluenten, PM10 en NOx, in de lucht verspreiden wordt in deze paragraaf de atmosferische grenslaag bestudeerd. Deze paragraaf is hoofdzakelijk gebaseerd op hoofdstuk 2 en 3 van een handboek over atmosferisch modelleren22. De atmosferische grenslaag is de onderste laag van de troposfeer en reikt van het aardoppervlak tot 500m tot 3000m. De grenslaag wordt direct beïnvloed door het aardoppervlak en op een veel mindere manier door de vrije troposfeer erboven. De temperatuur in de onderste 10% van de grenslaag, namelijk de grondlaag, wordt sterk beïnvloed door de temperatuur van de grond. Overdag neemt de temperatuur in deze laag sterk toe en hoe hoger in deze laag, hoe lager de temperatuur. In de avond gebeurt het omgekeerde, de temperatuur in deze laag neemt af en de temperatuur stijgt met toenemende hoogte, er ontstaat een temperatuurinversie. Deze temperatuurinversie kan ook ontstaan op een koude winterdag, wanneer de grond niet genoeg opgewarmd raakt om de inversie ongedaan te maken, dit is de reden voor het smogalarm dat ’s winters vaak geldt. Smog ontstaat wanneer de grondlaag stabiel is, dit wil zeggen dat de temperatuurafname per kilometer kleiner is dan de adiabatische verticale temperatuurgradiënt, deze bedraagt 9,8K∙km-1. Een luchthoeveelheid (Eng.: parcel of air) die stijgt zonder temperatuuruitwisseling, zal het per gestegen kilometer 9,8 graden afkoelen. Er wordt nu een luchthoeveelheid beschouwd die warmer is dan zijn omgeving. Wanneer de afname van de temperatuur in de atmosfeer kleiner is dan 9,8K∙km-1, dan zal de luchthoeveelheid kouder worden dan zijn omgeving tijdens het stijgen en dus ook zwaarder, hierdoor wordt ze afgeremd en zal ze uiteindelijk terug naar haar originele positie gaan en rond deze positie oscilleren. De lucht zal dus niet blijven stijgen en de vervuiling die wordt meegenomen met de lucht, zal op een bepaalde hoogte blijven hangen. In dit geval spreken we van een stabiele atmosfeer. Indien de temperatuurafname met de hoogte groter is dan de verticale temperatuurgradiënt, dan zal een luchthoeveelheid versneld worden en de vervuiling in deze luchthoeveelheid kan in de atmosfeer ontsnappen. De atmosfeer is in dit geval onstabiel. Tussen deze twee gevallen in, kan
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
16
de atmosfeer ook neutraal zijn, een luchthoeveelheid zal niet versnellen of vertragen als de temperatuurafname gelijk is aan de adiabatische temperatuurgradiënt. Deze temperatuurgradiënt is echter niet de enige oorzaak van luchtverplaatsingen. Wind, veroorzaakt door drukverschillen tussen twee gebieden, is ook een vorm van een luchtverplaatsing. Deze wind neemt de vervuiling ook mee. Het profiel van de wind in functie van de hoogte kan als logaritmisch beschouwd worden, dicht bij de grond zorgt de spanning tussen de grond en de lucht ervoor dat de windsnelheid afneemt, hoe hoger men gaat, hoe minder het effect van de grond is en hoe sneller de wind dus gaat. Wanneer de wind nu langs ruwheden op het oppervlak gaat, zoals bijvoorbeeld gebouwen, dan ontstaat er turbulentie. De wind wordt afgebogen en er ontstaan wervels (Eng.: vortices) of maalstromen (Eng.: eddies). Met turbulentie worden groepen van deze maalstromen van verschillende grootte bedoeld. Door de turbulentie worden de eigenschappen van verschillende delen van de atmosfeer vermengd en kunnen de polluenten zich makkelijk verspreiden door de atmosfeer. Om de luchtstromen te kunnen modeleren werden er vergelijkingen opgesteld, de belangrijkste vergelijking is de continuïteitsvergelijking en wordt gegeven als: N vN D 2 N Rn . t n
(6)
In deze vergelijking stelt N de concentratie van een polluent voor in kg∙m-3, v is de windsnelheidsvector met als componenten u, v en w, allen in m∙s-1, D is de moleculaire diffusiecoëfficiënt in m2∙s-1 en Rn zijn externe processen die de hoeveelheid polluenten aanpassen (bv. uitstoot van auto’s of chemische processen in de lucht) in kg∙m-3∙s-1. In het model gebruikt in dit eindwerk zal met eindige tijdstappen en eindige elementen gewerkt worden, de waarde in elk element op elk tijdstip, zal dus een gemiddelde zijn over dit element en tijdstap, aangeduid als N en we kunnen stellen dat overal geldt: N N N ,
(7)
waarbij N de ogenblikkelijke afwijking van de gemiddelde waarde op een positie in het element is, het ruimtegemiddelde over een element en tijdsgemiddelde over een tijdsstap van N is steeds 0. Dezelfde notatie geldt voor de snelheid v. Substitueren we (7) voor N en v in (6), verwaarlozen we de moleculaire diffusiecoëfficiënt aangezien het effect van deze term klein is ten opzichten van het effect van turbulentie en nemen we het gemiddelde, dan bekomen we:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
17
N vN vN Rn t n
(8)
De methode die hier werd toegepast is de methode van het Reynoldsgemiddelde (Eng.: Reynolds-average). In formule (8) staat nog één turbulentieterm in
vN ,
de kinematische
turbulente flux, deze kan als volgt geparametriseerd worden: uN K h, xx
N , x
vN K h, yy
N , y
wN K h, zz
N , y
(9)
waarbij Kh,xx, Kh,yy en Kh,zz de maalstroomdiffusiecoëfficiënten (Eng.: eddy diffusion coefficients) in respectievelijk de x-, de y- en de z-richting in m2∙s-1 zijn. Substitueren we (9) in (8), dan vinden we: N vN K h N Rn , t n
(10)
met K h, xx Kh 0 0
0 K h, yy 0
0 0 K h, zz
(11)
en waarbij de streepjes boven de variabelen zijn weggelaten voor de eenvoud. Formule (10) is de formule die gebruikt zal worden om de verspreiding van de polluenten in de atmosfeer te beschrijven. In de straten wordt deze formule een beetje aangepast en krijgen we26: N 2 uN lv 2 N Rn , t x z n
(12)
waarbij verondersteld is dat de straat parallel loopt met de x-as en l een karakteristieke menglengte is in m, die vaak als 1m genomen wordt. De tweede term in het linker lid is te begrijpen door te veronderstellen dat de wind enkel parallel met de straat kan waaien, de eerste term in het rechterlid wordt veroorzaakt doordat de wind boven de bebouwing, loodrecht op de straat een wervel introduceert in de straat27, zoals schematisch afgebeeld in figuur 6, hierdoor wordt er materie uitgewisseld tussen de straat en de bovenliggende atmosfeer. Hoe sterker de wind loodrecht op de straat, hoe meer materie er zal uitgewisseld worden. Met formule (10) en (12) zal in §3.3 het dispersiemodel voor de polluenten opgesteld worden.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
2. Achtergrond
18
u = (0, v, 0)
figuur 6 – Schematische afbeelding van hoe wind boven de bebouwing, loodrecht op een straat een wervel veroorzaakt in de straat.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. De gebruikte modellen In dit hoofdstuk worden de gebruikte modellen beschreven. Er wordt vertrokken van een beschrijving van het Paramics-netwerk. Vervolgens word besproken hoe de gebruikte emissiedata voor de modellen, uit het netwerk gehaald kunnen worden. Uiteindelijk worden het dispersiemodel voor PM10 en NOx en het propagatiemodel voor geluid opgesteld. De resultaten van de modellen zullen in het volgende hoofdstuk besproken worden.
3.1.
Beschrijving Paramics-netwerk
Het gebied dat gemodelleerd wordt in deze thesis staat afgebeeld in figuur 7, in a) is een stratenplan van het gebied te zien, in b) het netwerk dat in Paramics gebruikt wordt. Het netwerk bestaat uit 451 knopen en 567 linken en is een uitbreiding van een netwerk dat al eerder binnen de vakgroep gebruikt werd28. Het netwerk is gebaseerd op een stratenplan dat beschikbaar is in de vakgroep en geleverd werd door de stad Gent. Ook is gebruik gemaakt van de satellietbeelden van Google Maps29 en ViaMichelin30 en zelf uitgevoerde waarneming ter plaatse. De satellietbeelden werden gebruikt om het aantal baanvakken en de rijrichtingen op deze baanvakken te bepalen, deze data was niet beschikbaar in het stratenplan van de stad Gent. De waarnemingen ter plaatse werden gedaan om de voorrangs- en snelheidsregels te bepalen, daarnaast waren deze soms nodig om enkele meer complexe geometrieën te begrijpen.
figuur 7 – Het gesimuleerde gebied: a) een stratenplan van de directe omgeving [©Google 2011], b) het netwerk dat geïmplementeerd is in Paramics.
Snelheidsregels Het netwerk bestaat zoals eerder beschreven uit knopen en linken die geplaatst zijn volgens de beschikbare data om het netwerk zoveel mogelijk met de realiteit te doen overeenstemmen. Op
19
3. Opstellen van het model
20
elk van de linken geldt een snelheidslimiet, dit is de maximale snelheid die een DVU mag hebben op de link, een DVU zal niet versnellen volgens het CFM, indien de maximumsnelheid bereikt is. De snelheidslimiet komt bijna overal overeen met de werkelijke limiet. Enkel op de Keizerviaduct en in het uitgediepte deel van de Sint-Lievenslaan (beide horen tot de R40), waar de reële limiet 50km∙h-1 is, is voor een afwijkende snelheidslimiet gekozen, dit om deze wegen aantrekkelijker te maken dan de parallelwegen en aangezien 70km∙h-1 nauwer aansluit bij de werkelijke snelheid gereden door de voertuigen op deze wegen. Voorrangsregels Op de kruispunten gelden steeds voorrangsregels. Deze regels opgedeeld worden in drie categorieën: de impliciete regels, de vaste regels en de variabele regels. Met impliciete regels bedoelen we hier de voorrang van rechts, de vaste regels zijn de voorrangsregels die aangeduid zijn met borden en de variabele regels gelden op plaatsen met verkeerslichten. In Paramics worden de eerste twee soorten regels geïmplementeerd door voor elke link die aankomt aan een bepaalde knoop, elke mogelijke rijrichting een prioriteitsniveau te geven. Van het hoogste naar het laagste niveau van prioriteit zijn dit major, medium, minor en barred18. Een rigoureuze uitleg van deze niveaus wordt hier niet gegeven, maar een parallel met deze niveaus en de realiteit kan gemaakt worden door de correspondentie tussen respectievelijk de niveaus major, medium, minor en barred en respectievelijk de verkeersborden B15, B1, B5 en C3131, zoals duidelijk gemaakt in figuur 8. Voor een kruispunt met de impliciete voorrang van rechts werd elke richting het niveau medium toegewezen, voor een kruispunt met vaste regels werd elke richting een niveau toegewezen dat met de voorrangsregels correspondeerde.
Paramics
MAJOR
MEDIUM
MINOR
BARRED
Wegcode
figuur 8 – De correspondentie tussen de prioriteitsniveaus in Paramics en verkeersborden31.
Voor kruispunten met de variabele regels opgelegd door de verkeerslichten, werd gebruik gemaakt van de optie signal control van Paramics. In deze optie kunnen variabele, cyclische prioriteitsniveaus toegewezen worden. Voor de afstelling is gebruik gemaakt van de V-plannen van de gewestwegen en stadswegen, verkregen door Paul De Groote32 en Wouter Van Hove33, een voorbeeld van een V-plan is te zien in figuur 9. De variabele cyclussen met filedetectie waarvan
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
21
de verkeerlichten gebruik maken, is niet gebruikt in dit eindwerk. Er is gebruik gemaakt van een gemiddelde voor elk deel van de cyclus om de verkeerslichten zo realiteitsgetrouw mogelijk te integreren in het model.
figuur 9 – Een V-plan van het kruispunt van de N9 met de N44432.
Oorsprong-bestemmingsmatrices Tot hiertoe zijn enkel de regels voor de DVU’s besproken, in §2.1.2 werden de regels besproken volgens dewelke DVU’s met elkaar interageren, in deze paragraaf de regels volgens dewelke ze met de omgeving interageren. De manier waarop DVU’s in het netwerk worden losgelaten is echter nog niet besproken en is het onderwerp van dit deel. Een DVU wordt in het netwerk losgelaten in een zone en zijn bestemming is een andere zone. Deze begin- en eindzone bepalen het traject van de DVU. Tussen deze twee zones word de ‘kortste’ route berekend. Kortste kan in Paramics veel betekenen, zo kan het bijvoorbeeld de kortste route zijn in afstand, in tijd, in geldkosten of een combinatie hiervan. De standaardkeuze van Paramics is de snelste route, deze keuze is ook gemaakt voor deze thesis. In principe kan er voor gekozen worden om de routes op geregelde tijdstippen te herrekenen om zo files te omzeilen, dit werd hier echter niet gedaan aangezien dit aanleiding gaf tot onrealistische routes. De routes die gevolgd worden in de simulatie lijken goed overeen te komen met de realistische routes die gevolgd worden door de wagen in het deelgebied. Voor elke DVU is er dus een oorsprong- en beginzone nodig, deze zones worden bijgehouden in de oorsprongs-bestemmingsmatrix (Eng.: origin-demand matrix) of OD-matrix. De OD-matrix is een matrix die bijhoudt hoeveel voertuigen er per uur van de ene zone naar de andere gaan. Hieronder volgt een kort voorbeeld. Een schematische voorstelling is weergegeven in figuur 10.a), de pijlen in deze figuur geven de verkeersstroom tussen de zones weer, de nummers en de
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
22
dikte van de pijlen geven de grootte van deze stromen. Dit alles kan samengevat worden in de tabel in figuur 10.b), deze tabel is de OD-matrix van het schematisch afgebeelde systeem.
3500 a)
Zone 1
1000
Zone 2
1000
4000
1500
500
500 Zone 3
2000 naar
b)
van
1 2 3 4
Zone 4
1 2 3 4 0 3500 1500 500 1000 0 500 1000 500 2000 0 500 500 4000 2000 0
figuur 10 – a) Schematische afbeelding van de verkeerstromen tussen vier zones, de dikte van de pijlen en het nummer erboven geven het aantal wagens per uur die volgens de richting van de pijl rijden. b) De OD-matrix die hoort bij het systeem uit a).
De plaats waar en het tijdstip waarop DVU’s worden vrijgegeven in Paramics wordt bepaald door een toevalsgenerator. Een DVU wordt enkel vrijgegeven op de linken waarvan het middelpunt in de zone ligt, de plaats op deze linken wordt willekeurig bepaald door de toevalsgenerator. Of er op een bepaald ogenblik een voertuig wordt vrijgegeven, hangt ook af van de toevalsgenerator. Deze toevalsgenerator heeft een startwaarde (Eng.:seed) nodig om zijn waardes te berekenen, als er twee simulaties worden gelopen met de zelfde startwaarde, dan zullen deze simulaties (indien alle andere parameters onveranderd blijven) exact dezelfde resultaten geven. De OD-matrices die gebruikt worden in dit eindwerk, zijn afgeleid uit een verplaatsingssimulatie waarbij aan de hand van een verplaatstingsdatabank en een netwerkanalyse een set verplaatsingen (trips) wordt aangemaakt. In de verplaatsingsdatabank waren gegevens opgeslagen van de werkelijke verplaatsingen van 10% van de Gentse bevolking op twee dagen34. Elke trip i bestaat uit Ni geordende punten. We zoeken echter een oorsprong en bestemming voor de trip, dit doen we door te vertrekken van punt 0, indien dit punt zich in een zone bevindt, hebben we de beginzone gevonden. Is dit niet het geval, dan wordt getest of punt 1 in een zone ligt, als dit het
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
23
geval is, dan is deze zone de beginzone, anders wordt er verder gegaan met punt 2 enz. Wordt punt Ni bereikt, en is er geen beginzone gevonden, dan behoort de trip niet tot het simulatiegebied. Indien er wel een beginzone is, wordt nu hetzelfde algoritme toegepast, beginnende bij punt Ni. Ligt dit punt in een zone, dan is de eindzone gevonden, anders wordt punt Ni – 1 gecontroleerd, enz. Indien begin- en eindzone worden gevonden, en deze niet dezelfde zone zijn, dan wordt de trip toegevoegd aan de OD-matrix. Dit proces wordt weergegeven in figuur 11. In de figuur staat een trip met 18 punten en drie zones van een netwerk. Eerst worden achtereenvolgens punten 0 tot 3 gecontroleerd. Geen van deze punten ligt in een zone, dus wordt ook punt 4 gecontroleerd. Dit punt ligt in Zone 1, dus deze zone is de beginzone van de trip. Nu de beginzone gevonden is, wordt gezocht naar de eindzone, startende van punt 18. Dit punt ligt, net als punten 17 tot 15 niet in een zone, uiteindelijk wordt punt 14 gecontroleerd. Punt 14 ligt in Zone 3, dus deze zone is de eindzone van de trip. Aangezien Zone 1 en Zone 3 verschillende zones zijn, kan de trip van Zone 1 naar Zone 3 toegevoegd worden aan de OD-matrix.
figuur 11 – Schematische voorstelling van drie zones van een netwerk en een trip bestaande uit 18 punten waarvoor de begin- en eindzone gezocht wordt.
Op deze manier wordt er voor elke trip een oorsprong en bestemming gevonden, in de vorm van een begin- en eindzone. Aan elke trip is ook een uur geassocieerd waarbinnen de trip werd afgelegd. Door dit uur te gebruiken, werden vier OD-matrices opgesteld, een matrix voor elk uur tussen 6 en 10 uur. De eerste matrix was dus geldig van het verkeer van 6 tot 7 uur, de laatste van 9 tot 10 uur. De database bevatte echter enkel de lokale trips, gemaakt door mensen die in Gent wonen, het doorgaand verkeer op bijvoorbeeld de autosnelwegen is hierin niet opgenomen. De OD-matrices dienden dus aangevuld te worden met het doorgaand verkeer. Voor het doorgaand verkeer op de autosnelwegen werd gebruik gemaakt van de data van MIRAS35, deze data geven het totale verkeer op elke belangrijke weg in Vlaanderen. Uit deze data zijn manueel de OD-matrices
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
24
bijgewerkt voor het extra doorgaand verkeer op de autosnelwegen. Aangezien enkel het verkeer op de autosnelwegen uit de data van MIRAS wordt gehaald en dit verkeer betrekking heeft op vijf verschillende zones, was het niet moeilijk om dit manueel te doen. Indien de data van de trips en van MIRAS worden gecombineerd worden tot de OD-matrices en gebruikt worden in de simulatie, is er een teveel aan verkeer in de simulaties en ontstaan er files die groter zijn dan het simulatiegebied. Dit kan echter niet de bedoeling zijn. Dit wordt verhopen door slechts 25% van het verkeer dat volgt uit de OD-matrices effectief in de simulatie mee te nemen. 25% van het verkeer is ongeveer de drempel van vlot verkeer naar filevorming, dit wil zeggen dat er enkele files ontstaan, maar dat het netwerk niet verzadigd raakt. Bij 30% is er een duidelijke oververzadiging van het netwerk. De belangrijkste reden van deze te grote files zijn waarschijnlijk te wijten aan imperfecties in het netwerk, al deze imperfecties uit het netwerk halen valt buiten het bestek van dit eindwerk. In totaal gaven de OD-matrices aanleiding tot ongeveer 48000 DVU’s die gesimuleerd werden.
3.2.
Emissiedata
Met alle informatie besproken in §3.1 kan de simulatie uitgevoerd worden. Natuurlijk is het ook van belang dat de nodige data uit de simulatie gehaald worden. Dit wordt gedaan aan de hand van een plug-in voor Paramics geschreven in de programmeertaal Python36. Deze plug-in schrijft voor elke tijdstap data over de vervuiling in het netwerk uit. Voor PM10 en NOx wordt elke link in 5 segmenten verdeeld en voor elk segment word de totale uitstoot van alle DVU’s in dat segment opgeslagen. Voor geluid wordt een gelijkaardige procedure gevolgd, enkel worden de totale emissiedata per uur opgeslagen. Elke link bevat minimum 5 segmenten die maximum 25m lang zijn. De geluidsemissies, in tertsbanden van 20Hz tot 20kHz, worden opgeslagen. Om te berekenen op welk segment een DVU zich bevindt, wordt een relatieve positie van de DVU op het segment bepaald. Nemen we xv en yv de coördinaten van de positie van het DVU, xb en yb, respectievelijk xe en ye de coördinaten van de beginknoop respectievelijk de eindknoop van de link en n het aantal segmenten van de link, dan wordt de relatieve positie X gegeven door: n 2 x x x x x 2 yv yb ye ye yb X v b e e b2 1 2 xe xb ye yb 2
(13)
Deze relatieve positie X is de loodrechte projectie van de positievector van het DVU ten opzichte van de beginknoop op de verbindingslijn tussen de begin- en eindknoop, vermenigvuldigd met het aantal segmenten en gedeeld door de afstand tussen begin- en eindknoop. Deze relatieve positie neemt in theorie waarden aan tussen 0 en n. Ronden we nu deze relatieve positie X af naar beneden, dan bekomen we de index van het segment waarop de DVU zich bevindt, deze index
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
25
loopt van 0 tot n – 1. Het kan gebeuren dat voor de index van het segment de waarde n wordt gevonden, dit wordt dan gecorrigeerd door de waarde n – 1 te kiezen. De emissies worden berekend aan de hand van twee modellen, het VERSIT+-model37 voor PM10 en NOx, en het IMAGINE-model25 voor de geluidsemissies. Het VERSIT+-model is een Nederlands model dat in staat is de HC-, CO-, NOx-, NO2-, PM10- en CO2-uitstoot op een realistische wijze te berekenen. Ook het IMAGINE-model is Nederlands, het berekent de geluidsniveaus in verschillende tertsbanden. Er wordt zowel rekening gehouden met het rolgeluid als met het motorgeluid in dit model. Daarnaast kan er ook rekening gehouden met bijvoorbeeld het type auto en weg. Voor 479 DVU’s in de simulatie, of 1% van het totale aantal DVU’s, werden ook voor elke tijdstap de posities opgeslagen. Dit werd gedaan om verderop blootstellingsdiagrammen voor deze DVU’s te kunnen opstellen. De nodige data worden weggeschreven in verschillende bestanden. Voor meer info over deze bestanden wordt verwezen naar de appendix.
3.3.
Dispersiemodel voor PM10 en NOx
In deze paragraaf worden het dispersiemodel voor PM10 en NOx opgesteld. Om de verspreiding van PM10 en NOx te modelleren wordt een model opgesteld dat gebaseerd is op de eindig-verschil tijdsdomein methode38 (Eng.: finite-difference time-domain of FTDT), in deze methode wordt het gebied opgedeeld in kleine elementen en wordt de waarde van de vervuiling per tijdstap opnieuw berekend. 3.3.1. Afleiding van het model Om de verspreiding van PM10 en NOx te modelleren, wordt gebruik gemaakt van formules (10) en (12) uit §2.3. Enkel de uitwerking van formule (10) zal hieronder besproken worden, aangezien deze van (12) analoog is. We beginnen met de vergelijking te splitsen in twee, zodat in elke vergelijking enkel eerste orde afgeleiden staan: N J Rn t n
en
(14)
J vN K h N.
(15)
In deze vergelijking kan J beschouwd worden als de gecombineerde concentratieflux in kg∙m-2 die wordt veroorzaakt door de algemene luchtbeweging en de turbulente luchtbeweging. We integreren vergelijking (14) nu over het volume Vi van element i en vergelijking (15) over het grensoppervlak Sik tussen element i en k en krijgen:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
26
N i S ik J ik Ri t k Vi
J ik
1 Sik
en
(16) N
1
vN nik dS Sik S K h,ik nik dS , S
(17)
NdV ,
(18)
ik
ik
met 1 Vi
Ni
J ik
Ri
Vi
1 Sik
1 Vi
J nik ds,
(19)
Sik
Rn dV
en
(20)
Vi n
K h,ik nik K h nik .
(21)
Voor dat aan de verdere uitwerking van formule (16) en (17) begonnen wordt, beschouwen we eerst het rooster. Het rooster dat gebruikt wordt is een cartesisch rooster, twee elementen van dit rooster staan afgebeeld in figuur 12. De elementen hebben als afmetingen dx in de x-richting, dy in de y-richting en dz in de z-richting. De ligging van de fluxvectoren en de gemiddelde concentraties in de elementen zijn ook afgebeeld.
Jz (x + dx, y, z + dz/2)
Jz (x, y, z + dz/2)
Jz (x, y + dy/2, z) Jx (x – dx/2, y, z) N(x, y, z)
Jz (x + dx, y + dy/2, z) Jx (x + dx/2, y, z) N(x + dx, y, z)
Jz (x, y – dy/2, z)
Jz (x, y, z – dz/2)
Jx (x + 3dx/2, y, z)
Jz (x + dx, y – dy/2, z)
Jz (x + dx, y, z – dz/2)
ez ey
ex
figuur 12 – Twee elementen in het cartesische rooster dat gebruikt wordt voor de atmosfeer. De fluxvectoren zijn aangeduid in de figuur. De afmetingen van één element zijn dx∙dy∙dz.
We beschouwen het cartesisch rooster uit figuur 12 en werken vergelijking (16) en (17) verder uit. De tijdsafgeleide wordt benaderd door:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
27
f t dt f t f t dt2 t dt
(22)
waarbij dt de tijdsstap voortelt en f(t) een willekeurige functie voorstelt, de plaatsafgeleide in (17) wordt analoog benaderd. De onderindices voor de concentratie en de fluxen worden weggelaten en vervangen door de positie- en tijdsparameters tussen haakjes, we vinden: N x, y, z , t dt N x, y, z , t dtR( x, y, z , t ) dt J x x dx2 , y, z, t dt2 J x x dx2 , y, z, t dt2 dx dt J y x, y dy2 , z , t dt2 J y x, y dy2 , z , t dt2 dy dt J z x, y, z dz2 , t dt2 J z x, y, z dz2 , t dt2 en dz
J x x
dx 2
, y, z , t
dt 2
(23)
u K h, xx N x, y, z, t K h, xx N x dx, y, z, t
vx 0 dx dx K K h, xx N x, y, z , t u h, xx N x dx, y, z, t v x 0, dx dx
(24)
en analoog voor Jy en Jz. Om tot formule (24) te komen zijn twee benaderingen gemaakt. In de dt eerste benadering werd verondersteld dat de waarde van N op tijdstip t 2 gelijk is aan de waarde
op tijdstip t. Deze benadering is nodig, aangezien er anders een toekomstige concentratie N in de elementen gekend zou moeten zijn. De tweede benadering houdt in dat de wind de concentratie van het element vanwaar de wind komt transporteert, er wordt dus geen gemiddelde genomen van de concentraties van twee elementen. Deze benadering is nodig om te voorkomen dat er negatieve concentraties ontstaan. Veronderstel bijvoorbeeld twee elementen, element i met concentratie 0 en element j met concentratie n, waarbij de wind van i naar j waait. Zou nu een gemiddelde concentratie meegenomen worden door de wind, dan zou er op de volgende tijdstap in element i een negatieve concentratie n/2 zijn. Om de vergelijkingen te kunnen toepassen, dienen er nog twee onbekenden bepaald te worden: de windsnelheid v en de maalstroomdiffusiecoëfficiënten Kh. Voor de wind wordt een logaritmisch patroon verondersteld met een gekende windsnelheid op een bepaalde referentiehoogte. De coëfficiënten Kh worden bepaald aan de hand van de formules in hoofdstuk 8 van het handboek over atmosferisch modelleren22. De voorwaarde dat er geen negatieve concentraties mogen ontstaan, creëert ook een stabiliteitscriterium waaraan de windsnelheid, de maalstroomdiffusiecoëfficiënten, de tijdstap en de grootte van het element zich moeten houden:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
28
2 K h, yy 2 K h, zz u v 2K dt h2,xx 1 dx dy dy 2 dz 2 dx
(25)
Deze voorwaarde wordt bekomen door te veronderstellen dat er op tijdstip t in het element rond het punt (x, y, z) een concentratie N(x, y, z, t) is , en dat de concentratie in alle andere elementen op dit tijdstip nul is. Hierdoor zal de flux naar de buurelementen het grootst zijn en zal de polluent maximaal uit het element verwijderd worden. De voorwaarde uit (25) houdt in dat de concentratie tijdens de volgende tijdstap niet kleiner dan nul mag zijn (of N(x, y, z, t + dt) ≥ 0). Voor de verspreiding van de polluenten in de straten geldt de analoge formule (12). Om het analogon van formule (23), (24) en (25) te bekomen dient men volgende substituties door te voeren: K h, xx Kh 0 0
0 K h, yy 0
0 0 0 0 0 0 0 0 en K h, zz 0 0 lv
(26)
v u, v,0 v u,0,0
(27)
Met deze substituties verkrijgen we: N x, t dt N x, t dtR( x, t )
dt J x x dx2 , t dt2 J x x dx2 , t dt2 dt J z x, t dt2 , dx dzlink
J x x
u0
dx 2
,t
J z x, t dt2
dt 2
uN x, t
uN x dx
(29)
u 0,
2lv N x, t N atm x, t dzlink dzatm
2lv u R( x, t ) dt 1 dt . N x, t dzlink dzlink dzatm dx
(28)
en
(30)
(31)
met dzlink de hoogte van het linkelement en dzatm de hoogte van het atmosfeerelement boven deze link. Voor formules (28) tot (31) is gebruik gemaakt van het feit dat in een straat slechts één dimensie van belang is, de x-richting genoemd, en dat elk straatelement met een atmosfeerelement, met concentratie Natm(x,t), is verbonden. Het atmosfeerelement waarmee het straatelement verbonden wordt is het atmosfeerelement boven het middelpunt van het straatsegment.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
29
De vergelijkingen tot zover gevonden, beschrijven de verspreiding van de polluenten in de atmosfeer en in een straat, kruispunten zijn echter nog niet behandeld. Om de verspreiding op een knoop te modelleren werd, net zoals in een straat, verondersteld dat de verspreiding enkel het gevolg is van de wind. Veronderstel een knoop waarop n linken uitkomen, de situatie voor een kruispunt met vier links is afgebeeld in figuur 13, elke link i heeft een richtingseenheidsvector ei die naar de knoop toewijst, een breedte dyi en een hoogte dzi, de windvector net boven de linken wordt gegeven door v. De windsnelheid in de straat wordt verondersteld v∙ei te zijn. De totale luchtflux die aan de beschouwde knoop de link verlaat (of ingaat als bij een negatieve waarde) wordt gegeven door: f i ,uit dyi dzi v ei ,
(32)
waarbij ρ de luchtdichtheid voorsteld die constant verondersteld wordt voor elke link.
e3
e1
v
e4 e2
figuur 13 – Een kruispunt waar vier links op uitkomen, elke link heeft een richtingseenheidsvector ei, de windvector v is ook afgebeeld in de figuur.
Er kunnen zich nu twee situaties voordoen ofwel is de som van alle fi,uit groter dan (of gelijk aan) nul, ofwel is ze kleiner dan nul. Indien de som groter is dan nul, komt er netto meer lucht toe vanuit de links dan er wordt opgenomen door de links. In dit geval wordt verondersteld dat de extra lucht de atmosfeer in geblazen wordt. Indien de som van de fi,uit kleiner is dan nul, dan zal er lucht vanuit de atmosfeer aangezogen worden. De netto flux vanuit de atmosfeer wordt f0,uit genoemd en wordt gegeven door: f 0,uit f i ,uit .
(33)
i
Uit deze luchtflux wordt nu de flux der polluenten berekend deze wordt gegeven door:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
Fi ,uit
30
N i f i ,uit dy dzi f i ,uit dy dzi
f i ,uit 0
N
j:F j , uit 0
j
f
f j ,uit ,
f i ,uit 0
(34)
k ,uit k : f k , uit 0
waarbij i, j, en k lopen van 0 tot n. Men verondersteld dus dat indien de wind in een link naar een knoop toe blaast, de polluenten worden meegenomen door de wind net als in formule (24) en (29), en dat indien de wind vanuit een knoop komt, de concentratieflux van de knoop naar de link evenredig is met de windsnelheid vermenigvuldigd met een gewogen gemiddelde van de concentratie in de linken waarvoor de wind naar de knoop toe blaast. 3.3.2. Implementatie van het model De inputgegevens van het model zijn gegevens die uit de Paramics-simulatie zijn gehaald (§3.2). Met deze gegevens wordt eerst het netwerk terug opgebouwd. De linken in dit netwerk bestaan uit rijen van vijf elementen zoals afgebeeld in figuur 14, met elk element i is een concentratie Ni geassocieerd, deze concentratie stelt de gemiddelde concentratie van de polluent in het element voor. Voor elke link worden ook elf vectoren gedefinieerd, zes voor de horizontale concentratieflux tussen de elementen genoteerd als Fx,i en vijf voor de verticale concentratieflux tussen de elementen en de atmosfeer genoteerd als Fz,i. Elke tijdstap dt, die gelijk wordt genomen aan 0,5s, worden eerst de fluxen Fx,i berekend volgens (29) en (34) en Fz,i volgens (30), vervolgens worden de concentraties Ni in de elementen aangepast volgens (28). Voor de externe processen die de concentratie beïnvloeden, R(x, t), gebruikt in (28), wordt enkel de productie van de polluenten door de DVU’s beschouwd. R(x, t) komt dus overeen met de uitstoot van de beschouwde polluent van alle DVU’s op het beschouwde segment van de link. Voor de karakteristieke menglente l wordt een waarde van 1m gebruikt26. De parallelle windsnelheid u is de parallelle component van de windsnelheid boven de daken, de orthogonale windsnelheid v is de orthogonale component hiervan. De windsnelheid boven de daken is een variabele parameter in het model. De waarde dx wordt gelijk gesteld aan de lengte van het segment, of een vijfde van de lengte van de link. De waarde dy is niet de echte breedte van de straat, voor dy werden de standaardwaarden van Paramics (ongeveer 3,5m per segment). De waarde van dz wordt verderop uitgelegd.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
31
Fz,0 Fx,0
N0
Fz,1 Fx,1
N1
Fz,2 Fx,2
N2
Fz,3 Fx,3
N3
Fz,4 Fx,4
N4
Fx,5
figuur 14 – Schematische voorstelling van hoe een link wordt gemodelleerd in het verspreidingsmiddel voor PM10 en NOx.
Bovenop het netwerk van linken, word ook een atmosfeer gemodelleerd, deze bestaat uit 51 elementen in de x-richting, 51 elementen in de y-richting en 5 elementen in de z-richting, dus 13005 elementen, deze elementen hebben als dimensies 67.9m×75.6m×10m. Aan elk element is een concentratie Ni,j,k verbonden, elke tijdstap wordt deze aangepast volgens formule (23) waarbij gebruik wordt gemaakt van de fluxen Fx,i,j,k, Fx,i+1,j,k, Fy,i,j,k, Fy,i,j+1,k, Fz,i,j,k en Fx,i,j,k+1. Deze fluxen worden gedefinieerd tussen de elementen. Deze fluxen dienen echter elke tijdstap eerst berekend te worden volgens (24). Voor de fluxen op de noordelijke, oostelijke, zuidelijke, westelijke en de bovenste zijde van het rooster wordt gebruik gemaakt van virtuele elementen, aangezien deze elementen buiten het rooster liggen. Deze elementen hebben een concentratie met een waarde van 90% van de concentratie van het naburig element. Zo wordt om Fx,0jk te berekenen gebruik gemaakt van N0jk en 0.9N0jk, deze randvoorwaarde trekt dus eigenlijk de polluenten uit het gebied. Het effect van de randvoorwaarde is echter te verwaarlozen, aangezien het transport van de polluenten vooral aangedreven zal zijn door de wind, en deze vorm van transport wordt niet beïnvloed door de randvoorwaarde. De fluxen aan de onderste zijde van het rooster worden vervangen door de fluxen Fz,i van de linken. Voor elk linkelement wordt gezocht naar het atmosfeerelement dat boven het middelpunt van het segment ligt, dit atmosfeerelement zal dan polluenten uitwisselen met het beschouwde linkelement. In figuur 15 wordt afgebeeld hoe de linken en de atmosfeer met elkaar verbonden worden.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
32
a) Ni+1,j+1,0
Ni,j+1,0 Fx,i+1,,j+1,0
Fy,i,j+1,0
Fy,i+1,j+1,0
Ni,j,0
Ni+1,j,0
Fx,i+1,,j,0
b)
Fx,i+1,,j+1,0 Fy,i+1,,j+1,0 Ni,j+1,1
Fz,i,j+1,1
Ni,j+1,0
Ni+1,j+1,1 Fz,i+1,j+1,1
Ni+1,j,1
Ni+1,j+1,0
Ni+1,j,0
Fz,i+1,j,1
Fx,i+1,,j+1,0 Fy,i+1,,j+1,0 Fz,0 N0
Fz,1 N1
Fz,2 N2
Fz,3 N3
Fz,4 N4
figuur 15 – Schematische afbeelding van hoe de linken met de atmosfeer verbonden zijn en hoe de atmosfeerelementen onderling verbonden zijn. De fluxen tussen linkelementen worden niet weergegeven. a) toont een bovenaanzicht en b) toont een zijaanzicht.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
33
De flux Fz,i wordt nu bereken aan de hand van (30), voor dzatm in deze formule wordt de hoogte van een atmosfeerelement, dz, genomen en voor dzlink de bouwhoogte. De bouwhoogte wordt gelijk gesteld aan 8m voor een link waar minder dan 70km/h gereden mag worden, in de veronderstelling dat zulke linken vooral tussen gebouwen liggen. De andere linken krijgen een bouwhoogte van 3m aangezien deze linken vooral autosnelwegen en linken zonder bebouwing zijn. De nieuwe concentraties Nij0 in de onderste atmosfeerelementen worden, volgens (16), gegeven door:
dt dt dt J x ,ij0 J x ,i 1 j 0 J y ,ik J y ,ij1 0 J z ,ij1 dx dy dz l segment wsegment dt J z , segment dxdydz segmentijk
N ij0, nieuw N 0 jk ,oud
(35)
De waardes die gebruikt worden voor de windsnelheid |v| en de maalstroomdiffusiecoëfficiënt in de z-richting Kh,zz, gebruikt in (24), worden gegeven in tabel 2 en zijn berekend volgens hoofdstuk 8 van het handboek over atmosferisch modelleren22. Om Kh,zz te berekenen is gebruik gemaakt van de windsnelheid boven de daken, die we zullen beschouwen als 10km∙h-1 of 25km∙h-1, en het verschil tussen de verticale temperatuurafname en de adiabatische verticale temperatuurgradiënt (§2.3). Er wordt verondersteld dat de temperatuur op 20m boven de bebouwing ofwel 2K is toegenomen ofwel 2K is afgenomen. De andere constanten om Kh,zz te berekenen zijn te vinden in het handboek22. De waarde van Kh,xx en Kh,yy werd gelijk gesteld aan 0.1Kh,zz, de juiste waarde voor deze constanten is echter niet te vinden in de literatuur. Voor de snelheid |v| werd een logaritmisch hoogteprofiel gekozen. Net boven de bebouwing wordt de waarde van v0 = 10km∙h-1 of v0 = 25km∙h-1 gekozen, indien het profiel tot 7,2 m onder de daken zou geëxtrapoleerd worden, zou een waarde van 0km∙h-1 bekomen worden. De snelheid in de straten is zoals hierboven vermeld dus gelijk aan de orthogonale projectie van v0 op de richtingsvector van de link. De code van het dispersiemodel is opgenomen in de Appendix, samen met extra uitleg.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
3. Opstellen van het model
34
tabel 2 – De waarden22 die gebruikt worden voor de maalstroomdiffusiecoëfficiënt Kh,zz en de windsnelheid |v|. Γ stelt het verschil tussen de effectieve temperatuurafname en de adiabatische verticale temperatuurgradiënt (§2.3) voor, v0 is de windsnelheid boven de bebouwing.
hoogte boven bebouwing h = 10m
20m
30m
40m
50m
v0 = 10km∙h-1, Γ = –0.1K∙m-1
4.82267
10.3620
17.0938
24.8384
33.4787
(m2∙s-1) v0 = 25km∙h-1, Γ = –0.1K∙m-1
7.90057
15.2673
23.6106
32.8375
42.8763
Kh,zz
v0 = 10km∙h-1, Γ = 0.1K∙m-1 v0 = 25km∙h-1, Γ = 0.1K∙m-1
0.355836 0.387342 0.401341 0.409252 0.414338 4.74151
hoogte boven bebouwing h = 5m
7.09395 15m
8.81726 25m
10.1341 35m
11.1730 45m
|v|
v0 = 10km∙h-1 = 2.778 m2∙s-1
3.36348
4.05177
4.48729
4.80661
5.05885
(m∙s-1)
v0 = 25km∙h-1 = 6.944 m∙s-1
8.40870
10.1294
11.2182
12.1652
12.6471
3.4.
Propagatiemodel geluid
Om de geluidsniveaus in het simulatiegebied te modelleren, wordt gebruik gemaakt van het Bass2.5D-model10 dat voorhanden was in de vakgroep. Het model is een bundel-volgend model (Eng.: beam tracing). Dit soort modellen is gebaseerd op de stralentrekmodellen (Eng.: ray tracing). In de plaatst van discrete stralen worden in het model bundels van stralen gevolgd, op deze manier kunnen de alle paden tussen zender en ontvanger op een meer efficiënte manier gevonden worden. In deze thesis wordt het model toegepast met de geluidsemissiedata verzameld over één gesimuleerd uur, zoals beschreven in §3.2. De punten waarvoor de emissies bekend zijn, worden emissiepunten genoemd. In het model wordt rekening gehouden met één of meerdere reflecties tegen objecten in de omgeving, zoals gebouwen. Om deze reden worden ook gegevens over de gebouwen in het model gebruikt. In dit eindwerk zal slechts één reflectie tegen de gebouwen beschouwd worden. De immissiepunten, dit zijn de ontvangerspunten waar het geluidsniveau gemeten wordt, zijn verspreid over een rooster met vier meter tussen elk punt, verder is er ook minstens één immissiepunt op elke façade van een individuele woning, elk immissiepunt is geplaatst op een hoogte van 4m. Op deze manier wordt een geluidskaart geconstrueerd, waarop de gemiddelde geluidsniveaus over een uur gegeven worden.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen 4.1.
Fijn stof en stikstofoxides
In figuur 16 tot 19 staan resultaten van vier verschillende simulaties voor de verspreiding van de polluenten. In deze figuren zijn de gemiddelde concentratie van PM10, figuur 16 en 18, en NOx, figuur 17 en 19, weergeven. De concentraties zijn uitgemiddeld over de vier gesimuleerde uren (6h – 10h) en worden gegeven voor zes verschillende hoogteniveaus: op grondniveau en op 5m, 15m, 25m, 35m en 45m boven de bebouwing. In figuur 16 en 17 is de atmosfeer stabiel en wordt een zuidwestenwind van 10km∙h-1 boven de daken gemodelleerd, in figuur 17 en 18 is de atmosfeer onstabiel en is er een zuidoostenwind van 25km∙h-1. Op deze figuren is te zien andere kleurencode is gebruikt voor de concentraties in de atmosfeer dan voor de concentraties op grondniveau. Dit is omdat de maximum waardes in atmosfeer drie grootteordes kleiner zijn, de polluenten blijven dus duidelijk in de straten hangen en worden daar met de wind meegenomen. De reden dat de waardes is de atmosfeer zo klein zijn, zou te maken kunnen hebben met het feit dat het simulatiegebied te klein is en de polluenten het gebied verlaten voordat er een grotere concentratie opgebouwd wordt in de atmosfeer. In de figuren is de verspreiding van de polluenten in de atmosfeer echter wel goed te zien als een soort wolk die meegenomen wordt door de wind en uitbreidt in de dwarsrichting en de hoogte. Aangezien de concentraties van de polluenten in de atmosfeer zo laag zijn en de concentraties in de linken slechts zeer weinig zullen beïnvloeden, zullen deze concentraties verder in dit werk niet meer besproken worden. Op de figuren is verder te zien dat vooral de straten die parallel lopen met de windrichting vervuild zijn. Dit kan te verklaren zijn doordat er volgens vergelijking (30) enkel een concentratieflux naar de atmosfeer is indien de wind loodrecht op de richting van de straat staat. De
polluenten
in
de
parallelle
straten
worden
dus
meegenomen
door
parallelle
windwindcomponent en zullen doorheen de straat getransporteerd worden. Dit is echter niet intuïtief en zou kunnen duiden op een foute aanname in het model.
35
4. Resultaten en implementatie van de verspreidingsmodellen
36
figuur 16 – Gemiddelde concentraties van PM10 over vier uur in het gemodelleerde gebied, op grondniveau en vijf hoogtes in de atmosfeer. De wind komt uit het zuidwesten en heeft een snelheid van 10km∙h-1 boven de daken en de atmosfeer is stabiel in de simulatie. De waarden in respectievelijk de x- en de y-as van de atmosferische concentratieplots zijn de afstanden in respectievelijk dx en dy tot de respectievelijke minimale x- en y-coördinaat van het gemodelleerde gebied.
figuur 17 – Gemiddelde concentraties van NO x over vier uur in het gemodelleerde gebied, op grondniveau en vijf hoogtes in de atmosfeer. De wind komt uit het zuidwesten en heeft een snelheid van 10km∙h-1 boven de daken en de atmosfeer is stabiel. De waarden in respectievelijk de x- en de y-as van de atmosferische concentratieplots zijn de afstanden in respectievelijk dx en dy tot de respectievelijke minimale x- en y-coördinaat van het gemodelleerde gebied.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
37
figuur 18 – Gemiddelde concentraties van PM 10 over vier uur in het gemodelleerde gebied, op grondniveau en vijf hoogtes in de atmosfeer. De wind komt uit het zuidoosten en heeft een snelheid van 25km∙h-1 boven de daken en de atmosfeer is onstabiel. De waarden in respectievelijk de x- en de y-as van de atmosferische concentratieplots zijn de afstanden in respectievelijk dx en dy tot de respectievelijke minimale x- en y-coördinaat van het gemodelleerde gebied.
figuur 19 – Gemiddelde concentraties van NO x over vier uur in het gemodelleerde gebied, op grondniveau en vijf hoogtes in de atmosfeer. De wind komt uit het zuidoosten en heeft een snelheid van 25km∙h-1 boven de daken en de atmosfeer is onstabiel. De waarden in respectievelijk de x- en de y-as van de atmosferische concentratieplots zijn de afstanden in respectievelijk dx en dy tot de respectievelijke minimale x- en y-coördinaat van het gemodelleerde gebied.
In figuur 20-a staan de uitgemiddelde waarden op grondniveau van een simulatie waarbij de verspreiding van PM10 werd gemodelleerd met een onstabiele atmosfeer en een zuidoostenwind met een snelheid van 10km∙h-1. In figuur 20-b tot -f staan de individuele blootstellingen voor vijf DVU’s. De blootstelling is gelijk aan de ogenblikkelijke concentratie in het segment van de link waarop de beschouwde DVU zich bevindt. De afgebeelde DVU zijn semi-willekeurig gekozen uit
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
38
de 479 DVU’s waarvoor de posities zijn opgeslagen (§3.2). Een toevalsgenerator koos de DVU’s uit en enkel de DVU’s die lang genoeg in het simulatiegebied waren, die het gebied betraden op een tijdstip waarop er al een beduidende concentratie van de polluenten in de linken was, en die een significant ander traject dan de andere gekozen DVU’s hadden, werden uitgekozen. De gekozen DVU’s zijn DVU 110, 179, 189, 305 en 422 en ze betraden het simulatiegebied om respectievelijk
7:22:58,5h,
7:50:30,0h,
7:54:39,5h,
8:40:37,0h
en
9:29:48.5h.
In
de
blootstellingsgrafieken in functie van de tijd is met een groene lijn de ogenblikkelijke blootstelling aangegeven. De rode lijn duidt de gemiddelde blootstelling over de vorige minuut aan. Voor de groene lijn is verondersteld dat er elke tijdstap van een halve second 1% nieuwe lucht, met de polluentenconcentratie uit de omgeving, wordt aangevoerd in de DVU. Deze nieuwe lucht vermengt zich dan met de ogenblikkelijke concentratie in de DVU en zo wordt de nieuwe concentratie in de DVU berekend. In figuur 20-a is, zoals hierboven vermeld, te zien dat vooral de straten die parallel met de wind lopen vervuild zijn. Verder is er ook een stijging van de concentratie waar de nemen aan enkele kruispunten op de linken. Druk bereden banen zijn, zoals te verwachten, het meest vervuild en vervuiling dringt slechts zeer weinig door in de omliggende straten. Vergelijken we figuur 20-a met blootstelling in functie van de plaats in b-f, dan zien we dat de blootstelling voor elke DVU op elke positie over het algemeen hoger is dan de gemiddelde concentratie, vooral aan de kruispunten met verkeerslichten. Dit is te verklaren doordat de verkeerslichten ervoor zorgen dat de DVU’s in golven vertrekken aan deze kruispunten en dus in elkaars buurt blijven. Hierdoor bevinden ze zich op de linken op de momenten waarop de concentratie het hoogst is. Dit effect kan niet afgeleid worden puur op basis van kaarten met de gemiddelde vervuiling en hierdoor is de berekening van de ogenblikkelijke blootstelling interessant. Verder is op de figuren ook te zien dat de ogenblikkelijke blootstelling sterk fluctueert. Een gemiddelde concentratie over een volledige trip geeft dus veel minder informatie over de blootstelling. Aangezien er aanwijzingen zijn dat een korte hevige blootstelling erger is voor de gezondheid dan een langdurige blootstelling met een even grote gemiddelde concentratie over de tijd (§2.2.1), zijn deze effecten belangrijk.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
39
a – Gemiddelde concentratie PM 10 over vier uur 2 µg∙m-3
20 µg∙m-3
200 µg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 20 – Gemiddelde concentraties van PM 10 op grondniveau (a) en de blootstelling aan PM 10 voor vijf verschillende DVU’s (b-f). Links in de figuren (b-f) staat de ogenblikkelijke blootstelling in functie van de positie en de grotere groene bol duidt het beginpunt aan. Rechts staat de blootstelling in functie van de tijd hoelang het de DVU in het simulatiegebied is. De groene lijn (–) in de blootstellingsdiagrammen geeft de ogenblikkelijke blootstelling, de blauwe gepunte lijn (∙∙∙) is de gemiddelde blootstelling voor de vorige 60s en de rode streepjeslijn (--) is afgeleid van een mengmodel dat in de tekst staat uitgelegd. Al deze grafieken gelden voor een simulatie met wind uit het zuidoosten van 10 km∙h-1 en een onstabiele atmosfeer.
In figuur 21, staan de resultaten voor de verspreiding van NOx onder dezelfde condities als gebruikt in figuur 20. In figuur 22 wordt een vergelijk gegeven tussen figuur 21 en figuur 20. In deze figuren is duidelijk te zien dat de trend voor beide polluenten dezelfde is.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
40
a – Gemiddelde concentratie NOx over vier uur 50 µg∙m-3
500 µg∙m-3
5 mg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 21 – Gemiddelde concentraties van NOx op grondniveau (a) en de blootstelling aan PM 10 voor vijf verschillende DVU’s (b-f). De details van deze figuur zijn dezelfde als deze in figuur 20.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
41
a – Blootstelling DVU 110
b – Blootstelling DVU 179
c – Blootstelling DVU 189
d – Blootstelling DVU 305
e – Blootstelling DVU 422
figuur 22 – Vergelijking tussen de blootstelling aan PM 10 en NOx. De blauwe lijnen tonen de gegevens uit figuur 20, de rode lijnen deze uit figuur 21. Volle lijnen (–) geven de ogenblikkelijke concentraties, gestipte lijnen (∙∙∙) de minuutgemiddeldes en streepjeslijnen (--) de concentraties bekomen door het mengmodel. De concentraties van NOx zijn door 15 gedeeld om een beter vergelijk met de PM 10 concentraties mogelijk te maken.
In de simulaties is er de mogelijkheid om de stabiliteit van de atmosfeer, de windsnelheid en de windrichting aan te passen. De effecten van deze aanpassingen zullen nu onderzocht worden. De condities voor de simulatie gebruikt om figuur 20 en figuur 21 te maken worden nu genomen als referentiecondities en telkens zal er een aanpassing gebeuren aan de stabiliteit van de atmosfeer, de windsnelheid of de windrichting. In figuur 23 respectievelijke figuur 24 worden de resultaten getoond van de simulatie waarbij de windsnelheid is verhoogd tot 25km∙h-1 voor PM10 respectievelijk NOx. In figuur 25 en figuur 26 staan de resultaten voor noorderwind. In figuur 27 staat het verschil in blootstelling aan PM10 tussen de referentiesituatie en de situatie met een stabiele atmosfeer voor de vijf DVU’s.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
42
a – Gemiddelde concentratie PM 10 over vier uur 2 µg∙m-3
20 µg∙m-3
200 µg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 23 – Gemiddelde concentraties van PM 10 op grondniveau (a) en de blootstelling aan PM 10 voor vijf verschillende DVU’s (b-f). De details van deze figuur zijn dezelfde als deze in figuur 20, enkel de windsnelheid boven de daken is aangepast van 10km∙h-1 tot 25km∙h-1. De lichter gekleurde lijnen in de figuur zijn de data van figuur 20.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
43
a – Gemiddelde concentratie NOx over vier uur 50 µg∙m-3
500 µg∙m-3
5 mg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 24 – Gemiddelde concentraties van NOx op grondniveau (a) en de blootstelling aan NOx voor vijf verschillende DVU’s (b-f). De details van deze figuur zijn dezelfde als deze in figuur 20, enkel de windsnelheid boven de daken is aangepast van 10km∙h-1 tot 25km∙h-1. De lichter gekleurde lijnen in de figuur zijn de data van figuur 21.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
44
a – Gemiddelde concentratie PM 10 over vier uur 2 µg∙m-3
20 µg∙m-3
200 µg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 25 – Gemiddelde concentraties van PM 10 op grondniveau (a) en de blootstelling aan PM 10 voor vijf verschillende DVU’s (b-f). De details van deze figuur zijn dezelfde als deze in figuur 20, enkel de windrichting is aangepast van zuidoostenwind naar noordenwind. De lichter gekleurde lijnen in de figuur zijn de data van figuur 20.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
45
a – Gemiddelde concentratie NOx over vier uur 50 µg∙m-3
500 µg∙m-3
5 mg∙m-3
b – Blootstelling DVU 110
c – Blootstelling DVU 179
d – Blootstelling DVU 189
e – Blootstelling DVU 305
f – Blootstelling DVU 422
figuur 26 – Gemiddelde concentraties van NOx op grondniveau (a) en de blootstelling aan NOx voor vijf verschillende DVU’s (b-f). De details van deze figuur zijn dezelfde als deze in figuur 20, enkel de windrichting is aangepast van zuidoostenwind naar noordenwind. De lichter gekleurde lijnen in de figuur zijn de data van figuur 21.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
46
a – Verschil blootstelling DVU 110
b – Verschil blootstelling DVU 179
c – Verschil blootstelling DVU 189
d – Verschil blootstelling DVU 305
e – Verschil blootstelling DVU 422
figuur 27 – Het verschil in de blootstelling aan PM 10 tussen referentiecondities en situatie voor een stabiele atmosfeer. De volle lijn geeft het ogenblikkelijke verschil, de streepjeslijn geeft een minuutgemiddelde en de bolletjeslijn de data berekend volgens het mengmodel.
In figuur 23 en figuur 24 is het effect van de windsnelheid duidelijk te zien. De hogere snelheid zorgt ervoor dat de blootstelling met ongeveer een factor twee daalt. Dit is te verwachten aangezien meer wind ervoor zorgt dat de vervuiling makkelijker afgevoerd kan worden. Het effect van de windrichting, getoond in figuur 25 en figuur 26, is zoals eerder vermeld dat straten parallel met de windrichting meer vervuild zijn dan straten loodrecht op de windrichting, dit is duidelijk te zien op de figuren. Het is echter mogelijk dat deze regel voor de richting van de straat ten opzichte van de windrichting niet volledig klopt met de realiteit. Mogelijk moet in formule (30) v vervangen worden door v + cte met cte een constante zodat ook de parallelle straten lucht uitwisselen met de atmosfeer. De stabiliteit van de atmosfeer heeft slechts een miniem effect op de blootstelling zoals getoond in figuur 27 voor PM10. Dit is waarschijnlijk te verklaren doordat de atmosfeer te klein is en er geen grote hoeveelheid polluenten in de atmosfeer kan ontstaan aangezien de vervuiling te snel wordt meegenomen door de wind. In figuur 28 worden blootstellingsdiagrammen voor PM10 voor vier verschillende fietstrips afgebeeld. Deze fietstrips zijn eigenlijk vertraagde trips van de DVU’s, ze werden bekomen door
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
47
trips die uit de Paramics-simulatie werden gehaald met een factor vier te vertragen. In de verkeerssimulatie hebben deze vier fietsroutes dus geen effect gehad. Indien de DVU waarop de fietstrips gebaseerd zijn in de file stond, rijden deze fietsen dus onrealistisch traag. Om een beter beeld te bekomen moeten fietsen in de verkeerssimulatie opgenomen worden. Toch geven de grafieken in figuur 28 een beeld van hoe de blootstelling van de fietsers aan PM 10 verloopt in functie van tijd en ruimte. Vooral in b) zijn de effecten van individuele passerende DVU’s goed waar te nemen. Deze individuele DVU’s zorgen voor een piek in de blootstelling die zich onmiddellijk vormt om dan exponentieel af te nemen. De variatie in de blootstelling met de tijd en plaats vallen sterk op in de figuren. De route in b) om 7: 30 heeft bijvoorbeeld de eerste honderd seconden een blootstelling aan PM10 van meer dan 80µg∙m-1, terwijl daarna de blootstelling aan PM10 nauwelijks boven de 80µg∙m-1 komt, in d) zijn gelijkaardige effecten waar te nemen.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
48
2 µg∙m-3
20 µg∙m-3
200 µg∙m-3
7:30
8:30
9:30
a)
b)
c)
d)
figuur 28 – Blootstelling aan PM10 voor vier fietstrips met drie verschillende vertrektijdstippen. In de tijd-blootstellingsdiagrammen rechts is de rode lijn (–) in de blootstellingsgrafiek voor de trips met vertrektijdstip 7:30, de groene lijn (–) voor deze met vertrektijdstip 8:30 en de blauwe lijn (–) voor deze met vertrektijdstip 9:30. Voor deze figuren worden referentieomstandigheden verondersteld.
4.2.
Geluid
In figuur 29 en figuur 30 staan de gesimuleerde geluidsniveaus in het projectgebied weergegeven. Op deze figuren is duidelijk te zien dat het geluidsniveau vooral hoog zijn in de straten waar er veel verkeer is. Op de autosnelwegen wordt over het algemeen een niveau berekend van 60dB(A) tot 80dB(A) met enkele uitschieters tot 100dB(A). Deze uitschieters zijn
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
49
waarschijnlijk te verklaren doordat de immissiepunten hier te dicht bij de emissiepunten liggen waar de totale energie van een linksegment met een lengte tot 25m wordt vrijgegeven. Verder is te zien dat het geluidsniveau op de grotere stadswegen waardes tussen de 50dB(A) tot 70dB(A) aanneemt. In de kleinere straatjes waar slechts weinig verkeer komt is het geluidsniveau 40dB(A) tot 60dB(A). Buiten het simulatiegebied neemt het geluidsniveau al snel af tot 10dB(A) tot 30dB(A) wat erop duidt dat het effect van het geluid geproduceerd door de DVU’s, slechts klein is op grotere afstanden. De blootstelling aan geluid lijkt dus een sterk lokaal probleem. Voor het geluid zijn enkel gemiddelde waardes over een uur berekend, aangezien een geluidskaart maken volgens het Bass2.5D-model tijdsintensief is. Om de berekening van de geluidsniveaus in functie van de tijd te maken dient een ander model ontwikkeld te worden. Een ander model zou bijvoorbeeld de geluidsniveaus kunnen schatten enkel op basis van de afstand tot de bron van het geluid. Zulk een model zou de realiteit echter minder goed benaderen, een punt 50m verderop in de straat zou bijvoorbeeld even sterk beïnvloed worden als een punt dat in een parallelstraat 50m verder ligt. Daartegenover staat dat het model veel minder tijdsintensief is en er voor verschillende situaties gemakkelijk een geluidskaart kan gemaakt worden en de blootstelling in functie van de tijd gemakkelijk berekend kan worden. Nog een ander model zou eruit kunnen bestaan om voor elk emissie-immissiekoppel een impulsantwoord te berekenen of te schatten op basis van metingen. Om dit model op te kunnen stellen zou echter veel voorbereidend werk moeten gedaan worden om voor elke combinatie van twee punten het impulsantwoord te berekenen. Om het rekenwerk te verminderen zouden enkel de emissie-immissiekoppels met een kleine onderlinge afstand beschouwd kunnen worden. Eenmaal dit gedaan is, kunnen gemakkelijk en snel verschillende situaties onderzocht worden.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
50
figuur 29 – Gemiddelde gesimuleerde geluidsniveaus tussen 6 en 7 uur. Voor een beschrijving van de emissiepunten wordt verwezen naar §3.4.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
4. Resultaten en implementatie van de verspreidingsmodellen
51
figuur 30 – Gemiddelde gesimuleerde geluidsniveaus tussen 9 en 10 uur. Voor een beschrijving van de emissiepunten wordt verwezen naar §3.4.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
5. Besluit In deze thesis is een model opgesteld om de verspreiding van twee polluenten, PM 10 en NOx, uitgestoten in het verkeer in een deel van Gentbrugge te simuleren en werd een model gebruikt om in dit gebied de geluidsniveaus van het verkeersgeluid te berekenen. PM10 en NOx zijn stoffen die schadelijk zijn en hun aanwezigheid in de lucht kan aanleiding geven tot onder andere hart- en vaatziekten en ademhalingsproblemen. Door hun aanwezigheid in de stedelijke lucht stijgt de mortaliteit in de steden. Ook geluidsoverlast schaadt de gezondheid, door alle vormen van geluidsoverlast gaan er elk jaar meer dan een miljoen DALY’s, of door beperking aangetaste levensjaren, verloren in Europa. Geluidsoverlast leidt onder andere tot hart- en vaatziekten, maar het effect van de geluidsoverlast dat de meeste mensen beïnvloed zijn slaapstoornissen en ergernis. Om de verspreiding van de polluenten te berekenen, diende eerst data gevonden te worden over de bronnen van deze polluenten. In dit werk werd enkel het verkeer beschouwd als bron voor PM10, NOx en geluid. De emissies van de polluenten werden gehaald uit een verkeerssimulatie in het microsimulatieprogramma Paramics. In Paramics werd het stratenplan van een deel van Gentbrugge geïmplementeerd wat leidde tot een netwerk met 451 knopen en 567 links. Op dit netwerk werden bijna 50000 DVU’s gemodelleerd die de wagens in de reële verkeerssituatie voorstellen. Elke DVU in dit netwerk had een oorsprong en een bestemming en voor het bepalen van de oorsprong en bestemming voor de verschillende DVU’s werden gegevens gebruikt over de reële verplaatsingen in Gent. De verkeerssimulatie leidde uiteindelijk tot data over de emissies van de polluenten en deze data konden gebruikt worden in het verspreidingsmodel voor NOx en PM10 en het model om de geluidsniveaus in Gentbrugge ten gevolge van het verkeer te bepalen. Voor het verspreidingsmodel werd het netwerk gediscretiseerd en werd een atmosfeer van 50m hoog toegevoegd. Ook de tijd werd gediscretiseerd en op elke tijdstap werd de vervuiling in elk segment van elke link en elk atmosfeerelement berekend. Op deze manier konden vervuilingskaarten opgesteld worden die de concentraties van NOx en PM10 in de straten en de atmosfeer uitgemiddeld over vier uur weergaven. Op deze kaarten was te zien dat de concentraties in de atmosfeer zeer klein en verwaarloosbaar zijn ten opzichte van de concentraties in de straten. De concentratie van de polluenten in de atmosfeer lijkt dus eerder het gevolg van andere bronnen of van het gecumuleerde effect van verschillende bronnen op grote afstanden dan van de korteafstandseffecten van het lokale verkeer. Er kon ook gezien worden dat een hogere windsnelheid ervoor zorgde dat er minder vervuiling in de straten bleef hangen. Daarnaast zijn vooral de straten die parallel met de windrichting lopen het meest vervuild, in straten loodrecht op de windrichting
52
5. Besluit
53
wordt er gemakkelijker lucht uitgewisseld met de atmosfeer aangezien er wervels ontstaan. Dit is een effect dat misschien overschat wordt door het model en verder onderzoek naar dit effect is nodig. Wat ook opviel in de kaarten was dat de vervuiling zeer lokaal was. Zijstraten van grote straten hadden veel kleinere concentraties van de polluenten. Vooral aan kruispunten van drukkere banen was een hoge concentratie waar te nemen. Naast deze vervuilingskaarten die gemiddelde waardes van de concentraties van de polluenten geven, werden ook blootstellingsdiagrammen opgesteld. Deze diagrammen gaven de concentratie weer van de polluenten in de lucht rondom het beschouwde DVU in functie van de positie en de tijd. Op deze manier was het mogelijk om een inzicht te krijgen op de ogenblikkelijke blootstelling van de DVU’s aan de vervuilende stoffen. Op deze diagrammen was duidelijk te zien dat de blootstelling aan de polluenten sterk fluctueerde in tijd en ruimte. De blootstelling op elke plaats leek steeds groter te zijn dan verwacht volgens de gemiddelde vervuilingskaarten. Andere effecten van de blootstellingsdiagrammen kwamen overeen met de vervuilingskaarten. Tenslotte werden ook geluidkaarten opgesteld die de gemiddelde geluidsniveaus weergeven voor een uur. Op deze kaarten was te zien dat het geluidsniveau slechts lokaal beïnvloed wordt. Op de autosnelwegen en de grote wegen werden geluidsniveaus van meer dan 60dB voorspeld, maar in de kleinere straatjes werd een lager geluidsniveau voorspeld. Net buiten het simulatiegebied zouden de geluidsniveaus veroorzaakt door het gesimuleerde verkeer niet meer 30dB bereiken, tenzij bij open ruimte.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Bibliografie 1
A. Seaton, W. Macnee, K. Donaldson, D. Godden, “Particulate air pollution and acute health effects,” the Lancet, 345, pp. 176-178, 1995. 2 M. Riediker et al., “Particulate matter exposure in cars is associated with cardiovascular effects in healthy young men,” American journal of respiratory and critical care medicine, 169, pp. 934-940, 2004 3 A. Chaloulakou, I. Mavroidis, I. Gavriil, “Compliance with the annual NO 2 air quality standards in Athens. Required NOx levels and expected health implications,” Atmospheric environment, 42, pp. 454-465, 2008. 4 S. H. Downs et al., “Reduced exposure to PM10 and attenuated age-related decline in lung function,” The New England journal of medicine, 357, 23, pp. 2338-2347, 6 december 2007. 5 R. B. Devlin et al., “Time-dependent changes of inflammatory mediators in the lungs of humans exposed to 0.4 ppm ozone for 2 hr: A comparison of mediators found in bronchoalveolar lavage fluid 1 and 18hr after exposure,” Toxicology and applied pharmacology, 138, pp. 176-185, 1996. 6 WHO Regional Office for Europe, Burden of environmental disease from environmental noise: quantification of healthy life years lost in Europe. Kopenhagen, Denemarken: WHO Regional Office for Europe, 2011. 7 IRCEL – CELINE, “Homepage IRCEL – CELINE Belgium,” IRCEL – CELINE. [Online]. Beschikbaar: http://www.irceline.be. [Bezocht: 12 augustus 2011]. 8 Michael Jerrett et al., “A review and evaluation of intraurban air pollution exposure models,” Journal of exposure analysis and environmental epidemiology, 15, pp. 185-204, 4 augustus 2004. 9 R. A. Michaels en M. t. Kleinman, “Incidence and apparent health significance of brief airborne particle excursions,” Aerosol science and technology, 33, pp 93-105, 2000 10 B. de Greve, T. De Muer, D. Botteldooren, “Outdoor beam tracing over undulating terrain,” Forum Acusticum 2005, Budapest, Hongarije, 2005. 11 International Microsimulation Association, “What is Microsimulation?” International Microsimulation Association. [Online]. Beschikbaar: http://www.microsimulation.org/IMA/What%20is%20microsimulation.htm. [Bezocht: 29 juni 2011]. 12 G. Duncan, “Paramics Technical report: Car-Following, Lane-changing and Junction Modelling,” Quadstone Ltd., juli 1998, [Online]. Beschikbaar: http://www.paramics-online.com/paramics-library.php. [Bezocht: 28 juni 2011]. 13 F. Bourguignon en A. Spadaro, “Microsimulation as a tool for evaluation redistribution policies,” ECINEQ, 2006-20, 2006. 14 L. Xiong en X. Ma, “Forecasting China’s medical insurance policy for urban employees using a microsimulation model,” Journal of Artificial Societies and Social Simulation, 2007, [Online] vol. 10, no. 1. Beschikbaar: http://jasss.soc.surrey.ac.uk/10/1/8.html. [Bezocht: 22 juli 2011]. 15 I. Piper, D. Keep, T. Green and I. Zhang, “Application of microsimulation to the modelling of terrorist attacks,” gepresenteerd te Informatica (Slovenië), 2010, pp.141-150. 16 SIAS Transport Planners, “A History of S-Paramics,” [Online]. Beschikbaar: http://www.sias.com/ng/spoverview/sphistory.htm. [Bezocht: 26 juli 2011]. 17 B. J. N. Wylie, G. Cameron, M. White, M. Smith en D. McArthur, “Paramics: parallel microscopic traffic simulator,” 2nd European Connection Machine Users meeting, 1993. 18 Quadstone Paramics Ltd., “The Paramics Manuals”, 2009. 19 H. T. Fritzsch, “A model for traffic simulation,” Traffic engineering and control, 35(5), pp 317-321, 1994. 20 J. J. Olstam en A. Tapani, “Comparison of car-following models,” VTI meddelande, 960A, 2004. 21 B. Brunekreef, S. T. Holgate, “Air pollution and health,” the Lancet, 30, pp. 1233-1242, 19 oktober 2002. 22 M. Z. Jacobson, Fundamentals of atmospheric modelling, tweede editie, New York: Cambridge University Press, 2005. 23 A. Peters, S. von Klot, M. Heier, I. Trentinaglia, A. Hörmann, E. Wichmann en H. Löwel, “Exposure to traffic and the onset of myocardial infarction,” The New England journal of medicine, 351, 17, pp. 1721-1730, 21 oktober 2004. 24 H. Mukae et al., “The effect of repeated exposure to particulate air pollution (PM 10) on the bone marrow,” American journal of respiratory and critical care medicine, 163, pp. 201-209, 2001. 25 B. Peeters en G. van Blockland, “The noise emission model for european road traffic,” IMAGINE. [Online]. Beschikbaar: http://www.imagine-project.org/bestanden/IMA55TR-060821-MP10%20%20IMAGINE%20Deliverable%20D11.pdf. [Bezocht: 2 augustus 2011]. 26 C. Mensink, A. Colles, L. Janssen en J. Cornelis, “Integrated air quality modelling for the assessment of air quality in streets against the council directives,” Atmospheric Environment, vol. 37, pp. 5177-5184, 25 juli 2003. 27 P. Sahm et al., “Intercomparison of numerical urban dispersion models – part I: street canyon and single building configurations,” Water, air and soil pollution: Focus, 2, pp. 587-601, 2002.
54
Bibliografie
55
28
D. Botteldooren, B. De Coensel en T. De Muer. “The effect of traffic flows on urban soundscape dynamics and how to analyze it.” In Proceedings of the 18th International Congress on Acoustics (ICA), Kyoto, Japan, April 2004. 29 Google, “Google maps,” Google, 2011, [Online]. Beschikbaar: http://maps.google.be/maps. 30 Michelin, “ViaMichelin: route, plattegrond, toeristische gids, hotels, restaurants, wegenkaart, nederland,” Michelin, 2011, [Online]. Beschikbaar: http://nl.viamichelin.be. 31 Vzw Wegcode, “Koninklijk besluit van 1 december 1975 houdende: Algemeen reglement op de politie van het wegverkeer en van het gebruik van de openbare weg (B.S. 9-12-1975), 1 juli 2010, [Online]. Beschikbaar: http://www.wegcode.be/pdf/wegcode/01-12-1975.pdf. [Bezocht: 31 juli 2011]. 32 P. De Groote, “RE: Informatie over de afstelling van verkeerslichten; thesis: Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer.” Persoonlijke e-mail (10 maart 2011). 33 W. Van Hove, “RE: Informatie over de afstelling van verkeerslichten; thesis: Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer.” Persoonlijke e-mail (4 maart 2011). 34 D. Botteldooren, L. Dekoninck en D. Gillis, “The influence of traffic noise on appreciation of the living quality of a neighborhood,” Int. J. Environ. Res. Public Health, 8, pp. 777-798, 2011. 35 Afdeling Verkeerscentrum van het Departement Mobiliteit en Openbare Werken van de Vlaamse Overheid, “Verkeersgegevens voor wetenschappelijk onderzoek, educatieve doeleinden of studies zonder commercieel doel,” versie 0.1, 15 januari 2010. 36 Python software foundation, “Python programming language – official website,” Python software foundation, 2011. [Online]. Beschikbaar: http://www.python.org. [Bezocht: 1 augustus 2011]. 37 N. E. Ligterink en R. De Lange, “Refined vehicle and driving-behavior dependencies in the VERSIT+ emission model,” Rijksoverheid Nederland. [Online]. Beschikbaar: http://www.emissieregistratie.nl/ERPUBLIEK/misc/Documenten.aspx?ROOT=Lucht (Air)\Verkeer en Vervoer (Transport). [Bezocht: 2 augustus 2011]. 38 D. Botteldooren en K. Cools, Computational solution of wave problems, gedoceerd te Gent: Universiteit Gent, 2010.
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
A. Appendix: Inputbestanden en broncode van het dispersiemodel In deze appendix worden de inputbestanden en de broncode van het dispersiemodel getoond. De inhoud van de inputbestanden werd reeds zeer beknopt besproken in §3.2. De inputbestanden worden zowel in het dispersiemodel voor PM10 en NOx als in het propagatiemodel voor het geluid gebruikt. De algemene werking van het dispersiemodel werd reeds gegeven in §3.3, in deze appendix wordt de broncode van het model getoond en wordt een verdere uitleg gegeven over de werking.
A.1.
De inputbestanden
De inputbestanden die uit de Paramics-simulatie worden gehaald zijn: Nodes.txt, Links.txt, PM10.txt, NOx.txt, 4 noise#-bestanden en 497 Vehicle###.txt-bestanden. In deze paragraaf volgt voor elk bestand een korte uitleg, gevolgd door een voorbeeld van de inhoud. Nodes.txt: In dit bestand worden voor elke knoop een identificatienummer en de twee positiecoördinaten opgeslagen. De eerste 20 lijnen van nodes.txt: NodeNr
xpos
ypos
0
106538.156250
192091.156250
1
107016.968750
191684.875000
2
107007.132813
192451.250000
3
105870.023438
192620.593750
4
105761.632813
190756.484375
5
105915.000000
192359.968750
6
106224.226563
192366.718750
7
105391.593750
190341.218750
8
105948.039063
193545.109375
9
106839.226563
192189.468750
10
106900.671875
191603.093750
11
105977.218750
193122.890625
12
107568.796875
191941.203125
13
106999.773438
192321.281250
14
105893.460938
192656.546875
15
105738.937500
191198.250000
16
105632.781250
192249.906250
17
105558.828125
190249.000000
18
106835.406250
191863.187500
19
106035.953125
193144.031250
…
Links.txt:
In
dit
bestand
worden
voor
elke
link
een
identificatienummer,
het
identificatienummer van de begin- en eindknoop, het aantal lanen, de lengte, de breedte en de snelheid opgeslagen. De eerste 20 lijnen van links.txt:
A-1
Appendix: Inputbestanden en broncode van het dispersiemodel
A-2
LinkNr
startNodeNr endNodeNr Lanes
length
width
speed
0
294
264
4
65.217659
14.000000
70.000000
1
208
431
1
36.022503
3.700000
50.000000
2
102
301
2
42.965996
7.400000
50.000000
3
87
217
2
191.829987
7.300000
50.000000
4
436
416
1
42.901653
3.700000
29.999998
5
163
24
6
285.122864
22.000000
90.000000
6
281
332
2
55.186279
7.400000
29.999998
7
361
115
1
217.707932
3.700000
50.000000
8
184
206
2
54.617432
7.400000
50.000000
9
215
196
8
102.085442
29.300000
119.999992
10
89
69
2
24.696030
7.400000
29.999998
11
376
434
2
49.379154
7.400000
50.000000
12
422
402
2
145.162308
7.400000
29.999998
13
31
51
1
89.758553
3.700000
70.000000
14
343
238
1
82.096947
3.700000
29.999998
15
286
422
2
148.385010
7.400000
29.999998
16
366
32
3
25.653723
11.000000
50.000000
17
355
367
2
79.106255
7.400000
29.999998
18
132
55
1
163.300858
3.700000
29.999998
19
98
61
1
59.434898
3.700000
90.000000
…
PM10.txt en NOx.txt: De structuur van deze twee bestanden is dezelfde. In deze bestanden wordt steeds de tijdstap afgedrukt met vervolgens een lijn voor elke link met daarin de hoeveelheid polluenten er per segment werd geproduceerd per seconde in μg∙s-1. Enkele lijnen uit PM10.txt: time 21600.500000 0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
… time 21601.000000 0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
… time 22657.000000 … 366.828680
0.000000
0.000000
0.000000
142.604850
0.000000
0.000000
31.370000
0.000000
0.000000
0.000000
463.154979
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
521.189397
612.777173
0.000000
1090.122599
2954.374534
1715.692148
3905.233637
1617.576697
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-3
…
noise#: In deze 4 bestanden wordt voor elk segment twee maal de geluidsenergie uitgezonden over een uur bijgehouden voor de 31 tertsbanden van 20Hz tot 20kHz. Indien deze energie gedeeld wordt door 7600, hiervan de logaritme met basis 10 wordt genomen en vervolgens wordt vermenigvuldigd met 10, dan bekomt men het geluidsvermogen in dB in de beschouwde tertsband. In de bestandsnaam wordt het einduur van de data bijgehouden als #, noise7 geeft dus de geluidsdata van 6h tot 7h. De eerste 10 lijnen uit noise7: linknr xpos
ypos
soundlevels-->
0
107006.671094
192311.395313
0.000000
109069980740.429670
…
0
107020.466406
192291.623438
0.000000
125295513516.776000
…
0
107034.261719
192271.851563
0.000000
166472263191.672300
…
0
107048.057031
192252.079687
0.000000
486230451081.985350
…
0
107061.852344
192232.307812
0.000000
1300420082361.822000
…
1
105877.049805
191531.623698
0.000000
494660637959.493530
…
1
105872.243164
191556.277344
0.000000
402102083608.084660
…
1
105867.436523
191580.930990
0.000000
286930142133.398930
…
1
105862.629883
191605.584635
0.000000
254993251948.390530
…
1
105857.823242
191630.238281
0.000000
239180881679.083070
…
1
105853.016602
191654.891927
0.000000
247031521558.773220
…
1
105848.209961
191679.545573
0.000000
255634151643.969360
…
1
105843.403320
191704.199219
0.000000
234855497851.290440
…
1
105838.596680
191728.852865
0.000000
226945392527.235110
…
1
105833.790039
191753.506510
0.000000
216955159300.308010
…
1
105828.983398
191778.160156
0.000000
138267832766.398990
…
1
105824.176758
191802.813802
0.000000
31510315622.871784
…
2
106474.475781
192516.667187
0.000000
0.000000
…
2
106459.614844
192522.095312
0.000000
0.000000
…
…
Vehicle###.txt: In deze bestanden wordt voor een DVU bijgehouden op welke positie hij op welk tijdstip is. Elk bestand geeft eerst het ID uit Paramis van de DVU, in de bestandsnaam wordt deze ID gedeeld door honderd gebruikt, dus bij Vehicle001 hoort ID = 100. Vervolgens wordt er een lijst bijgehouden met voor elk tijdstip de positie van het voertuig en de link en het segment waarop het zich bevindt. De eerste 20 lijnen van Vehicle001.txt: ID = 100 time
xpos
ypos
link
segment
21674.5
108428.612793
192402.300049
249
3
21675.0
108425.670898
192401.209473
249
3
21675.5
108422.143066
192399.901367
249
3
21676.0
108418.029053
192398.376221
249
3
21676.5
108413.329102
192396.633789
249
3
21677.0
108408.043213
192394.674072
249
3
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-4
21677.5
108402.171387
192392.497070
249
3
21678.0
108395.713379
192390.103027
249
3
21678.5
108388.669434
192387.491455
249
3
21679.0
108381.039307
192384.662598
249
3
21679.5
108372.823242
192381.616699
249
3
21680.0
108364.021240
192378.353271
249
2
21680.5
108354.633057
192374.872803
249
2
21681.0
108344.658936
192371.175049
249
2
21681.5
108334.098877
192367.260010
249
2
21682.0
108323.238525
192363.233643
249
2
21682.5
108312.246582
192359.158447
249
2
21683.0
108300.888916
192354.947754
249
2
…
A.2.
Broncode van het model
In deze paragraaf wordt de broncode van het model gegeven. De code is geïmplementeerd in python en is object-georiënteerd. De code is verdeeld over acht bestanden. Het hoofdbestand is dispersionModel.py, de andere bestanden zijn atmosphere.py, constants.py, init.py, link.py, node.py, plot.py en vehicles.py. A.2.1. dispersionModel.py dispersionModel.py is het hoofbestand. Het bevat twee functies:
initialize()
en
poluteMatter(). In de functie initialize() wordt het netwerk van de straten aangemaakt en wordt de atmosfeer gekoppeld aan dit netwerk. Verder zal ook een lijst van de DVU’s waarvoor blootstellingsdiagrammen worden gemaakt, worden aangemaakt. In de functie poluteMatter() wordt eerst de vervuiling in elke knoop op nul gezet. Elke tijdstap worden eerst de DVU’s blootgesteld aan de concentraties van de vorige tijdstap in de linken. Vervolgens worden achtereenvolgens de fluxen aan de knopen, in de linken en in de atmosfeer volgens (24), (29), (30) en (34), en de concentraties in de linken en de atmosfeer volgens (23) en (28) geüpdatet. Elk gesimuleerd uur wordt een figuur gemaakt met de ogenblikkelijke vervuiling. Tenslotte wordt nog een figuur gemaakt met de gemiddelde vervuiling over elk uur. Onderaan de code staan de initialisatie van de parameters en de functieoproepen. De code: from init
import *
from atmosphere import * from vehicles
import *
from plot
import *
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-5
def initialize(name): # Firstly a list containing all nodes is made from the file "Nodes.txt" nodes = readNodesFile() # Then a list containing all links is made from the file "Links.txt" links = readLinksFile(nodes) # Find the extremal coordinates in order to initialize the Atmosphere xmin, ymin, xmax, ymax = findMinMax(nodes) # Using the link and node lists, and the extremal coordinates, the Atmosphere-object is initialized atmosphere = Atmosphere(nodes, links, xmin, ymin, xmax, ymax) # Create a dictionary with as keys the timesteps and as values a list with the data of the cars in the network at that timestep vehicles = initVehicles(name) return nodes, links, atmosphere, vehicles def poluteMatter(nodes, links, atmosphere, vehicles, stable, wind, matter, name): # Open the NOx or PM10 pollution data file if matter == "NOx" : pollution = open("NOx.txt",
"r")
if matter == "PM10": pollution = open("PM10.txt", "r") # Read the first line and if it is not empty, go into the loop data = pollution.readline().split() # Reset all pollution data, and initialize the wind for link in links: link.resetPollution(wind, dt) for node in nodes: node.resetPollution(dt) atmosphere.resetPollution(stable, wind, dt) while data: # The timestep is stored in the 1st (actuall second, but the first element is the 0th) element of data timestep = float(data[1]) if timestep%600 == 0: print "%3d:%02d:%02d" % (int(timestep/3600), int(timestep / 60)%60, int(timestep%60)) # Before the new polution is calculated, the car take up the pollution at that moment vehicleExposure(timestep, vehicles, links, name) # Firstly all fluxes are calculated for node in nodes: node.updateFluxes(atmosphere) for link in links: link.updateFluxes(atmosphere) atmosphere.updateFluxes() # Then the new concentrations are calculated for link in links: link.updatePollution(pollution.readline().split()) atmosphere.updatePollution() # Every x minutes, a plot is made if timestep%(3600) == 0: pt.figure(int(timestep)/3600%2,figsize = (15,7.5)) plot(links, atmosphere, matter) pt.close((int(timestep) + 3600)/3600%2)
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-6
pt.savefig("%s_u_25_SE_%d.%d.png" % (name, timestep/3600, (timestep/6)%10), format = "png") # The next data line is read, if it is not empty, the loop can restart data = pollution.readline().split() for link in links: link.pollution = link.avgPoll pt.close() pt.figure(3,figsize = (15,7.5)) plot(links, atmosphere) pt.savefig("%s_avg.png" % name, format = "png") pt.close
pollutant = "PM10" stability = False windspeed = 10 direction = "SE" name = "%s_" % pollutant if stability: name += "s_" else:
name += "u_"
name += "%d_" % windspeed name += direction print name nodes, links, atmosphere, vehicles = initialize(name) windspeed = windspeed/3.6 if
direction == "N" : wind = (
0,
-windspeed)
elif direction == "NE": wind = (-2.**(-1./2) * windspeed, -2.**(-1./2) * windspeed) elif direction == "E" : wind = (
-windspeed,
0)
elif direction == "SE": wind = (-2.**(-1./2) * windspeed,
2.**(-1./2) * windspeed)
elif direction == "S" : wind = (
0,
windspeed)
elif direction == "SW": wind = ( 2.**(-1./2) * windspeed,
2.**(-1./2) * windspeed)
elif direction == "W" : wind = (
windspeed,
0)
elif direction == "NW": wind = ( 2.**(-1./2) * windspeed, -2.**(-1./2) * windspeed) print "windspeed =", 3.6*(wind[0]**2+wind[1]**2)**(1./2) poluteMatter(nodes, links, atmosphere, vehicles, stability, wind, pollutant, name)
A.2.2. init.py In dit bestand staan drie functies: readNodesFile(), readLinksFile() en findMinMax(). De eerste twee functie lezen respectievelijk Nodes.txt en Links.txt, creëren aan de hand van de data in deze bestanden de Node en Link-objecten en slaan ze op in een lijst. De functie findMinMax() zoekt naar de minimale en de maximale x- en y-waardes in het netwerk. Deze waardes zullen gebruikt worden om de atmosfeer te initialiseren. De code: from node
Jelle Genné
import *
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
from link
A-7
import *
from constants import * def readNodesFile(): """ Initialize the nodes with data form Nodes.txt and return a list of the nodes. """ # Create an empty list in which the nodes will be stored nodes = [] # Open the file in which the nodes data is stored, dismiss the first line and read all the other lines f = open("Nodes.txt", "r") f.readline() lines = f.readlines() # For every line the data is stored in a Node-object in the nodeslist for line in lines: nr, xpos, ypos = line.split() # The node number isn't stored explicitly, but is the index number of the list nodes.append(Node(xpos, ypos)) # Eventually, the list containing the nodes is returned return nodes def readLinksFile(nodes): """ Initialize the links with data from Links.txt and return a list of the links. """ # Create an empty list in which the links will be stored links = [] # Open the file in which the link data is stored, dismiss the first line and read all the other lines f = open("Links.txt", "r") f.readline() lines = f.readlines() # For every line the data is stored in a Link-object and the end and start Node are updated for line in lines: nr, startNode, endNode, lanes, length, width, speed = line.split() # Firstly a dummy link is created newLink = Link(lanes, length, width, speed) # A reference to the start and end Node is stored in the Link-object newLink.startNode = nodes[int(startNode)] newLink.endNode
= nodes[int(endNode)]
# A referece to the new Link is stored in the start and end Node-objects newLink.startNode.linksOut.append(newLink) newLink.endNode
.linksIn .append(newLink)
# The direction of the link is calculated as a unity vector nodeToNodeLength = ((newLink.endNode.xpos - newLink.startNode.xpos)**2 + (newLink.endNode.ypos - newLink.startNode.ypos)**2)**(1./2) xDirection = (newLink.endNode.xpos - newLink.startNode.xpos)/nodeToNodeLength yDirection = (newLink.endNode.ypos - newLink.startNode.ypos)/nodeToNodeLength newLink.direction = (xDirection, yDirection) newLink.length = nodeToNodeLength # Eventually the newLink-object is stored in the links list links.append(newLink) # Finally, the list containing the links is returned
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-8
return links def findMinMax(nodes): """ Find the extremal coordinates in the nodeslist """ # At first for the minima, unrealisticsly high coordinates are chosen, for the maxima, zero is chosen xmin, ymin = 10**25, 10**25 xmax, ymax = 0
, 0
# Every node is scanned, and if it has more extremal coordinates than the temporary extremal values, these are updated for node in nodes: if node.xpos < xmin: xmin = node.xpos if node.ypos < ymin: ymin = node.ypos if node.xpos > xmax: xmax = node.xpos if node.ypos > ymax: ymax = node.ypos # If every node is scanned, the temporary values are the extremal cordinates and are returned return xmin, ymin, xmax, ymax
A.2.3. node.py In het bestand node.py wordt de klasse Node gedefinieerd. Deze klasse heeft vier methodes. De methode findFlows() is nodig om (33) en (34) in het model te implementeren. De methode resetPollution() wordt gebruikt om alles opnieuw te initialiseren. De methode updateFluxes() zorgt ervoor dat de fluxen aan de knopen worden geüpdatet volgens (34). De methode __init__() wordt gebruikt om het object te initialiseren en in deze methode staan alle attributen van de klasse. De code: class Node: """ A class containing al usefull information of a node. """ def __init__(self, xpos, ypos): self.linksIn
= []
# A list containing references to the links
= []
# A list containing references to the links
= float(xpos) - 105000
# The x-coordinate of the node minus 105000 to
comming in to the node self.linksOut going out the node self.xpos
make the values more workable self.ypos
= float(ypos) - 190000
# The y-coordinate of the node minus 190000 to
make the values more workable self.windIn
= 0
# The wind flux comming in from the streets
self.in_out
= 0
# The wind flux comming in from the streets
minus the wind flux going out to the streets self.fluxOut
= 0
# The flux that is going out the node
self.atmosphere = None
# The keys of the atmosphere cell above
self.timestep
# The timestep used in the simulation
= 0
def findFlows(self):
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-9
""" The wind flow comming in from the streets and the difference between that comming in from and going out to the streets are calculated """ self.in_out = 0 self.windIn = 0 # Find the flow and the difference between the flows for link in self.linksIn: # A possitive wind speed means that wind is flowing into the node from the street self.in_out += link.windSpeed*link.width*link.height if link.windSpeed > 0: self.windIn += link.windSpeed*link.width*link.height for link in self.linksOut: # A possitive wind speed meand that wind is flowing out the nood to the street self.in_out
-= link.windSpeed*link.width*link.height
if link.windSpeed < 0: self.windIn -= link.windSpeed*link.width*link.height def resetPollution(self, timestep): # Firslty the new flows are initialized self.findFlows() self.fluxOut = 0 # Then the timestep is initialized self.timestep = timestep def updateFluxes(self, atmosphere): concentrationIn = 0 for link in self.linksIn: if link.windSpeed >= 0: link.xFlux[5]
= link.height*link.width*link.windSpeed*link.pollution[4]
concentrationIn += link.xFlux[5] for link in self.linksOut: if link.windSpeed <= 0: link.xFlux[0]
= link.height*link.width*link.windSpeed*link.pollution[0]
concentrationIn -= link.xFlux[0] if self.in_out <= 0: self.fluxOut
= self.in_out*atmosphere.pollution[self.atmosphere[0],
self.atmosphere[1], 0] concentrationIn -= self.fluxOut totalWindIn
= self.windIn - self.in_out
else: totalWindIn
= self.windIn
for link in self.linksIn: if link.windSpeed < 0: link.xFlux[5] = link.width*link.height*link.windSpeed/totalWindIn*concentrationIn for link in self.linksOut: if link.windSpeed > 0: link.xFlux[0] = link.width*link.height*link.windSpeed/totalWindIn*concentrationIn if self.in_out > 0: self.fluxOut = self.in_out/self.windIn*concentrationIn
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-10
A.2.4. link.py In link.py wordt de klasse Link gedefinieerd, deze klasse heeft vier methoden. De methode resetPollution() wordt gebruikt om alles opnieuw te initialiseren. De methode updateFluxes() en updatePollution() worden gebruikt om aan de hand van (28), (29) en (30) de nieuwe fluxen en vervuilingsconcentraties te vinden. Telkens een nieuwe maximale concentratie gevonden wordt, zal dit ook afgedrukt worden in de console. De methode __init__() wordt gebruikt om het object te initialiseren en in deze methode staan alle attributen van de klasse. De code: from constants import * global maxLnkPoll maxLnkPoll = 10**(-15) class Link: """ A class containing al usefull information of a Link. """ def __init__(self, lanes, length, width, speed): self.startNode
= None
self.endNode
= None
# A reference to the start Node # A reference to the end Node
self.lanes
= int(lanes)
# The number of lanes in the link
self.length
= float(length)
# The length of the link
self.width
= float(width)
# The width of the link
if float(speed) > 70: self.height = 3.0
# If the maximum speed on a link is high, it is
assumed that the building heigth is not high (e.g. Highway) else: self.height = 8.0
# Else a densly builded area is assumed
self.speed
= float(speed)
# The speed limit of the link
self.direction
= None
# A unity vector representing the direction of the
self.windSpeed
= 0
# The wind speed in the link, this is the orthogonal
link projection of the wind speed on the link direction, initialised in Link.resetPollution self.orthWind
= 0
# The wind that flows orthogonally above the link
self.timestep
= 0
# The timestep used in the simulation
self.atmosphere = [None for i in range(nSegments
)]
# A list containing the keys
)]
# A list containing the
for i in range(nSegments + 1)]
# A list containing the
of the atmosphere cell above for every segment self.pollution
= [0
for i in range(nSegments
pollution concentration for every segment self.xFlux
= [0
pollution fluxes in the horizontal direction for every segment self.zFlux
= [0
for i in range(nSegments
)]
# A list containing the
pollution fluxes in the vertical direction for every segment self.avgPoll
= [0
for i in range(nSegments
)]
def resetPollution(self, wind, timestep):
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-11
# The concentrations and fluxes are reset to zero self.pollution
= [0
for i in range(nSegments
)]
self.avgPoll
= [0
for i in range(nSegments
)]
self.xFlux
= [0
for i in range(nSegments + 1)]
self.yFlux
= [0
for i in range(nSegments
)]
# The timestep is set self.timestep
= timestep
# The wind is checked for stability windspeed = (wind[0]**2+wind[1]**2)**(1./2) maxWind = 1/self.timestep/(2*mixingLength/(self.height*(self.height + 5)) + 5/self.length) if (windspeed > maxWind): wind = (wind[0]*(maxWind/windspeed), wind[1]*(maxWind/windspeed)) # The windspeed in the link is initialized self.windSpeed
= self.direction[0]*wind[0] + self.direction[1]*wind[1]
self.orthWind
= abs(self.direction[0]*wind[1] - self.direction[1]*wind[0])
def updateFluxes(self, atmosphere): for i in range(1, nSegments): if self.windSpeed > 0: self.xFlux[i] = self.height*self.width*self.windSpeed*self.pollution[i - 1] else: self.xFlux[i] = self.height*self.width*self.windSpeed*self.pollution[i] for i in range(nSegments): atmPol = atmosphere.pollution[self.atmosphere[i][0], self.atmosphere[i][1], 0] self.zFlux[i] = self.length/5 *self.width*2*mixingLength*self.orthWind \ *(self.pollution[i]-atmPol)/(self.height+atmosphere.dz) def updatePollution(self, data): global maxLnkPoll for i in range(5): newPoll = float(data[i]) if newPoll < 0: print "Raar" newPoll =0 self.pollution[i] = self.pollution[i]+self.timestep/(self.length/5*self.width*self.height)* \ (newPoll-self.xFlux[i + 1] + self.xFlux[i] - self.zFlux[i]) if self.pollution[i] < 0: print i, self.windSpeed, self.pollution[i] if self.pollution[i] > maxLnkPoll: maxLnkPoll = self.pollution[i] print "new MaxLnkPoll =", maxLnkPoll self.avgPoll[i] += self.pollution[i] / (3600.*4*2)
A.2.5. atmosphere.py In het bestand atmosphere.py wordt de klasse Atmosphere gedefinieerd. Deze klasse heeft zeven methodes. De methodes connectNodes() en connectLinks() worden gebruikt om
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-12
de atmosfeer met de knopen en de linken te verbinden. De methode toRelativeCoord() geeft voor een kopel (x, y) de relatieve coördinaten terug ten opzichte van de atmosfeer, zo kan voor deze coördinaten gevonden worden welk atmosfeerelement erboven ligt. De methode resetPollution() wordt gebruikt om alles opnieuw te initialiseren, net zoals in de node.pyen link.py-bestanden. Met de methodes updateFluxes()
en updatePollution()
worden volgens (23) en (24) de nieuwe fluxen en concentraties gevonden. De methode __init__() wordt gebruikt om het object te initialiseren en in deze methode staan alle attributen van de klasse. De code: from constants import * from math
import log
global maxAtmPoll maxAtmPoll = 10**(-15) class Atmosphere: """ A class containing al usefull information of the atmosphere. """ def __init__(self, nodes, links, xmin, ymin, xmax, ymax): self.xmin
= xmin
# The extremal coordinates of the Atmosphere
self.ymin
= ymin
# Idem
self.xmax
= xmax
# Idem
self.ymax
= ymax
# Idem
self.dx
= (xmax - xmin)/nAtmHor
# The length in the x-direction of an
= (ymax - ymin)/nAtmHor
# The length in the y-direction of an
self.dz
= hAtm/nAtmVer
# The higth of an atmospherical cel
self.nAtmHor
= nAtmHor
# The number of cels in the horizontal
self.nAtmVer
= nAtmVer
# The number of cels in the vertical direction
self.hAtm
= hAtm
# The total heigth of the Atmosphere-object
self.wind
= [None for i in range(nAtmVer)] # The wind speed at each layer,
atmospherical cel self.dy atmospherical cel
direction
initialized in link.ResetPollution self.timestep
= 0
self.Kh_zz
= [0 for i in range(nAtmVer)] # The diffusion constants at each height
# The timestep used in the simulation
self.links
= dict([((i, j), [])
for i in range(nAtmHor
)
for j in range(nAtmHor
)])
# A dictionary
containing references to the links that lie under the (i, j)-th cel of the atmosphere self.nodes
= dict([((i, j), [])
for i in range(nAtmHor
)
for j in range(nAtmHor
)])
# Idem for the
nodes self.pollution = dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor
)
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-13
for k in range(nAtmVer
)])
# A dictionary
containing the pollution concentrations in the (i, j, k)-th cel of the atmosphere self.xFlux
= dict([((i, j, k), 0) for i in range(nAtmHor + 1) for j in range(nAtmHor
)
for k in range(nAtmVer
)])
# Idem for fluxes
in x-direction self.yFlux
= dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor + 1) for k in range(nAtmVer
)])
# Idem for fluxes
in y-direction self.zFlux
= dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor
)
for k in range(nAtmVer
)])
# Idem for fluxes
in z-direction # Connect the links and the nodes with the atmosphere self.connectNodes(nodes) self.connectLinks(links) print "dx =", self.dx print "dy =", self.dy def connectNodes(self, nodes): """ Connect the atmosphere with the underlying nodes """ # Every node is scanned in order to connect it with the Atmosphere for node in nodes: # Firstly, relative coordinates are calculated relX, relY = self.toRelativeCoord(node.xpos, node.ypos) # Since these relative coordinates are rounde to int's in order to use them as keys, they can't be greater than or equal to nAtmHor (actually only equal, this equallity will always be the case for one or two of the nodes, the ones with the highest x and y coordinates) if relX > nAtmHor - 1: relX = nAtmHor - 1 if relY > nAtmHor - 1: relY = nAtmHor - 1 # The atmosphere is connected to the node, a tuple is containing the (i, j)-key is passed on node.atmosphere = (int(relX), int(relY)) # A reference to the node is added to the nodes dictionary self.nodes[int(relX), int(relY)].append(node) def connectLinks(self, links): """ Connect the atmosphere with the underying links """ # Every link is scanned in order to connect it with the Atmosphere for link in links: # The realative coordinates for the start and end node are calculated relStartX, relStartY = self.toRelativeCoord(link.startNode.xpos, link.startNode.ypos) relEndX,
relEndY
= self.toRelativeCoord(link.endNode
.xpos, link.endNode
.ypos) # Every segment of the link is connected with the Atmosphere
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-14
for i in range(nSegments): # The centroids (in relative coordinates) of the segments are calculated pointX, pointY = (relStartX + 1.0*(2*i + 1)/(2*5)*(relEndX - relStartX), relStartY + 1.0*(2*i + 1)/(2*5)*(relEndY - relStartY)) # The atmosphere is connected to the segment, a tuple containing the (i, j)key is passed on link.atmosphere[i] = (int(pointX), int(pointY)) # A reference to the link is added to the links dictionary self.links[int(pointX), int(pointY)].append((link, i)) def toRelativeCoord(self, x, y): """ Calculate realative coordinates, ranging from 0 to nAtmHor """ # A simple formula is used to find these coordiates, and the coordinates are returned X = nAtmHor*(x - self.xmin)/(self.xmax - self.xmin) Y = nAtmHor*(y - self.ymin)/(self.ymax - self.ymin) return X, Y def resetPollution(self, stable, wind, timestep): # The wind in the atmosphere is initialized, a logarithmic wind profile is assumed and the roughness length is a tenth of the building heigth factor = [1/log(10)*log(8+(1.0/2+i)*self.dz/0.8)
for i in range(nAtmVer)]
self.wind = [(wind[0]*factor[i], wind[1]*factor[i]) for i in range(nAtmVer)] # The diffusion constants are initialized, the values from constants.py are used if (wind[0]**2 + wind[1]**2)**(1/2) > 4: self.Kh_zz = Kh_zz[stable, "fast"] else: self.Kh_zz = Kh_zz[stable, "slow"] # The concentrations and the fluxes are reset to zero self.pollution = dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor
)
for k in range(nAtmVer
)])
self.xflux
self.yflux
= dict([((i, j, k), 0) for i in range(nAtmHor + 1) for j in range(nAtmHor
)
for k in range(nAtmVer
)])
= dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor + 1) for k in range(nAtmVer self.zflux
)])
= dict([((i, j, k), 0) for i in range(nAtmHor
)
for j in range(nAtmHor
)
for k in range(nAtmVer
)])
# The timestep is initialized self.timestep = timestep def updateFluxes(self): for x in range(1, nAtmHor): for y in range(nAtmHor): for z in range(nAtmVer): vx = self.wind[z][0]
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-15
if vx > 0: self.xFlux[x, y, z] = self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*(self.pollution[x - 1, y, z] - self.pollution[x, y, z]) + vx*self.pollution[x - 1, y, z]) else: self.xFlux[x, y, z] = self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*(self.pollution[x - 1, y, z] - self.pollution[x, y, z]) + vx*self.pollution[x , y, z]) for y in range(nAtmHor): for z in range(nAtmVer): vx = self.wind[z][0] if vx > 0: self.xFlux[0,
y, z] =
self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*((0.9 - 1)*self.pollution[0, 0.9*vx*self.pollution[0,
y, z]) +
y, z])
self.xFlux[nAtmHor, y, z] = self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*((1 - 0.9)*self.pollution[nAtmHor - 1, y, z]) +
vx*self.pollution[nAtmHor - 1, y, z])
else: self.xFlux[0,
y, z] =
self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*((0.9 - 1)*self.pollution[0, vx*self.pollution[0,
y, z]) +
y, z]) self.xFlux[nAtmHor, y, z] = self.dy*self.dz*(self.Kh_zz[z]/10/self.dx*((1
- 0.9)*self.pollution[nAtmHor - 1, y, z]) + 0.9*vx*self.pollution[nAtmHor - 1, y, z]) for x in range(nAtmHor): for y in range(1, nAtmHor): for z in range(nAtmVer): vy = self.wind[z][1] if vy > 0: self.yFlux[x, y, z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*(self.pollution[x, y - 1, z] - self.pollution[x, y, z]) + vy*self.pollution[x, y - 1, z]) else: self.yFlux[x, y, z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*(self.pollution[x, y - 1, z] - self.pollution[x, y, z]) + vy*self.pollution[x , y, z]) for x in range(nAtmHor): for z in range(nAtmVer): vy = self.wind[z][1] self.yFlux[x, 0, 1)*self.pollution[x, 0
z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*((0.9 -
, z]) + 0.9*vy*self.pollution[x, 0,
z])
self.yFlux[x, nAtmHor, z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*((1 0.9)*self.pollution[x, nAtmHor - 1, z]) +
vy*self.pollution[x, nAtmHor - 1, z])
else: self.yFlux[x, 0, 1)*self.pollution[x, 0
, z]) +
z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*((0.9 vy*self.pollution[x, 0,
z])
self.yFlux[x, nAtmHor, z] = self.dx*self.dz*(self.Kh_zz[z]/10/self.dy*((1 0.9)*self.pollution[x, nAtmHor - 1, z]) + 0.9*vy*self.pollution[x, nAtmHor - 1, z]) for x in range(nAtmHor): for y in range(nAtmHor):
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-16
for z in range(nAtmVer - 1): self.zFlux[x, y, z] = self.dx*self.dy/self.dz*self.Kh_zz[z]*(self.pollution[x, y, z] - self.pollution[x, y, z + 1]) self.zFlux[x, y, nAtmVer - 1] = self.dx*self.dy/self.dz*self.Kh_zz[z]*(1 0.9)*self.pollution[x, y, nAtmVer - 1] def updatePollution(self): global maxAtmPoll for x in range(nAtmHor): for y in range(nAtmHor): for z in range(1, nAtmVer): self.pollution[x, y, z] = self.pollution[x, y, z] self.timestep/(self.dx*self.dy*self.dz)* \ ( self.xFlux[x + 1, y, z] - self.xFlux[x, y, z ] \ + self.yFlux[x, y + 1, z] - self.yFlux[x, y, z ] \ + self.zFlux[x, y, z
] - self.zFlux[x, y, z -
1] ) self.pollution[x, y, 0] = self.pollution[x, y, z] self.timestep/(self.dx*self.dy*self.dz)* \ ( self.xFlux[x + 1, y, z] - self.xFlux[x, y, z ] \ + self.yFlux[x, y + 1, z] - self.yFlux[x, y, z ] \ + self.zFlux[x, y, z
])
for node in self.nodes[x, y]: self.pollution[x, y, 0] += self.timestep/(self.dx*self.dy*self.dz)*node.fluxOut for (link, index) in self.links[x, y]: self.pollution[x, y, 0] += self.timestep/(self.dx*self.dy*self.dz)*link.zFlux[index] for x in range(nAtmHor): for y in range(nAtmHor): for z in range(nAtmVer): if self.pollution[x, y, z] > maxAtmPoll: maxAtmPoll = self.pollution[x, y, z] print "new MaxAtmPoll =", maxAtmPoll
A.2.6. constants.py In dit bestand staan enkele constanten gedefinieerd. Door de eerste drie constanten aan te passen kunnen het aantal atmosfeerelementen en hun dimensies aangepast worden. De constante nSegments kan aangepast worden om een link in meer segmenten onder te verdelen en de constante dt om de tijdstap aan te passen, hiervoor zijn echter wel andere inputbestanden nodig. De constanten mixingLength en Kh_zz kunnen hier ook aangepast worden. De code:
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
nAtmHor
= 51
# number of atmosphere elements in a horizontal direction
nAtmVer
= 5
# number of atmosphere elements in the vertical direction
hAtm
= 50
# total height of the atmosphere
nSegments
= 5
# number of segments of a street
mixingLength = 1 dt
A-17
# The mixing length l from the formula
= 0.5
Kh_zz = {(True, "fast") : [4.74151, 7.09395, 8.81726, 10.1341, 11.1730], \ (True, "slow") : [.355836, .387342, .401341, .409252, .414338], \ (False, "fast"): [7.90057, 15.2673, 23.6106, 32.8375, 42.8763], \ (False, "slow"): [4.82267, 10.3620, 17.0938, 24.8384, 33.4787]}
A.2.7. vehicles.py In dit bestand staan twee functies. De functie initVehicles() maakt aan de hand van de vehiclexxx.txt-bestanden een woordenboek met als sleutels de tijdstappen en als waardes de DVU’s die zich op die tijdstap in het simulatiegebied bevinden. De functie vehicleExposure() slaat de vervuilingsdata voor elke DVU op in een apart bestand. De code: def initVehicles(name): vehicles = dict([[6.*3600+t/2. + 0.5, {}] for t in range(3600*2*4)]) for ID in range(1, 480): file = open("vehicle%03d.txt" % ID, "r") file.readline() file.readline() line = file.readline().split() while line: (timestep, xpos, ypos, link, segment) = float(line[0]), float(line[1]), float(line[2]), int(line[3]), int(line[4]) vehicles[timestep][ID] = [xpos, ypos, link, segment] line = file.readline().split() file.close() file = open("%s_pollutionVehicle%03d.txt" % (name, ID), "w") file.write("timestep\txpos\typos\tpolutiont\tlinkcoord x 4\n") file.close() return vehicles def vehicleExposure(timestep, vehicles, links, name): pressentVehicles = vehicles[timestep] for ID in pressentVehicles.keys(): xpos, ypos, link, segment = pressentVehicles[ID] file = open("%s_ollutionVehicle%03d.txt" % (name, ID), "a") file.write("%.1f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n" % (timestep, xpos, ypos, links[link].pollution[segment], links[link].endNode.xpos, links[link].endNode.ypos, links[link].startNode.xpos, links[link].startNode.ypos)) file.close()
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer
Appendix: Inputbestanden en broncode van het dispersiemodel
A-18
A.2.8. Plot.py In dit bestand worden de grafieken van de concentraties gemaakt. De invulling van dit bestand kan veranderd worden om andere soorten grafieken te verkrijgen. De enige vereiste is dat er een functie plot() aanwezig is die als argumenten de links-lijst, het atmosphere-object en de naam van het soort vervuiling heeft. De code moet dus zeker volgende lijn bevatten: def plot(links, atmosphere, matter):
Jelle Genné
Spatiale simulatie van de persoonlijke blootstelling aan polluenten in het verkeer