From 5f822ac074ce63228afba99185158fc1325ee46c Mon Sep 17 00:00:00 2001 From: Anna Tamm Date: Wed, 15 May 2024 14:55:44 +0200 Subject: [PATCH] feat: add initial DF7_10_railway validation alignment SVC-1836 --- .../UBA-DE_HES_to_END_DF7_10_Railway.halex | 161 ++++ ..._to_END_DF7_10_Railway.halex.alignment.xml | 698 ++++++++++++++++++ ...HES_to_END_DF7_10_Railway.halex.styles.sld | 3 + 3 files changed, 862 insertions(+) create mode 100644 Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex create mode 100644 Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.alignment.xml create mode 100644 Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.styles.sld diff --git a/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex new file mode 100644 index 0000000..53bcc03 --- /dev/null +++ b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex @@ -0,0 +1,161 @@ + + + UBA HES nach END DF7_10 Railway + Anna Tamm (wetransform GmbH) + 2023-11-15T16:11:09.513+01:00 + 2024-05-15T14:52:36.061+02:00 + + UTF-8 + false + eu.esdihumboldt.hale.io.project.hale25.xml + UBA-DE_HES_to_END_DF7_10_Railway.halex + + + UTF-8 + a7443df2-9c56-453b-bd45-b4390ac8d54e + ../../Schemas/DF7_10_UBA-DE_HVS_HES_GFH.hsd.json + eu.esdihumboldt.hale.common.schema.hsd.json + + + UTF-8 + 9549f4ac-e3f5-4bf7-8541-8ec8c914c667 + ../../Schemas/DF7_10_Railway.hsd.json + eu.esdihumboldt.hale.common.schema.hsd.json + + + UTF-8 + false + b2ca8a99-05aa-4253-89cc-1a8f65be1ace + " + 0 + KriterienPrioritaeten + 1 + true + ../../Lookup/KriterienPrioritaeten.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + UTF-8 + false + 32c747f4-d11e-4fc2-a75e-e08b0aab6071 + " + 0 + MaßnahmenSchiene + 2 + true + ../../Lookup/MaßnahmenSchiene.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + UTF-8 + false + 93474127-9a08-4b69-8e92-eb86286e7efd + " + 0 + BeteiligungInteressentraeger + 1 + true + ../../Lookup/BeteiligungInteressentraeger.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + UTF-8 + false + 67142f52-4a80-4e31-8978-0ea3fbc40bf8 + " + 0 + BeteiligungMittel + 1 + true + ../../Lookup/BeteiligungMittel.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + ISO-8859-1 + false + b1756c75-cbd2-4d0f-bf99-620f0867535a + " + 0 + PruefungWirksamkeit + 1 + true + ../../Lookup/PruefungWirksamkeit.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + end_Checks + UTF-8 + 81ed0e3c-95ba-431a-952e-37a445f81b6e + ../../Snippets/end.Checks.groovy + eu.esdihumboldt.hale.io.groovy + true + + + helperFunctions + UTF-8 + 00f04884-bca3-4ac1-a36b-03429058cd4c + ../../Snippets/helperFunctions.groovy + eu.esdihumboldt.hale.io.groovy + true + + + ISO-8859-9 + true + ce7f4ce5-ceb6-47ef-bb9d-b79c930792c4 + " + 0 + RB-RS_zu_NUTSCode + 1 + true + ../../Lookup/RB-RS_zu_NUTSCode.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + ISO-8859-1 + true + b5e5b305-6d74-4790-89a7-3a222924e400 + " + 0 + VWG-RS_zu_LAUCodes + 1 + true + ../../Lookup/VWG-RS_zu_LAUCodes.csv + eu.esdihumboldt.hale.io.csv + , + \ + + + + UTF-8 + + true + NoiseActionPlanMajorRail,NAP_MajorRail,NAP_MajorRailCompetentAuthority,NAP_MajorRailLimitValues,NAP_RailMappingResultDetail,NAP_RailReductionMeasure,NAP_RailReductionHealthImpact_1,NAP_RailReductionHealthImpact_2,NAP_RailReductionHealthImpact_3,ESTATUnitReference,DatasetDefaultProperties,CodelistProperties + eu.esdihumboldt.hale.io.xls.xlsx + true + + + + + + + + + + + + + + + diff --git a/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.alignment.xml b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.alignment.xml new file mode 100644 index 0000000..a4519df --- /dev/null +++ b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.alignment.xml @@ -0,0 +1,698 @@ + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + def ags_rs = c.Allgemeines.ags_rs.value() + switch (ags_rs.length()) { + case 3: + // get NUTS code for RS of Regierungsbezirk like classified in lookup-table 'RB-RS_zu_NUTSCode' + nuts = _snippets.helperFunctions.getLookupTableValue(ags_rs, 'ce7f4ce5-ceb6-47ef-bb9d-b79c930792c4') + allInNUTSCode( nuts ) + break + case 8: + // AGS of Gemeinde is equivalent to LAU code + allInLAUCode( ags_rs ) + break + case 9: + // get LAU codes for RS of Amt (MV) or Verbandsgemeinde like classified in lookup-table 'VWG-RS_zu_LAUCodes' + lau = _snippets.helperFunctions.getLookupTableValue(ags_rs, 'b5e5b305-6d74-4790-89a7-3a222924e400') + allInLAUCode( lau ) + break + } + } +} + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + competentAuthorityIdIdentifier( c.Allgemeines.kennungBehoerde.value() ) + } +} + + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + limitValues_otherCriteriaDescription( c.Allgemeines.infoGrenzwert.value() ) + limitValues_noiseLimitReportIdIdentifier( 'LR_DE_00_1' ) + } +} + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + exposedLden55( c.Lärmkartierung.personen_Lden55.value() ) + exposedLnight50( c.Lärmkartierung.personen_Lnight55.value() ) + situationForImprovementExplanation( c.Lärmkartierung.beschreibungProbleme.value() ) + + // get codelist values for 'kriterienPrio' like classified in lookup-table 'KriterienPrioritaeten' + def kriterienPrio = c.Lärmkartierung.krietrienPrio.values() + def kriterienPrio_classified = _snippets.helperFunctions.classifyListValues(kriterienPrio, 'b2ca8a99-05aa-4253-89cc-1a8f65be1ace') + situationForImprovementPrioritisationCriteria( kriterienPrio_classified.join("; ") ) + } +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from sheet 'Lärmkartierung' +// No target is created. + +def bezeichnung = _source.p.Bezeichnung.value() +def wert = _source.p.Wert.value() + +withTransformationContext { + def c = _.context.collector(it) + + if (bezeichnung.contains('Anzahl der Personen, die in dem vom Lärmaktionsplan erfassten Gebiet einer Lärmbelastung ab 55 dB(A) LDEN ausgesetzt sind')) { + c.Lärmkartierung.personen_Lden55 << wert + } + else if (bezeichnung.contains('Anzahl der Personen, die in dem vom Lärmaktionsplan erfassten Gebiet einer Lärmbelastung ab 50 dB(A) LNight ausgesetzt sind')) { + c.Lärmkartierung.personen_Lnight55 << wert + } + else if (bezeichnung.contains('Beschreibung der festgestellten Lärmprobleme und der verbesserungsbedürftigen Situationen')) { + c.Lärmkartierung.beschreibungProbleme << wert + } + else if (wert == 'Ja') { + c.Lärmkartierung.krietrienPrio << bezeichnung + } + + def prioritiesAll = _snippets.helperFunctions.CODELIST_PrioritisationCriteriaText_DE() + if ( bezeichnung in prioritiesAll ) { + c.Lärmkartierung."${bezeichnung}" << wert + } + +} + + + + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + explanationMethod( 'A person is considered to be exposed to noise above an LDEN value of 55 dB(A) or an LNight value of 50 dB(A). The required reduction shall be at least 1 dB.' ) + nrOfPeople( c.Wirkungen.personenReduktion.value() ) + } +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from sheet 'Ruhige_Gebiete' +// No target is created. + + +withTransformationContext { + def c = _.context.collector(it) + + if ((_source.p.Kennung.value() != "Kennung des ruhigen Gebiets") && _source.p.Kennung.value()) { + c.Ruhige_Gebiete.kennungGebiet << _source.p.Kennung.value() + } +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from sheet 'Wirkung' +// No target is created. + +def bezeichnung = _source.p.Bezeichnung.value() +def wert = _source.p.Wert.value() + +withTransformationContext { + def c = _.context.collector(it) + + if (bezeichnung.contains('Geschätzte Anzahl der Personen in dem von dem Aktionsplan erfassten Gebiet, für die sich der Lärm innerhalb der nächsten fünf Jahre reduziert')) { + c.Wirkungen.personenReduktion << wert + } + else if (bezeichnung.contains('Erläuterung der Methode, die zur Schätzung der Anzahl der Personen, für die sich der Lärm reduziert, verwendet wurde')) { + c.Wirkungen.personenReduktionMethode << wert + } + else if (bezeichnung.contains('Geschätztes Kosten-Nutzen-Verhältnis der im Aktionsplan beschriebenen Maßnahmen')) { + c.Wirkungen.kostenNutzen << wert + } + + else if (bezeichnung.contains('Angabe, ob der Lärmaktionsplan eine langfristige Strategie zur Reduzierung der Lärmbelastung vorsieht')) { + c.Wirkungen.strategie << wert + } + else if (bezeichnung.contains('Erläuterung der langfristigen Strategie zur Reduzierung der Lärmbelastung')) { + c.Wirkungen.strategieErlaeuterung << wert + } + else if (bezeichnung.contains('Geschätzte Gesamtkosten des Aktionsplans (ohne Maßnahmenumsetzung) [€]')) { + c.Wirkungen.kostenGesamt << wert + } + else if (bezeichnung.contains('Angabe, ob im Lärmaktionsplan ruhige Gebiete beschrieben werden')) { + c.Wirkungen.ruhigeGebiete << wert + } + else if (bezeichnung.contains('Angabe, ob Regelungen für die Überprüfung der Umsetzung des Lärmaktionsplans vorgesehen sind')) { + c.Wirkungen.pruefungUmsetzung << wert + } + else if (bezeichnung.contains('Erläuterung der geplanten Regelungen für die Überprüfung der Umsetzung des Lärmaktionsplans')) { + c.Wirkungen.pruefungUmsetzungErlaueterung << wert + } + else if (bezeichnung.contains('Angabe, ob Regelungen für die Überprüfung der Wirksamkeit des Lärmaktionsplans vorgesehen sind')) { + c.Wirkungen.pruefungWirksamkeit << wert + } + else if (bezeichnung.contains('Geplante Regelungen für die Überprüfung der Wirksamkeit des Lärmaktionsplans')) { + c.Wirkungen.pruefungWirksamkeitErlaeuterung << wert + } +} + + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + def kostenNutzen = c.Wirkungen.kostenNutzen.value() + if (kostenNutzen) { + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + estimatedCostBenefit( kostenNutzen ) + } + } +} + + + + + + + + + + + +withTransformationContext { + def c = _.context.collector(it) + + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + + def vorhandeneMaßnahmen = c.Maßnahmen.vorhandene.values() + if ( vorhandeneMaßnahmen ) { + // get codelist values for 'vorhandeneMaßnahmen' like classified in lookup-table 'MaßnahmenSchiene' + def vorhandeneMaßnahmen_classified = _snippets.helperFunctions.classifyListValues(vorhandeneMaßnahmen, '32c747f4-d11e-4fc2-a75e-e08b0aab6071') + existingMeasure( vorhandeneMaßnahmen_classified.join("; ") ) + } + else { + existingMeasure( 'noMeasure' ) + } + + def geplanteMaßnahmen = c.Maßnahmen.geplante.values() + def geplanteMaßnahmenNutzen = c.Maßnahmen.nutzen.value() + if (geplanteMaßnahmen) { + // get codelist values for 'geplanteMaßnahmen' like classified in lookup-table 'MaßnahmenSchiene' + def geplanteMaßnahmen_classified = _snippets.helperFunctions.classifyListValues(geplanteMaßnahmen, '32c747f4-d11e-4fc2-a75e-e08b0aab6071') + plannedMeasureDetail_plannedMeasure( geplanteMaßnahmen_classified.join("; ") ) + } + else { + plannedMeasureDetail_plannedMeasure( 'noMeasure' ) + + if ( !geplanteMaßnahmenNutzen ) { + geplanteMaßnahmenNutzen = 'Im Lärmaktionsplan sind keine Maßnahmen vorgesehen.' + } + } + plannedMeasureDetail_expectedBenefits( geplanteMaßnahmenNutzen ) + } +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from sheet 'Maßahmen' +// No target is created. + +def bezeichnung = _source.p.Bezeichnung.value() + +withTransformationContext { + def c = _.context.collector(it) + if (_source.p.geplanteMaßnahme.value() == 'Ja') { + c.Maßnahmen.geplante << bezeichnung + } + if (_source.p.vorhandeneMaßnahme.value() =='Ja') { + c.Maßnahmen.vorhandene << bezeichnung + } + if (bezeichnung == 'Erläuterung des erwarteten Nutzens durch die Umsetzung der geplanten Maßnahmen') { + c.Maßnahmen.nutzen << _source.p.'ErläuterungNutzen'.value() + } + + def measuresAll = _snippets.helperFunctions.CODELIST_RailMeasureText_DE() + if ( bezeichnung in measuresAll ) { + c.Maßnahmen."${bezeichnung}_vorhanden" << _source.p.vorhandeneMaßnahme.value() + c.Maßnahmen."${bezeichnung}_geplant" << _source.p.geplanteMaßnahme.value() + } + +} + + + + + + + + + + + + + + +// validate source data +_snippets.end_Checks{ + + // Validate sheet 'Allgemeines' + existsCheck('Z02 - v', 'Allgemeines', 'typ') + existsCheck('Z03 - v', 'Allgemeines', 'name') + existsCheck('Z04 - v', 'Allgemeines', 'bundesland') + integerCheck('Z05 - v', 'Z05 - k', 'Allgemeines', 'ags_rs') + + withTransformationContext { + def c = _.context.collector(it) + typ = c.Allgemeines.typ.value() + } + if (typ == 'Gemeinde') { + generalCheck('Z05 - AGS', null, 'Allgemeines', 'ags_rs', 'is not a valid AGS', hasNumberOfDigits([8])) + } + else { + generalCheck('Z05 - RS', null, 'Allgemeines', 'ags_rs', 'is not a valid RS (3)', hasNumberOfDigits([3, 9])) + } + + existsCheck('Z06 - v', 'Allgemeines', 'kennungPlan') + + existsCheck('Z10 - v', 'Allgemeines', 'nameBehoerde') + existsCheck('Z11 - v', 'Allgemeines', 'strasse') + existsCheck('Z12 - v', 'Allgemeines', 'hausnr') + existsCheck('Z13 - v', 'Allgemeines', 'ort') + existsCheck('Z14 - v', 'Allgemeines', 'plz') + existsCheck('Z15 - v', 'Allgemeines', 'kennungBehoerde') + + dateCheck('Z17 - k', 'Z17 - v', 'Allgemeines', 'startDatum', 'dd.MM.yyyy') + dateCheck('Z18 - k', null, 'Allgemeines', 'endDatum', 'dd.MM.yyyy') + + urlCheck('Z20 - k', null, 'Allgemeines', 'linkZumPlan') + + + // Validate sheet 'Öffentlichkeitsbeteiligung' + urlCheck('Z04 - k', null, 'Öffentlichkeitsbeteiligung', 'link') + dateCheck('Z06 - k', 'Z06 - v', 'Öffentlichkeitsbeteiligung', 'startDatum', 'dd.MM.yyyy') + dateCheck('Z07 - k', 'Z07 - v', 'Öffentlichkeitsbeteiligung', 'endDatum', 'dd.MM.yyyy') + + def mittel = _snippets.helperFunctions.CODELIST_ConsultationMeansText_DE() + mittel.each { m -> + codelistCheck(m, null, 'Öffentlichkeitsbeteiligung', m, CODELIST_Boolean_DE() ) + } + def interessentraeger = _snippets.helperFunctions.CODELIST_stakeholdersTypeText_DE() + interessentraeger.each { i -> + codelistCheck(i, null, 'Öffentlichkeitsbeteiligung', i, CODELIST_Boolean_DE() ) + } + + codelistCheck('Z28 - k', 'Z28 - v', 'Öffentlichkeitsbeteiligung', 'kommentareEingegangen', CODELIST_Boolean_DE() ) + codelistCheck('Z29 - k', 'Z29 - v', 'Öffentlichkeitsbeteiligung', 'kommentareAufgenommen', CODELIST_Boolean_DE() ) + codelistCheck('Z31 - k', 'Z31 - v', 'Öffentlichkeitsbeteiligung', 'lapUeberarbeitet', CODELIST_Boolean_DE() ) + conditionalCheck('Z32 - v', 'Öffentlichkeitsbeteiligung', 'lapUeberarbeitet', 'lapUeberarbeitetKommentar', ['Ja']) + + + // Validate sheet 'Lärmkartierung' + numberCheck('Z03 - k', 'Z03 - v', 'Lärmkartierung', 'personen_Lnight55') + numberCheck('Z04 - k', 'Z04 - v', 'Lärmkartierung', 'personen_Lnight55') + existsCheck('Z05 - v', 'Lärmkartierung', 'beschreibungProbleme') + def prioritiesAll = _snippets.helperFunctions.CODELIST_PrioritisationCriteriaText_DE() + prioritiesAll.each { p -> + codelistCheck("${p}", null, 'Lärmkartierung', p, CODELIST_Boolean_DE() ) + } + + + // Validate sheet 'Maßnahmen' + def measuresAll = _snippets.helperFunctions.CODELIST_RailMeasureText_DE() + measuresAll.each { m -> + codelistCheck("${m} - geplant", null, 'Maßnahmen', "${m}_geplant", CODELIST_Boolean_DE() ) + codelistCheck("${m} - vorhanden", null, 'Maßnahmen', "${m}_vorhanden", CODELIST_Boolean_DE() ) + } + existsCheck('Z03 - v', 'Maßnahmen', 'nutzen') + + + // Validate sheet 'Wirkungen' + numberCheck('Z03 - k', 'Z03 - v', 'Wirkungen', 'personenReduktion') + codelistCheck('Z08 - k', 'Z08 - v', 'Wirkungen', 'strategie', CODELIST_Boolean_DE() ) + conditionalCheck('Z09 - v', 'Wirkungen', 'strategie', 'strategieErlaeuterung', ['Ja']) + numberCheck('Z11 - k', null, 'Wirkungen', 'kostenGesamt') + codelistCheck('Z13 - k', 'Z13 - v', 'Wirkungen', 'ruhigeGebiete', CODELIST_Boolean_DE() ) + codelistCheck('Z15 - k', 'Z15 - v', 'Wirkungen', 'pruefungUmsetzung', CODELIST_Boolean_DE() ) + conditionalCheck('Z16 - v', 'Wirkungen', 'pruefungUmsetzung', 'pruefungUmsetzungErlaueterung', ['Ja']) + codelistCheck('Z18 - k', 'Z18 - v', 'Wirkungen', 'pruefungWirksamkeit', CODELIST_Boolean_DE() ) + conditionalCheck('Z19 - v', 'Wirkungen', 'pruefungWirksamkeit', 'pruefungWirksamkeitErlaeuterung', ['Ja']) + codelistCheck('Z19 - k', null, 'Wirkungen', 'pruefungWirksamkeitErlaeuterung', CODELIST_EvaluationMechanismValue_DE() ) + +} + +// Validate if entry is present in sheet Ruhige_Gebiete depending on whats inserted in sheet Wirkung +// (Sheet Ruhige_Gebiete itself is validated in the separate QuietArea Mapping) +withTransformationContext { + def c = _.context.collector(it) + def ruhigeGebPresent = c.Wirkungen.ruhigeGebiete.value() + def ruhigeGebKennung = c.Ruhige_Gebiete.kennungGebiet.values() + + if ((ruhigeGebPresent == "Ja") && !ruhigeGebKennung) { + _log.error("If providing 'Ja' for ruhige Gebiete in 'Wirkungen', then at least one entry must be present in sheet 'Ruhige_Gebiete' [Ruhige_Gebiete]") + } + if ((ruhigeGebPresent == "Nein") && ruhigeGebKennung) { + _log.error("If providing 'Nein' for ruhige Gebiete in 'Wirkungen', then no entry should be given in sheet 'Ruhige_Gebiete' [Ruhige_Gebiete]") + } +} + +// assign values to target sheet NoiseActionPlanMajorRail +withTransformationContext { + def c = _.context.collector(it) + _target { + actionPlanId_identifier( c.Allgemeines.kennungPlan.value() ) + + legalContext_actionPlanStartDate( _snippets.helperFunctions.formatDate(c.Allgemeines.startDatum.value()) ) + legalContext_actionPlanEndDate( _snippets.helperFunctions.formatDate(c.Allgemeines.endDatum.value()) ) + legalContext_actionPlanDocument_citationLink( c.Allgemeines.linkZumPlan.value() ) + legalContext_actionPlanDocument_citationLevel( 'sub-national' ) + legalContext_actionPlanDocument_citationType( 'documentCitation' ) + + publicConsultation_consultationDocumentationSummary( c.Öffentlichkeitsbeteiligung.beschreibung.value() ) + publicConsultation_consultationDocumentationOnline( c.Öffentlichkeitsbeteiligung.link.value() ) + publicConsultation_consultationStartDate( _snippets.helperFunctions.formatDate(c.Öffentlichkeitsbeteiligung.startDatum.value()) ) + publicConsultation_consultationEndDate( _snippets.helperFunctions.formatDate(c.Öffentlichkeitsbeteiligung.endDatum.value()) ) + publicConsultation_otherConsultationMeans( c.Öffentlichkeitsbeteiligung.mittelAndere.value() ) + + // get codelist values for 'mittel' like classified in lookup-table 'BeteiligungMittel' + def mittel = c.Öffentlichkeitsbeteiligung.mittel.values() + def mittel_classified = _snippets.helperFunctions.classifyListValues( mittel, '67142f52-4a80-4e31-8978-0ea3fbc40bf8' ) + publicConsultation_consultationMeans( mittel_classified.join("; ") ) + + // get codelist values for 'interessentraeger' like classified in lookup-table 'BeteiligungInteressentraeger' + def interessentraeger = c.Öffentlichkeitsbeteiligung.interessentraeger.values() + def interessentraeger_classified = _snippets.helperFunctions.classifyListValues(interessentraeger, '93474127-9a08-4b69-8e92-eb86286e7efd') + publicConsultation_stakeholdersType( interessentraeger_classified.join("; ") ) + + publicConsultation_otherStakeholdersType( c.Öffentlichkeitsbeteiligung.interessentraegerAndere.value() ) + publicConsultation_numberOfParticipants( c.Öffentlichkeitsbeteiligung.anzahlTeilnehmer.value() ) + publicConsultation_commentsReceived( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.kommentareEingegangen.value()) ) + publicConsultation_commentsIncludedInNAP( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.kommentareAufgenommen.value()) ) + publicConsultation_NAPReviewed( _snippets.helperFunctions.classifyJaNein(c.Öffentlichkeitsbeteiligung.lapUeberarbeitet.value()) ) + + if (c.Öffentlichkeitsbeteiligung.lapUeberarbeitet.value() == 'Nein' && !c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar.value()) { + publicConsultation_reviewExplanation( 'Eine Überarbeitung des Lärmaktionsplans nach der Öffentlichkeitsbeteiligung war nicht erforderlich.' ) + } + else { + publicConsultation_reviewExplanation( c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar.value() ) + } + + longTermStrategy( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.strategie.value()) ) + longTermStrategyExplanation( c.Wirkungen.strategieErlaeuterung.value() ) + + estimatedOverallCost( c.Wirkungen.kostenGesamt.value() ) + if ( c.Wirkungen.kostenGesamt.value() ) { + costCurrency( 'Euro' ) + } + + quietAreas( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.ruhigeGebiete.value()) ) + + implementationMechanism( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.pruefungUmsetzung.value()) ) + implementationMechanismDescription( c.Wirkungen.pruefungUmsetzungErlaueterung.value() ) + + resultsEvaluationMechanism( _snippets.helperFunctions.classifyJaNein(c.Wirkungen.pruefungWirksamkeit.value()) ) + + // get codelist values for 'pruefungWirksamkeitErlaeuterung' like classified in lookup-table 'PruefungWirksamkeit' + def pruefWirksamkeitKom = c.Wirkungen.pruefungWirksamkeitErlaeuterung.value() + if (pruefWirksamkeitKom) { + def pruefWirksamkeitKom_classified = _snippets.helperFunctions.classifyListValues([pruefWirksamkeitKom], 'b1756c75-cbd2-4d0f-bf99-620f0867535a') + resultsEvaluationMechanismDescription( pruefWirksamkeitKom_classified.join("; ") ) + } + + } +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from sheet 'Allgemeines' +// No target is created. + +def bezeichnung = _source.p.Bezeichnung.value() +def wert = _source.p.Wert.value() +def types = ['Gemeinde', 'Verbandsgemeinde', 'Amt (MV)', 'Regierungsbezirk'] + +withTransformationContext { + def c = _.context.collector(it) + if(bezeichnung) { + if (bezeichnung.contains('Vollständiger Name der Behörde')) { + c.Allgemeines.nameBehoerde << wert + } + else if (bezeichnung.contains('Name')) { + c.Allgemeines.name << wert + } + else if (bezeichnung.contains('Bundesland')) { + c.Allgemeines.bundesland << wert + } + else if (bezeichnung.contains('Amtlicher Gemeindeschlüssel (AGS)') || bezeichnung.contains('Regionalschlüssel (RS)')) { + c.Allgemeines.ags_rs << wert + } + else if (bezeichnung.contains('Kennung des Lärmaktionsplans')) { + c.Allgemeines.kennungPlan << wert + } + else if (bezeichnung.contains('Straße')) { + c.Allgemeines.strasse << wert + } + else if (bezeichnung.contains('Hausnummer')) { + c.Allgemeines.hausnr << wert + } + else if (bezeichnung.contains('Ort')) { + c.Allgemeines.ort << wert + } + else if (bezeichnung.contains('PLZ')) { + c.Allgemeines.plz << wert + } + else if (bezeichnung.contains('Kennung der zuständigen Behörde')) { + c.Allgemeines.kennungBehoerde << wert + } + else if (bezeichnung.contains('Annahme des Lärmaktionsplans (Datum)')) { + c.Allgemeines.startDatum << wert + } + else if (bezeichnung.contains('Voraussichtlicher Abschluss der Umsetzung des Lärmaktionsplans (Datum)')) { + c.Allgemeines.endDatum << wert + } + else if (bezeichnung.contains('Link zur Webseite des Lärmaktionsplans')) { + c.Allgemeines.linkZumPlan << wert + } + else if (bezeichnung.contains('Informationen über Lärmgrenzwerte, die als Kriterien für die Evaluierung und Umsetzung von Maßnahmen zur Bekämpfung und Minderung von Lärm in dem von dem Aktionsplan erfassten Gebiet verwendet werden.')) { + c.Allgemeines.infoGrenzwerte << wert + } + } + else { + if ( wert in types ) { + c.Allgemeines.typ << wert + } + } + +} + + + + + + + + + + + + + + + + +// This groovy script collects the information from table 'Öffentlichkeitsbeteiligung' +// No target is created. + +def bezeichnung = _source.p.Bezeichnung.value() +def wert = _source.p.Wert.value() +def mittel = _snippets.helperFunctions.CODELIST_ConsultationMeansText_DE() +def interessentraeger = _snippets.helperFunctions.CODELIST_stakeholdersTypeText_DE() + +withTransformationContext { + def c = _.context.collector(it) + if(bezeichnung) { + if (bezeichnung.contains('Inhaltliche Zusammenfassung der Öffentlichkeitsbeteiligung')) { + c.Öffentlichkeitsbeteiligung.beschreibung << wert + } + else if (bezeichnung.contains('Link zur Webseite mit Dokumenten der Öffentlichkeitsbeteiligung')) { + c.Öffentlichkeitsbeteiligung.link << wert + } + else if (bezeichnung.contains('Anfangsdatum der Öffentlichkeitsbeteiligung')) { + c.Öffentlichkeitsbeteiligung.startDatum << wert + } + else if (bezeichnung.contains('Enddatum der Öffentlichkeitsbeteiligung')) { + c.Öffentlichkeitsbeteiligung.endDatum << wert + } + else if (mittel.contains(bezeichnung) && wert == 'Ja') { + c.Öffentlichkeitsbeteiligung.mittel << bezeichnung + } + else if (bezeichnung.contains('Andere Mittel/Instrumente')) { + c.Öffentlichkeitsbeteiligung.mittelAndere << wert + } + else if (interessentraeger.contains(bezeichnung) && wert == 'Ja') { + c.Öffentlichkeitsbeteiligung.interessentraeger << bezeichnung + } + else if (bezeichnung.contains('Andere Interessenträger')) { + c.Öffentlichkeitsbeteiligung.mittelAndere << wert + } + else if (bezeichnung.contains('Anzahl der Personen, die an der Öffentlichkeits-beteiligung teilgenommen haben')) { + c.Öffentlichkeitsbeteiligung.anzahlTeilnehmer << wert + } + else if (bezeichnung.contains('Angabe, ob im Laufe der Öffentlichkeits-beteiligung Stellungnahmen eingegangen sind')) { + c.Öffentlichkeitsbeteiligung.kommentareEingegangen << wert + } + else if (bezeichnung.contains('Angabe, ob die während der Öffentlichkeits-beteiligung eingegangenen Stellungnahmen in den LAP aufgenommen wurden')) { + c.Öffentlichkeitsbeteiligung.kommentareAufgenommen << wert + } + else if (bezeichnung.contains('Angabe, ob der LAP nach der Öffentlichkeits-beteiligung überarbeitet wurde')) { + c.Öffentlichkeitsbeteiligung.lapUeberarbeitet << wert + } + else if (bezeichnung.contains('Wenn ja, Erläuterung, wie der Lärmaktionsplan nach der Öffentlichkeits-beteiligung überarbeitet wurde')) { + c.Öffentlichkeitsbeteiligung.lapUeberarbeitetKommentar << wert + } + + + if ( bezeichnung in mittel || bezeichnung in interessentraeger) { + c.Öffentlichkeitsbeteiligung."${bezeichnung}" << wert + } + + } +} + + + + + diff --git a/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.styles.sld b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.styles.sld new file mode 100644 index 0000000..ad34f54 --- /dev/null +++ b/Validation/MajorRailway/UBA-DE_HES_to_END_DF7_10_Railway.halex.styles.sld @@ -0,0 +1,3 @@ + + Default Styler +