RABEST-Installation: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Excel nach Postgres)
 
(44 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Zurück zu [[RABEST]]
+
[[RABEST]] - Bevölkerungs-Entwicklungsprognose für eine oder mehrere Gemeinden.
 +
 
 +
== Uebersicht ==
 +
 
 +
=== 1a. Rohdaten in DB importieren mit kettle ===
 +
 
 +
* Tools: KETTLE (und PostgreSQL)
 +
* Input:
 +
** Daten 1: Gemeinde/Einwohner/Migrations-Rohdaten von Kantonen oder Gemeinde (Excel, CSV oder DUMPs)
 +
** Daten 2: Daten vom BFS
 +
** kettle-Skripts
 +
** Handarbeit! (v.a. Gemeindenamen und Fusionen)
 +
* Resultat: RABEST-DB stats3 (Haupttabellen bestaende und saldi_wanderungen)
 +
 
 +
=== 1b. Rohdaten in DB von Hand importieren ===
 +
 
 +
* Tools: pgadmin(und PostgreSQL)
 +
* Resultat: Aktualisierte bestaende-Tabelle.
 +
 
 +
=== 2. Bevölkerungs-Entwicklungsprognose erstellen ===
 +
 
 +
* Tools: Excel mit VB-Skript (und PostgreSQL mit Tabellen bestaende, saldi_wanderungen, etc.)
 +
* Input:
 +
** RABEST-DB (Statistik/Ist-Zusand)
 +
** je nach SELECT-Kriterium eine Gemeinde, mehrere oder alle
 +
* Resultat: je eine Excel- und Chart-Datei pro Gemeinde in Ordner 'output'
 +
 
 +
=== 3. Bevölkerungs-Entwicklungsprognose zurück in DB integrieren ===
 +
 
 +
* Tools: VB-Applikation (Doppelklick) (und PostgreSQL)
 +
* Input: Excel-Datei pro Gemeinde im Ordner 'out'
 +
* Resultat: Tabelle trend_...-Tabellen in DB
 +
 
 +
=== 4. Visualisierung mit GIS ab DB ===
 +
* Tools: ArcGIS (und PostgreSQL)
 +
* Input: trend_...-Tabellen und Tabelle Gemeindegrenzen
 +
* Resultat: ArcMap-Projekt und Karte (PDF)
 +
 
 +
== Dokumentation 'Bevölkerungs-Entwicklungsprognose' ==
  
 
Dieses Programm erstellt aus den in PostgreSQL-DB verwalteten RABEST-Gemeindedaten und einer Vorlage (Fall1 und Fall2) einen Ordner mit je einer Excel- und Chart-Datei pro Gemeinde (Beispiel: Rapperswil_Jona.xls und Rapperswil_Jona.gif). Der Chart entspricht dem Inhalt des Worksheets "Diagramm_allgemein".
 
Dieses Programm erstellt aus den in PostgreSQL-DB verwalteten RABEST-Gemeindedaten und einer Vorlage (Fall1 und Fall2) einen Ordner mit je einer Excel- und Chart-Datei pro Gemeinde (Beispiel: Rapperswil_Jona.xls und Rapperswil_Jona.gif). Der Chart entspricht dem Inhalt des Worksheets "Diagramm_allgemein".
Zeile 22: Zeile 60:
 
Zu beachten:
 
Zu beachten:
 
* PostgreSQL Server gestartet? (einmalig einrichten)
 
* PostgreSQL Server gestartet? (einmalig einrichten)
* In VB-Editor: Menu Tools > References > Microsoft ADO ... anwählen (einmalig; sonst ERROR "User-defined type not defined" o.ä.)  
+
* In VB-Editor: Menu Tools > References > Microsoft ActiveX Data Objects 2.8 Library anwählen (einmalig; sonst ERROR "User-defined type not defined" o.ä.)  
 
* Microsoft Office-Installation > Office Shared Features > Converters and Filter > Graphics Filters > Graphics Interchange Format (GIF) File Import (sonst ERROR "Objekt unterstützt diese Methode nicht..." o.ä.)
 
* Microsoft Office-Installation > Office Shared Features > Converters and Filter > Graphics Filters > Graphics Interchange Format (GIF) File Import (sonst ERROR "Objekt unterstützt diese Methode nicht..." o.ä.)
 
* Achtung: Inhalt des output-Ordners wird überschrieben!
 
* Achtung: Inhalt des output-Ordners wird überschrieben!
  
 +
== Funktionsweise ==
  
== Aufbau ==
+
Das Zusammenspiel von Postgres und Excel ist aus folgender Graphik ersichtlich:
  
=== Postgres ===
+
[[Bild:Excel_postgres.png]]
  
=== Excel ===
+
Zum einen werden die Gemeindedaten aus der Datenbank in eine Vorlage überführt (Pfeile nach rechts) und pro Gemeinde gespeichert. Ausserdem (Pfeil nach links) können gewisse berechnete Daten wieder aus den Gemeinde-Excel-Dateien in die Datenbank abgefüllt werden.
 +
 
 +
=== Makros und Skripts ===
  
 
Die Excel-Vorlage ''*_vorlage_autom_bev_persp.xls'' enthält zwei Makros für die Generierung der Gemeinden-Exceldateien und Diagramme. Ausserdem besteht die Möglichkeit, die generierten Trends (Perspektive nat. Entwicklung, optimistischer- und pessimistischer Trend) aus den Excel-Dateien wieder zurück in die Postgres-Datenbank zu überführen.  
 
Die Excel-Vorlage ''*_vorlage_autom_bev_persp.xls'' enthält zwei Makros für die Generierung der Gemeinden-Exceldateien und Diagramme. Ausserdem besteht die Möglichkeit, die generierten Trends (Perspektive nat. Entwicklung, optimistischer- und pessimistischer Trend) aus den Excel-Dateien wieder zurück in die Postgres-Datenbank zu überführen.  
  
 +
==== Trenddaten-Export von Excel nach Postgres ====
  
==== Excel nach Postgres ====
+
Installation/Start:
 +
* Herunterladen von import_excel_to_postgres.vbs (siehe unten) und in den normalen RABEST-Ordner (oberhal ./out) kopieren.
 +
* Zus. Tabellen in RABEST-DB erstellen (siehe unten 'Vor dem ersten Durchlauf müssen,...')
 +
* Doppelklick auf import_excel_to_postgres.vbs
 +
** Tipp: Falls "Error 'ODBC/.dll nicht gefunden...' PgOleDB.dll und ... herunterladen von [http://pgfoundry.org/frs/?group_id=1000085&release_id=539 pgfoundry]und in $PGHOME/bin-Verzeichnis kopieren.
 +
* Resultat: die drei unten genannten Tabellen sind (neu) gefüllt mit den Trenddaten.
  
Das ''import_excel_to_postgres.vbs'' Skript, welches einfach ausgeführt werden kann und den Fortschritt in einem Fenster anzeigt, füllt die generierten Daten aus Excel wieder zurück in die Postgres-Datenbank ab. Vor dem ersten Durchlauf müssen, falls dies nicht bereits geschehen ist, drei Tabellen für die Resultate erstellt werden:
+
Vorbereitung: Das ''import_excel_to_postgres.vbs'' Skript, welches einfach ausgeführt werden kann und den Fortschritt in einem Fenster anzeigt, füllt die generierten Daten aus Excel wieder zurück in die Postgres-Datenbank ab.  
  
  CREATE TABLE bev_nat
+
Vor dem ersten Durchlauf müssen, falls dies nicht bereits geschehen ist, vier Tabellen für die Resultate erstellt werden:
 +
 
 +
  CREATE TABLE trend_natuerlich
 
  (
 
  (
 
   gdenr integer NOT NULL,
 
   gdenr integer NOT NULL,
Zeile 46: Zeile 95:
 
   geschlecht character(1),
 
   geschlecht character(1),
 
   jahr integer,
 
   jahr integer,
   "alter" integer,
+
   alterstart integer,
 +
  alterend integer,
 
   anzahl integer
 
   anzahl integer
  )  
+
  );
  
Dasselbe wird noch zwei mal mit den Tabellennamen ''trend_optimistisch'' und ''trend_pessimistisch'' ausgeführt.
+
CREATE TABLE trend_optimistisch
 +
(
 +
    gdenr integer NOT NULL,
 +
  gdname character varying(100) NOT NULL,
 +
  geschlecht character(1),
 +
  jahr integer,
 +
  alterstart integer,
 +
  alterend integer,
 +
  anzahl integer
 +
);
 +
 
 +
CREATE TABLE trend_pessimistisch
 +
(
 +
  gdenr integer NOT NULL,
 +
  gdname character varying(100) NOT NULL,
 +
  geschlecht character(1),
 +
  jahr integer,
 +
  alterstart integer,
 +
  alterend integer,
 +
  anzahl integer
 +
);
 +
 
 +
CREATE TABLE trend_mittel
 +
(
 +
  gdenr integer NOT NULL,
 +
  gdname character varying(100) NOT NULL,
 +
  geschlecht character(1),
 +
  jahr integer,
 +
  alterstart integer,
 +
  alterend integer,
 +
  anzahl integer
 +
);
  
 
Zu beachten ist, dass alle Daten eines früheren Durchlaufs gelöscht werden. Weitere Informationen (Verbindungs-Paramter, etc.) finden sich direkt im Skript (einfach mit Text-Editor öffnen).
 
Zu beachten ist, dass alle Daten eines früheren Durchlaufs gelöscht werden. Weitere Informationen (Verbindungs-Paramter, etc.) finden sich direkt im Skript (einfach mit Text-Editor öffnen).
  
==== PostgresImport ====
+
  [[Media:Import_excel_to_postgres.zip‎]]
 +
 
 +
==== 'PostgresImport' ====
  
 
Öffnet eine Verbindung zum Postgres-Server und generiert für alle Gemeinden, die durch ''query_gemeinden.txt'' vorgegeben werden. Im Ordner ''output'' wird pro Gemeinde eine Kopie der Vorlage, gefüllt mit den Daten, abgelegt. Ausserdem wird zugleich ein Bild-Export der Diagramm-Varianten durchgeführt. Je nach Anzahl Gemeinden dauert dieser Vorgang einige Minuten, in dieser Zeit sollte mit dem laufenden Excel nicht weitergearbeitet werden.
 
Öffnet eine Verbindung zum Postgres-Server und generiert für alle Gemeinden, die durch ''query_gemeinden.txt'' vorgegeben werden. Im Ordner ''output'' wird pro Gemeinde eine Kopie der Vorlage, gefüllt mit den Daten, abgelegt. Ausserdem wird zugleich ein Bild-Export der Diagramm-Varianten durchgeführt. Je nach Anzahl Gemeinden dauert dieser Vorgang einige Minuten, in dieser Zeit sollte mit dem laufenden Excel nicht weitergearbeitet werden.
Zeile 64: Zeile 147:
 
Von den drei existierenden 'query_*.txt' Dateien darf nur ''query_gemeinden.txt'' angepasst werden um die betroffenen Gemeinden auszuwählen.
 
Von den drei existierenden 'query_*.txt' Dateien darf nur ''query_gemeinden.txt'' angepasst werden um die betroffenen Gemeinden auszuwählen.
  
==== ExportJPG ====
+
==== 'ExportJPG' ====
  
 
Falls der bereits erfolgte Export des Diagramms aktualisiert werden soll, kann dies mit dem ExportJPG-Makro gemacht werden.
 
Falls der bereits erfolgte Export des Diagramms aktualisiert werden soll, kann dies mit dem ExportJPG-Makro gemacht werden.
  
[[Kategorie:Projekte]]
+
  [[Media:ExportJPG.bas.zip‎]]
 +
 
 +
==== 'Export Übersicht'====
 +
Exportiert Entwicklungsübersicht für einen Ordner voll Excelfiles in neues Excelfile.
 +
 
 +
Installation/Start:
 +
* Herunterladen von export_uebersicht.vbs (siehe unten) und in den normalen RABEST-Ordner (oberhal ./out) kopieren.
 +
* Doppelklick auf export_uebersicht.vbs
 +
 
 +
  [[Media:Export_Uebersicht.zip‎]]
 +
 
 +
 
 +
  [[Kategorie:Projekte]]

Aktuelle Version vom 13. August 2009, 12:39 Uhr

RABEST - Bevölkerungs-Entwicklungsprognose für eine oder mehrere Gemeinden.

Uebersicht

1a. Rohdaten in DB importieren mit kettle

  • Tools: KETTLE (und PostgreSQL)
  • Input:
    • Daten 1: Gemeinde/Einwohner/Migrations-Rohdaten von Kantonen oder Gemeinde (Excel, CSV oder DUMPs)
    • Daten 2: Daten vom BFS
    • kettle-Skripts
    • Handarbeit! (v.a. Gemeindenamen und Fusionen)
  • Resultat: RABEST-DB stats3 (Haupttabellen bestaende und saldi_wanderungen)

1b. Rohdaten in DB von Hand importieren

  • Tools: pgadmin(und PostgreSQL)
  • Resultat: Aktualisierte bestaende-Tabelle.

2. Bevölkerungs-Entwicklungsprognose erstellen

  • Tools: Excel mit VB-Skript (und PostgreSQL mit Tabellen bestaende, saldi_wanderungen, etc.)
  • Input:
    • RABEST-DB (Statistik/Ist-Zusand)
    • je nach SELECT-Kriterium eine Gemeinde, mehrere oder alle
  • Resultat: je eine Excel- und Chart-Datei pro Gemeinde in Ordner 'output'

3. Bevölkerungs-Entwicklungsprognose zurück in DB integrieren

  • Tools: VB-Applikation (Doppelklick) (und PostgreSQL)
  • Input: Excel-Datei pro Gemeinde im Ordner 'out'
  • Resultat: Tabelle trend_...-Tabellen in DB

4. Visualisierung mit GIS ab DB

  • Tools: ArcGIS (und PostgreSQL)
  • Input: trend_...-Tabellen und Tabelle Gemeindegrenzen
  • Resultat: ArcMap-Projekt und Karte (PDF)

Dokumentation 'Bevölkerungs-Entwicklungsprognose'

Dieses Programm erstellt aus den in PostgreSQL-DB verwalteten RABEST-Gemeindedaten und einer Vorlage (Fall1 und Fall2) einen Ordner mit je einer Excel- und Chart-Datei pro Gemeinde (Beispiel: Rapperswil_Jona.xls und Rapperswil_Jona.gif). Der Chart entspricht dem Inhalt des Worksheets "Diagramm_allgemein".

Bedienung:

  • Einschränkung der Anfrage: siehe SQL in Datei query_gemeinden.txt z.B. nur Kanton St. Gallen:
SELECT g.gdeid, g.gdenr, g.gdename
FROM gemeinden g
JOIN kantone k ON g.ktid = k.ktid
WHERE k.ktkz = 'SG'::bpchar
ORDER BY g.gdename;
  • ... oder nur Rapperswil:
SELECT g.gdeid, g.gdenr, g.gdename
FROM gemeinden g
JOIN kantone k ON g.ktid = k.ktid
WHERE g.gdename = 'Rapperswil (SG)';

Software:

  • PostgreSQL
  • Excel 2003

Zu beachten:

  • PostgreSQL Server gestartet? (einmalig einrichten)
  • In VB-Editor: Menu Tools > References > Microsoft ActiveX Data Objects 2.8 Library anwählen (einmalig; sonst ERROR "User-defined type not defined" o.ä.)
  • Microsoft Office-Installation > Office Shared Features > Converters and Filter > Graphics Filters > Graphics Interchange Format (GIF) File Import (sonst ERROR "Objekt unterstützt diese Methode nicht..." o.ä.)
  • Achtung: Inhalt des output-Ordners wird überschrieben!

Funktionsweise

Das Zusammenspiel von Postgres und Excel ist aus folgender Graphik ersichtlich:

Excel postgres.png

Zum einen werden die Gemeindedaten aus der Datenbank in eine Vorlage überführt (Pfeile nach rechts) und pro Gemeinde gespeichert. Ausserdem (Pfeil nach links) können gewisse berechnete Daten wieder aus den Gemeinde-Excel-Dateien in die Datenbank abgefüllt werden.

Makros und Skripts

Die Excel-Vorlage *_vorlage_autom_bev_persp.xls enthält zwei Makros für die Generierung der Gemeinden-Exceldateien und Diagramme. Ausserdem besteht die Möglichkeit, die generierten Trends (Perspektive nat. Entwicklung, optimistischer- und pessimistischer Trend) aus den Excel-Dateien wieder zurück in die Postgres-Datenbank zu überführen.

Trenddaten-Export von Excel nach Postgres

Installation/Start:

  • Herunterladen von import_excel_to_postgres.vbs (siehe unten) und in den normalen RABEST-Ordner (oberhal ./out) kopieren.
  • Zus. Tabellen in RABEST-DB erstellen (siehe unten 'Vor dem ersten Durchlauf müssen,...')
  • Doppelklick auf import_excel_to_postgres.vbs
    • Tipp: Falls "Error 'ODBC/.dll nicht gefunden...' PgOleDB.dll und ... herunterladen von pgfoundryund in $PGHOME/bin-Verzeichnis kopieren.
  • Resultat: die drei unten genannten Tabellen sind (neu) gefüllt mit den Trenddaten.

Vorbereitung: Das import_excel_to_postgres.vbs Skript, welches einfach ausgeführt werden kann und den Fortschritt in einem Fenster anzeigt, füllt die generierten Daten aus Excel wieder zurück in die Postgres-Datenbank ab.

Vor dem ersten Durchlauf müssen, falls dies nicht bereits geschehen ist, vier Tabellen für die Resultate erstellt werden:

CREATE TABLE trend_natuerlich
(
  gdenr integer NOT NULL,
  gdname character varying(100) NOT NULL,
  geschlecht character(1),
  jahr integer,
  alterstart integer,
  alterend integer,
  anzahl integer
);
CREATE TABLE trend_optimistisch
(
   gdenr integer NOT NULL,
  gdname character varying(100) NOT NULL,
  geschlecht character(1),
  jahr integer,
  alterstart integer,
  alterend integer,
  anzahl integer
);
CREATE TABLE trend_pessimistisch
(
  gdenr integer NOT NULL,
  gdname character varying(100) NOT NULL,
  geschlecht character(1),
  jahr integer,
  alterstart integer,
  alterend integer,
  anzahl integer
);
CREATE TABLE trend_mittel
(
  gdenr integer NOT NULL,
  gdname character varying(100) NOT NULL,
  geschlecht character(1),
  jahr integer,
  alterstart integer,
  alterend integer,
  anzahl integer
);

Zu beachten ist, dass alle Daten eines früheren Durchlaufs gelöscht werden. Weitere Informationen (Verbindungs-Paramter, etc.) finden sich direkt im Skript (einfach mit Text-Editor öffnen).

 Media:Import_excel_to_postgres.zip‎

'PostgresImport'

Öffnet eine Verbindung zum Postgres-Server und generiert für alle Gemeinden, die durch query_gemeinden.txt vorgegeben werden. Im Ordner output wird pro Gemeinde eine Kopie der Vorlage, gefüllt mit den Daten, abgelegt. Ausserdem wird zugleich ein Bild-Export der Diagramm-Varianten durchgeführt. Je nach Anzahl Gemeinden dauert dieser Vorgang einige Minuten, in dieser Zeit sollte mit dem laufenden Excel nicht weitergearbeitet werden.

Um allfällige Problemen bei der Weiterverarbeitung auszuschliessen, werden alle Sonderzeichen sowie Klammern aus den Gemeindenamen im Dateinamen ersetzt.

Bereits vorhandene Dateien im output-Ordner werden ohne Rückfrage überschrieben.

Von den drei existierenden 'query_*.txt' Dateien darf nur query_gemeinden.txt angepasst werden um die betroffenen Gemeinden auszuwählen.

'ExportJPG'

Falls der bereits erfolgte Export des Diagramms aktualisiert werden soll, kann dies mit dem ExportJPG-Makro gemacht werden.

 Media:ExportJPG.bas.zip‎

'Export Übersicht'

Exportiert Entwicklungsübersicht für einen Ordner voll Excelfiles in neues Excelfile.

Installation/Start:

  • Herunterladen von export_uebersicht.vbs (siehe unten) und in den normalen RABEST-Ordner (oberhal ./out) kopieren.
  • Doppelklick auf export_uebersicht.vbs
 Media:Export_Uebersicht.zip‎