<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=HE%3AOffenerHaushalt</id>
	<title>HE:OffenerHaushalt - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=HE%3AOffenerHaushalt"/>
	<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=HE:OffenerHaushalt&amp;action=history"/>
	<updated>2026-06-15T10:33:32Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Piratenwiki Mirror</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikimirror.piraten.tools/wiki/index.php?title=HE:OffenerHaushalt&amp;diff=55794145&amp;oldid=prev</id>
		<title>imported&gt;Nowrap: /* Kolorierung */</title>
		<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=HE:OffenerHaushalt&amp;diff=55794145&amp;oldid=prev"/>
		<updated>2011-11-18T18:49:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Kolorierung&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Überblick ==&lt;br /&gt;
Diese Wikiseite soll einen Überblick geben, wie man einen Haushalt von einem PDF in eine visualisierte Form bringen kann.&lt;br /&gt;
&lt;br /&gt;
Ziel des Unterfangens ist es, Anträge zu schreiben, damit kommunale Kämmereien die Daten in einem offenen Format bereitstellen und einfach unter Plattformen wie http://bund.offenerhaushalt.de präsentiert werden können.&lt;br /&gt;
&lt;br /&gt;
Dadurch erhalten sowohl Abgeordnete als auch Bürger einen einfacheren Zugang zu den teils sehr umfangreichen Zahlenwerken.&lt;br /&gt;
&lt;br /&gt;
== Haushalte konvertieren ==&lt;br /&gt;
In der Regel werden die hessischen kommunalen Haushalte in Form eines PDFs veröffentlicht oder alternativ als Ausdrucke.&lt;br /&gt;
&lt;br /&gt;
Öfters sind diese PDFs auch noch gegen Copy+Paste gesichert.&lt;br /&gt;
&lt;br /&gt;
Um dennoch eine Verarbeitung zu ermöglichen, hat der LV Hessen zwei Windows-Programme angeschafft:&lt;br /&gt;
* [http://www.pdfgrabber.de PDF Grabber], Version 6&lt;br /&gt;
* [http://www.verypdf.com PDF Password Remover], Version 3.1&lt;br /&gt;
&lt;br /&gt;
Zuvor wurde ein Strauß von Programmen, kommerziell und OpenSource, getestet, um das beste und einfachste Ergebnis zu erzielen.&lt;br /&gt;
&lt;br /&gt;
Das PDF wird entschützt, sofern dies notwendig sein sollte und dann in eine Excel-Tabelle konvertiert. Es wird das PDF-Grabber-Profil &amp;quot;Textbasiert (wenig Spalten)&amp;quot; verwendet.&lt;br /&gt;
&lt;br /&gt;
== Haushalte parsen ==&lt;br /&gt;
Liegt der Haushalt als Excel-Tabelle vor, beginnt die eigentliche Arbeit: Welche Daten sind wie zu extrahieren?&lt;br /&gt;
&lt;br /&gt;
Primär interessant sind die Ausgaben, welche in der Regel als &amp;quot;Ordentliche&lt;br /&gt;
Aufwendungen&amp;quot; bezeichnet sind. Allerdings gliedern sich die Haushalte teilweise in verschiedenen Hierarchien.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel hat die Stadt Gießen drei Ebenen: Gruppen, Ämter und Produkte. Der Main-Kinzig-Kreis hat dafür vier Ebenen: Dezernate, Ämter, Gruppen und Produkte.&lt;br /&gt;
&lt;br /&gt;
Dies gilt es also als erstes festzustellen.&lt;br /&gt;
&lt;br /&gt;
=== Gruppen-Vorgaben ===&lt;br /&gt;
Das Land Hessen hat eigentlich eine feste Vorgabe an Gruppen:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
01 =&amp;gt; Innere Verwaltung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
02 =&amp;gt; Sicherheit und Ordnung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
03 =&amp;gt; Schulträgeraufgaben&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
04 =&amp;gt; Kultur und Wissenschaft&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
05 =&amp;gt; Soziale-Leistungen / Soziale Hilfen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
06 =&amp;gt; Kinder-, Jugend- und Familienhilfe&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
07 =&amp;gt; Gesundheitsdienste&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
08 =&amp;gt; Sportförderung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
09 =&amp;gt; Räumliche Planung und Entwicklung, Geoinformationen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
10 =&amp;gt; Bauen und Wohnen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
11 =&amp;gt; Ver- und Entsorgung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
12 =&amp;gt; Verkehrsflächen und -anlagen, ÖPNV&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
13 =&amp;gt; Natur- und Landschaftspflege&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
14 =&amp;gt; Umweltschutz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
15 =&amp;gt; Wirtschaft und Tourismus&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
16 =&amp;gt; Allgemeine Finanzwirtschaft&lt;br /&gt;
&lt;br /&gt;
=== Parsing-Strategie ===&lt;br /&gt;
Es ist notwendig, sich eine Strategie beim Parsing zu überlegen, um möglichst einfach an die relevanten Zahlen zu kommen.&lt;br /&gt;
&lt;br /&gt;
In der Regel haben die Seiten, auf denen die gesuchten Werte stehen, ein einheitliches Layout. Dies kann man nutzen, um die benötigten Seiten zu identifizieren.&lt;br /&gt;
&lt;br /&gt;
In den Seiten braucht es dann Parsing-Regeln, um die korrekten Tabellen-Zeilen und Zellen zu finden.&lt;br /&gt;
&lt;br /&gt;
Für beides hat sich der Einsatz von regulärer Ausdrücken (RegEx) bewährt.&lt;br /&gt;
&lt;br /&gt;
=== Fehler-Korrekturen ===&lt;br /&gt;
Teilweise ist es notwendig Fehler zu korrigieren. Dies kann man teilweise im erzeugten Excel-Dokument machen oder man baut alternative Parsing-Regeln, die solche Konvertierungsfehler finden ein.&lt;br /&gt;
&lt;br /&gt;
Auch muss man ab und zu beachten, dass relevante Seiten auf der nachfolgenden Seite fortgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Zwischen-Format ===&lt;br /&gt;
Da das Parsen eines 800 Seiten Excel-Dokumentes teilweise recht lange dauert, bietet es sich an, dass die extrahierten Daten zwischen gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
Eine verschachtelte Array-Struktur in Form eines Baumes, der die Abhängigkeiten der Ebenen widerspiegelt, war nahe liegend.&lt;br /&gt;
&lt;br /&gt;
== OpenSpending Format ==&lt;br /&gt;
Zur Visualisierung der Haushaltsdaten wird die OpenSource-Software [http://openspending.org OpenSpending] verwendet.&lt;br /&gt;
&lt;br /&gt;
Es braucht eine CSV-Datei, um die Daten bereit zu stellen und eine JSON-Datei, um die Steuerung der Daten zu übernehmen und so die Abhängigkeiten zu definieren.&lt;br /&gt;
&lt;br /&gt;
=== Der DataHub ===&lt;br /&gt;
Im [http://thedatahub.org DataHub] werden die Daten abgelegt, damit sie für die [http://etl.sandbox.openspending.org OpenSpending Sandbox] verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
Die Daten müssen mir einer OpenData-Lizenz versehen werden, um nutzbar zu werden.&lt;br /&gt;
&lt;br /&gt;
Man muss sich dort registrieren.&lt;br /&gt;
&lt;br /&gt;
=== Sandbox ===&lt;br /&gt;
Auch für die Sandbox ist eine Registrierung erforderlich, um die [http://etl.sandbox.openspending.org/load Daten importieren] zu können.&lt;br /&gt;
&lt;br /&gt;
Alle OpenData-Pakete werden, sofern mit OpenData-Lizenz versehen, hier aufgelistet.&lt;br /&gt;
&lt;br /&gt;
Nach dem Klick auf &amp;quot;Continue&amp;quot; müssen model (die JSON-Datei) und data (die CSV-Datei) ausgewählt werden. model:mapping bleibt leer.&lt;br /&gt;
&lt;br /&gt;
Ein Klick auf &amp;quot;Import it?&amp;quot; startet den Vorgang.&lt;br /&gt;
&lt;br /&gt;
=== Preflight === &lt;br /&gt;
Im Preflight werden mögliche Fehler und/oder Probleme beim Import aufgezeigt.&lt;br /&gt;
&lt;br /&gt;
=== Result ===&lt;br /&gt;
Ist der Import erfolgreich, so findet sich der visualisierte Haushalte in der Liste der [http://sandbox.openspending.org Sandbox] wieder.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Stadt Gießen ===&lt;br /&gt;
* [http://thedatahub.org/dataset/giessen_city_goverment_budget DataHub]&lt;br /&gt;
* [http://etl.sandbox.openspending.org/load/preflight/giessen_city_goverment_budget Import]&lt;br /&gt;
* [http://sandbox.openspending.org/dataset/giessen_city_goverment_budget Result]&lt;br /&gt;
&lt;br /&gt;
=== Landkreis Gießen ===&lt;br /&gt;
* [http://thedatahub.org/dataset/budget-of-landkreis-giessen DataHub]&lt;br /&gt;
* [http://etl.sandbox.openspending.org/load/preflight/budget-of-landkreis-giessen Import]&lt;br /&gt;
* [http://sandbox.openspending.org/dataset/giessen_city_goverment_budget Result]&lt;br /&gt;
&lt;br /&gt;
=== Main-Kinzig-Kreis ===&lt;br /&gt;
* [http://thedatahub.org/dataset/budget-of-main-kinzig-kreis DataHub]&lt;br /&gt;
* [http://etl.sandbox.openspending.org/load/preflight/budget-of-main-kinzig-kreis Import]&lt;br /&gt;
* [http://sandbox.openspending.org/dataset/main-kinzig-kreis_goverment_budget Result]&lt;br /&gt;
&lt;br /&gt;
== Error 500 ==&lt;br /&gt;
Die Sandbox liefert ab und zu einen Fehler 500 aus. Es scheint mehrere Worker zu geben oder eine Art LoadBalancer, wo manche von defekt sind.&lt;br /&gt;
&lt;br /&gt;
== Kolorierung ==&lt;br /&gt;
OpenSpending erlaubt es die Daten einzufärben. Besonders gelungen ist dies natürlich beim [http://bund.offenerhaushalt.de Offenen Haushalt] selbst.&lt;br /&gt;
&lt;br /&gt;
Adobe bietet mit [https://kuler.adobe.com/ Kuler] eine Plattform für Farbmuster an, die nach Registrierung und [http://learn.adobe.com/wiki/display/kulerdev/A.+Kuler+API+Documentation entsprechendem Hinweis], der sich leicht in die Beschreibungen einbauen lässt, genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
== Sourcecode ==&lt;br /&gt;
Die bisher erstellten Skripte befinden sich im [https://github.com/Piratenpartei/OffenerHaushalt GitHub der Piratenpartei].&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
* Es müssen noch die Verzeichnisse data und pdfs erzeugt werden&lt;br /&gt;
* Die Haushalte in PDF und XLS werden im Verzeichnis pdfs abgelegt&lt;br /&gt;
** Für Stadt Gießen in pdfs/GI/Stadt&lt;br /&gt;
** Für den Main-Kinzig-Kreis in pdfs/MKK&lt;br /&gt;
* In die Datei _kuler_load_color_scheme.ini ist der Kuler API-Key einzutragen&lt;br /&gt;
&lt;br /&gt;
=== Nutzung ===&lt;br /&gt;
# Konvertieren der PDFs in XLS&lt;br /&gt;
# Extrahieren der Daten per PHP-Skript, z.B. &amp;quot;php mkk_xls_parser_2011_stand.php&amp;quot;&lt;br /&gt;
# Konvertieren ins OpenSpending-Format, z.B. &amp;quot;php mkk_openspending_converter.php&amp;quot;&lt;/div&gt;</summary>
		<author><name>imported&gt;Nowrap</name></author>
	</entry>
</feed>