Workshop auf dem Symposium Angewandte Karthographie Königsluther 2011: AtlasStyler Einstieg

Vom 30.05.2011 bis 01.06.2011 zeigte die Kommission Angewandte Kartographie – Geovisualisierung mit ihrem Symposium 2011 in Königsluther aktuelle Standards, Trends und Entwicklungen der digitalen Karthographie auf.

Stefan Tzeggai von wikisquare.de stellte in einem Workshop zum Thema "Geopublishing mit OpenSource" die FOSSGIS-Programme Geopublisher und AtlasStyler vor.

Der 20-minütige Einführungsvortrag steht Ihnen hier zum Download als PDF bereit. Neben Arbeitseinheiten zum Geopublisher wurde auch eine deutschsprachige Einführung zum AtlasStyler SLD Editor ausgegeben. Diese finden Sie hier als PDF, und im folgenden als Online-Tutorial. Wenn Sie das Tutorial durcharbeiten wollen, können Sie als Demodaten eigene Shapedateien/GeoTIFFs verwenden, oder diesen Demodatensatz herunterladen.

„Einführung AtlasStyler“, Stefan Tzeggai, www.wikisquare.de

AtlasStyler erlaubt Ihnen, SLD/SE Dateien zu erstellen, die Sie mit einem WMS (z.B. Geoserver) verwenden können. Datei können Sie die zu stylenden Daten direkt von einem WFS oder einer PostGIS Datenbank abrufen oder den Style auf einem lokalen Subset als Shapedatei bearbeiten.

Zuerst: AtlasStyler starten:

1. Die Elemente der AtlasStyler Oberfläche:

  1. Neue Datenquelle einbinden:

    • Vektor: ESRI Shapefile, ESRI Shapefile (im ZIP), PostGIS, WFS

    • Raster: GeoTIFF (nur Single-Band, kein RGB!), ArcASCII Grid

  2. Aktuelle Darstellungsvorschriften als XML(SymbologyEncoding) anzeigen. Die Anzeige aktualisiert sich live mit der Kartenvorschau – Änderungen in dem XML werden aber nicht übernommen.

  3. Alle Layer-Styles als einen <sld:StyledLayerDescriptor> mit mehrern <sld:NamedLayer> exportieren.

  4. Legende mit Liste aller eingebundenen Datenquellen.

  5. Der Layerbalken: Ein Doppelklick auf den blauen Balken wechselt die Darstellung in das räumliche Koordinatensystem des Datensatzes und zoomt die Vorschau zu dessen Boundingbox. Anders projizierte Ebenen werden automatisch umprojiziert.

  6. Layer temporär ausblenden.

  7. Kontextmenü eines Layers:
    Hier können Sie den eigentlichen Styling-Dialog für jedes Layer aufrufen (). In diesem Menü können Sie auch eine Attributtabelle öffnen und Objekte aus dem Layer filtern.

  8. Anzeige der aktuell in der Darstellung verwendeten Projektion:
    Durch Doppelklick auf einen Layer wird die Darstellung in die Projektion des Layers gewechselt.

  9. Aktueller Maßstab als OGC ScaleDenominator (OGC SLD Spezifikation, Seite 26)

2. Import einer Shapedatei in AtlasStyler

In den ersten Jahren waren Shapedateien die einzigen Datenquellen, die mit AtlasStyler „gestyled“ werden konnten. Seit Version 1.6 werden nun auch PostGIS-Datenbanken und OGC WFS-Dienste als Datenquellen unterstützt. Allerdings sind lokale Dateien immer noch die stabilste und schnellste Variante um Ihre Daten im AtlasStyler zu verwenden.

Hinweis: Um aus einer PostGIS Datenbank ein Shape abzuleiten, können Sie das Programm ogr2ogr (verfügbar im Paket: FWTools) verwenden. Ebenso kann der Geoserver-WFS seit Version 2.x bei WFS-Anfragen Vektordaten auch direkt Shapedateien als Zip-Archiv liefern (mehr Info...).

Um eine Shapedatei zu importieren, wählen Sie Datei-Menü → Importieren oder drücken Sie Strg-I. Wählen Sie "Dateien importieren" und selektieren Sie eine .shp Datei einer ESRI-Shapedatei.

Hinweis: Sie können auch direkt eine .zip Datei auswählen welche eine ESRI-Shapedatei enthält. Der Datensatz wird dann in das temporäre Verzeichnis Ihres Benutzers entpackt und die erste gefundene .shp-Datei wird importiert.

Projektionsinformationen für Shapes:

Sollte beim Import eine .prj Datei gefunden werden, wird diese als Definition des räumlichen Koordinatensystem des Layers interpretiert. Anders als bei ESRI üblich, erlaubt AtlasStyler in .prj Dateien zusätzlich zu WKT, auch eine einfache Schreibweise "EPSG:4326" innerhalb einer .prj Datei. Wenn Dateien ohne Projektionsinformationen importiert werden, erscheint eine Rückmeldung und es wird EPSG:4326 angenommen.

Styles bei Shapes:

Sollte beim Import eine gleichnamige .sld Datei gefunden werden, wird diese automatisch importiert. Beachten Sie, dass AtlasStyler nur .sld Dateien korrekt importieren kann, die auch mit AtlasStyler erstellt wurden. Dies liegt daran, dass AtlasStyler in den .sld Dateien zusätzliche Informationen wie z.B. die Klassifikationsmethoden speichert.

Zeichensatz (Encoding/Charset) bei Shapes:

Sollte beim Import eine .cpg Datei gefunden werden, wird aus dieser der Zeichensatz der DBF-Attributtabelle interpretiert. Sie können die Datei bei Bedarf selber erstellen: Eine .cpg Datei muss nur den Zeichensatznamen enthalten, z.B. "utf-8".
Hinweis: Die Angabe des korrekten Zeichensatz "verschönert" die Tabellenanzeige im AtlasStyler, hat aber keinen Effekt auf die erstellten .sld Dateien. In den Spaltennamen Ihrer DBF- bzw. Datenbank-Tabellen sollten Sie aus Kompatibilitätsgründen nur ASCII verwenden.

3. Das AtlasStyler-Konzept der RuleLists:

Die RuleLists sind ein neues Bedienungskonzept in AtlasStyler seit Version 1.7.

In der OGC Symbology Encoding (SE) Spezifikation spielen <se:Rule> Elemente als Grundeinheiten der Darstellungsregeln eine wichtige Rolle. Eine <se:Rule> besteht aus einer Bedingung (z.B. Skalenbereich / Filter) und einer Zeichenanweisung. Die Zeichenanweisung wird nur angewendet, wenn die Bedingung zutrifft.

SymbologyEncoding unterstützt keine Zusammenhänge zwischen mehreren Rules. Eine Klassifikation vom Typ

Werte VAR > 0 bis 10 => grün   Werte VAR >10 bis 20 => rot  Werte VAR >20 bis 30 => blau

sind drei einzelne <se:Rule> Elemente ohne Bezug zueinander. An dieser Stelle führt AtlasStyler die Abstraktionsebene der RuleLists ein: Eine RuleList ist eine Liste von <se:Rule> Elementen die gemeinsam erstellt, verwaltet und verändert werden. Das obige Beispiel entspricht im AtlasStyler einer RuleList mit einer Bereichs-Klassifikation über die Variable VAR.

Je nach Geometrietyp stehen unterschiedliche RuleLists zur Verfügung. Weiterhin sind auch noch nicht alle möglichen und nützlichen RuleLists programmiert. Es folgt eine Übersicht aller in AtlasStyler 1.7 zur Verfügung stehenden RuleList-Typen:

Name (intern)

Beschreibung

Verfügbar für:

Text

Zeichnet Beschriftungen für Geometrien. Bis zu zwei Attribute können für den Beschriftungstext ausgewählt werden.

Es können mehrere Beschriftungsklassen angelegt werden, so das unterschiedliche Objektarten unterschiedlich beschriftet werden können.

Vektordaten mit mindestens einem darstellbaren Attribut. Je Geometrietyp unterschiedliche Positionierungs-möglichkeiten.

Single

Zeichnet alle Elemente mit einem Symbol.

Vektordaten

UniqueValuesVector

Für spezielle Ausprägungen einer Variablen werden unterschiedliche Symbole gezeichnet. Besonders geeignet für nominal-skalierte Daten.

Vektordaten mit mind. einem Nicht-Geometrie-Attribut.

 

DistinctValuesRaster

Wie UniqueValues für Rasterdaten.

Rasterdaten mit einem Band.

GraduatedColor

Klassifikationen über numerische Werte eines Attributes. Über die Klassen kann ein Symbol mit einer Farbpalette eingefärbt werden.

Vektordaten mit mindestens einem numerischen Attribut.

RasterIntervals

Erlaubt die Klassifikation von Rasterwerten in Klassen, auf die eine Farbpalette angewendet werden kann.

Rasterdaten mit einem Band

Zentroid-Varianten

Bei Flächengeometrien können die Zentroide mit Punktsymbolen gestyled werden.

Vektordaten von Typ Polygon.

 

4. Der Styling Dialog (Modus „Einfach“):

Für jeden Layer können Sie einen Styling-Dialog öffnen, indem Sie im Kontextmenü der Ebene Style auswählen. Ein neuer Dialog - der AtlasStyler-Dialog - öffnet sich:

  1. Liste der für den Layer existierenden RuleLists:
    Diese Liste kann in zwei Modi dargestellt werden: Einfach und Experte. Im Exptertenmodus können die RuleLists mit weiteren Optionen wie Skalenabhängigkeit und Filtern belegt werden. Weiterhin ist im Expertenmodus das Kontextmenü jeder RuleList erweitert (s.u.):

  2. Reihenfolge der RuleLists verändern:
    SLDs werden nach dem “Painters-Algorithmus” verarbeitet, d.h. wie ein Maler, der zuerst die Leinwand grundiert und dann mit immer mehr Details den Hintergrund übermalt, so arbeitet auch ein SLD-Renderer die Regeln der Reihe nach ab und übermalt dabei evt. vorher gezeichnete Bereiche wieder.
    In der Ansicht (1) ist die Reihenfolge bereits für den Benutzer invertiert, so dass der oberste Eintrag in der Liste im XML als letztes steht.
    Hinweis: Beschriftungsregeln (Labels) werden immer als letztes gezeichnet, egal an welcher Stelle sie in der Liste stehen.

  3. Einstellungsmöglichkeiten der ausgewählten RuleList.

  4. Manuelle oder automatische Aktualisierung der Kartenvorschau:
    Bei großen Datenmengen kann eine manuelle Aktualisierung die Arbeit erleichtern.

  5. RuleList neu hinzufügen, duplizieren oder löschen.

  6. Einzelne RuleLists deaktivieren ohne diese zu löschen:
    Dies ist eine sehr nützliche Funktion, denn Sie ermöglicht es, eine komplette RuleList zu Test-Zwecken zu deaktivieren (z.B. „Wie sieht das ohne Beschriftung aus?“) ohne dabei die vorgenommenen Einstellungen zu verlieren. Die Einstellungen bleiben im SLD/DE erhalten, sind allerdings durch unmögliche (z.B. 1=2) Filterbedingungen deaktiviert.

 

Aufgabe:

Sie haben im ersten Schritt gelernt, Shapedateien in den AtlasStyler zu importieren. Auf gleiche Weise können Sie auch Ein-Band-Raster importieren. Unterstützte Raster-Dateiformate sind ArcASCII und GeoTiff, wobei GeoTIFF aufgrund der umfangreichen Möglichkeiten empfohlen wird.

Importieren Sie nun die Demo-Daten in den AtlasStyler und erstellen Sie für jede Datei einen Style. Verwenden Sie dafür möglichst viele unterschiedliche RuleList-Typen.

5. Der Styling Dialog (Modus „Experte“):

Durch die Einführung der RuleLists ist AtlasStyler mächtiger, aber auch komplizierter in der Bedienung geworden. Aktuell wird ein neues Konzept ausprobiert, wobei der AtlasStyler komplexere Optionen versteckt, und erst auf Wunsch anzeigt. Diese Idee ist bisher nur für die Auflistung der RuleLists implementiert, soll in Zukunft aber als globale Einstellung für alle Bereiche implementiert werden. Ihr Feedback ist willkommen.

Wenn der Bedienmodus Experte ausgewählt ist, stehen weitere Spalten und ein erweitertes Maus-Kontext-Menü zur Verfügung (Aktuell leider noch nicht auf Deutsch übersetzt):

Die neuen Spalten bedeuten:

  • Name: Ein Name, den Sie frei editieren können. Wenn Sie viele RuleLists verwalten, soll diese Option Ihrer Übersicht dienen.

  • Spalten Min/Max-Maßstab: Entspricht den <se:MinScaleDominator> und <se:MaxScaleDominator> Anweisungen im XML/SymbologyEncoding Dokument. Wenn die digitale Karte aus diesem Maßstabsbereich hinaus gezoomt wird, wird die RuleList nicht angewendet.
    Sie können mit AtlasStyler zoom-abhängige Styles erstellen, ohne Maßstabszahlen per Hand einzugeben: Dazu drehen Sie das Mausrad über einer der Maßstabszahlen oder zoomen Sie in der Vorschaukarte auf den gewünschten Maßstab und verwenden Sie das Kontextmenü der RuleListe (die Maßstabszahl wird immer als OGC ScaleDenominator berechnet).

  • Spalte Filter (nur Vektordaten): Ermöglicht es für jede RuleList einen Filter zu definieren. Der Filter verwendet die OGC FilterEncoding Sprache. Bitte beachten/verzeihen Sie, dass der Filterdialog z.Zt. alle Attribute in den Speicher lädt => für große Datensätze ist diese Funktion z.Zt. nicht nutzbar. Auf Wunsch kann dies kurzfristig besser implementiert werden.

 

Aufgabe:

Erstellen Sie einen Style, bei dem die Beschriftung erst ab einer gewissen Zoomstufe erscheint. (Da Beschriftungen nur für Vektordaten zur Verfügung stehen, müssen Sie mit einem Vektorlayer arbeiten).

6. Klassifikationen / Histogramme:

Bei den RuleList-Typen GraduatedColor und RasterIntervals hilft Ihnen AtlasStyler bei der Klassifikation der Daten. Wählen Sie dafür den Button "Klassifikation", ein neuer Dialog öffnet sich:

Hinweis: Beachten Sie, dass je nach Verteilung der Daten nicht immer beliebig viele Quantile gebildet werden können. Beispiel: Sie haben 100 Ausprägungen mit immer dem selben Wert 0. Hier ist es statistisch nicht möglich, mehr als ein Quantil zu bilden. Durch Angabe eines NODATA-Value können Sie Werte von der Statistik ausschließen.

7. Symbole:

Neben der Verwaltung der RuleLists, bietet AtlasStyler eine weitere Abstraktionsebene: die Symbole.
Ein Symbol besteht in SymbologyEncoding aus <se:*Symbolizer> Elementen. Mehrere dieser „Symbolizer“-Zeichenvorschriften können in AtlasStyler zu einem Symbol zusammengefasst werden. Dieses Symbol kann dann lokal gespeichert werden und in anderen Ebenen wiederverwendet werden.

Es gibt drei Arten von Symbolen, für Punkte, Linien und Flächen. Ein gespeichertes Flächensymbol wird nicht in der Symbolauswahl für Linien auftauchen. Zusätzlich zu der Möglichkeit lokal auf Ihrem Rechner eigene Symbole abzulegen, können Sie auch direkt auf die Online-Sammlung von http://www.freemapsymbols.org zugreifen. Neben SLD-Symbolen für Linen, Punkte und Flächen stellt der Dienst auch eine Sammlung von mehreren hundert Kartensymbolen als SVG zur Verfügung, darunter alle SVGs die im OpenStreetMap Projekt verwendet werden. 

Aufgabe:

  • Laden Sie ein Punktlayer in den AtlasStyler (z.B. africa_pois) und öffnen Sie den Style-Dialog. Wenn noch nicht vorhanden, fügen Sie eine RuleList vom Typ „Einfaches Symbol“ hinzu.

  • Klicken Sie mit der Maus auf den Symbolbutton im rechten Teil des Dialogs. Wenn Ihr Computer online ist, verbindet sich AtlasStyler nun mit http://www.freemapsymbols.org:

  • Es stehen Ihnen hier zwei Reiter zur Verfügung: lokal und online. Unter lokal befinden sich die Symbole, die sie selber gespeichert haben; online zeigt die jeweiligen Punkte-, Linien- oder Flächensymbole von http://www.freemapsymbols.org an.
     
  • Wählen Sie den Button "bearbeiten", um das Symbol zu bearbeiten:

  • Auf der linken Seite sehen Sie die Liste der Symbolebenen. Jede Ebene entspricht einem <se:Symbolizer> im XML-Dokument. Mit AtlasStyler können Sie mehrere Symbolizer zu einem Symbol zusammenfassen.
     
  • Wählen Sie jetzt als Typ Externe Grafik (SVG): Der untere Button "Grafik" wird aktiv. Dieser Knopf erlaubt es Ihnen, nun die SVG Symbole von www.freemapsymbols.org zu durchsuchen. Wechseln Sie in den Ordner tango/emotes und wählen Sie eine Grafik. Wählen Sie das SVG mit Doppelklick aus. (Wenn Sie die automatische Vorschau aktiviert haben, können Sie das Ergebnis jetzt schon in der Karte sehen – gleichzeitig kann es bei langsamen Internetverbindungen hier auch ein paar Sekunden dauern.)
     
  • Schließen Sie die letzten beiden Dialoge mit OK und speichern Sie das erstellte Symbol nun lokal. Bei der Speicherung können Sie Metadaten wie Ersteller und Beschreibung angeben.
  • Um die .sld Datei zu erhalten, schließen Sie komplett den StylerDialog, bis Sie wieder die Layerübersicht und Vorschaukarte sehen. Wählen Sie aus dem Kontextmenü des Layers die Option „SLD speichern“. Bisher wird die .sld-Datei immer neben der importieren Datei abgespeichert. Die Auswahl eines anderen Speicherorts kann auf Wunsch schnell programmiert werden:

Weiterführende Informationen: