AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan...

51
AERIUS 1.6 Database Review A. Bleeker Februari 2014 ECN-E--14-012

Transcript of AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan...

Page 1: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

AERIUS 1.6 Database Review

A. Bleeker Februari 2014 ECN-E--14-012

Page 2: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

“Hoewel de informatie in dit rapport afkomstig is van betrouwbare bronnen en de nodige zorgvuldigheid is betracht bij de totstandkoming daarvan kan ECN geen aansprakelijkheid aanvaarden jegens de gebruiker voor fouten, onnauwkeurigheden en/of omissies, ongeacht de oorzaak daarvan, en voor schade als gevolg daarvan. Gebruik van de informatie in het rapport en beslissingen van de gebruiker gebaseerd daarop zijn voor rekening en risico van de gebruiker. In geen enkel geval zijn ECN, zijn bestuurders, directeuren en/of medewerkers aansprakelijk ten aanzien van indirecte, immateriële of gevolgschade met inbegrip van gederfde winst of inkomsten en verlies van contracten of orders.”

Verantwoording

Dit rapport beschrijft een review van de AERIUS1.6 database. De review is door het ECN uitgevoerd in opdracht van het Ministerie van Economische Zaken.

Abstract

This report describes a review of the AERIUS1.6 database. The review focused on the database structure and the way in which this compares with the content of the database that was described in some relevant background documents. It thus only looks at the implementation of the database: to what degree is the database setup complete and/or correct.

Page 3: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 3

Inhoudsopgave

Samenvatting 4

1 Inleiding 5

2 Opbouw database 7 2.1 Opbouwen van de database 7 2.2 Statische tabellen in AERIUS 1.6 8 2.3 Dynamische tabellen in de database 10

3 Opmerkingen Database 15 3.1 Algemene opmerkingen 15 3.2 Specifieke opmerkingen 16

4 Conclusies en aanbevelingen 17 4.1 Conclusies 17 4.2 Aanbevelingen 17

Bijlagen

A. Overzicht SQL -broncode 19

Page 4: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

4

Samenvatting

Tijdens de hier beschreven review is de doelmatigheid van de AERIUS database onderzocht. Dit is gedaan door te de feitelijke database te vergelijken met hetgeen is vastgelegd over de database. Deze vergelijking richt zich alleen op de manier waarop de database gestructureerd is, en op de wijze waarop de beschreven inhoud overeenkomt met de feitelijke inhoud. Het gaat verder niet in op de inhoudelijke kant van de database, maar richt zich alleen op de implementatie: in hoeverre is de beschreven opzet compleet en/of correct. Op basis van de review kunnen de volgende conclusies getrokken worden:

De opbouw van de AERIUS database gebeurt volgens een duidelijke structuur van verschillende sql-bestanden. Dit geldt eveneens voor het vullen van de statische en dynamische tabellen.

De feitelijke AERIUS database is grotendeels conform de beschreven versie. Daar waar afwijkingen geconstateerd zijn, zijn dit afwijkingen die voor de database zelf geen problemen opleveren. Aanpassingen in de beschrijving zijn nodig om hier duidelijkheid in te scheppen.

Al met al kan geconstateerd worden dat de AERIUS database het doel dient waarvoor het is opgezet en er geen substantiële tekortkomingen geconstateerd zijn. De beschreven tabellen zijn beschikbaar in de database en gevuld met de relevante data.

Daarnaast zijn er nog de volgende aanbevelingen geformuleerd: Zorg voor consequente en duidelijke naamgeving van de verschillende tabellen. Dit

zal de ‘leesbaarheid’ van de broncode ten goede komen en daarmee de

overdraagbaarheid van het geheel. Zorg voor een meer geautomatiseerde wijze van inlezen van statische data. Deze review beperkt zich tot een belangrijk, maar klein deel van het gehele AERIUS

systeem. De interactie met de overige delen van AERIUS, waaronder het genereren van de vele invoerbestanden, zou eveneens onderworpen moeten worden aan een review. Hiermee kan dan een completer beeld geschetst worden van de doelmatigheid van AERIUS1.6.

Page 5: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Inleiding 5

1 Inleiding

Momenteel wordt de Programmatische Aanpak Stikstof (PAS) ontwikkeld. Een belangrijk onderdeel van de hele PAS systematiek is het instrument AERIUS. AERIUS is bedoeld om voor de verschillende Natura 2000 gebieden op gebiedsniveau de stikstofdepositie te berekenen voor huidige en toekomstige situaties. Hierbij kan worden gekeken naar verschillende beleidsvarianten, zoals Autonome Ontwikkeling, implementatie extra Rijksbeleid en Provinciaal beleid.

Het Ministerie van Economische Zaken heeft ECN gevraagd om de doelmatigheid van de AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database qua opzet/functionaliteit geschikt voor het uitvoeren van de ‘taken’ die voor het AERIUS systeem gedefinieerd zijn. Hierbij zijn twee onderdelen te onderscheiden: a) hoe is de AERIUS databasestructuur opgezet, rekening houdend met de verschillende onderdelen die nodig zijn voor het functioneren van het AERIUS systeem en b) hoe is de AERIUS database feitelijk opgezet, rekening houdend met punt a).

Het beoordelen van de functionaliteit is gedaan door te de feitelijke database te vergelijken met hetgeen in relevante achtergronddocumenten staat beschreven met betrekking tot de database. Deze vergelijking richt zich alleen op de manier waarop de database gestructureerd is, en op de wijze waarop de beschreven inhoud overeenkomt met de feitelijke inhoud. Het richt zich dus voornamelijk op de implementatie: in hoeverre is de beschreven opzet compleet en/of correct.

Zoals aangegeven: deze review richt zich alleen op de AERIUS database. Andere inhoudelijke aspecten komen hier niet aan de orde. Te denken valt daarbij aan de wijze waarop invoergegevens voor de verschillende emissies omgezet worden naar invoer voor de feitelijke OPS berekeningen, of hoe deze OPS berekeningen uitgevoerd worden. In een toekomstige review zouden deze onderdelen aan de orde kunnen komen.

In het volgende hoofdstuk is allereerst een beschrijving gegeven van de database. Dit is op basis van een beschikbaar gesteld achtergrondbestand. Hierin wordt per tabel een overzicht gegeven van de manier waarop de verschillende tabellen opgenomen zijn in de database en hoe deze zijn ‘ontstaan’. In Hoofdstuk 3 wordt meer in detail ingegaan

Page 6: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

6

op de verschillen tussen de beschreven en feitelijke situatie, waarna in Hoofdstuk 4 conclusies getrokken worden en aanbevelingen voor verbetering.

Page 7: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opbouw database 7

2 Opbouw database

In dit hoofdstuk wordt in grote lijnen weergegeven hoe de AERIUS database is opgebouwd. Deze beschrijving is een ‘uittreksel’ van het eerder genoemde achtergronddocument

1 en zal qua opbouw en inhoud vaak identiek zijn. In de volgende paragrafen worden de afzonderlijke onderdelen van de database beschreven.

2.1 Opbouwen van de database

Het bouwen van de AERIUS database vind plaats in drie concrete stappen:

1. Het maken van de database structuur (lege database).

2. Het vullen van de statische tabellen.

3. Het vullen van de dynamische tabellen. Voor het uitvoeren van deze drie stappen is een structuur met afzonderlijke sql-bestanden gemaakt. Via het doorlopen van deze sql-bestanden wordt de databasestructuur klaargezet en worden de statische en dynamische tabellen vervolgens gevuld met gegevens. In het overzicht aan de rechterkant van deze pagina staat het overzicht van de onderdelen waarin afzonderlijke sql-bestanden zijn opgenomen voor deze stappen. In het onderdeel ‘AERIUS-monitor-code’ zijn de bestanden opgenomen die verantwoordelijk zijn voor het maken van de databasestructuur, terwijl in ‘AERIUS-monitor-data’ de sql-bestanden zijn opgenomen waarmee de statische en dynamische tabellen worden gevuld. De structuur van de database is vooraf bekend en geeft aan welke tabellen in de database zijn opgenomen. De structuur is als het ware het skelet van de database, nog zonder inhoud. Als de structuur staat, worden eerst de statische tabellen gevuld. Dit zijn de tabellen die direct gevuld worden met data, zonder dat daarvoor een set-up van de database nodig is.

xxxxxxxxxxxxssssssssxxxxxxxxxxxxxx

1 Achtergronddocument Hoofdstuk 6 ‘Database AERIUS1.6: hoe werkt het?’. Versie dd. 11-02-2014

Page 8: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

8

Globaal gezien zijn er drie verschillende soorten statische tabellen: 1. Statische tabellen waarvoor geen input van derden nodig is. 2. Statische tabellen waarvoor wel input van derden nodig is, maar waar geen

depositieberekeningen voor zijn uitgevoerd binnen de database AERIUS 1.6. 3. Statische tabellen met depositie-data die binnen AERIUS 1.6 zelf is berekend, door

het uitvoeren van depositieberekeningen. Als de statische tabellen gevuld zijn, dan kan de verdere opbouw van de database plaatsvinden. Hierbij wordt data in de statische tabellen via rekenregels en ‘views’ tot ‘nieuwe’ data gemaakt die ook weer in tabellen wordt opgeslagen. Dit zijn de dynamische tabellen. Als deze stappen zijn doorlopen, zijn alle tabellen in de database (statisch en dynamisch) gevuld. Hieronder wordt een overzicht gegeven van de verschillende statische en dynamische tabellen in de AERIUS database.

2.2 Statische tabellen in AERIUS 1.6

2.2.1 Statische tabellen zonder input van derden

In de database zijn de volgende statische tabellen opgenomen die zonder input van derden opgesteld zijn: 1.1 Jaren (in AERIUS 1.6 zijn dit 2010, 2013, 2019, 2025 en 2031) 1.2 Stoffen (NOx en NH3) 1.3 Overzicht sectoren en indeling in sectorgroepen 1.4 Receptoren en hexagonen 1.5 ‘Segmentation’: indeling sectorgroepen in S2 of NTVP 1.6 Correctie voor depositieruimte, op sectorgroepniveau en jaar Tabel 1.1 geeft de jaren die binnen AERIUS van belang zijn. Tabel 1.2 geeft de relevante stoffen weer. Tabel 1.3 bepaalt welke sectoren in welke sectorgroep thuishoren: De sectoren zijn alle sectoren van het RIVM. Iedere sector is in AERIUS per stof

doorgerekend en iedere sector heeft (per stof) een eigen schaalfactor en eigen emissieontwikkeling. In de AERIUS database is een sectorbijdrage per definitie een bijdrage per stof.

De sectorbijdragen worden in AERIUS geaggregeerd tot bijdragen per stof per sectorgroep. De sectorgroepen zijn dus de ‘sectoren’ zoals deze in de WUI worden weergegeven. In de AERIUS database is een bijdrage per sectorgroep ook altijd per stof.

Tabel 1.4 betreft de volgende onderdelen: Receptoren - de rekenpunten waarop de depositie in AERIUS wordt berekend. Hexagonen - de oppervlaktes die de depositiewaarden van het betreffende

rekenpunt toegewezen krijgen.

Tabel 1.5 geeft de indeling van de sectorgroepen in Segment 2 of ‘Niet Toetsings- of Vergunning Plichtig (NTVP)’

2. Deze indeling bepaalt in welk segment de resterende ontwikkelbehoefte van een bepaalde sectorgroep wordt opgenomen. xxxxxxxxxxxxssssssssxxxxxxxxxxxxxx

2 Voor een verdere uitleg over deze punten wordt verwezen naar overige AERIUS achtergronddocumenten

Page 9: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opbouw database 9

Tabel 1.6 bevat een correctie die bepaalt van welk deel van de berekende depositieafname door het generieke Rijksbeleid de helft mag worden teruggegeven als depositieruimte.

2.2.2 Statische tabellen met input van derden, zonder pre-processing AERIUS

In de database zijn de volgende statische tabellen opgenomen op basis van input van derden, maar zonder verdere bewerkingen binnen AERIUS: 2.1 HT en N2000 gebieden (begrenzingen en karteringen) 2.2 Bijtelling (RIVM gegevens, GCN-ronde2013) 2.3 Buitenland (RIVM gegevens, GCN-ronde2013) Tabel 2.1 bevat alle relevante data met betrekking tot de Natura2000 gebieden. Tabel 2.2 bevat de bijtelling in depositie: deze wordt direct overgenomen van het RIVM (GCN-ronde2013) en bij de totale berekende depositie in het betreffende jaar opgenomen. Tabel 2.3 bevat de depositiebijdrage van het buitenland zoals ook opgenomen in de GDN (GCN-ronde2013). De bijdrage van het buitenland wordt als ‘correctie’ in de database opgeteld bij de totale depositie.

2.2.3 Statische tabellen met input van derden, met pre-processing AERIUS

In de database zijn de volgende statische tabellen opgenomen op basis van input van derden, waarop beperkte of uitgebreide ‘pre-processing’ heeft plaatsgevonden: 3.1 Bijdrage prioritaire projecten 3.2 Correctie wegverkeer VLW – hoofdwegennet 3.3 Correctie wegverkeer VLW – onderliggend wegennet 3.4 Schaalfactoren ‘economic scale’ 3.5 Schaalfactoren ‘economic growth’ 3.6 Duinencorrectie Tabel 3.1 is een tabel met per sectorgroep en per rekenpunt de bijdrage van de prioritaire projecten per toekomstjaar AERIUS. In principe is deze bijdrage opgedeeld in een deel boven en onder de grenswaarde van 1 mol/ha/jr, maar in AERIUS 1.6 is de bijdrage onder de grenswaarde op nul gezet. Daarnaast is in AERIUS 1.6 alleen de bijdrage van de prioritaire projecten in 2019 berekend. Voor de andere prognosejaren wordt uitgegaan van dezelfde behoefte. Tabel 3.2 en 3.3 zijn tabellen met de ‘VLW-correcties’: dit zijn de resultaten van de VLW-berekeningen voor wegverkeer (hoofdwegennet en onderliggend wegennet) voor alle AERIUS jaren, die bij de set-up van de database worden opgeteld bij de sectorbijdragen die worden berekend op basis van de RIVM-emissies. De berekende VLW-bijdragen worden via deze correctie dus opgeteld bij de depositie. De VLW-correcties zijn correcties op sectorgroepniveau, opgesplitst naar stof.

Page 10: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

10

Tabel 3.4 en 3.5 bevatten de schaalfactoren die in AERIUS 1.6 worden gebruikt om: De berekende sectorbijdragen voor basisjaar 2010 (statische tabel) te schalen naar

de AERIUS-jaren. Te berekenen wat de generieke groeibehoefte per sectorgroep is, die het

uitgangspunt vormt voor de depositieruimte en ontwikkelbehoefte. Tabel 3.6 betreft de duinencorrectie. De duinencorrectie is een absolute ophoging van depositie in de duingebieden.

2.2.4 Statische tabellen op basis van berekeningen AERIUS

De volgende statische tabellen zijn gebaseerd op depositieberekeningen die binnen AERIUS zijn uitgevoerd: 4.1 Ongecorrigeerde sectorbijdragen (depositie) 4.2 Maasvlaktecorrectie 4.3 Dubbeltellingcorrectie hoofdwegennet Tabel 4.1 bevat voor alle sectoren per stof de ongecorrigeerde, in AERIUS berekende sectorbijdragen: Voor de RIVM sectoren betreft het de bijdragen in het basisjaar 2010, doorgerekend

op basis van de RIVM emissies in 2010 Voor stallen (inclusief opslag) (alleen NH3) betreft het de bijdrage per AERIUS jaar

(2013 en prognosejaren) voor alle scenario’s (10 resultaten in totaal) In principe betreft het hier niet één tabel, maar zijn het meerdere tabellen voor de afzonderlijke sectoren. Tabel 4.2 bevat de met AERIUS berekende Maasvlaktecorrectie. De Maasvlaktecorrectie betreft een herverdeling en lokale ophoging van RIVM-emissies, waardoor beter wordt aangesloten bij de toekomstige situatie met de 2e Maasvlakte (die nu nog niet in bronbestanden RIVM is opgenomen). De Maasvlaktecorrectie betreft de volgende sectorgroepen: ENINA Railverkeer Zeescheepvaart Mobiele bronnen Tabel 4.3 bevat de dubbeltellingcorrectie voor het hoofdwegennet. Dit is een depositiebijdrage van hoofdwegen binnen 3 km die wordt afgetrokken van de totale sectorbijdrage zoals berekend wordt op basis van de RIVM-emissies, omdat deze bijdrage los wordt berekend op basis van VLW-berekeningen en dan wordt opgeteld bij de sectorbijdrage. De dubbeltellingcorrectie is door het RIVM berekend en bekend op km-vak niveau. Binnen AERIUS is de dubbeltellingcorrectie herberekend op hexagoonniveau, waarbij is aangesloten bij de systematiek van het RIVM. De dubbeltellingcorrectie is in AERIUS 1.6 een correctie op sectorniveau (per stof en jaar).

Page 11: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opbouw database 11

2.3 Dynamische tabellen in de database

Tijdens de set-up worden de volgende dynamische tabellen gevuld: 1. Ongecorrigeerde totale depositie per jaar

a. Per sectorgroep en stof b. Totaal

2. Reducties PAS-beleid per jaar a. Scenario generiek Rijksbeleid

i. Stallen en mest ii. Totaal

b. Scenario provinciaal beleid i. Stallen en mest

ii. Totaal 3. Generieke economische groei (‘growth’) per jaar

a. per sectorgroep en stof b. totaal

4. Depositieruimte, ontwikkelingsruimte en ontwikkelbehoefte per prognosejaar (deposition space composition)

a. per sectorgroep en stof b. totaal

5. Opbouw depositieruimte per prognosejaar (deposition spaces) a. per sectorgroep en stof b. totaal

6. Depositieruimte 7. Dynamische correcties op depositie en depositieruimte Onderstaand wordt per dynamische tabel toegelicht hoe deze gebouwd wordt.

2.3.1 Ongecorrigeerde totale depositie per jaar en scenario, per sectorgroep en totaal

In AERIUS1.6 worden niet alle berekende sectorbijdragen los weergegeven, omdat dit door het grote aantal RIVM-sectoren niet inzichtelijk is. Daarom worden de NOx- en NH3-bijdragen van individuele RIVM-sectoren geaggregeerd tot 1 depositiebijdrage per sectorgroep, zoals de sectorgroep ‘ENINA’. De dynamische tabel met ongecorrigeerde sectorgroepbijdragen per jaar en scenario wordt tijdens de set-up van de database als volgt opgesteld: De sectorbijdragen voor 20103 zoals opgenomen in de statische tabel met

ongecorrigeerde sectorbijdragen worden eerst gecorrigeerd op sectorniveau, als er voor de betreffende sector en component een sectorcorrectie is opgenomen in de tabel met correcties voor het jaar 2010. In AERIUS 1.6 is er één correctie op sectorniveau, te weten de dubbeltellingcorrectie voor het hoofdwegennet.

Vervolgens worden de -eventueel gecorrigeerde - sectorbijdragen uit 2010 geschaald naar 2013 en de drie toekomstjaren, op basis van schaalfactoren die zijn opgenomen in de statische tabel met ‘economic scale factors’. Schaling gebeurt per jaar en stof en sector.

Per sector en jaar worden de (eventueel eerst gecorrigeerde en daarna) geschaalde sectorbijdragen voor NH3 en NOx opgeteld tot één sectorbijdrage per stof. Vervolgens worden alle sectoren die horen bij één sectorgroep bij elkaar opgeteld. Dit leidt tot de ongecorrigeerde sectorgroepbijdrage voor het betreffende jaar, per stof, voor het basisscenario zonder PAS-beleid. In de statische tabel met sectorindeling is opgenomen welke sectoren bij welke sectorgroep horen.

xxxxxxxxxxxxssssssssxxxxxxxxxxxxxx

3 Voor mest wordt uitgegaan van de sectorbijdrage in 2010 zonder beleid, dus ‘No Policy’

Page 12: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

12

Uitzondering op bovenstaande aanpak zijn de NH3-bijdragen uit stallen en bijbehorende opslag. Zoals gezegd zijn deze bijdragen niet voor 2010 berekend, maar voor alle AERIUS jaren en scenario’s op basis van eigen bronbestanden. De aldus berekende bijdragen worden direct overgenomen uit de tabel met ongecorrigeerde sectorbijdragen en opgenomen in de tabel met sectorgroepbijdragen als zijnde de sectorgroep ‘stallen’. Stallen zijn daarmee ook de enige sectorgroep die niet alleen voor het basisscenario zonder PAS, maar ook voor de twee beleidsscenario’s (Rijksbeleid PAS en Provinciaal beleid PAS) data in de tabel met sectorgroepbijdragen hebben staan. De ongecorrigeerde depositiebijdragen op sectorgroepniveau worden ook opgeteld en opgeslagen in een tabel met totale ongecorrigeerde depositie per jaar en scenario. Deze tabel maakt geen onderscheid meer in stof. Beide tabellen (sectorgroepniveau en totaal) zijn nog zonder de AERIUS correcties op sectorgroepniveau en op totale depositie. Deze correcties worden wel opgenomen bij de uiteindelijke resultaten zoals AERIUS die presenteert via overzichtstabellen. De uiteindelijke depositie is daarom hoger dan in deze tabellen is opgenomen. Het gaat om de volgende correcties: Maasvlaktecorrectie (correctie op sectorgroepniveau, statische tabel), VLW-bijdragen wegverkeer (correctie op sectorgroepniveau, statische tabel), Buitenland (correctie op totale depositie, statische tabel), Bijtelling (correctie op totale depositie, statische tabel), Duinencorrectie (correctie op totale depositie, statische tabel), Ophoging voor natte MIRT (correctie op totale depositie, dynamische tabel), Teruggegeven depositieruimte (correctie op totale depositie omdat een deel van

berekend effect weer teruggegeven wordt aan de economie, alleen bij scenario’s met PAS, dynamische tabel).

2.3.2 Reducties PAS-beleid

Er zijn in totaal 4 tabellen met reducties door het PAS-beleid: Twee tabellen met reducties voor het scenario met generiek Rijksbeleid

o Tabel met reductie bij stallen en bij mest, per prognosejaar (los weergegeven) o Tabel met totale reductie, per prognosejaar

Twee tabellen met reducties voor het scenario met provinciaal beleid o Tabel met reductie bij stallen en bij mest, per prognosejaar (los weergegeven) o Tabel met totale reductie, per prognosejaar

De reducties worden als volgt bepaald tijdens de set-up van de database: De reductie bij stallen is per prognosejaar het verschil in depositie in het betreffende

scenario met PAS-beleid (Rijksbeleid of provinciaal beleid) en het basisscenario zonder PAS in hetzelfde jaar. Hierbij wordt uitgegaan van de bijdrage zoals opgenomen in de tabel met ongecorrigeerde sectorbijdragen.

De reductie bij mest is in alle prognosejaren en bij beide beleidsscenario’s dezelfde absolute reductie, te weten het eenmalige berekende effect van 2 kton minder mestemissie. Dit effect wordt tijdens de set-up bepaald door de 2010-sectorbijdrage voor ‘mest met beleid’ in de statische tabel met ongecorrigeerde sectorbijdragen af te trekken van de ‘gewone’ sectorbijdrage mest voor 2010 in dezelfde tabel.

Page 13: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opbouw database 13

2.3.3 Generieke economische groei per sectorgroep en totaal

Basis voor de depositieruimte en de ontwikkelbehoefte is de generieke groeibehoefte per sector en stof zoals die volgt uit het BBR-scenario zonder PAS (de basis voor het basisscenario AERIUS). Per sector en stof wordt de voorziene totale, generieke groei bepaald door de bijdrage in 2010 zoals opgenomen in de tabel met ongecorrigeerde sectorbijdragen te schalen volgens de ‘economic growth factors’. Deze groeifactoren zijn gebaseerd op basisjaar 2010 en moeten dus altijd toegepast worden op de depositie in 2010. De groeifactoren zijn zo opgesteld dat ze op basis van de depositie in 2010 berekenen wat de verwachte behoefte voor nieuwe ontwikkelingen in een bepaald toekomstjaar is, gerekend vanaf het begin van de PAS. Per prognosejaar, stof en sector is er een schaalfactor om de ‘growth’ in het betreffende jaar te berekenen. Dit leidt dus tot een behoefte per prognosejaar, per stof, per sector. Eventuele correcties voor het jaar 2010 op sectorniveau worden toegepast voordat de schaling plaatsvindt. Specifiek voor stallen (waar geen bijdrage voor 2010 is opgenomen in de tabel met sectorbijdragen) wordt de sectorbijdrage in 2013 eerst teruggeschaald naar 2010, waarna alsnog de groeifactor kan worden toegepast op dezelfde wijze als bij de andere sectoren. Het terugschalen van 2013 naar 2010 gebeurt op basis van de inverse van de ‘economic scale factor’ voor 2013 voor stallen, die speciaal voor dat doeleinde is opgenomen in de tabel met economic scale factors. De generieke groeibehoefte wordt per sector en stof geaggregeerd tot één depositiegetal per sectorgroep per prognosejaar per stof: de ‘growth’ per sectorgroep en jaar en stof. Vervolgens is de Maasvlaktecorrectie opgeteld bij de ‘growth’ voor de betreffende sectorgroepen. Uiteindelijk resultaat is per sectorgroep, per stof, per prognosejaar de generieke groei conform de BBR zonder PAS, maar dan inclusief correctie voor de Tweede Maasvlakte. Vervolgens wordt de generieke groei per sectorgroep inclusief 2e Maasvlaktecorrectie gecumuleerd tot de totale generieke groei per jaar, zonder opsplitsing naar stof. Dit wordt in een losse tabel opgeslagen.

2.3.4 Depositieruimte, ontwikkelingsruimte en ontwikkelbehoefte per sectorgroep en totaal

In deze tabellen is informatie per sectorgroep en voor totaal opgenomen die deels hoort bij depositieruimte en deels bij ontwikkelbehoefte. De tabel per sectorgroep heeft in tegenstelling tot andere tabellen per sectorgroep geen onderscheid in stof. In de tabel op sectorgroepniveau is opgenomen: De generieke groei per sectorgroep (‘growth’) zoals opgenomen in de tabel met

generieke groei, dus inclusief Maasvlaktecorrectie (relevant voor 4 sectorgroepen: enina, rail, zeescheepvaart en mobiele bronnen).

De zogeheten ‘growth addition’ op sectorgroepniveau. Deze is in AERIUS 1.6 alleen toegepast voor sectorgroep 31 (hoofdwegennet). De growth addition is de lokale ophoging van de generieke groei, als de behoefte voor droge MIRT zoals opgenomen in de prioritaire projecten en zoals ook verwerkt in de totale depositie in het basisscenario hoger blijkt te zijn dan de generieke groei die is berekend.

De ‘demand addition’ (30%-regel): dit is een ophoging die alleen relevant is bij het berekenen van de resterende ontwikkelbehoefte. De demand addition geldt per

Page 14: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

14

sectorgroep en wordt toegepast op het moment dat de behoefte van de prioritaire projecten voor een sectorgroep meer is dan 70% van de generieke behoefte zoals opgenomen in de tabel met generieke groei. De demand addition zorgt ervoor dat de resterende ontwikkelbehoefte voor overige ontwikkelingen minimaal 30% blijft van de generieke groei voor de sectorgroep (en ligt dus per definitie tussen de 0-30% van de generieke groei).

Depositieruimte door generiek Rijksbeleid: dit is de helft van het berekende effect van het Rijksbeleid zoals opgenomen in de tabel met reducties PAS-beleid, waarbij wel eerst de correctie op teruggeven depositieruimte zoals opgenomen in de betreffende tabel wordt toegepast op de reductie.

Grenswaardereservering voor Prioritaire Projecten: deze is opgenomen in de tabel en volgt uit de tabel met bijdragen prioritaire projecten. In AERIUS 1.6 is de bijdrage van prioritaire projecten onder de grenswaarde nul.

In de tabel met totalen zijn alle bijdragen per sectorgroep bij elkaar opgeteld. Verder is in deze tabel ook de ophoging voor natte MIRT opgenomen: dit is een sectorgroep-overkoepelende ‘growth addition’. De ophoging voor natte MIRT wordt opgeteld bij de depositieruimte door economische groei en als volgt bepaald: Voor de sectorgroepen 382 en 386 (binnenvaart en zeescheepvaart) wordt

berekend of de som van de prioritaire projecten meer is dan de som van de generieke groei zoals opgenomen in de tabel met generieke groei (dus inclusief correctie voor tweede Maasvlakte). Indien dit het geval is, wordt het verschil als growth addition opgenomen.

2.3.5 Tabel met verdeling depositieruimte (deposition spaces) per sectorgroep en totaal

In deze tabel is op sectorgroepniveau het volgende opgenomen: Bijdrage prioritaire projecten boven de grenswaarde zoals opgenomen in de

statische tabel met bijdragen. Dit is de ‘demand PP’: de omvang van Segment 1 Bijdrage prioritaire projecten onder de grenswaarde zoals opgenomen in de

statische tabel met bijdragen. Dit is de ‘under threshold PP’: de benodigde grenswaardereservering voor Segment 1. Deze is nul in AERIUS 1.6

Behoefte NTVP: dit is de resterende behoefte van de sectoren die zijn ingedeeld bij NTVP. De resterende ontwikkelbehoefte wordt als volgt berekend: o De generieke groei wordt verminderd met de totale behoefte van alle prioritaire

projecten binnen die sectorgroep o De eventuele demand addition wordt opgeteld

Behoefte segment 2 (‘projects’): dit wordt op dezelfde wijze bepaald als de behoefte voor NTVP, maar dan op basis van de sectorgroepen die bij segment 2 zijn ingedeeld

2.3.6 Depositieruimte per prognosejaar

De depositieruimte in AERIUS bestaat uit twee delen: Deel ‘economy’: de generieke groei van alle sectorgroepen + de growth addition voor

het hoofdwegennet (MIRT) plus de overkoepelende ophoging voor natte MIRT Deel ‘policy’: het berekende deel ‘policy’ (de helft van het effect, rekening houdend

met correctie bij stallen) De totale depositieruimte is de ‘taart’ die beschikbaar is en waar rekening mee is gehouden bij het bepalen van de totale depositie.

Page 15: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opmerkingen Database 15

2.3.7 Dynamische correcties

Er zijn twee dynamische correcties: Ophoging voor natte MIRT (zie 2.3.4) Teruggegeven depositieruimte (alleen in scenario’s met PAS-beleid)

o Deze wordt bepaald door de helft van het berekende effect van het Rijksbeleid te nemen, waarbij eerst de correctie op depositieruimte zoals opgenomen in de statische tabel wordt toegepast

o Het resultaat wordt weer opgeteld bij het bepalen van de depositie in de scenario’s met PAS

3 Opmerkingen Database

In dit hoofdstuk vind de feitelijke review van de AERIUS database plaats. Zoals eerder al genoemd, wordt dit gedaan op basis van hetgeen in het achtergronddocument is opgenomen en de sql-bestanden die worden gebruikt voor de database opbouw. Voor de afzonderlijke tabellen, genoemd in Hoofdstuk 2, is in Bijlage A een overzicht opgenomen van de voor die tabellen relevante broncode. Het betreft hier broncode voor het aanmaken en vullen van de tabellen. Voor de dynamische tabellen zijn ook de build-, function- en view-sql bronbestanden opgenomen. Op basis van deze bronbestanden kunnen een aantal algemene en specifieke opmerkingen gemaakt worden, die in de volgende paragrafen terug te vinden zijn.

3.1 Algemene opmerkingen

De structuur voor het aanmaken van de database is duidelijk, waarbij een logische volgorde gehanteerd wordt. De consequente onderverdeling in aanmaken en vullen van tabellen voor zowel de statische als dynamische tabellen zorgt voor duidelijkheid in de opbouw.

Duidelijke structuur voor aanmaken database

Page 16: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

16

De naamgeving van de verschillende tabellen in de database is af en toe lastig te koppelen aan de beschreven database. Een beschrijving waarin deze naamgeving overeenkomt met de feitelijke database zal daarbij kunnen helpen. Ook de vertaling van de Nederlandse woorden ‘ruimte’ en ‘behoefte’ in ‘space’ en ‘demand’, lijkt niet overal

even consequent doorgevoerd te zijn. Dit heeft echter niet gezorgd voor fouten in de database. Het kan op termijn echter wel voor problemen zorgen wanneer nieuwe medewerkers met de betreffende broncodes moeten werken.

Voor het inlezen van de verschillende gegevens in de statische tabellen wordt gebruik gemaakt van een aantal sql-bestanden waarin handmatig aanpassingen in doorgevoerd moeten worden om de meest recente gegevens te kunnen inlezen. In de ‘data_folder’

(in dit geval onder ‘monitor16’) worden de verschillende databestanden opgeslagen en

van daaruit ingelezen. De verschillende bestanden krijgen een datumstempel mee, die handmatig in de respectievelijke sql-bestanden moet worden opgenomen. Doordat de verschillende versies van de bestanden (dus zelfde naam, maar andere datumstempel) in dezelfde folder staan, bestaat er de kans dat er foute (oude) bestanden worden ingelezen wanneer vergeten wordt de relevante sql-bestanden aan te passen. Er is geen aanwijzing dat dit ook inderdaad gebeurd is (mede vanwege het niet beschikbaar hebben van de feitelijke data en/of de gevulde database), maar het risico is aanwezig.

3.2 Specifieke opmerkingen

In deze paragraaf worden een aantal specifieke opmerkingen bij de verschillende tabellen geplaatst. Hierbij wordt de verdeling in statische en dynamische tabellen aangehouden, zoals benoemd in Hoofdstuk 2.

3.2.1 Statische tabellen

Tabel 1.1 – Jaren (Years)

Volgens de beschrijving gaat het in AERIUS1.6 om de jaren 2010, 2013, 2019, 2025 en 2031. Echter, vanuit de bronbestanden is onduidelijk hoe 2010 in de ‘years’ tabel

opgenomen wordt. Dit jaar staat namelijk niet in de array vermeld met in te lezen jaren.

3.2.2 Dynamische tabellen

Tabel ‘2.3.5’ met verdeling depositieruimte per sectorgroep en totaal Structuur is op zich nog duidelijk – echter, het lijkt er op dat de tabellen 2.3.5 en 2.3.6 hier in dezelfde queries meegenomen zijn. De growth + growth addition en ‘natte MIRT’ worden in de bovengenoemde queries benoemd, terwijl deze volgens de beschrijving in 2.3.6 zouden moeten worden aangemaakt. Wanneer dit zo wel/niet de bedoeling is, moeten de queries of de tekst hierop aangepast worden. Tabel ‘2.3.6’ Depositieruimte per prognosejaar Via de build query is niet duidelijk om welke tabellen het hier gaat. Het lijkt er echter op dat de delen die in het document genoemd worden (growth+growth_addition+natte MIRT en policy) al in 2.3.5 benoemd zijn.

Zorg voor consequente naamgeving in broncode en laat deze in beschrijving terugkomen

‘Handmatige’ verwerking van

databestanden potentiele bron van fouten

2010 mist in Years tabel?

Tabel 2.3.6. al opgenomen in Tabel 2.3.5?

Page 17: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Opmerkingen Database 17

Page 18: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

18

4 Conclusies en aanbevelingen

De beschreven structuur van de AERIUS database is vergeleken met de feitelijke database opbouw. In het voorgaande hoofdstuk is al een overzicht gegeven van een aantal observaties. Hier worden nog een aantal conclusies met betrekking tot deze observaties getrokken.

4.1 Conclusies

De opbouw van de AERIUS database gebeurd volgens een duidelijke structuur van verschillende sql-bestanden. Dit geldt eveneens voor het vullen van de statische en dynamische tabellen. De feitelijke AERIUS database is grotendeels conform de beschreven versie. Daar waar afwijkingen geconstateerd zijn, zijn dit afwijkingen die voor de database zelf geen problemen opleveren. Aanpassingen in de beschrijving zijn nodig om hier duidelijkheid in te scheppen. Al met al kan geconstateerd worden dat de AERIUS database het doel dient waarvoor het is opgezet en er geen substantiële tekortkomingen geconstateerd zijn. De beschreven tabellen zijn beschikbaar in de database en gevuld met de relevante data.

4.2 Aanbevelingen

Zorg voor consequente en duidelijke naamgeving van de verschillende tabellen. Dit zal de ‘leesbaarheid’ van de broncode ten goede komen en daarmee de overdraagbaarheid

van het geheel.

Page 19: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 19

Zorg voor een meer geautomatiseerde wijze van inlezen van statische data. Zoek op de meest recente datum bij een specifiek databestand in de data_folder en lees die in. Hierdoor wordt de handmatige stap voorkomen, waarbij de datums in het sql-bestand worden aangepast. Deze review beperkt zich tot een belangrijk, maar klein deel van het gehele AERIUS systeem. De interactie met de overige delen van AERIUS, waaronder het genereren van de vele invoerbestanden, zou eveneens onderworpen moeten worden aan een review. Hiermee kan dan een completer beeld geschetst worden van de doelmatigheid van AERIUS1.6.

Page 20: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

20

Bijlage A. Overzicht SQL -broncode

In deze bijlage is het overzicht van de verschillende tabellen opgenomen zoals opgenomen in het eerder genoemde achtergronddocument. Per tabel is aangegeven welke stappen in de verschillende bronbestanden opgenomen zijn. In geel zijn daarbij de relevante onderdelen uit de verschillende bronbestanden weergegeven. Per beschreven tabel wordt weergegeven in hoeverre de structuur van de tabellen duidelijk is en/of waar deze afwijkt van hetgeen er beschreven is.

A.1 Statische tabellen zonder input van derden In de database zijn de volgende statische tabellen opgenomen die zonder input van derden opgesteld zijn: 1.1 Jaren (in AERIUS 1.6 zijn dit 2010, 2013, 2019, 2025 en 2031) AERIUS-monitor-code/10-public/02-tables/01-general.sql CREATE TABLE years ( year year_type NOT NULL, CONSTRAINT years_pkey PRIMARY KEY (year) ); CLUSTER years USING years_pkey; AERIUS-monitor-data/01-general.sql BEGIN; INSERT INTO years SELECT unnest(ARRAY[2013, 2019, 2025, 2031]); COMMIT; Opmerkingen: Structuur is duidelijk – afzonderlijke jaren worden rechtstreeks in tabel opgenomen. Onduidelijk is echter hoe 2010 in de ‘years’ tabel opgenomen wordt; dit jaar staat

niet in de bovengenoemde array vermeld. 1.2 Stoffen (NOx en NH3) AERIUS-monitor-code/10-public/02-tables/01-general.sql CREATE TABLE substances ( substance_id smallint NOT NULL, name text NOT NULL, description text, CONSTRAINT substances_pkey PRIMARY KEY (substance_id) ); CLUSTER substances USING substances_pkey; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('substances', '{data_folder}/monitor16/substances_20111208.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de relevante stoffen worden rechtstreeks vanuit de

‘data_folder’ ingelezen. 1.3 Overzicht sectoren en indeling in sectorgroepen AERIUS-monitor-code/10-public/02-tables/02-sector.sql CREATE TABLE sectors (

Page 21: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 21

sector_id integer NOT NULL, sector_group_id integer NOT NULL, description text NOT NULL, CONSTRAINT sectors_pkey PRIMARY KEY (sector_id)--, -- CONSTRAINT sectors_fkey_sector_groups FOREIGN KEY (sector_group_id) REFERENCES sector_groups ); CLUSTER sectors USING sectors_pkey; CREATE TABLE sector_groups ( sector_group_id integer NOT NULL, table_name text NOT NULL, description text NOT NULL, CONSTRAINT sector_groups_pkey PRIMARY KEY (sector_group_id) ); CLUSTER sector_groups USING sector_groups_pkey; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('sector_groups', '{data_folder}/monitor16/sector_groups_20130928.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('sectors', '{data_folder}/monitor16/sectors_20130928.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de relevante sectoren en sector groepen worden rechtstreeks

vanuit de ‘data_folder’ ingelezen. 1.4 Receptoren en hexagonen (intern gegenereerd binnen AERIUS) AERIUS-monitor-code/10-public/02-tables/04-receptor.sql CREATE TABLE receptors ( receptor_id integer NOT NULL, CONSTRAINT receptors_pkey PRIMARY KEY (receptor_id) ); CLUSTER receptors_pkey ON receptors; SELECT AddGeometryColumn('receptors', 'geometry', 28992, 'POINT', 2); CREATE INDEX receptors_geometry_gist ON receptors USING GIST (geometry); AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('receptors', '{data_folder}/monitor16/receptors_20130917.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de receptoren worden rechtstreeks vanuit de ‘data_folder’

ingelezen.

1.5 ‘Segmentation’: indeling sectorgroepen in S2 of NTVP AERIUS-monitor-code\10-public\02-tables\04-receptor.sql CREATE TABLE deposition_space_segmententations (

sector_group_id integer NOT NULL,

no_permit_required_size fraction NOT NULL,

projects_size fraction NOT NULL,

CONSTRAINT deposition_space_segmententations_pkey PRIMARY KEY (sector_group_id)--,

, CONSTRAINT deposition_space_segmententations_valid_segmententation CHECK

(no_permit_required_size + projects_size = 1.0)

);

CLUSTER deposition_space_segmententations_pkey ON deposition_space_segmententations;

AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('deposition_space_segmententations',

'{data_folder}/monitor16/deposition_space_segmententations_20131002.txt'); COMMIT;

Page 22: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

22

Opmerkingen: Structuur is duidelijk – de verdeling (segmentation) wordt rechtstreeks vanuit de

‘data_folder’ ingelezen en opgeslagen in de tabel ‘deposition_space_segmentations’.

1.6 Correctie voor depositieruimte, op sectorgroepniveau en jaar AERIUS-monitor-code\10-public\02-tables\03-sector-group.sql CREATE TABLE deposition_space_sector_group_correction_factors ( year year_type NOT NULL, sector_group_id integer NOT NULL, correction_factor real NOT NULL, CONSTRAINT dep_space_sect_grp_cor_fact_pkey PRIMARY KEY (year)--, ); CLUSTER dep_space_sect_grp_cor_fact_pkey ON deposition_space_sector_group_correction_factors; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('deposition_space_sector_group_correction_factors', '{data_folder}/monitor16/deposition_space_sector_group_correction_factors_20131001.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de gegevens voor de betreffende correctie wordt

rechtstreeks vanuit de ‘data_folder’ ingelezen en op sectorniveau opgeslagen in de tabel ‘deposition_space_sector_group_correction_factors’.

A.2 Statische tabellen met input van derden, zonder pre-processing AERIUS In de database zijn de volgende statische tabellen opgenomen op basis van input van derden, maar zonder verdere bewerkingen binnen AERIUS: 2.1 HT en N2000 gebieden (begrenzingen en karteringen) AERIUS-monitor-code/10-public/02-tables/05-areas.sql CREATE TABLE natura2000_areas ( natura2000_area_id integer NOT NULL, name text NOT NULL, authority text NOT NULL, surface double precision NULL, CONSTRAINT natura2000_areas_pkey PRIMARY KEY (natura2000_area_id) ); CREATE INDEX natura2000_areas_name ON natura2000_areas(name); CLUSTER natura2000_areas USING natura2000_areas_pkey; CREATE TABLE habitat_types ( habitat_type_id integer NOT NULL, name text NOT NULL, description text NOT NULL, critical_deposition posint NOT NULL CHECK (critical_deposition > 0), CONSTRAINT habitat_types_pkey PRIMARY KEY (habitat_type_id), CONSTRAINT habitat_types_unique_name UNIQUE (name) ); CREATE INDEX habitat_types_name ON habitat_types (name); CLUSTER habitat_types USING habitat_types_pkey; CREATE TABLE surface_by_natura2000_habitat_receptor ( natura2000_area_id integer NOT NULL, habitat_type_id integer NOT NULL, receptor_id integer NOT NULL, surface double precision NOT NULL, CONSTRAINT surface_by_natura2000_habitat_receptor_pkey PRIMARY KEY (natura2000_area_id, habitat_type_id, receptor_id)

Page 23: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 23

); CLUSTER surface_by_natura2000_habitat_receptor USING surface_by_natura2000_habitat_receptor_pkey; CREATE TABLE natura2000_area_receptors ( natura2000_area_id integer NOT NULL, receptor_id integer NOT NULL, CONSTRAINT natura2000_area_receptors_pkey PRIMARY KEY (natura2000_area_id, receptor_id) ); CLUSTER natura2000_area_receptors USING natura2000_area_receptors_pkey; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('habitat_types', '{data_folder}/monitor16/habitat_types_20130923.txt', 'WIN1252'); COMMIT; BEGIN; SELECT setup.ae_load_table('natura2000_areas', '{data_folder}/monitor16/natura2000_areas_r706_simple_20131002.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('surface_by_natura2000_habitat_receptor', '{data_folder}/monitor16/surface_by_natura2000_habitat_receptor_20131009.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('natura2000_area_receptors', '{data_folder}/monitor16/natura2000_area_receptors_20131016.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – informatie over de natura2000 gebieden en habitattypes

worden rechtstreeks vanuit de ‘data_folder’ ingelezen en geladen in de tabellen ‘habitat_types’, ‘natura2000_areas’, ‘surface_by_natura2000_habitat_receptor’ en ‘natura2000_area_receptors’.

2.2 Bijtelling (RIVM gegevens, GCN-ronde2013) AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/04-total.sql CREATE TABLE setup.receptor_total_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT total_depositions_cor_no_policies_pkey PRIMARY KEY (correction_type, year, receptor_id)--, -- CONSTRAINT total_depositions_cor_no_policies_fkey_receptors FOREIGN KEY (receptor_id) REFERENCES receptors ); CLUSTER total_depositions_cor_no_policies_pkey ON setup.receptor_total_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_total_deposition_corrections_no_policies', '{data_folder}/monitor16/total_measurement_corrections_no_policies_20130930.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de ‘bijtelling’ (of meetcorrectie) wordt rechtstreeks vanuit de

‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel

Page 24: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

24

‘receptor_total_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘measurement_correction’.

2.3 Buitenland (RIVM gegevens, GCN-ronde2013) AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/04-total.sql CREATE TABLE setup.receptor_total_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT total_depositions_cor_no_policies_pkey PRIMARY KEY (correction_type, year, receptor_id)--, -- CONSTRAINT total_depositions_cor_no_policies_fkey_receptors FOREIGN KEY (receptor_id) REFERENCES receptors ); CLUSTER total_depositions_cor_no_policies_pkey ON setup.receptor_total_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_total_deposition_corrections_no_policies', '{data_folder}/monitor16/total_abroad_corrections_20131007.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de bijdrage vanuit het buitenland wordt rechtstreeks vanuit

de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_total_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘abroad_deposition’.

A.3 Statische tabellen met input van derden, met pre-processing AERIUS In de database zijn de volgende statische tabellen opgenomen op basis van input van derden, waarop beperkte of uitgebreide ‘pre-processing’ heeft plaatsgevonden: 3.1 Bijdrage prioritaire projecten AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\01-general.sql CREATE TABLE setup.priority_project_sector_group_development_demands ( year year_type NOT NULL, sector_group_id integer NOT NULL, receptor_id integer NOT NULL, demand real NOT NULL, under_threshold real NOT NULL, CONSTRAINT prio_proj_sect_grp_development_demands_pkey PRIMARY KEY (year, sector_group_id, receptor_id)--, );

Page 25: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 25

CLUSTER prio_proj_sect_grp_development_demands_pkey ON setup.priority_project_sector_group_development_demands;

AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('setup.priority_project_sector_group_development_demands', '{data_folder}/monitor16/priority_project_sector_group_development_demands_20131211.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de ontwikkelbehoefte voor de prioritaire projecten wordt

rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘priority_project_sector_group_development_demands’ en per sector opgeslagen.

3.2 Correctie wegverkeer VLW – hoofdwegennet AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/03-sector-group.sql CREATE TABLE setup.receptor_group_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_group_dep_cor_no_policies_pkey PRIMARY KEY (correction_type, year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_group_dep_cor_no_policies_pkey ON setup.receptor_group_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_group_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_group_deposition_corrections_no_policies_road_highway_20131015.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de extra depostie t.g.v. de VLW bijdrage voor het

hoofdwegennet wordt rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_group_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘road_highway_correction’.

3.3 Correctie wegverkeer VLW – onderliggend wegennet AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/03-sector-group.sql CREATE TABLE setup.receptor_group_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL,

Page 26: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

26

receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_group_dep_cor_no_policies_pkey PRIMARY KEY (correction_type, year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_group_dep_cor_no_policies_pkey ON setup.receptor_group_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_group_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_group_deposition_corrections_no_policies_road_other_20131015.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de extra depostie t.g.v. de VLW bijdrage voor het

onderliggend wegennet wordt rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_group_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘road_other_correction’.

3.4 Schaalfactoren ‘economic scale’ AERIUS-monitor-code\10-public\02-tables\02-sector.sql CREATE TABLE economic_scale_factors ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, scale_factor real NOT NULL, CONSTRAINT economic_scale_factors_pkey PRIMARY KEY (year, sector_id, substance_id)--, ); CLUSTER economic_scale_factors_pkey ON economic_scale_factors; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('economic_scale_factors', '{data_folder}/monitor16/economic_scale_factors_20131001.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de schaalfactoren worden rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt op sectorniveau toegevoegd aan de tabel ‘economic_scale_factors’. 3.5 Schaalfactoren ‘economic growth’ AERIUS-monitor-code\10-public\02-tables\02-sector.sql CREATE TABLE economic_growth_factors ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL,

Page 27: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 27

growth_factor real NOT NULL, CONSTRAINT economic_growth_factors_pkey PRIMARY KEY (year, sector_id, substance_id)--, ); CLUSTER economic_growth_factors_pkey ON economic_growth_factors; AERIUS-monitor-data/01-general.sql BEGIN; SELECT setup.ae_load_table('economic_growth_factors', '{data_folder}/monitor16/economic_growth_factors_20131010.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de ‘groei’factoren worden rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt op sectorniveau toegevoegd aan de tabel ‘economic_growth_factors’. 3.6 Duinencorrectie AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/04-total.sql CREATE TABLE setup.receptor_total_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT total_depositions_cor_no_policies_pkey PRIMARY KEY (correction_type, year, receptor_id)--, ); CLUSTER total_depositions_cor_no_policies_pkey ON setup.receptor_total_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_total_deposition_corrections_no_policies', '{data_folder}/monitor16/total_dune_area_corrections_20130930.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de extra depostie t.g.v. de duincorrectie wordt rechtstreeks

vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_total_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘dune_area_correction’.

A.4 Statische tabellen op basis van berekeningen AERIUS De volgende statische tabellen zijn gebaseerd op depositieberekeningen die binnen AERIUS zijn uitgevoerd: 4.1 Ongecorrigeerde sectorbijdragen (depositie) AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\02-sector.sql

Page 28: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

28

Landbouw - stallen CREATE TABLE setup.receptor_farm_lodging_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_farm_lodging_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_farm_lodging_dep_no_policies_pkey ON setup.receptor_farm_lodging_depositions_no_policies; CREATE TABLE setup.receptor_sector_deposition_corrections_global_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_dep_cor_global_policies_pkey PRIMARY KEY (correction_type, year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_dep_cor_global_policies_pkey ON setup.receptor_sector_deposition_corrections_global_policies; CREATE TABLE setup.receptor_sector_deposition_corrections_jurisdiction_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_dep_cor_jurisdiction_policies_pkey PRIMARY KEY (correction_type, year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_dep_cor_jurisdiction_policies_pkey ON setup.receptor_sector_deposition_corrections_jurisdiction_policies; Glastuinbouw CREATE TABLE setup.receptor_greenhouse_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_greenhouse_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_greenhouse_dep_no_policies_pkey ON setup.receptor_greenhouse_depositions_no_policies; GDN – deel I CREATE TABLE setup.receptor_mobile_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_mobile_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_mobile_dep_no_policies_pkey ON setup.receptor_mobile_depositions_no_policies; CREATE TABLE setup.receptor_farm_other_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL,

Page 29: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 29

CONSTRAINT rcp_farm_other_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_farm_other_dep_no_policies_pkey ON setup.receptor_farm_other_depositions_no_policies; CREATE TABLE setup.receptor_hdo_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_hdo_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_hdo_dep_no_policies_pkey ON setup.receptor_hdo_depositions_no_policies; GDN deel II CREATE TABLE setup.receptor_farm_fertilize_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_farm_fertilize_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_farm_fertilize_dep_no_policies_pkey ON setup.receptor_farm_fertilize_depositions_no_policies; CREATE TABLE setup.receptor_shipping_other_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_other_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_other_dep_no_policies_pkey ON setup.receptor_shipping_other_depositions_no_policies; Industrie CREATE TABLE setup.receptor_enina_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_enina_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_enina_dep_no_policies_pkey ON setup.receptor_enina_depositions_no_policies; Wegverkeer CREATE TABLE setup.receptor_road_highway_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_road_highway_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_road_highway_dep_no_policies_pkey ON setup.receptor_road_highway_depositions_no_policies; CREATE TABLE setup.receptor_road_other_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL,

Page 30: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

30

receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_road_other_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_road_other_dep_no_policies_pkey ON setup.receptor_road_other_depositions_no_policies; Mestaanwending met beleid CREATE TABLE setup.receptor_sector_deposition_corrections_global_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_dep_cor_global_policies_pkey PRIMARY KEY (correction_type, year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_dep_cor_global_policies_pkey ON setup.receptor_sector_deposition_corrections_global_policies; Rail/Scheepvaart – deel I CREATE TABLE setup.receptor_rail_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_rail_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_rail_dep_no_policies_pkey ON setup.receptor_rail_depositions_no_policies; CREATE TABLE setup.receptor_shipping_maritime_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_maritime_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_maritime_dep_no_policies_pkey ON setup.receptor_shipping_maritime_depositions_no_policies; CREATE TABLE setup.receptor_shipping_maritime_ncp_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_maritime_ncp_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_maritime_ncp_dep_no_policies_pkey ON setup.receptor_shipping_maritime_ncp_depositions_no_policies; Scheepvaart – deel II CREATE TABLE setup.receptor_shipping_maritime_ncp_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_maritime_ncp_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_maritime_ncp_dep_no_policies_pkey ON setup.receptor_shipping_maritime_ncp_depositions_no_policies;

Page 31: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 31

Luchtvaart CREATE TABLE setup.receptor_aviation_depositions_no_policies ( year year_type NOT NULL,

sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_aviation_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_aviation_dep_no_policies_pkey ON setup.receptor_aviation_depositions_no_policies; Luchtvaart CREATE TABLE setup.receptor_aviation_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_aviation_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_aviation_dep_no_policies_pkey ON setup.receptor_aviation_depositions_no_policies; Binnenvaart CREATE TABLE setup.receptor_shipping_inland_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_inland_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_inland_dep_no_policies_pkey ON setup.receptor_shipping_inland_depositions_no_policies; GDN (Maasvlakte) CREATE TABLE setup.receptor_shipping_other_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_shipping_other_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_shipping_other_dep_no_policies_pkey ON setup.receptor_shipping_other_depositions_no_policies; CREATE TABLE setup.receptor_farm_other_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_farm_other_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_farm_other_dep_no_policies_pkey ON setup.receptor_farm_other_depositions_no_policies; CREATE TABLE setup.receptor_consumer_depositions_no_policies ( year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL,

Page 32: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

32

CONSTRAINT rcp_consumer_dep_no_policies_pkey PRIMARY KEY (year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_consumer_dep_no_policies_pkey ON setup.receptor_consumer_depositions_no_policies; AERIUS-monitor-data/02-depositions.sql Landbouw - stallen (11x) BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_lodging_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_11_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_lodging_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_no_policies_2013_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_lodging_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_no_policies_2019_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_lodging_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_no_policies_2025_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_lodging_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_no_policies_2031_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_global_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_global_policies_2019_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_global_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_global_policies_2025_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_global_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_global_policies_2031_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_jurisdiction_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_jurisdiction_policies_2019_20131029.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_jurisdiction_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_jurisdiction_policies_2025_20131029.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_jurisdiction_policies', '{data_folder}/monitor16/receptor_sector_depositions_farm_4110_jurisdiction_policies_2031_20131029.txt'); COMMIT; Glastuinbouw (1x) BEGIN; SELECT setup.ae_load_table('setup.receptor_greenhouse_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_greenhouse_4320_2010_20130923.txt'); COMMIT; GDN – deel I (9x) BEGIN; SELECT setup.ae_load_table('setup.receptor_mobile_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_3210_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_mobile_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_3220_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_mobile_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_3230_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_4310_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_4600_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_hdo_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_6100_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_hdo_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_6200_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_hdo_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_6400_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_hdo_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_7000_2010_20130923.txt'); COMMIT; GDN deel II (3x) BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_4130_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_fertilize_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_4140_2010_20130923.txt'); COMMIT;

Page 33: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 33

BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_other_3850_2010_20131001.txt'); COMMIT; Industrie (11x) BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1100_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1200_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1300_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1400_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1500_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1700_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_1800_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_2100_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_2210_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_industry_2220_2010_20130923.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_enina_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_enina_5000_2010_20131001.txt'); COMMIT; Wegverkeer (15x) BEGIN; SELECT setup.ae_load_table('setup.receptor_road_highway_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3111_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3112_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3113_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_highway_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3121_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3122_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3123_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_highway_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3131_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3132_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3133_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_highway_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3141_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3142_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3143_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_highway_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3151_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3152_2010_20131014.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_road_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_road_3153_2010_20131014.txt'); COMMIT; Mestaanwending met beleid (1x) BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_depositions_global_policies', '{data_folder}/monitor16/receptor_sector_depositions_fertilize_with_policies_4140_2010_20130925.txt'); COMMIT; Scheepvaart – deel I (21x) BEGIN; SELECT setup.ae_load_table('setup.receptor_rail_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_3700_2010_20130924.txt'); COMMIT;

Page 34: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

34

BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3815_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3819_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3821_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3822_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3823_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3824_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3825_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3826_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3827_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3828_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3829_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3831_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3832_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3833_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3834_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3835_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3836_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3837_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3838_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_3839_2010_20131001.txt'); COMMIT; --BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_3850_2010_20130924.txt'); COMMIT; Scheepvaart – deel II (7x) BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3811_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3812_2010_20131001.txt'); COMMIT;

Page 35: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 35

BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3813_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3814_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3816_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3817_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_maritime_ncp_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_maritime_ncp_3818_2010_20131001.txt'); COMMIT; Luchtvaart (2x) BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3605_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3608_2010_20130924.txt'); COMMIT; Luchtvaart (16x) BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3601_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3602_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3603_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3604_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3606_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3607_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3609_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3610_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3611_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3612_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3613_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3614_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3621_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3622_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3623_2010_20131001.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_aviation_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_aviation_3624_2010_20131001.txt'); COMMIT; Binnenvaart (5x) BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_inland_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3861_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_inland_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3862_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_inland_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3863_2010_20130924.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_inland_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3864_2010_20130924.txt'); COMMIT;

Page 36: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

36

BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_inland_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3865_2010_20130924.txt'); COMMIT; GDN (Maasvlakte) (4x) BEGIN; SELECT setup.ae_load_table('setup.receptor_shipping_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_shipping_inland_3880_2010_20130925.txt'); COMMIT; -- 3880 part1 + part2 BEGIN; SELECT setup.ae_load_table('setup.receptor_farm_other_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_gdn_4200_2010_20130925.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_consumer_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_consumer_8100_2010_20130925.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_consumer_depositions_no_policies', '{data_folder}/monitor16/receptor_sector_depositions_consumer_8200_2010_20131001.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de verschillende deposities worden rechtstreeks vanuit de

‘data folder’ ingelezen. Ze worden toegevoegd aan ‘depositietabellen’ op sectorniveau. In totaal gaat het daarbij om 22 tabellen.

4.2 Maasvlaktecorrectie AERIUS-monitor-code/99-setup/02-build/10-public/02-tables/03-sector-group.sql CREATE TABLE setup.receptor_group_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_group_dep_cor_no_policies_pkey PRIMARY KEY (correction_type, year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_group_dep_cor_no_policies_pkey ON setup.receptor_group_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_group_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_group_maasvlakte_gdn_corrections_20131008.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_group_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_group_maasvlakte_corrections_20131008.txt'); COMMIT; BEGIN; SELECT setup.ae_load_table('setup.receptor_group_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_group_maasvlakte_3220_corrections_20131008.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de depostie t.g.v. de maasvlaktecorrectie wordt rechtstreeks

vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_group_deposition_corrections_no_policies’ en respectievelijk opgeslagen

Page 37: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 37

onder correctie types ‘maasvlakte_gdn_correction’, ‘maasvlakte_correction’ en ‘maasvlakte_correction_3220’.

4.3 Dubbeltellingcorrectie hoofdwegennet AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\02-sector.sql CREATE TABLE setup.receptor_sector_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, sector_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT rcp_sect_dep_cor_no_policies_pkey PRIMARY KEY (correction_type, year, sector_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_dep_cor_no_policies_pkey ON setup.receptor_sector_deposition_corrections_no_policies; AERIUS-monitor-code/99-setup/02-build/10-public/01-types/01-types.sql CREATE TYPE setup.deposition_correction_type AS ENUM ('dune_area_correction', 'maasvlakte_gdn_correction', 'maasvlakte_correction', 'maasvlakte_correction_3220', 'abroad_deposition', 'measurement_correction', 'correction_56', 'growth_addition_correction', 'growth_addition_upper_limit_correction', 'returned_deposition_space', 'road_highway_correction', 'road_other_correction', 'road_swc_correction'); AERIUS-monitor-data/03-deposition_corrections.sql BEGIN; SELECT setup.ae_load_table('setup.receptor_sector_deposition_corrections_no_policies', '{data_folder}/monitor16/receptor_sector_deposition_corrections_no_policies_road_swc_2010_20131015.txt'); COMMIT; Opmerkingen: Structuur is duidelijk – de depostie t.g.v. dubbeltellingcorrectie voor het

hoofdwegennet wordt rechtstreeks vanuit de ‘data_folder’ ingelezen. Het wordt toegevoegd aan de tabel ‘receptor_sector_deposition_corrections_no_policies’ en opgeslagen onder correctie type ‘road_swc_correction’.

A.5 Dynamische tabellen in de database Tijdens de set-up worden de volgende dynamische tabellen gevuld: 5.1 Ongecorrigeerde totale depositie per jaar

Per sectorgroep en stof Totaal

5.2 Reducties PAS-beleid per jaar Scenario generiek Rijksbeleid

i. Stallen en mest ii. Totaal

Scenario provinciaal beleid iii. Stallen en mest iv. Totaal

5.3 Generieke economische groei (‘growth’) per jaar Per sectorgroep en stof Totaal

5.4 Depositieruimte, ontwikkelingsruimte en ontwikkelbehoefte per prognosejaar (deposition space composition)

Per sectorgroep en stof

Page 38: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

38

Totaal 5.5 Opbouw depositieruimte per prognosejaar (deposition spaces)

Per sectorgroep en stof Totaal

5.6 Depositieruimte 5.7 Dynamische correcties op depositie en depositieruimte De bovenstaande tabellen worden gevuld via de AERIUS-monitor-data/04-build.sql query. Voor de verschillende tabellen wordt hieronder in meer detail weergegeven hoe de verschillende tabellen opgebouwd zijn. A.5.1 Ongecorrigeerde totale depositie per jaar en scenario, per sectorgroep en totaal AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: receptor_sector_group_depositions_no_policies @ ' || timeofday())); SELECT setup.build_receptor_sector_group_depositions_no_policies(); COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: total_depositions_no_policies @ ' || timeofday())); INSERT INTO setup.total_depositions_no_policies (year, receptor_id, deposition) SELECT year, receptor_id, deposition FROM setup.build_total_depositions_no_policies_view; COMMIT; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\03-sector-group.sql CREATE TABLE setup.receptor_sector_group_depositions_no_policies ( year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT rcp_sect_grp_dep_no_policies_pkey PRIMARY KEY (year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_grp_dep_no_policies_pkey ON setup.receptor_sector_group_depositions_no_policies; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\04-total.sql CREATE TABLE setup.total_depositions_no_policies ( year year_type NOT NULL, receptor_id integer NOT NULL, deposition posreal NOT NULL, CONSTRAINT total_depositions_no_policies_pkey PRIMARY KEY (year, receptor_id)--, ); CLUSTER total_depositions_no_policies_pkey ON setup.total_depositions_no_policies; AERIUS-monitor-code\99-setup\02-build\99-setup\03-functions.sql CREATE OR REPLACE FUNCTION setup.build_receptor_sector_group_depositions_no_policies() RETURNS void AS $BODY$ DECLARE rec RECORD; sql text; BEGIN FOR rec IN SELECT * FROM sector_groups ORDER BY sector_group_id LOOP RAISE NOTICE 'Start aggregating deposition sector group: % (%)', rec.description, rec.sector_group_id; sql = 'INSERT INTO setup.receptor_sector_group_depositions_no_policies SELECT year, ' || rec.sector_group_id || ', substance_id, receptor_id, (COALESCE(scaled.deposition, 0) + COALESCE(calculated.deposition, 0)) AS deposition FROM years CROSS JOIN receptors

Page 39: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 39

CROSS JOIN (SELECT unnest(ARRAY[11, 17]) AS substance_id) AS substances LEFT JOIN -- Berekend deposities basisjaar (2010) geschaald naar huidige jaar en toekomstjaren (SELECT future_year AS year, substance_id, receptor_id, SUM((deposition + COALESCE(correction, 0)) * scale_factor) AS deposition FROM setup.receptor_' || rec.table_name || '_depositions_no_policies INNER JOIN (SELECT year AS future_year, sector_id, substance_id, scale_factor FROM economic_scale_factors) AS economic_scale_factors USING (sector_id, substance_id) LEFT JOIN setup.receptor_sector_deposition_corrections_no_policies USING (year, sector_id, substance_id, receptor_id) WHERE setup.receptor_' || rec.table_name || '_depositions_no_policies.year = 2010 GROUP BY future_year, substance_id, receptor_id) AS scaled USING (year, substance_id, receptor_id) LEFT JOIN -- Berekende deposities huidige jaar en toekomstjaren (farm lodging) (SELECT year, substance_id, receptor_id, SUM(deposition) AS deposition FROM setup.receptor_' || rec.table_name || '_depositions_no_policies WHERE year <> 2010 GROUP BY year, substance_id, receptor_id) AS calculated USING (year, substance_id, receptor_id) WHERE calculated.deposition IS NOT NULL OR scaled.deposition IS NOT NULL'; --RAISE NOTICE 'Execute: %', sql; EXECUTE sql; END LOOP; RETURN; END; $BODY$ LANGUAGE plpgsql VOLATILE; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_total_depositions_no_policies_view AS SELECT year, receptor_id, SUM(deposition) AS deposition FROM setup.receptor_sector_group_depositions_no_policies GROUP BY year, receptor_id Opmerkingen: Structuur is duidelijk – de deposities die ingelezen zijn in A4.1 worden hier

geaggregeerd per sector en vervolgens via ‘build_total_depositions_no_policies_view’ getotaliseerd, waarbij ze worden opgeslagen in respectievelijk ‘receptor_sector_group_depositions_no_policies’ en

‘total_depositions_no_policies’. Tijdens het aggregeren per sector worden tegelijkertijd ook de schaalfactoren per

jaar toegepast, om zodoende een depositie (per sector) per jaar te krijgen. Uitzondering hierop vormt de deposities t.g.v. de stalemissies. Deze zijn voor de

toekomstjaren afzonderlijk ingelezen en hoeven dus niet meer vermenigvuldigd te worden met de schaalfactoren.

A.5.2 Reducties PAS-beleid AERIUS-monitor-data/04-build.sql BEGIN;

Page 40: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

40

SELECT ae_raise_notice((SELECT 'Build: receptor_sector_group_reductions_global_policies @ ' || timeofday())); SELECT setup.build_receptor_sector_group_reductions_global_policies(); COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: receptor_sector_group_reductions_jurisdiction_policies @ ' || timeofday())); SELECT setup.build_receptor_sector_group_reductions_jurisdiction_policies(); COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: total_reductions_global_policies @ ' || timeofday())); INSERT INTO setup.total_reductions_global_policies (year, receptor_id, reduction) SELECT year, receptor_id, reduction FROM setup.build_total_reductions_global_policies_view; COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: total_reductions_jurisdiction_policies @ ' || timeofday())); INSERT INTO setup.total_reductions_jurisdiction_policies (year, receptor_id, reduction) SELECT year, receptor_id, reduction FROM setup.build_total_reductions_jurisdiction_policies_view; COMMIT; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\03-sector-group.sql CREATE TABLE setup.receptor_sector_group_reductions_global_policies ( year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, reduction posreal NOT NULL, CONSTRAINT rcp_sect_grp_red_global_policies_pkey PRIMARY KEY (year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_grp_red_global_policies_pkey ON setup.receptor_sector_group_reductions_global_policies; CREATE TABLE setup.receptor_sector_group_reductions_jurisdiction_policies ( year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL, receptor_id integer NOT NULL, reduction posreal NOT NULL, CONSTRAINT rcp_sect_grp_red_jurisdiction_policies_pkey PRIMARY KEY (year, sector_group_id, substance_id, receptor_id)--, ); CLUSTER rcp_sect_grp_red_jurisdiction_policies_pkey ON setup.receptor_sector_group_reductions_jurisdiction_policies; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\04-total.sql CREATE TABLE setup.total_reductions_global_policies ( year year_type NOT NULL, receptor_id integer NOT NULL, reduction posreal NOT NULL, CONSTRAINT total_reductions_global_policies_pkey PRIMARY KEY (year, receptor_id)--, ); CLUSTER total_reductions_global_policies_pkey ON setup.total_reductions_global_policies; CREATE TABLE setup.total_reductions_jurisdiction_policies ( year year_type NOT NULL, receptor_id integer NOT NULL, reduction posreal NOT NULL, CONSTRAINT total_reductions_jurisdiction_policies_pkey PRIMARY KEY (year, receptor_id)--, ); CLUSTER total_reductions_jurisdiction_policies_pkey ON setup.total_reductions_jurisdiction_policies; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_total_reductions_global_policies_view AS SELECT year, receptor_id,

Page 41: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 41

SUM(reduction) AS reduction FROM setup.receptor_sector_group_reductions_global_policies GROUP BY year, receptor_id ; CREATE OR REPLACE VIEW setup.build_total_reductions_jurisdiction_policies_view AS SELECT year, receptor_id, SUM(reduction) AS reduction FROM setup.receptor_sector_group_reductions_jurisdiction_policies GROUP BY year, receptor_id ; AERIUS-monitor-code\99-setup\02-build\99-setup\03-functions.sql CREATE OR REPLACE FUNCTION setup.build_receptor_sector_group_reductions_global_policies() RETURNS void AS $BODY$ DECLARE BEGIN -- landbouw stallen INSERT INTO setup.receptor_sector_group_reductions_global_policies SELECT year, sector_group_id, substance_id, receptor_id, GREATEST(SUM(no_policies.deposition - global_policies.deposition), 0) AS reduction FROM setup.receptor_farm_lodging_depositions_no_policies AS no_policies INNER JOIN setup.receptor_sector_depositions_global_policies AS global_policies USING (year, sector_id, substance_id, receptor_id) INNER JOIN sectors USING (sector_id) WHERE year <> 2010 GROUP BY year, sector_group_id, substance_id, receptor_id ; -- landbouw mestaanwending INSERT INTO setup.receptor_sector_group_reductions_global_policies SELECT years.year, sector_group_id, substance_id, receptor_id, GREATEST(SUM(no_policies.deposition - global_policies.deposition), 0) AS reduction FROM setup.receptor_farm_fertilize_depositions_no_policies AS no_policies INNER JOIN setup.receptor_sector_depositions_global_policies AS global_policies USING (year, sector_id, substance_id, receptor_id) INNER JOIN sectors USING (sector_id) CROSS JOIN years WHERE no_policies.year = 2010 GROUP BY years.year, sector_group_id, substance_id, receptor_id ; RETURN; END; $BODY$ LANGUAGE plpgsql VOLATILE; CREATE OR REPLACE FUNCTION setup.build_receptor_sector_group_reductions_jurisdiction_policies() RETURNS void AS $BODY$ DECLARE BEGIN -- landbouw stallen INSERT INTO setup.receptor_sector_group_reductions_jurisdiction_policies SELECT year, sector_group_id, substance_id, receptor_id, GREATEST(SUM(no_policies.deposition - COALESCE(jurisdiction_policies.deposition, global_policies.deposition)), 0) AS reduction

Page 42: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

42

FROM setup.receptor_farm_lodging_depositions_no_policies AS no_policies LEFT JOIN setup.receptor_sector_depositions_global_policies AS global_policies USING (year, sector_id, substance_id, receptor_id) LEFT JOIN setup.receptor_sector_depositions_jurisdiction_policies AS jurisdiction_policies USING (year, sector_id, substance_id, receptor_id) INNER JOIN sectors USING (sector_id) WHERE year > 2010 AND (jurisdiction_policies.deposition IS NOT NULL OR global_policies.deposition IS NOT NULL) GROUP BY year, sector_group_id, substance_id, receptor_id ; -- landbouw mestaanwending (1 op 1 kopie van reducties rijksbeleid) INSERT INTO setup.receptor_sector_group_reductions_jurisdiction_policies SELECT year, sector_group_id, substance_id, receptor_id, reduction FROM setup.receptor_sector_group_reductions_global_policies WHERE sector_group_id = 414 ; RETURN; END; $BODY$ LANGUAGE plpgsql VOLATILE; Opmerkingen: Structuur is duidelijk – hier worden de deposities volgens de twee beleidsvarianten

(global policies – rijksbeleid – en jurisdiction policies – provinciaal beleid) geaggregeerd voor verschillende sectoren en vervolgens via ‘build_total_reductions_global_policies_view’ en ‘build_total_reductions_jurisdiction_policies_view’ getotaliseerd, waarbij ze worden opgeslagen in respectievelijk ‘receptor_sector_group_reductions_global_policies’ en

‘receptor_sector_group_reductions_jurisdiction_policies’ (sector) en ‘total_reductions_global_policies’ en ‘total_reductions_jurisdiction_policies’ (totaal).

Uitzondering hierop vormt de verandering voor mestaanwending: voor het provinciaal beleid wordt hierbij de verandering zoals bij rijksbeleid aangehouden.

Het aggregeren op sectorniveau gebeurd alleen voor de landbouwsectoren (stal + mestaanwending).

A.5.3 Generieke economische groei per sectorgroep en totaal AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: build_receptor_sector_group_economic_growths @ ' || timeofday())); SELECT setup.build_receptor_sector_group_economic_growths(); COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: total_economic_growths @ ' || timeofday())); INSERT INTO setup.total_economic_growths (year, receptor_id, growth) SELECT year, receptor_id, growth FROM setup.build_total_economic_growths_view; COMMIT; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\03-sector-group.sql CREATE TABLE setup.receptor_sector_group_economic_growths ( year year_type NOT NULL, sector_group_id integer NOT NULL, substance_id smallint NOT NULL,

Page 43: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 43

receptor_id integer NOT NULL, growth real NOT NULL, CONSTRAINT rcp_sect_grp_economic_growths_pkey PRIMARY KEY (year, sector_group_id, substance_id, receptor_id) ); CLUSTER rcp_sect_grp_economic_growths_pkey ON setup.receptor_sector_group_economic_growths; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\04-total.sql CREATE TABLE setup.total_economic_growths ( year year_type NOT NULL, receptor_id integer NOT NULL, growth real NOT NULL, CONSTRAINT total_economic_growths_pkey PRIMARY KEY (year, receptor_id) ); CLUSTER total_economic_growths_pkey ON setup.total_economic_growths; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_total_economic_growths_view AS SELECT year, receptor_id, SUM(growth) AS growth FROM setup.receptor_sector_group_economic_growths GROUP BY year, receptor_id ; AERIUS-monitor-code\99-setup\02-build\99-setup\03-functions.sql CREATE OR REPLACE FUNCTION setup.build_receptor_sector_group_economic_growths() RETURNS void AS $BODY$ DECLARE rec RECORD; sql text; BEGIN -- 2010 gdn data FOR rec IN SELECT * FROM sector_groups ORDER BY sector_group_id LOOP RAISE NOTICE 'Start aggregating the economic growth for sector group: % (%)', rec.description, rec.sector_group_id; sql = 'INSERT INTO setup.receptor_sector_group_economic_growths SELECT year, sector_group_id, substance_id, receptor_id, growth + COALESCE(correction, 0) AS growth FROM (SELECT future_year AS year, sector_group_id, substance_id, receptor_id, SUM((deposition + COALESCE(correction, 0)) * growth_factor) AS growth FROM setup.receptor_' || rec.table_name || '_depositions_no_policies INNER JOIN (SELECT year AS future_year, sector_id, substance_id, growth_factor FROM economic_growth_factors) AS economic_growth_factors USING (sector_id, substance_id) INNER JOIN sectors USING (sector_id) LEFT JOIN setup.receptor_sector_deposition_corrections_no_policies USING year, sector_id, substance_id, receptor_id) WHERE year = 2010 GROUP BY future_year, sector_group_id, substance_id, receptor_id) AS growth LEFT JOIN -- Maasvlakte correctie moet ook in de generieke groei doorgevoerd worden (SELECT

Page 44: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

44

year, sector_group_id, substance_id, receptor_id, SUM(correction) AS correction FROM setup.receptor_group_deposition_corrections_no_policies WHERE correction_type IN (''maasvlakte_gdn_correction'', ''maasvlakte_correction'', ''maasvlakte_correction_3220'') GROUP BY year, sector_group_id, substance_id, receptor_id) AS maasvlakte USING (year, sector_group_id, substance_id, receptor_id)'; --RAISE NOTICE 'Execute: %', sql; EXECUTE sql; END LOOP; -- 2013 landbouw stallen data sql = 'INSERT INTO setup.receptor_sector_group_economic_growths SELECT year, sector_group_id, substance_id, receptor_id, GREATEST( SUM( ( deposition + COALESCE(correction, 0) ) * growth_factor), 0) * 1.0 AS growth FROM (SELECT year AS base_year, sector_id, substance_id, receptor_id, deposition * (1 / scale_factor) AS deposition FROM setup.receptor_farm_lodging_depositions_no_policies INNER JOIN economic_scale_factors USING (year, sector_id, substance_id) ) AS farm_lodging_depositions_2013 INNER JOIN (SELECT year, sector_id, substance_id, growth_factor FROM economic_growth_factors) AS economic_growth_factors USING (sector_id, substance_id) INNER JOIN sectors USING (sector_id) LEFT JOIN setup.receptor_sector_deposition_corrections_no_policies USING (year, sector_id, substance_id, receptor_id) WHERE base_year = 2013 GROUP BY year, sector_group_id, substance_id, receptor_id'; --RAISE NOTICE 'Execute: %', sql; EXECUTE sql; RETURN; END; $BODY$ LANGUAGE plpgsql VOLATILE; Opmerkingen: Structuur is duidelijk – hier worden de deposities op sectorniveau aangepast o.b.v.

de economische groei varianten. Hierbij wordt eveneens rekening gehouden met de maasvlakte-correctie en wordt rekening gehouden met een afwijkende procedure voor de deposities t.g.v. stalemissies. Alles wordt per sector geaggregeerd en vervolgens via ‘build_total_economic_growths_view’ getotaliseerd, waarbij ze worden opgeslagen in respectievelijk ‘receptor_sector_group_economic_growths’ en ‘total_economic_growths’.

Page 45: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 45

A.5.4 Depositieruimte, ontwikkelingsruimte en ontwikkelbehoefte per sectorgroep en totaal AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: deposition_spaces_sector_group @ ' || timeofday())); INSERT INTO deposition_spaces_sector_group (year, sector_group_id, receptor_id, no_permit_required, permit_threshold, priority_projects, projects) SELECT year, sector_group_id, receptor_id, no_permit_required, permit_threshold, priority_projects, projects FROM setup.build_deposition_spaces_sector_group_view; COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: deposition_spaces @ ' || timeofday())); INSERT INTO deposition_spaces (year, receptor_id, no_permit_required, permit_threshold, priority_projects, projects) SELECT year, receptor_id, no_permit_required, permit_threshold, priority_projects, projects FROM setup.build_deposition_spaces_view; COMMIT; AERIUS-monitor-code\10-public\02-tables\04-receptor.sql CREATE TABLE deposition_spaces_sector_group ( year year_type NOT NULL, sector_group_id integer NOT NULL, receptor_id integer NOT NULL, no_permit_required real NOT NULL, permit_threshold real NOT NULL, priority_projects real NOT NULL, projects real NOT NULL, CONSTRAINT deposition_spaces_sector_group_pkey PRIMARY KEY (year, sector_group_id, receptor_id)--, ); CLUSTER deposition_spaces_sector_group_pkey ON deposition_spaces_sector_group; CREATE TABLE deposition_spaces ( year year_type NOT NULL, receptor_id integer NOT NULL, no_permit_required real NOT NULL, permit_threshold real NOT NULL, priority_projects real NOT NULL, projects real NOT NULL, CONSTRAINT deposition_spaces_pkey PRIMARY KEY (year, receptor_id)--, ); CLUSTER deposition_spaces_pkey ON deposition_spaces; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_deposition_spaces_sector_group_view AS SELECT year, receptor_id, sector_group_id, GREATEST(0, remaining_growth * no_permit_required_size) AS no_permit_required, GREATEST(0, permit_threshold) AS permit_threshold, GREATEST(0, priority_projects) AS priority_projects , GREATEST(0, remaining_growth * projects_size) AS projects FROM (SELECT year, receptor_id, sector_group_id, permit_threshold, demand AS priority_projects, GREATEST(growth - (demand + permit_threshold), 0) + demand_addition AS remaining_growth FROM deposition_spaces_sector_group_composition) AS deposition_space INNER JOIN deposition_space_segmententations USING (sector_group_id) ; CREATE OR REPLACE VIEW setup.build_deposition_spaces_view AS

Page 46: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

46

SELECT year, receptor_id, SUM(no_permit_required) AS no_permit_required, SUM(permit_threshold) AS permit_threshold, SUM(priority_projects) AS priority_projects, SUM(projects) AS projects FROM deposition_spaces_sector_group GROUP BY year, receptor_id ; Opmerkingen: Structuur is duidelijk – hier worden de deposities op sectorniveau aangepast o.b.v.

de economische groei varianten. Hierbij wordt eveneens rekening gehouden met de maasvlakte-correctie en wordt rekening gehouden met een afwijkende procedure voor de deposities t.g.v. stalemissies. Alles wordt per sector geaggregeerd en vervolgens via ‘build_total_economic_growths_view’ getotaliseerd, waarbij ze worden opgeslagen in respectievelijk ‘receptor_sector_group_economic_growths’ en ‘total_economic_growths’.

A.5.5 Tabel met verdeling depositieruimte (deposition spaces) per sectorgroep en totaal AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: deposition_spaces_sector_group_composition @ ' || timeofday())); INSERT INTO deposition_spaces_sector_group_composition (year, sector_group_id, receptor_id, growth, growth_addition, demand, demand_addition, policy, permit_threshold) SELECT year, sector_group_id, receptor_id, growth, growth_addition, demand, demand_addition, policy, permit_threshold FROM setup.build_deposition_spaces_sector_group_composition_view; COMMIT; BEGIN; SELECT ae_raise_notice((SELECT 'Build: deposition_spaces_composition @ ' || timeofday())); INSERT INTO deposition_spaces_composition (year, receptor_id, growth, growth_addition, demand, demand_addition, policy, permit_threshold) SELECT year, receptor_id, growth, growth_addition, demand, demand_addition, policy, permit_threshold FROM setup.build_deposition_spaces_composition_view; COMMIT; AERIUS-monitor-code\10-public\02-tables\04-receptor.sql CREATE TABLE deposition_spaces_sector_group_composition ( year year_type NOT NULL, sector_group_id integer NOT NULL, receptor_id integer NOT NULL, growth real NOT NULL, growth_addition real NOT NULL, demand real NOT NULL, demand_addition real NOT NULL, permit_threshold real NOT NULL, policy real NOT NULL, CONSTRAINT deposition_spaces_sector_group_composition_pkey PRIMARY KEY (year, sector_group_id, receptor_id)--, ); CLUSTER deposition_spaces_sector_group_composition_pkey ON deposition_spaces_sector_group_composition; CREATE TABLE deposition_spaces_composition ( year year_type NOT NULL, receptor_id integer NOT NULL, growth real NOT NULL, growth_addition real NOT NULL, demand real NOT NULL,

Page 47: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 47

demand_addition real NOT NULL, permit_threshold real NOT NULL, policy real NOT NULL, CONSTRAINT deposition_spaces_composition_pkey PRIMARY KEY (year, receptor_id)--, ); CLUSTER deposition_spaces_composition_pkey ON deposition_spaces_composition; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_deposition_spaces_sector_group_composition_view AS SELECT year, sector_group_id, receptor_id, growth, -- Generieke groei ophogen indien de bijdrage van de prioritaire projecten groter is dan de generieke behoefte CASE WHEN sector_group_id = 31 THEN GREATEST(total_demand - growth, 0) ELSE 0 END AS growth_addition, demand, -- Generieke behoefte ophogen indien de resterende generieek behoefte kleiner is dan 30% van de generieke behoefte CASE WHEN sector_group_id <> 31 THEN GREATEST(0, (0.3 * growth) - -- 30% van de (eventueel opgehoogde) generieke groei GREATEST(growth - total_demand, 0)) -- min de resterende behoefte ELSE 0 END AS demand_addition, policy, permit_threshold FROM (SELECT year, sector_group_id, receptor_id, growth, policy, COALESCE(demand, 0) AS demand, COALESCE(demand + under_threshold, 0) AS total_demand, COALESCE(under_threshold, 0) AS permit_threshold FROM (SELECT year, sector_group_id, receptor_id, COALESCE(SUM(growth), 0) AS growth, COALESCE(SUM(reduction * COALESCE(correction_factor, 1)), 0) * 0.5 AS policy -- Helft van het effect van het beleid en correctiefactor op het effect op stallen FROM years CROSS JOIN sector_groups CROSS JOIN receptors CROSS JOIN (SELECT unnest(ARRAY[11, 17]) AS substance_id) AS substances - LEFT JOIN setup.receptor_sector_group_economic_growths USING (year, sector_group_id, substance_id, receptor_id) LEFT JOIN setup.receptor_sector_group_reductions_global_policies USING (year, sector_group_id, substance_id, receptor_id) LEFT JOIN deposition_space_sector_group_correction_factors USING (year, sector_group_id) WHERE year > 2013 AND (growth IS NOT NULL OR reduction IS NOT NULL) GROUP BY year, sector_group_id, receptor_id) AS deposition_space LEFT JOIN setup.priority_project_sector_group_development_demands USING (year, sector_group_id, receptor_id) ) AS deposition_space_plus_priority_project

Page 48: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

48

WHERE (growth IS NOT NULL OR policy IS NOT NULL OR demand IS NOT NULL) ; CREATE OR REPLACE VIEW setup.build_deposition_spaces_composition_view AS SELECT year, receptor_id, growth, growth_addition + COALESCE(wet_mirt.correction, 0) AS growth_addition, demand, demand_addition, policy, permit_threshold FROM (SELECT year, receptor_id, SUM(growth) AS growth, SUM(growth_addition) AS growth_addition, SUM(demand) AS demand, SUM(demand_addition) AS demand_addition, SUM(policy) AS policy, SUM(permit_threshold) AS permit_threshold FROM deposition_spaces_sector_group_composition GROUP BY year, receptor_id ) AS agg_composition LEFT JOIN (SELECT -- For wet MIRT we need to consider two sector groups as a whole year, receptor_id, GREATEST(SUM(demand + permit_threshold) - SUM(growth), 0) AS correction -- NOTE: growth_addition is missing but causes no trouble (for now)! FROM deposition_spaces_sector_group_composition WHERE sector_group_id IN (382, 386) GROUP BY year, receptor_id ) AS wet_mirt USING (year, receptor_id) ; Opmerkingen: Structuur is op zich nog duidelijk – echter, het lijkt er op dat de tabellen A5.5 en A5.6

hier in dezelfde queries meegenomen zijn. De growth + growth addition en ‘natte MIRT’ worden in de bovengenoemde queries benoemd, terwijl deze volgens de beschrijving in A.5.6 zouden moeten worden aangemaakt.

Wanneer dit zo wel/niet de bedoeling is, moeten de queries of de tekst hierop aangepast worden.

Alles wordt per sector en als totaal geaggregeerd via de views ‘build_deposition_spaces_sector_group_composition_view’ en ‘build_deposition_spaces_composition_view’ en uiteindelijk opgeslagen in de tabellen ‘deposition_spaces_sector_group_composition’ en ‘deposition_spaces_composition’.

A.5.6 Depositieruimte per prognosejaar Opmerkingen: Via de build query is niet duidelijk om welke tabellen het hier gaat. Het lijkt er echter

op dat de delen die in het document genoemd worden (growt+growth_addition+natte MIRT en policy) al in A.5.5 benoemd zijn.

A.6 Dynamische correcties Er zijn twee dynamische correcties: 6.1 Ophoging voor natte MIRT (zie 6.4.4)

Page 49: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 49

AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: receptor_total_deposition_corrections_no_policies (growth_addition_correction) @ ' || timeofday())); INSERT INTO setup.receptor_total_deposition_corrections_no_policies (correction_type, year, receptor_id, correction) SELECT correction_type, year, receptor_id, correction FROM setup.build_growth_addition_correction_view; COMMIT; AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\04-total.sql CREATE TABLE setup.receptor_total_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT total_depositions_cor_no_policies_pkey PRIMARY KEY (correction_type, year, receptor_id)--, ); CLUSTER total_depositions_cor_no_policies_pkey ON setup.receptor_total_deposition_corrections_no_policies; AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_growth_addition_correction_view AS SELECT 'growth_addition_correction'::setup.deposition_correction_type AS correction_type, year, receptor_id, GREATEST(SUM(demand + permit_threshold) - SUM(growth), 0) AS correction FROM deposition_spaces_sector_group_composition WHERE sector_group_id IN (382, 386) GROUP BY year, receptor_id ; Opmerkingen: Structuur is duidelijk – voor de Natte MIRT (sectoren 382 en 386) wordt een ‘growth

addition’ bepaald en opgeslagen de tabel met correcties (‘receptor_total_deposition_corrections_no_policies’) onder het correctie type ‘growth_addition_correction’.

Het bepalen van de correctie gebeurd via de view ‘build_growth_addition_correction_view’.

6.2 Teruggegeven depositieruimte (alleen in scenario’s met PAS-beleid) AERIUS-monitor-data/04-build.sql BEGIN; SELECT ae_raise_notice((SELECT 'Build: receptor_total_deposition_corrections_global_policies (returned_deposition_space) @ ' || timeofday())); INSERT INTO setup.receptor_total_deposition_corrections_global_policies (correction_type, year, receptor_id, correction) SELECT correction_type, year, receptor_id, correction FROM setup.build_returned_deposition_space_view; COMMIT;

AERIUS-monitor-code\99-setup\02-build\10-public\02-tables\04-total.sql CREATE TABLE setup.receptor_total_deposition_corrections_no_policies ( correction_type setup.deposition_correction_type NOT NULL, year year_type NOT NULL, receptor_id integer NOT NULL, correction real NOT NULL, CONSTRAINT total_depositions_cor_no_policies_pkey PRIMARY KEY (correction_type, year, receptor_id)--, ); CLUSTER total_depositions_cor_no_policies_pkey ON setup.receptor_total_deposition_corrections_no_policies;

Page 50: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

50

AERIUS-monitor-code\99-setup\02-build\99-setup\04-views.sql CREATE OR REPLACE VIEW setup.build_returned_deposition_space_view AS SELECT 'returned_deposition_space'::setup.deposition_correction_type AS correction_type, year, receptor_id, policy AS correction FROM deposition_spaces_composition ;

Opmerkingen: Structuur is duidelijk – voor de ‘policy’ deposities worden hier als ‘correction’

opgeslagen in de tabel met correcties (‘receptor_total_deposition_corrections_no_policies’) onder het correctie type ‘returned_deposition_space’.

Het bepalen van de correctie gebeurd via de view ‘build_returned_deposition_space_view’.

Page 51: AERIUS 1.6 Database Review - TNO Publications · AERIUS database te onderzoeken. Hierbij wordt dan doelmatigheid van de database gedefinieerd als: in hoeverre is de AERIUS database

ECN-E--14-012 Conclusies en aanbevelingen 51

ECN Westerduinweg 3 Postbus 1 1755 LE Petten 1755 LG Petten T 088 515 4949 F 088 515 8338 [email protected] www.ecn.nl