[Disclaimer] Der Nachfolgende Text ist technisch, bitte nicht erschrecken.
Das Thema OpenData ist in bayerischen Finanzverwaltungen leider allzu oft ein Fremdwort.
Wenn überhaupt werden Haushaltspläne in Bayern allenfalls als PDF Dateien veröffentlicht.
Um die Daten maschinell und grafisch aufzuarbeiten sind Übersetzungsprogramme nötig.
Ich möchte hier die Arbeit der letzten Wochen mit Euch teilen.
Da es leider kaum verbindliche Regeln oder gar Vorlagen gibt, wie Haushaltspläne auszusehen haben,
kann ich leider kein Programm für alle Haushalte veröffentlichen, biete aber Lösungsansätze wie
Ihr das für Eure Kommune bewerkstelligen könnt.
Ich starte hier mit dem bayrischen Staatshaushalt, da dieses Programm am weitesten gediehen ist.
Die Beispiele für die kommunalen Haushalte folgen, auch hier gibt es bereits funktionsfähige Prototypen (für Schwaben, Mittelfranken, Regensburg und Gauting), die allerdings noch darauf warten in eine ordentliche Form überführt zu werden.
Vorneweg, die gewählte Sprache für die Umsetzprogramme ist Apples SWIFT, aber es gibt immer mehrere Wege zum Ziel. Wem die gewählte Programmiersprache oder das Betriebssystem nicht gefällt wird im Quellcode Lösungskonzepte finden mit deren Hilfe die Umsetzung in anderen Programmiersprachen schnell gelingt.
Eine Bitte, lasst uns an Euren Ideen teilhaben, ihr wisst OpenSource rulez, sharing is caring.
Den Sourcecode könnt Ihr in unserem Git-Hub Projekt downloaden. Dort findet Ihr auch die lauffähige App.
Systemvorraussetzungen: OSX 10.10 Yosemite
Einige Vorarbeiten sind notwendig.
1. Für die Verarbeitung ist es ist hilfreich die PDF Datei mit den Haushaltsdaten in einzelne Seiten zu zerlegen.
Dafür gibt es für jedes Betriebssystem Unmengen an Programmen. Ich persönlich verwende PDFsam Basic.
2. Nachdem das PDF aufteilt habt, müssen die PDF Dateien in Textdateien umgewandelt werden
Dazu gibt es das plattformunabhängige Tool pdftotext.
Unter unixartigen Betriebssystemen geht das mit.
find ./ -name "*.pdf" -exec pdftotext -table {} \;
Nach der Umwandlung in Textdateien muss noch sichergestellt werden, dass die Reihenfolge der Dateien auch sequentiell
sichergestellt ist. Ein Weg dafür ist, führende Nullen vor die Seitenzahl zu setzen.
Das geht unter unixartigen Betriebssystemen zum Beispiel so.
rename 's/\d+/sprintf("%04d",$&)/e' *.txt
Das wars, jetzt kann die Umsetzung starten.
Startet das Programm wählt Ziel- und Quellordner aus und startet die Konvertierung.
Das Programm schreibt in der vorliegenden Fassung zwei Dateien in den gewählten Zielordner.
In der Datei bayern.csv befinden sich die Daten des Haushalts. Die Datei bayern.log enthält die Logdatei, die auch in der Logausgabe steht und dient zur Analyse von Abweichungen in den Kapitelsummen.
In der gegenwärtigen Fassung, wird die Korrektheit der Gesamteinnahmen und Gesamtausgabe auf Kapitelebene geprüft.
Bei einer Abweichung von kleiner 500€ wird ein Rundungsfehler als Info ausgegeben, bei einer Abweichung von > 500€ ein Fehler. Beide Beträge werden in der Ausgabedatei ausgewiesen. In beiden Fällen wird ein Korrekturbetrag eingefügt damit die ausgewiesenen Summen im Haushalt stimmen.
Bei Fragen, Kritik und Anregungen erreicht Ihr mich unter david.krcek@piratenpartei-bayern.de oder https://twitter.com/switch2mac
Was soll so etwas? Nur für eine geschlossene Plattform, mit einer proprietären Sprache.
Dir steht offen den SourceCode in die Sprache Deiner Wahl zu übersetzen, deshalb auch GPL als Lizenz und die Dokumentation im Code.