Mehr

Rasterkacheln in PostGIS zusammenführen

Rasterkacheln in PostGIS zusammenführen


Ich habe mehrere Rasterkacheln, die benachbart sind und sich nicht überlappen, sodass sie ein Mosaik bilden. Ich versuche, zwei benachbarte Raster mit PostGIS zusammenzuführen, erhalte jedoch eine Fehlermeldung, dass sie nicht die gleiche Ausrichtung haben (Pixeleckkoordinaten sind nicht ausgerichtet). Kann mir jemand sagen, wie man die Kacheln richtig zu einem einzelnen Raster kombiniert?


Sie müssen sie ST_Resample () vor ST_Union () sie. Sie können auf einen von ihnen oder auf Ihre eigenen Parameter resampeln.


Wussten Sie, dass PostGIS nicht nur ein geografisches Werkzeug ist?

Bilder sind Raster. Sie können sie in SQL mit der Kraft von PostGIS bearbeiten.

Auslesen von Bildern, die außerhalb der Datenbank gespeichert sind: Voraussetzung

neu in 2.2 GUCS wird im Allgemeinen auf DATABASE- oder Systemebene mit ALTER DATABASE SET oder ALTER SYSTEM eingestellt. In PostGIS 2.1 und 2.0 müssen diese als Serverumgebungsvariablen festgelegt werden.

Registrieren Sie Ihre Bilder in der Datenbank: Out of Db

Sie könnten mit raster2pgsql das -R nur registrieren, außerhalb der Datenbank halten:

Überprüfen Sie die grundlegenden Informationen

Beschneiden Sie sie und zwingen Sie sie, in der Datenbank zu sein

Schneidet das Bild auf die tatsächliche Größe zu. Das durch Überdimensionierung hinzugefügte Padding hat den Pixelwert 0, also setzen Sie diesen auf nodata value und berechnen Sie die Geometrie ohne nodata. Dies hat auch zur Folge, dass unsere Bilder jetzt in die Datenbank aufgenommen wurden. Seien Sie also vorsichtig, da Operationen, die das Überschreiben von Pixeln erfordern, die Daten in die Datenbank zwingen.

Ändern Sie die Größe und werfen Sie sie wieder heraus

Dies verwendet PostgreSQL-Unterstützung für große Objekte für den Export. Jedes Bild ergibt 4 Bilder von 25%, 50%, 75%, 100% der Originalgröße


mona-1.png

osgeo_paris-1.png

pggroup-1.png

Erledige tonnenweise Operationen in einem sql

Dies wird viele verrückte Combo-Sachen mit Raster- und Geometriefunktionen machen, die alle Bilder zu einem zusammenführen. 12 Sek.

Das Ergebnis ist etwas gespenstisch

Erstelle eine neue Währung


PostGIS OSGeo

PostgreSQL-Gruppe

Bathymetrische Karten mit PostGIS und D3

Ich arbeite an einer Anwendung, bei der ich bathymetrische Visualisierungen verschiedener Gewässer auf einer rutschigen Karte präsentieren möchte. Im Wesentlichen handelt es sich um geografisch enthaltene topografische Visualisierungen basierend auf interpolierten DEM-Daten. Das Ergebnis, nach dem ich suche, ist etwas in der Art von:

Ich habe Code geschrieben, um die DEMs aus Tiefenproben zu interpolieren, und habe einen Proof of Concept, bei dem ich diese in nicht gekachelten Rastern in PostGIS (ein Raster pro Gewässer) speichere, was ziemlich gut funktioniert.

Ich glaube jedoch, dass ich dieses Konzept durch eine kachelbasierte Lösung ersetzen muss, da Gewässer fast beliebig groß sein können und die visuellen Aspekte wahrscheinlich je nach Zoomstufe usw. angepasst werden sollten.

Wenn das alles wäre, würde ich wahrscheinlich nur Konzepte zur Erzeugung von regelmäßigen Höhen-Rastern nachahmen, die an verschiedenen Stellen beschrieben werden, oft basierend auf Mapnik. Hier beginnt jedoch der Spaß..

Idealerweise möchte ich keine Rasterdaten darstellen, sondern Vektoren (oder vielleicht eine Kombination aus beidem). Ich möchte, dass meine Karte interaktiver ist, als dies normalerweise mit Rasterdaten möglich ist (es sei denn, die Rasterdaten werden zerlegt und beispielsweise mit D3 analysiert - mehr dazu später). Ich möchte die Möglichkeit haben, die Äquidistanz (Abstand und Wert der Höhenlinien) basierend auf Benutzerinteraktion dynamisch zu ändern.

Ich würde gerne einen cleveren Input haben, wie man diesen Stack anordnet. Einige Ideen, die ich lüften möchte:

1. Nur Rasterkacheln Höhen-DEM-Raster werden basierend auf klassischen 256x256-Mercator-Konzepten generiert. Diese werden vom Client-Browser dynamisch heruntergeladen und entweder unverändert angezeigt oder mithilfe von Canvas/D3 farbig abgebildet. Darüber hinaus verwende ich die Canvas-API, um Vektorkonturen mit D3 zu extrahieren. Dies wäre eine ziemlich saubere Lösung, aber ich vermute, dass sie zu langsam sein wird (der Teil der Bildprüfung).

2. Rasterkacheln in Kombination mit Vektorkacheln Höhen-DEM-Raster werden weiterhin generiert, da sie eine gute Möglichkeit zur Darstellung und Speicherung der interpolierten Daten darstellen. Die Rasterkacheln können immer noch eine grafische Überlagerung auf der Karte darstellen, aber im Wesentlichen bestehen die Höhenkonturen aus separat abgerufenen Vektorkacheln (basierend auf GeoJSON oder TopoJSON). Diese Kacheln werden basierend auf den Raster-Riles generiert.

Da ich die Äquidistanz im Handumdrehen ändern möchte, muss ich in der Lage sein, Vektoren zu vereinigen und zu kombinieren, zum Beispiel mit D3. Ich habe mir das d3.geom.contour-Plugin angesehen, aber es scheint etwas eingeschränkt zu sein, zum Beispiel scheint es, als ob es keine lokalen Spitzen geben kann, sondern eher eine pyramidenartige Topologie.

Zu guter Letzt möchte ich aus ästhetischen Gründen eine leichte Client-Seitenlinien-Interpolation (oder etwas Ähnliches) durchführen. D.h. die Auflösung der bathymetrischen Karte kann niedriger sein (da eine höhere Auflösung wirklich keinen Wert hat), aber bei dieser Auflösung werden die Konturen typischerweise klobig. Vielleicht ist dies ein Argument für TopoJSON und seine Möglichkeiten mit Vereinfachung? Hier ist ein Beispiel, das ich mit D3 erstellt habe (mit serverseitig generierten Nicht-Kacheln GeoJSON):

Alle Vorschläge sind willkommen!


Abgelegenen Gebieten

Die Bevölkerung scheint sich auf Küsten und entlang der Hauptflüsse zu konzentrieren und nimmt flussaufwärts ab. Wir &rsquoll-Modell Abgelegenheit mit hydrologische Distanz, diejenige, die durch Oberflächenabfluss gereist ist. Er wird mit dem GRASS GIS r.stream.distance Modul berechnet. Die hydrologische Modellierung verwendet typischerweise a Durchflussrichtung aus einem Höhenmodell (DEM) abgeleitete Karte:

Hydrologische Fließrichtung

Das USGS stellt den GTOPO30 HYDRO1k-Datensatz bereit, den wir vom Earth Explorer-Portal herunterladen können (ID GT30H1KSA für Südamerika). Seine Projektion ist die Lambert Azimuthal Equal Area, die durch die PROJ.4-Parameter beschrieben wird:

Erstellen Sie aus diesen Parametern a Lage mit g.proj und a Kartenset:

Der Datensatz enthält mehrere Ebenen (siehe README-Datei), aber wir sind hauptsächlich daran interessiert, Höhen- und Fließrichtungen zu importieren:

Umwandeln von Richtungscodes in das GRASS GIS-Format mit a Nachschlagwerk Datei arc2grass.lut :

Um Kacheln einen Abstand zuzuweisen, müssen wir das Raster von LAEA auf Web Mercator neu projizieren. Es ist bei Zoomstufe 15 eine Kachelseite von ca. 1223 m, die unserer Entfernungsrasterauflösung am nächsten kommt.
Wir erstellen zuerst a Lage mit dieser Projektion und bewegen Sie sich zu diesem Ort:

Dann erstelle das Level 15 Region und reprojizieren:

Wir stellen nun die Region auf Kachelauflösung ein und sampeln das Raster neu:

Export

Da wir keine submetrische Genauigkeit benötigen, werden die Daten schließlich aufgehellt und entweder in eine Rasterdatei exportiert:

oder in Text, vor einem PostGIS-Import:

Beachten Sie, dass NULL oder maskierte Zellen exportiert werden (siehe r.out.xyz-Dokumentation), wodurch das Einfügen unerwartete Ergebnisse liefert.


Kapitel 2. Referenz

In diesem Abschnitt werden verschiedene Installationsoptionen für die DCMMS-Anwendung beschrieben.

Wenn Sie eine vorhandene Installation aktualisieren, lesen Sie bitte Abschnitt 2.6, “Aktualisieren”.

Die manuellen Installationsanweisungen funktionieren auch auf Betriebssystemen wie Linux.

Bitte alle melden DCMMS Installationsprobleme, um den Entwicklern zu ermöglichen, den Installationsprozess weiter zu verbessern.

2.1.1. DCMMS 2.0.0 und nächste Versionen Windows-Installation

Wie installiert man DCMMS auf Windows XP Professional oder Windows 2003 Server.

Wie installiert man DCMMS auf Windows XP Professional oder Windows 2003 Server.

Bitte kontaktieren sie DCMMS Entwickler, wenn Sie nach einer DCMMS-CD-Version suchen.

Alle unten genannten Installer sind im Setup-Ordner der CD verfügbar.

2.1.1.1. MS4W-Basisinstallation

Dieser Abschnitt beschreibt die Installation MS4W für Windows.

Das MS4W-Installationsprogramm ist im Setup-Ordner der DCMMS-CD oder unter http://www.maptools.org/dl/ms4w/ verfügbar.

Es gibt zwei Arten von MS4W-Installationsprogrammen

Die Verwendung von ms4w-2.3.1-setup.exe erfordert eine Internetverbindung, um die Paketkomponenten herunterzuladen.

Es wird empfohlen, das Zip-basierte MS4W-Installationsprogramm zu verwenden.

Entpacken Sie die Zip-Datei nach C:MS4W

Nach der Extraktion sollte der Apache-Dienst durch Doppelklick auf die Apache-install.bat installiert werden

Aus Sicherheitsgründen sollte der Apache-Dienst entsperrt werden, um verwendet werden zu können

Abbildung 2.1. Apache-Dienst entsperren

2.1.1.2. PostgreSQL

Dieser Abschnitt beschreibt die Installation PostgreSQL für Windows.

Das PostgreSQL-Installationsprogramm ( postgresql-8.3.6-1-windows.exe ) ist im Setup-Ordner der DCMMS-CD oder unter http://www.enterprisedb.com/products/pgdownload.do#windows/ verfügbar.

Wenn Sie die herunterladen PostgreSQL aus dem Internet, Bitte beachten Sie, dass es zwei Windows-Pakete gibt. Es wird empfohlen, die PostgreSQL-Windows-One-Click-Installer

Abbildung 2.2. PostgreSQL-Installationsprogramme

Abbildung 2.3. PostgreSQL-Windows-Ein-Klick-Installationsprogramme

Die PostGIS-Erweiterung kann mit PostgreSQL 8.3 installiert werden Anwendungs-Stack-Builder.

Wichtig
WENN DIESER SCHRITT FERTIG IST, KÖNNEN SIE DEN ÜBERSPRINGEN PostGIS 1.3.5-Installation SCHRITT UND GEHE ZU DCMMS 2.0.0 MS4W-Basisinstallation SCHRITT.

Abbildung 2.4. PostgreSQL-Setup

Abbildung 2.5. Installationspfad wählen

Abbildung 2.6. Installationspfad wählen

Abbildung 2.7. Wählen Sie den Installationspfad des Datenordners

Abbildung 2.8. Geben Sie das Passwort für den Postgres-Superuser ein

Abbildung 2.9. Installationspfad wählen

Abbildung 2.10. Wählen Sie den Datenbank-Port

Hinweis
Ändern Sie das Gebietsschema nicht, behalten Sie die Standardeinstellungen bei, da die Standardeinstellung UTF8 ist

Abbildung 2.11. Wählen Sie Datenbankgebietsschema

Klicken Sie auf die Schaltfläche Weiter, um die Installation zu starten.

Abbildung 2.12. Einbaufertig

Wenn die Installation abgeschlossen ist, fordert das Installationsprogramm Sie auf, die Stapelbauer, Der Stack-Titel kann verwendet werden, um zusätzliche Komponenten darüber zu installieren PostgreSQL.

Das Ausführen des Stack-Builders erfordert eine Internetverbindung. Wenn Sie keine haben, deaktivieren Sie das Kontrollkästchen.

Wenn Sie den Stack-Builder ausführen und die PostGIS, Sie können die überspringen PostGIS Installation

Abbildung 2.13. Installation abgeschlossen

2.1.1.3. PostGIS 1.3.5-Installation

Das PostGIS-Installationsprogramm ( postgis-pg83-setup-1.3.5-1.exe ) ist im Setup-Ordner der DCMMS-CD oder unter http://postgis.refractions.net/ verfügbar.

Abbildung 2.14. PostGIS-Lizenz

Abbildung 2.15. PostGIS-Komponenten

Deaktivieren Sie die Option Datenbank erstellen, wie in Abbildung 2.49, “PostGIS-Komponenten” gezeigt, und klicken Sie auf Weiter > .

Die dcmms-Datenbank wird vom DCMMS-Installationsprogramm erstellt.

Abbildung 2.16. PostGIS-Standort

Der Zielordner ist Ihr PostgreSQL-Installationsordner und kann von dem in Abbildung 2.50, “PostGIS-Speicherort” . abweichen

Abbildung 2.17. PostGIS-Datenbankverbindung

Abbildung 2.18. Installation abgeschlossen

2.1.1.4. DCMMS 2.0.4 MS4W-Basisinstallation

Die folgenden Schritte sollten befolgt werden, um die DCMMS 2.0.4 MS4W-basierte Version einzurichten

Die neueste Version des MS4W-Backages sollte heruntergeladen und nach C:MS4W extrahiert werden

Klicken Sie auf das DCMMS 2.0.4-Setup, um das DCMMS zu installieren.

Das DCMMS-Installationsprogramm kopiert die benötigte Datei in den Ordner C:MS4W

Die Dateien werden nach c:MS4Wapachehtdocs kopiert

Die Dateien werden nach c:MS4Whttpd.d kopiert

Die Dateien werden nach c:MS4Wapachea . kopiert

Starte das DCMMS-Einrichtung , die im Setup-Ordner der DCMMS-CD oder im Internet verfügbar ist: http://dcmms.sourceforge.net.

Abbildung 2.19. Sprache des Installationsprogramms

Abbildung 2.20. DCMMS-Lizenz

Abbildung 2.21. DCMMS-Komponenten

Abbildung 2.22. DCMMS-Standort

Abbildung 2.23. DCMMS-Datenbankverbindung

Sie sollten jetzt in der Lage sein, die DCMMS aus dem Startmenü oder über die Verknüpfung auf dem Desktop. Beachten Sie, dass die volle Funktionalität erst zur Verfügung steht, wenn Sie den Datensatz vervollständigt haben, z. durch Laden der Beispieldaten.

Das Installationsprogramm überschreibt keine bestehenden DCMMS Konfigurationsdateien.

2.1.1.5. Beispieldaten

Das DCMMS-Beispielinstallationsprogramm ist im Setup-Ordner der CD oder im Internet verfügbar: http://dcmms.sourceforge.net.

Führen Sie das Installationsprogramm aus und passen Sie den Standardinstallationspfad an, c:ms4wappsdcmms .

2.1.2. DCMMS 1.1.2 und frühere Versionen Windows-Installation

Wie installiert man DCMMS auf Windows XP Professional oder Windows 2003 Server.

Wie installiert man DCMMS auf Windows XP Professional oder Windows 2003 Server.

Bitte kontaktieren sie DCMMS Entwickler, wenn Sie nach einer DCMMS-CD-Version suchen.

Alle unten genannten Installer sind im Setup-Ordner der CD verfügbar.

2.1.2.1. Apache

Wenn du läufst Skype , möchten Sie vielleicht herunterfahren Skype während du installierst Apache wie Skype könnte sonst verhindern Apache von der Verwendung von Port 80.

Wenn die Apache Installation nicht vollständig erfolgreich ist, weil ein anderes Programm (z. B. IIS) bereits Port 80 verwendet, bearbeiten Sie einfach httpd.conf, um einen anderen Port zu verwenden (z. B. "Listen 81" anstelle von "Listen 80" und führen Sie die Apache wieder einrichten. Wenn Sie die Reparaturoption auswählen, wird die Apache Installation.

Führen Sie die Apache Installateur. Das Apache-Installationsprogramm ist im Setup-Ordner der DCMMS-CD oder auf der Apache-Website verfügbar: http://httpd.apache.org.

Abbildung 2.24. Apache-Assistent

Abbildung 2.25. Apache-Lizenz

Abbildung 2.26. Apache-Readme

Abbildung 2.27. Apache-Informationen

Abbildung 2.28. Apache-Setup-Typ

Abbildung 2.29. Apache-Standort

Das DCMMS-Installationsprogramm liest den Apache-Installationsordner aus der Windows-Registrierung. Sie können Apache an verschiedenen Orten installieren.

Abbildung 2.30. Apache-Installation

Wenn die Apache-Installation fehlschlägt, weil eine andere Anwendung Port 80 verwendet, können Sie die folgenden Befehle verwenden, um herauszufinden, welche Anwendung Port 80 verwendet: Suchen Sie nach der Prozess-ID (PID) des Prozesses, der Port 80 belegt, und suchen Sie die Anwendung des Prozesses Ich würde.

2.1.2.2. PHP

Führen Sie die DCMMS-Skripting Installateur. Das Installationsprogramm ist im Setup-Ordner der CD oder auf der DCMMS-Website verfügbar: http://dcmms.sourceforge.net.

Abbildung 2.31. PHP-Lizenz

Abbildung 2.32. PHP-Komponenten

PEAR-Module können einfach über das Internet installiert und aktualisiert werden. Weitere Informationen finden Sie in der PEAR-Dokumentation. Das Installationsprogramm für die DCMMS-Skripterstellung stellt jedoch alle erforderlichen Pakete bereit.

Abbildung 2.33. PHP-Standort

2.1.2.3. PostgreSQL

Dieser Abschnitt beschreibt die Installation PostgreSQL für Windows.

Das PostgreSQL-Installationsprogramm ( postgresql-8.1.msi ) ist im Setup-Ordner der DCMMS-CD oder unter http://pgfoundry.org/projects/pginstaller/ verfügbar.

Lassen Sie sich nicht von den beiden PostgreSQL-Installationsdateien verwirren. Sie sind beide erforderlich und können nur zusammen installiert werden.

Führen Sie die PostgreSQL installer und wählen Sie die englische Sprache.

Abbildung 2.34. PostgreSQL-Sprachauswahl

Abbildung 2.35. PostgreSQL-Setup

Abbildung 2.36. Installationshinweise

Abbildung 2.37. Wählen Sie Installationsoptionen

Beachten Sie, dass der PostgreSQL-Installationspfad nicht wichtig ist. Bitte akzeptieren Sie den vom Installationsprogramm bereitgestellten Standardinstallationspfad.

Akzeptieren Sie die anderen Einstellungen, wie in Abbildung 2.37, “Choose Installation Options” gezeigt, und klicken Sie auf Next > .

Abbildung 2.38. Dienst-Konfiguration

Abbildung 2.39. Kontofehler

Sie müssen sich das zufällige Passwort nicht merken. Es wird nur intern verwendet, um den PostgreSQL-Dienst unter Windows auszuführen. Ausführliche Informationen finden Sie in Abschnitt 1.4, “Konzepte”.

Abbildung 2.41. Erfolgreich das Recht 'Anmeldung als Dienst' erteilt

Abbildung 2.42. Datenbankcluster initialisieren

Dieses Passwort (für den PostgreSQL-Superuser "postgres") benötigen Sie später während des Installationsprozesses, z.B. während der Ausführung des DCMMS-Setups und für Datenbankwartungszwecke. Stellen Sie sicher, dass Sie sich gut daran erinnern.

Abbildung 2.43. Verfahrenssprachen aktivieren

Abbildung 2.44. Contrib-Module aktivieren

Akzeptieren Sie die Standardauswahl wie in Abbildung 2.44, “Enable Contrib Modules” gezeigt und klicken Sie auf Next > .

Abbildung 2.45. PostGIS aktivieren

PostGIS wird vom DCMMS-Installationsprogramm für die dcmms-Datenbank aktiviert.

Abbildung 2.46. Bereit zur Installation

Abbildung 2.47. Installation abgeschlossen

Wie in Abbildung 2.47, “Installation abgeschlossen” erwähnt, wird empfohlen, die Mailingliste pgsql-announce zu abonnieren, um über die neuesten PostgreSQL-Entwicklungen auf dem Laufenden zu bleiben.

2.1.2.4. PostGIS

Sobald die PostgreSQL Konfiguration ist fertig, starte die PostGIS Konfiguration die im Setup-Ordner der CD oder im Internet verfügbar ist: http://www.webbased.co.uk/mca/.

Abbildung 2.48. PostGIS-Lizenz

Abbildung 2.49. PostGIS-Komponenten

Deaktivieren Sie die Option Datenbank erstellen, wie in Abbildung 2.49, “PostGIS-Komponenten” gezeigt, und klicken Sie auf Weiter > .

Die dcmms-Datenbank wird vom DCMMS-Installationsprogramm erstellt.

Abbildung 2.50. PostGIS-Standort

Der Zielordner ist Ihr PostgreSQL-Installationsordner und kann von dem in Abbildung 2.50, “PostGIS-Speicherort” . abweichen

Abbildung 2.51. PostGIS-Datenbankverbindung

Abbildung 2.52. Installation abgeschlossen

2.1.2.5. DCMMS

Starte das DCMMS-Einrichtung , die im Setup-Ordner der DCMMS-CD oder im Internet verfügbar ist: http://dcmms.sourceforge.net.

Abbildung 2.53. DCMMS-Lizenz

Abbildung 2.54. DCMMS-Komponenten

Abbildung 2.55. DCMMS-Standort

Abbildung 2.56. DCMMS-Datenbankverbindung

Sie sollten jetzt in der Lage sein, die DCMMS aus dem Startmenü oder über die Verknüpfung auf dem Desktop. Beachten Sie, dass die volle Funktionalität erst zur Verfügung steht, wenn Sie den Datensatz vervollständigt haben, z. durch Laden der Beispieldaten.

Das Installationsprogramm überschreibt keine bestehenden DCMMS Konfigurationsdateien.

2.1.2.6. Beispieldaten

Das DCMMS-Beispielinstallationsprogramm ist im Setup-Ordner der CD oder im Internet verfügbar: http://dcmms.sourceforge.net.

Führen Sie das Installationsprogramm aus und akzeptieren Sie die Standardparameter, insbesondere den Standardinstallationspfad c:Programmedcmms .

2.1.3. Manuelle Installation

So installieren Sie DCMMS manuell.

Dieser Abschnitt ist möglicherweise nur für Installationen auf Nicht-Windows-Plattformen und für Entwickler nützlich, die an den Details der DCMMS Installationsprozess.

Das DCMMS Installationsquellen (z. B. dcmms.nsi ) können zusätzliche hilfreiche Informationen zum Installationsprozess enthalten.

Im Folgenden wird davon ausgegangen, dass sich verschiedene PostgreSQL-Binärdateien wie psql.exe oder createlang.exe im PATH befinden. Gegebenenfalls müssen Sie Ihre Umgebungsvariable PATH so ändern, dass sie den bin-Ordner Ihrer PostgreSQL-Installation enthält.

2.1.3.1. PostgreSQL

Das PostgreSQL Die Datenbank ist unter http://www.postgresql.org verfügbar.

Das PostgreSQL Installation sollte unterstützen UNICODE.

Wenn Sie eine binäre PostgreSQL-Distribution unter Linux oder UNIX verwenden, können Probleme auftreten. Um PostGIS und speziell GEOS von PostgreSQL verwenden zu können, müssen die Binärdateien gegen libstc++ gelinkt werden. Die PostGIS-Dokumentation enthält Details zu diesem Problem.

Um durchzusetzen DCMMS Logins mit Passwort-Authentifizierung sollte die Konfigurationsdatei pg_hba.conf wie im folgenden Beispiel geändert werden:

Beachten Sie, dass dies dem PostgreSQL-Superuser immer noch erlaubt postgres zu verbinden PostgreSQL Server ohne Authentifizierung. Aber der Benutzer postgres darf sich nicht anmelden DCMMS.

Die folgenden Anweisungen gehen davon aus, dass die PostgreSQL Administrator heißt postgres und dass die Postmeister läuft auf dem lokalen Rechner (localhost).Ist dies bei Ihnen nicht der Fall, müssen Sie die Befehle entsprechend anpassen. Gleiches gilt für die Verbindungsmethode - wenn Ihr Postmaster nicht für die Annahme von TCP/IP-Verbindungen konfiguriert ist, müssen Sie die Befehle (und ggf DCMMS Aufbau).

Erstellen Sie eine neue Datenbank namens dcmms mit UNICODE, lade die PL/SQL Sprache zur Datenbank:

Wenn PL/SQL in template1 erstellt wurde, schlägt der zweite Befehl fehl. Ignorieren Sie in diesem Fall die Fehlermeldung.

2.1.3.2. PostGIS

Befolgen Sie die Installationsanweisungen im PostGIS Dokumentation.

Einmal PostGIS installiert ist, wechseln Sie in das Verzeichnis mit postgis.sql und Spatial_ref_sys.sql und laden Sie PostGIS zum dcmms Datenbank:

2.1.3.3. PostArabisch

PostArabisch ist ein kleines Modul, das PostgreSQL um Funktionen zur arabischen Gestaltung erweitert.

Das PostArabisch Die Installation ist nur erforderlich, um arabische Kartenbeschriftungen anzuzeigen. Wenn Sie nicht an arabischen Kartenbeschriftungen interessiert sind, können Sie die PostArabisch Installation.

Das PostArabisch Quellen sind erhältlich von der DCMMS Seite herunterladen.

Folgen Sie den Installationsanweisungen in der Datei README.arabic .

Wechseln Sie in das Verzeichnis mit arabic.sql und laden Sie PostArabisch zum dcmms Datenbank:

2.1.3.4. Fuzzystrmatch

DCMMS ermöglicht die unscharfe Suche nach Orientierungspunkten. Durch die Fuzzy-Suche können Orientierungspunkte auch dann gefunden werden, wenn der Suchbegriff falsch geschrieben wurde.

Das fuzzystrmatch Modul der PostgreSQL Zu diesem Zweck wird die Verteilung verwendet.

Kompilieren und installieren Sie die fuzzystrmatch Modul, gehen Sie in den contrib-Ordner Ihres PostgreSQL Quellbaum und führen Sie die folgenden Befehle aus:

Wenn Sie das Windows PostgreSQL-Installationsprogramm verwenden, finden Sie fuzzystrmatch.dll in c:Program FilesPostgreSQL8.1sharecontrib .

2.1.3.5. Apache

Das Apache Webserver ist unter http://httpd.apache.org verfügbar.

Befolgen Sie die Installationsanweisungen im Apache Dokumentation.

Apache wird über die Datei httpd.conf konfiguriert. Um auf die DCMMS Anwendung durch eine bequeme URL wie http://localhost/dcmms/, sollten Sie Zeilen wie die folgenden zu httpd.conf hinzufügen:

Die zweite Alias-Zeile konfiguriert den Speicherort der temporären Dateien, die von . erstellt wurden PHP/Mapscript. Sie müssen die anpassen DCMMS Quellen denselben Alias ​​und Pfad verwenden. Passen Sie die Pfadnamen an Ihre DCMMS Installationspfad.

2.1.3.6. PHP

Das PHP Skriptsprache ist unter www.php.net verfügbar.

DCMMS verwendet derzeit PHP 4.*. Die Verwendung von DCMMS mit PHP 5.0 erfordert einige kleine Änderungen an der Anwendung und wird noch nicht empfohlen. Bitte wenden Sie sich an die DCMMS-Entwickler, wenn PHP 5.0 für Ihre Installation erforderlich ist.

Befolgen Sie die Installationsanweisungen im PHP Dokumentationen.

Wenn Sie PHP nicht unter c:windowsphp installieren, müssen einige der folgenden Einstellungen angepasst werden.

Wegen vorheriger PHP/Mapscript Einschränkungen, es wird empfohlen zu installieren PHP Als ein CGI Befehl.

Die Verwendung von PHP als Apache-Modul ist mit DCMMS nicht sehr gut getestet und kann zu Instabilitäten führen. Wenn Sie ein solches Setup testen, teilen Sie Ihre Erfahrungen bitte mit den DCMMS-Entwicklern.

Die Installation kann mit den folgenden drei Zeilen in der httpd.conf abgeschlossen werden:

Stellen Sie erneut sicher, dass die obigen Pfadnamen mit denen auf Ihrem System übereinstimmen.

Fügen Sie die folgenden DCMMS-spezifischen Konfigurationseinstellungen zu c:windowsphp.ini hinzu:

Um gettext in PHP unter Linux verwenden zu können, muss der abgesicherte PHP-Modus aktiviert sein. Der Grund dafür ist, dass die Funktion putenv() zum Festlegen des Gebietsschemas andernfalls fehlschlägt. In php.ini:

2.1.3.7. Kartenserver

Installieren Sie unter Windows die Kartenserver-Distribution mit PHP/Mapscript, die im Internet unter http://maptools.org.

Auf anderen Betriebssystemen installieren Sie PHP/Mapscript von dem Kartenserver Distribution, die unter http://mapserver.gis.umn.edu/index.html verfügbar ist.

Stellen Sie sicher, dass die PHP/Mapscript-Erweiterung in php.ini geladen ist.

Sie benötigen eine PHP/Mapscript-Binärdatei, die mit PostGIS-Unterstützung kompiliert wurde.

2.1.3.8. DCMMS

Der DCMMS-Quell-Tarball ist unter http://dcmms.sourceforge.net verfügbar.

Das SQL Skripte create_dcmms_ddl.sql und create_views.sql im Skriptordner des DCMMS Verteilung erstellen Benutzer und Datenmodell für die Anwendung.

Wechseln Sie das Verzeichnis in den Skriptordner und führen Sie die Skripte auf dem dcmms Datenbank:

Kopieren Sie die Standardkonfigurationsdatei include/dcmconfig.php.default nach include/dcmconfig.php .

Überprüfen Sie die Einstellungen in dcmconfig.php und passen Sie sie gegebenenfalls an.

Kopieren Sie die Standard-DataObject-Konfigurationsdatei conf/dataobject.ini.default nach conf/dataobject.ini .

Überprüfen Sie die Einstellungen in der dataobject.ini und passen Sie sie gegebenenfalls an - insbesondere alle Einstellungen, die einen Pfad enthalten.

Kopieren Sie die Konfigurationsdatei conf/identifyplugin.ini.default zum Identifizieren des Plugins nach conf/identifyplugin.ini .

Überprüfen Sie die Einstellungen in der Identifyplugin.ini und passen Sie sie gegebenenfalls an - insbesondere alle Einstellungen, die einen Pfad enthalten.

Sie sollten sich jetzt anmelden können DCMMS Anwendung mit einer URL wie http://localhost/dcmms.

2.1.3.9. Beispieldaten

Ein Beispieldatensatz ist erhältlich bei der DCMMS Seite herunterladen.

Entpacken Sie die Dateien in den Datenordner Ihres DCMMS Installation.

Laden Sie die Shapefiles AdministrativeArea, Village und Landmark in die Datenbank. Dies kann mit Gshp2pgsql (Abschnitt 2.3.1, “GIS-Daten laden”) oder mit den folgenden Befehlen aus der Befehlszeile: In diesem Fall müssen die Befehle im Datenordner ausgeführt werden.

2.1.4. Standardkonten

Bei der Erstinstallation bietet die DCMMS-Anwendung zwei Standardeinstellungen PostgreSQL (DCMMS)-Benutzer:

Benutzer dcmms mit Passwort dcmms.

Benutzer Administrator mit Passwort Administrator.

Wie der Name schon sagt, Administrator hat Administratorrechte, während der Benutzer dcmms hat nicht.

Siehe Abschnitt 1.4.3, “PostgreSQL-Benutzer” für detaillierte Informationen zu Fenster und PostgreSQL Benutzer.

Auf Produktivsystemen sollten Sie die Standardkennwörter aus Sicherheitsgründen so schnell wie möglich ändern.

2.1.5. Checkliste

Die folgenden Punkte sollten überprüft werden, bevor a DCMMS geht in Produktion:

Administratorkennwörter auf Windows- und PostgreSQL-Ebene

Benutzerrechte (für DCMMS-Benutzer möglichst das Windows-„Gast“-Konto verwenden)

Netzwerkverbindungen einschließlich Firewall

Schließlich sollten alle Wechselmedienlaufwerke deaktiviert werden, um die Installation von Software zu verhindern (gilt für eigenständige Systeme, die speziell gehärtet werden sollten).

Die PostgreSQL-Zeitzoneneinstellung. Passen Sie ggf. postgresql.conf an, z.B. durch Hinzufügen einer Zeile wie

Sie können die Zeitzoneneinstellung mit der folgenden SQL-Anweisung überprüfen:

Wird die Zeitzone nicht richtig konfiguriert, wird auf der Anmeldeseite die folgende Fehlermeldung angezeigt: Konfigurationsfehler: PHP-Zeit != PostgreSQL-Zeit.

2.1.6. Optionale Werkzeuge

In diesem Abschnitt wird die Installation verschiedener optionaler Tools beschrieben, die die DCMMS-Administration und -Konfiguration vereinfachen.

2.1.6.1. Aktive Perle

Active Perl ist eine PERL-Distribution für Windows.

PERL ist die Programmiersprache, die für einige PostGIS-Wartungstools wie postgis_restore.pl verwendet wird.

Auf anderen Betriebssystemen wie Linux können Sie höchstwahrscheinlich die bereits installierte PERL-Distribution verwenden.

2.1.6.2. GIX

GIX ist eine Erweiterung von ArcView 3.*, die den Export von Ansichten in Mapserver-Kartendateien ermöglicht.

Sie können nur Fragmente aus den von GIX erstellten Kartendateien verwenden, da ArcView 3.* PostGIS nicht unterstützt.

Weitere Informationen zu den DCMMS-Kartendateien finden Sie in Abschnitt 2.2.2, “Custom Map”.

2.1.6.3. poBearbeiten

Um die dcmms.po-Dateien zu bearbeiten, poBearbeiten ist empfohlen. Es ist frei erhältlich bei http://poedit.sourceforge.net.

Installieren Sie poEdit Version 1.3.1 oder höher.

Um die Übersetzungsnachrichten aus den PHP-Quellen zu extrahieren, sollten die folgenden Einstellungen vorgenommen werden.

Start poBearbeiten .

Wählen Sie Einstellungen aus dem Menü Datei.

Wählen Sie die Registerkarte Parser und klicken Sie auf die Schaltfläche Neu.

Abbildung 2.57. poEdit PHP-Parser-Einstellungen

Wählen Sie Optionen. aus dem Katalogmenü.

Fügen Sie auf der Registerkarte Pfade den Pfad zum DCMMS Quelle wie in Abbildung 2.58, “Catalog Path” . gezeigt

Abbildung 2.58. Katalogpfad

Stellen Sie sicher, dass Sie den tatsächlichen Pfad zum DCMMS Quellen auf Ihrem System.

Nachdem die obigen Einstellungen übernommen wurden, ist es möglich, den Katalog zu aktualisieren, indem Sie im Menü Katalog die Option Aus Quellen aktualisieren auswählen.

2.1.6.4. R

Für die Analyse kann das statistische Analysepaket R verwendet werden. R ist unter http://www.r-project.org/ verfügbar.

R kann z.B. um die Druckabhängigkeit von Wartungsereignissen zu analysieren (Abschnitt 2.4.2, “Druckabhängigkeit”).


Zusammenführen von Rasterkacheln in PostGIS - Geographische Informationssysteme

Andreas Hocevar (grenzenlos)

Andreas Hocevar (grenzenlos)

=GDAL) für das Einlesen und Schreiben von Geodaten und den Baum für die Beschleunigung durch räumliche Indizes benutzt. Als Entwicklungsumgebung sowie zur Visualisierung dient Jupyter Notebook. Während die Funktionen eines Desktop-GIS häufig auf dem gesamten Layer bzw. Eine Auswahl von Geo-Objekten beschränkt sind, gibt es bei der Prozessierung von Geodaten mit eigenem Programmcode keine solchen Einschränkungen. Auch Reproduzierbarkeit und Dokumentation sind damit meist viel einfacher umsetzbar. Python hat sich in den letzten Jahren in großen Bereichen des Geo*-Sektors zu einer Art Standardsprache entwickelt. Sowohl für Skripte der Endnutzer von GIS etwa in QGIS oder ArcGIS, als auch - dank einer umfangreichen und qualitativ hochwertigen Bibliothek freier Pakete - als wunderbar geeignete Sprache für "standalone" Projekte. In diesem Workshop wird sterben Verwendung des Shapely-Pakets erlernt, welches sich dank seines GEOS-Unterbaus und der (relativ) konsequenten Verwendung der entsprechenden Simple Features-API als idealer, zukunftssicherer Einstieg eignet. Im Rahmen des Workshops WIRD EIN kleines, aber komplexes Projekt von Anfang bis Ende durchgearbeitet, etwa die Implementierung eines Algorithmus oder einer GIS-Analyse. Besonderes Augenmerk liegt auf der Nachvollziehbarkeit des entstehenden Programmcodes. Auch die Performanz wird kritisch berücksichtigt und evaluiert. Neben Shapely werden Fiona (

=GDAL) für das Einlesen und Schreiben von Geodaten und den Baum für die Beschleunigung durch räumliche Indizes benutzt. Als Entwicklungsumgebung sowie zur Visualisierung dient Jupyter Notebook. Performanzprobleme werden bei Bedarf mit einem Profiler bzw. diskutiert. für kleinere Codeschnipsel auch direkt mit Jupyter-Bordmitteln. Da Python gut lesbar ist, sollten auch komplette Neueinsteiger gut mitkommen können. Wer allerdings noch nie programmiert hat, dürfte schnell abgehängt sein. Wie eine Funktion funktioniert (Argumente, Rückgabe) oder was eine Methode ist, sollte klar sein.


T.M.C.G. Kachelmanager für kartografische Generalisierung

1 UNIVERSITÀ DEGLI STUDI DI PADOVA FACOLTÀ DI INGEGNERIA Corso di Laurea Magistrale in Ingegneria Informatica Tesi di Laurea T.M.C.G. Kachelmanager für die kartografische Generalisierung Un approccio al partizionamento di dataset per la generalizzazione automatica Bearbeiter: Ch.mo Prof. Sergio Congiu Laureando: Pastrello Francesco A.A. 2011/2012

2 Inhaltsverzeichnis 1 Introduzione 3 2 La cartografia ei GIS Cartografia Processo Cartografico Gis Generalizzazione Cartografia in Italia Progetto Cargen Ambiente di lavoro JTS Topology Suite OpenJump Partitioning Cenni generali Il partitioning nel processo cartografico Stato dell arte Problematiche Principali Soluzioni Partitioning Manager for propostnel progetto CARGEN Überlegung iniziali Analisi situazione di partenza Tile Manager Gestione delle partizioni Implementazione Alcuni esempi concreti Partizionamento della rete fluviale La generalizzazione della rete fluviale Gestione del processo di partizionamento Analisi dei risultal del partizion strali

3 INHALTSVERZEICHNIS 2 6 Parallelizzazione Le principali architetture parallele Assiomi di partenza Schlussfolgerung 52

4 Kapitel 1 Introduzione Il presente lavoro di tesi si inserisce all interno del progetto CARGEN - un progetto di ricerca nato da una convenzione tra la Regione Veneto und il Dipartimento di Ingegneria dell Informazione dell Università di Padova - come e si di di pone Tile Manager für die automatische Prozesssteuerung für die allgemeine Cartografica effetuato mediante partizionamento del dataset di lavoro zu bearbeiten. . Una delle problematischhe Principali nella costruzione di un GIS è la gestione di grandi volumi di dati, che in alcuni casi può diventare Critical in quanto comporta la saturazione della memoria del calcolatore sul quale vengono eseguiti processi sul quale vengono eseguiti processil come l . Con questo lavoro, insbesondere, si è cercato di implementare una soluzione al processo di generalizzazione, che si adattasse agli algoritmi già presenti all interno del progetto, e ponesse delle base per lo sviluppo di miut diivazione. Il primo capitolo tratta il thema della cartografia, defindo cosa si intentione per processo cartografico, fornendo inoltre alcune informazioni relative al progetto CARGEN, tra cui gli obiettivi e gli strumenti di lavoro. Nel secondo capitolo viene introdotto il thema del partizionamento, partendo da una definizione generale sino ad arrivare all problematischhe che relativamente al processo cartografico einführen. Nel terzo capitolo si presenta il T.M.C.G. (Kachel-Manager für kartografische Generalisierung), die Porta-Analysierung der Partizionamento- und Delle-Sue-Critità-proprio-al-cuore del progetto CARGEN. Dopo aver classificato i vari algoritmi di generalizzazione a seconda delle problematischhe che espongono al thema del partizionamento, viene illustrata l implementazione del TMGC. Il quarto capitolo fornisce alcuni esempi concreti in cui si è fatto uso del 3

5 KAPITEL 1. EINFÜHRUNG 4 Tile Manager: si sono portati a termine la Generalizzazione dei fiumi e la Creazione di Maglie Stradali mediante il partizionamento del dataset iniziale. L ultimo capitolo illustra brevemente la thematica della parallelizzazione, e i motivi per i quali si è scelto di seguire questa strada.

6 Kapitel 2 La cartografia e i GIS 2.1 Cartografia Cartografia [comp. di carta e -grafia 1858] s.f.: Parte della geografia che si occupa della costruzione di carte geografiche, corografiche e topografiche [25]. Per comprenderne appieno il significato, è necessario estendere la previousdefinizione andando a Considerare quella data dall Associazione Cartografica Internazionale (ACI, 1996), che la interpreta come il complesso degli studi e delle operazioni Scientifiche, artisthe e part tecngoniris asiire delle osservazioni dirette oder dalla utilizzazione di a documentazione al fine di elaborare ed alltire carte, piante ed altri modi d espressione atti a risvegliare l immagine esatta della realtà. Spesso i dati geografici sono riconosciuti e descritti in modo univoco attraverso una rappresentazione grafica ben definita, attraverso strutture raggruppate or costituite da elementi semplici secondo rappresentazioni tassonomiche di tipo gerarchico. La carta è, quindi, la rappresentazione in piano dei fenomeni e delle condizioni di fatto della Terra resa in proiezione orizzontale, rimpicciolita, generalizzata e dichiarata nei suoi segni (ACI, 1996). Una delle caratteristiche fondamentali di una carta è la scala. La scala della carta è il rapporto numero delle lunghezze tra la carta ed il terreno (1: indica che ad 1 mm della carta corrispondono mm sul terreno, Ossia 10 metri). Il rapporto di riduzione, quindi, si esprime con una frazione che ha per numeratore l unità e per denominatore il numero per il quale occorre moltiplicare una lunghezza misurata sulla carta per avere la corrispondente & agrave pic la pi Quantità di informazioni che figurano nella carta. 5

7 KAPITEL 2. LA CARTOGRAFIA EI GIS 6 Esistono molteplici modalità di classificazione delle carte, a seconda che si prendano in Considerazione diversi aspetti, alcuni dei quali sono il fattore di scala, le finalità ei prozi contenuti e di in contenuti e [21] . Secondo la scala, si usa classificare le carte usando la seguente convenzione: planisferi quando rappresentano, senza soluzione di continuità, tutta la superficie terrestre mappamondi quando la rappresentazione è effettuate della general esa scala, fino ad 1: carte corografiche quando la rappresentazione è a scale comprese tra 1: e 1: carte topografiche quando la rappresentazione è a scale comprese tra 1: e 1:5.000 map quando la rappresentazione è a scale comprese tra 1:4.000 egrave 1:1.000 piante pro scale grandissime, da 1:500 a valori maggiori A queste si aggiungono poi: le Carte Tecniche Regionali, che sono rappresentazioni specificamente finalizzate ad interventi sul territorio, im Maßstab da 1: sino ad 1: Considerando i contenuti e le finalità di una carta, invece, è possibile individuare due grandi classi: le carte tematiche e le carte t opografiche. Le carte tematiche sono rappresentazioni di fenomeni o di concezioni astratte qualitativ o quantitative limitate ad uno o più temi specifici (ad esempio il piano regolatore di un comune): a loro volta si suddividono in analitete, complesse qualitativ. Le carte topografiche, invece, vanno a rappresentare una superficie fisica più ampia (scala di riduzione da a ) costituita dal terreno con le sue forme, dalle acque (laghi, fiumi, mari), da oggetti concreti e durevoli. Contengono, inoltre, altre indicazioni come concini politici amministrativi, linee o variazioni di colore indicanti l altimetria e la batimetria e nomi dei luoghi. 2.2 Processo Cartografico Il processo cartografico, la cui finalità è quella di trasferire sulla carta gli elementi ritenuti significativi per la descrizione della superficie fisica terrestre, è una precisa successione di procedimenti della procedimenti carto gli elementi passa attraverso l acquisizione dei dati, e termina con l effetiva costruzione della mappa e il suo successivo

8 KAPITEL 2. LA CARTOGRAFIA E I GIS 7 Collaudo. Durante la fase iniziale, tipicamente, si vanno a definire tutte le caratteristiche tecniche e i contenuti che verranno rappresentati sulla mappa. Per caratteristiche tecniche si Intentionono Principalmente la superficie di riferimento adottata, la scala, la proiezione e il tipo di rappresentazione (konform, gleichwertig, äquidistante). I contenuti della mappa, invece, sono rappresentati da tutte le informazioni che si vogliono collocare nella mappa, e determinano il tipo di astrazione e rappresentazione che saranno utilizzate per trattare i dati ingresso.Già a questo livello è possibile determinare la natura tematica che la carta andrà ad acceptre, ossi fokalizzando l attenzione solo su alcuni particolari aspetti della realtà da rappresentare (cartografia meristica rave ). Già in questa prima fase risulta be chiara la differenza tra la cartografia cartacea und quella digital: per la prima, infatti, vi è la produzione della legenda, sostituita nella seconda dalla definizione di un GeoDB. Terminata la fase di analisi e definizione, si passa alla raccolta dei dati. Due sono le possibili modalità, a seconda che la mappa sia il frutto di una rilevazione o di una derivazione. Nel primo caso la raccolta viene fatta direttamente sul territorio, mediante l ausilio di sistemi di posizionamento satellitare e fotografie aeree nel secondo, invece, la mappa viene derivata, utilizzando dati presi da cartografiee presistento di dovranno de astrazione della realtà). Alla fine di questa fase si pone l assegnazione di un particolare codice per ciascun elemento trovato, a seconda del modello stabilito nella prima fase. E questo il momento in cui viene eseguita la generalizzazione cartografica, cioè la fase in cui il cartografo, una volta entrato in Possesso di tutte le informazioni necessarie, sceglie e posiziona uno ad uno gli oggetti sulladoi cart final soddisfare le Specifiche Certain, ma anche a garantire i requisiti classici di ogni mappa (quali la leggibilità el usabilità). E, quindi, necessario estrarre dai dati di partenza una loro rappresentazione astratta ma nel contempo efficace e rappresentativa. Il Collaudo è l ultima fase, in cui si verifica la correttezza e la consistenza della carta. Tra le attività più Importanti di Collaudo vi è il controllo finale sul terreno mediante operazioni di misura e verifica della rappresentazione cartografica: in questa circostanza si può assistere ad un creata della.grave d'una raffinamento.

9 KAPITEL 2. LA CARTOGRAFIA E I GIS Introduzione dell informatica nel mondo della cartografia, introdotto notevoli cambiamenti nel modo di produrre una mappa, e sicuramente i GIS hanno contribuito notevolmente in questa direzione. Insieme di strumenti software per acquisire, estrarre, elaborare, archiviare e rappresentare dati spaziali del mondo reale [4] Insieme di procedure basate sull uso di sistemi informatici, usate per archiviare ed elaborare dati georeferenziati [2] und alle geografischen Daten, e attraverso questi strumenti è possibile raccogliere, modellare, manipolare, analizzare e presentare georeferenziati. L acquisizione dei dati avviene normalmente scannerizzando le map cartacee tradizionali a altro metodo, invece, si base sull utilizzo di file contenenti le coordinate degli elementi geografici, press secondo a determinato sistema di riferimento. In entrambi i casi, acquisizione è seguita da un processo di astrazione e generalizzazione. Consentono, perciò, di sovraporre differenti livelli di informazione relativi ad a area, ottenendo una migliore comprensione dei fattori che la caratterizzano. Sono, pertanto, uno strumento completo adatto alla rappresentazione del territorio und al trattamento delle informazioni Associate agli oggetti georeferenziati. I dati spaziali - che rappresentano l informazione territoriale codificata in un sistema informativo geografico - sono tradizionalmente divisi in Due classi: raster e vettoriale. Nella prima gli oggetti sono definiti quasi ovunque nel dominio di interesse, e molto spesso sono continui. Sono rappresentati in forma discreta con matrici regolari di attributi (modelli matriciali o raster georeferenziato), reti irregolari di triangoli (modello TIN) oppure con curve di livello. La seconda classe, invece, presenta oggetti discreti e discreti, delimitati in modo preciso. Sono rappresentati con livelli vettoriali, eventualmente topologici e tabelle di attributi Associate: agli oggetti (punti, linee ed aree) sono ordnen die Spaziali congruenti con la base cartografica di riferimento zu. Im Besonderen, le primitive vettoriali che costituiscono il modello sono: 1. il punto, definito da una coppia (x,y) o da una terna di coordinate (x, y, z) 2. la linea, costituita da un sequenza ordinata di punti

10 KAPITEL 2. LA CARTOGRAFIA E I GIS 9 3. il poligono, anch esso costituito da una sequenza ordinata di punti, in cui l ultimo punto della sequenza corrisponde al primo. Rispetto alla rappresentazione puramentegeometriea degli oggetti ad un GIS viene richiesto di mantenere and gestire le informazioni che riguardano le mutue relazioni spaziali tra i diversi elementi, cioè di strutturare and dati Definendone and che la topologia. Alle Aspetto-Geometrie und Topologie in der GIS-Entwicklung vorbeugen und inserimento dei dati descrittivi dei singoli oggetti reali, ovvero degli attributi. Una volta che i dati vengono memorizzati, è possibile usufruire delle funzionalità di analisi ed elaborazione degli elementi geografici degli attributi fornite dai GIS, quali: L overlay topologico: in cui si effettua de sovrapgli ad esempio per sovraporre il thema dei concini di un parco con i Confini dei comuni per determinare le superfici di compenza di ogni amministrazione o la percentuale di area comunale protetta) Le query spaziali, ovvero delle interrogazioni di base di dacriteri a partire da ciali Vicinanza, Inclusione, Sovrapposizione etc.) Il Buffering: da un thema puntuale, lineare o poligonale definire un poligono di rispetto ad una distanza fissa o variabile in funzione degli attributi dell elemento La segmentazione: algoritmi di solito puni ad una determinata lunghezza dall inizio del tema La Netzwerkanalyse: algoritmi che da una rete di el ementi lineari (z. rete stradale) determinano i percorsi minimi tra due punti La räumliche Analyse: algoritmi che utilizzando modelli dati raster effettuano analisi spaziali di varia tipologia, ad es: analisi di visibilità Analisi geostatistiche: algoritmi di analisie della di variabilie Keine GIS-Koordinate für ein oggetto non-sono memorizzate rispetto und ein sistema di riferimento arbitrio o al sistema di della periferica usata, ma sono memorizzate secondo le coord de sistema di riferimento in cui realmente è situato. La Scala di rappresentazione digentazione solo un parametro per definire il grado di precisionzza und la risoluzione delle informazioni grafiche. A seconda delle scale elementi piccoli possono non essere visualizzati e si vedono solamente aree di terreno caratterizzate da una stessa quantità [8].

11 KAPITEL 2. LA CARTOGRAFIA E I GIS Generalizzazione Una delle fasi più Importanti del processo cartografico è senza ombra di dubbio la generalizzazione. Qualora si tentasse di rappresentare, ad esempio, una mappa topologica di uno stato, o anche solo di una sua città ad una scala 1:200000, se non venissero portate a termine operazioni di classificazione e semplificazione dell informazione di partenza ault illeggibile (un insieme illeggibile di edifici, strade, ec. ). Ecco che risulta chiara, perciò, l importanza che übernehmen questo processo di astrazione della realtà. L International Cartographic Association descrive la generalizzazione come selezione e rappresentazione semplificata dei dettagli che meglio si adatta alla scala e o allo scopo di una mappa [ICA, 1973]. Tale semplificazione dei dati, quindi, è be differente dalla semplice riduzione, in quanto viene eseguita in maniera soggettiva seguendo precisi vincoli. Nicht è quindi un processo puramente Scientifico, in Quanto tiene in Berücksichtigung der Fähigkeiten und der Conoscenze di chi lo esegue. Poiché una mappa è sempre ad una scala minore rispetto alla realtà che rappresenta, l informazione che andrà a contenere dovrà essere ristretta a ciò che risulta essere rappresentabile [12]. Il termine ristretta potrebbe far sembrare tale processo passivo: in realtà si tratta più che altro di a processo dinamico di estrazione dell informazione. Così come per la cartografia, anche la generalizzazione ha subito una notevole spinta innovative con l avvento dell informatica: ecco che la definizione iniziale può essere estesa al concetto spaziale di generalizzazione digital, intesa come grafile della visual database prozesso Minore livello di dettaglio rispetto ai dati di origine, conservando le caratteristiche essenziali dell informazione geografica sottostante [20]. Alcuni fattori che devono essere tenuti in betrachtazione durante il processo di generalizzazione si possono riassumere nei seguenti sei punti [15]: 1. riduzione della complessità - aumentare l efficacia dell informazione trassono riassumere scala inferiore 2. mantenimento dell correctzza spaziale - limitare per quanto possibile l errore dovuto alla diversa posizione degli oggetti nella mappa rispetto alla realtà, causato dal passaggio ad una scala pià alta feature 4. mantenimento della qualità estetica di non secondaria importanza è la presentazione del risultato finale, che dovrà tener conto di vari fattori quali

12 KAPITEL 2. LA CARTOGRAFIA EI GIS 11 Colori utilizzati, simbologia, bilanciamento, layout, ecc. Anwendungen, die die allgemeinen Regeln der Allgemeinheit unterstützen, die bestimmte Regeln für bestimmte Algorithmen festlegen, die ordinierten Regeln und die erforderlichen Parameter für die Eingabe erforderlich sind. 2.5 Cartografia in Italia Per Quanto riguarda la situazione italiana, il maine ente che si occupa di attività cartografica è l Istituto Geografico Militare (IGM). Fondato nel 1872, annovera tra le sue prime produzioni la compilazione della Nuova Carta Topografica d Italia (Scala 1:100000, la cui realizzazione durò circa Trient anni), a cui fecero seguito le produzioni della Serie 25V (Scala 1:25000) e, più tardi, della Serie 50 (Maßstab 1:50000). Ogni serie è in relazione con le altre secondo precisi e definiti rapporti matematici: ciascun foglio di una mappa in scala 1: è diviso in quattro settori, che rappresentano altrettante mappe della serie 1: (quadranti) a loro volta quart parti, dette tavolette, in scala 1: Sin dal 1935 in Italia si avvertiva la necessità di disporre di una cartografia tecnica a grande scala dell intero territorio nazionale: tra le motivazioni Principali, infatti, oltre alla conoscenza dello ste ste , vi era anche l eventuale progettazione ed esecuzione dei relativi interventi di sistemazione e sviluppo. Pertanto, la Commissione Geodetica Italiana, Interpretation der Questa esigenza, portò avanti studi per la messa a punto delle caratteristiche e dei criteri inerenti alla formazione di a carta tecnica generale a grande scala dello Stato. Dopo svariati anni si arrivò ad una parziale definizione di tali caratteristiche, istituendo due distinte Sottocommissioni di studio della stessa Commissione Geodetica Italiana (CGI), incaricate rispettivamente di mettere a punto i criteri zionie le di tece cionie le le istec celuna le le ist Economiche relative alla formazione di carte tecniche alle Maßstab 1:5000 und 1:10000 ed a Più grande scala (1:2000 ed 1:1000). L intentiono principale era, soprattutto, far sì che gli Enti cartografici dello Stato e le Amministrazioni pubbliche regionali e locali avessero linee guida comuni [7]. A partire dagli anni sessanta, ai sensi della Legge n. 68 del 2 febbraio 1960, l IGM cominciò ufficialmente a svolgere le funzioni di Ente Cartografico dello Stato assieme ad altri organi, quali l Istituto idrografico della Marina, la Sezione

13 KAPITEL 2. LA CARTOGRAFIA E I GIS 12 fotocartografica dello Stato Maggiore dell Aeronautica, l Amministrazione del catasto e dei servizi tecnici erariali, e il Servizio geologico. Im Besonderen, il lavoro dell IGM-Ära fokalizzato sulla stesura della cartografia in Piccola Scala (1:25000 und höher), Lasciando al Catasto la produzione di carte a grande e media scala (1:10000 und unterlegen). Nel frattempo si fece semper più dringende la necessità di una cartografia tecnica a grande scala, tanto che si decise per il Trasferimento alle Regioni a statuto ordinario delle funzioni di ampinistrative statali in materia di urbanistica acdotti di relativi personali ed uffici con il DPR 15 Gennaio 1972 n. 8. Questa soluzione voleva Principalmente soddisfare le più unmittelbare Urgentze, con la convinzione che lo sviluppo armonico delle risorse naturali ed umane, la progettazione delle infrastrutture e la gestione del territorio richiedessero una conoscenza ravto una conscenza Carta topografica d Italia alla scala 1: fino a quell epoca disponibile. Un ultteriore passo avanti verso la formazione della Cartografia Tecnica Regionale si ebbe con la pubblicazione delle Norme proposte per la formazione di Carte tecniche alle scale 1:5 000 e 1: (CGI, 1973), seguite dalla seguante Guida per le scelte tecniche ed economic , relative alla formazione di cartography generali a più grande scala 1:2000 und 1:1000 (CGI, 1974). Successivamente, con il DPR 24 luglio n. 616, a livello nazionale si stabilì l ulteriore Trasferimento funzioni alle regioni in materia di ambiente and territorio, cosicché le regioni poterono cominciare a Gesture in maniera autonoma la crazione delle carte regionali. Se da una parte questo fu un motivo di incremento della produzione cartografica and aggiornamento delle map, dovuti Principalmente alla minor territorio ricoperto, dall Altra portò ad una frammentazione dell informazione, poiché mancavano degli uniformare. Nella sua concreta realizzazione a livello regionale, quindi, la scelta del rapporto di scala della rappresentazione cartografica non risultò semper uniforme, adeguandosi a criteri operativi ed economici diversificati, in funzione della diversa estensione del e sorituo sue territorial. Delle serie cartografiche prodotte dall IGM alla scala 1:25.000, l unica ad essere completata è la 25V (vecchio taglio), la meno latere, i cui dati sono mediamente aggiornati al 1960 (ad eccezione di alcuni, il cui aggiornamento risale risale) . La carta si compone di 3545 tavolette alla scala 1:25 000, le cui dimensioni sono di 7 30 in longitudine und 5 in latitudine. I lavori della successiva Serie 25 - che si sarebbe composta di 2298 elementi, di cui ne sono stati terminati 840, denominati sezioni, che hanno le dimensioni di 6 in latitudine e 10

14 KAPITEL 2. LA CARTOGRAFIA E I GIS 13 in longitudine furono interrotti dall Istituto nel 2000 con il passaggio al digital, rappresentato dalla Serie 25DB. Kommen Sie zum Präzedenzfall, eine letzte Quest, die Sie von 2298 aus der letzten Dimension erhalten, ottenute, però, mediante stereoresttituzione numerica oder derivate dalla cartografia tecnica regionale numerica. Anche la cartografia tecnica regional, grazie allo sviluppo dell informatica territoriale, registrò i suoi primi progressi, convertendosi schrittweisemente da ein elaborato to supporto cartaceo and a elaborato numerico su supporto informatico: la Carta Tecnica Regionale Numerica (CTRN). Fu, però, l avvento della serie 25DB dell IGM a wag quell quell ultteriore spinta innovation, Introduction il database geografico atto a mantenere le informazioni necessarie, Concetto che arrivò presto anche agli uffici cartografici regionali. Ciò ebbe un impatto notevole sulla cartografia italiana, aprendo nuove possibilità, tra cui la possibilità di usare la derivazione come mezzo per produrre la nuova serie 25DB: in questo modo sarelevare possio de automati Ableitung, Beschleunigung von Noten und Tempi der Produktion der Serie 25DB. Letztes Jahr, das eine notwendige und wichtige Zusammenarbeit zwischen IGM und der Region und in der Region und in der Umgebung der Alcuni-Gruppen von Lavoro, die alle das letzte Ende des Catalogo dei dati territoriali - Spezifische der DBv1.0-Inhalte enthält, erforderlich macht . Questo documento è il risultato dell attività svolta nell ambito del Gruppo di Lavoro 2 Dati geotopografici istituito dal Comitato per le regole tecniche sui dati territoriali delle Pubbliche Amministrazioni, la cui attivittoagrave valuine dista in Strati, Temi e Classi, utilizzando le esperienze professionali dei diversi componenti del Gruppo di Lavoro (Regioni, IGM, IIM, CNIPA, Agenzia del Territorio, Dipartimento della Protezione Civile, Ministero dell Ambiente, ANCI, ANCITEL, AGEA, UNCEM) und un costante konfrontierto con le attività degli alttri Gruppi di Lavoro. Da sottolineare come, in questa Occasione, si siano seguiti i principi di carattere generale enunciati dalla Direttiva INSPIRE (Direttiva 2007/2/CE vom 14. März 2007 Pubblicata sulla Gazzetta Ufficiale dell Unione Europea vom 25.04.07) l territoriale informationen nella Comunità Europea el applicazione ai set di territoriali riguardanti und temi elencati negli allegati I, II und III. Questo documento ha, perciò, definito i Due Sottoinsiemi del Catalogo dei Dati Territoriali im Maßstab 1:1000/2000 und 1:5000/10000, intesi come contenuti minimi obligatori per la costituzione di un DB omogeneo a copertura nazionale.

15 KAPITEL 2. LA CARTOGRAFIA E I GIS Progetto Cargen Il progetto CARGEN - Kartografische generalisierung è un progetto di ricerca, vede dal 2006 vede coinvolti il ​​Dipartimento di Ingegneria Informatica dell Università di Padova e la Regione Veneto, con la colita collaborto.L obiettivo Principale era quello di elaborare nella sua interezza (progettazione, sviluppo e test) un processo automatizzato di generalizzazione cartografica, che partisse dai dati in scale 1:5000 del modello GeoDBR - sviluppato dalla Regione Veneto - per restituire co unaen Das Modell DB25 Dell IGM. In seguito tale obiettivo fu esteso alla generalizzazione di map con scala 1: Sebbene und dati di partenza si riferiscono appunto al più newe modello GeoDBR, in questo progetto si è fatto uso anche della CTRN, fornita Region semper dalla. Im Besonderen sind die Beziehungen zwischen den interkorrekten Modellen und den CTRN-Teilen, die gängige Verwendung für die Popolare il GeoDBR, die quale si derivano sukzessive und die Daten für die Popolare il DB25 zu beachten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seppur già da tempo, in Europa, la produzione automatizzata di carte a differenti scale attraverso la generalizzazione è prassi ormai consolidata, in Italien la situazione risulta essere diametralmente opposta. Ecco perché questo progetto, essendo tra i primi in Italia, cerchi anche di essere uno stimolo per questo tipo di produzione. Sin dall inizio si è deciso di intraprendere la strada del raggiungimento di risultati concreti: ad innovi approcci teorici fine a se stessi si è Preferred la realizzazione di un prodotto reale, ossia un software che effettivamente la car gestione dei dati adottato dal progetto CARGEN è di tipo client-server. Der Server und die Kosten für eine Macchina-Installation mit dem DBMS Oracle Spatial 10g, die Funktionen und die Speicherung von Speichern und Benutzern und Spaziali-Zugang, Zugriff auf Tramite-Abfragen. Inizialmente tutto il carico computazionale era ad appannaggio del server (calcoliometrici, query spaziali, ecc..), lasciando al client la sola gestione delle geometrie rekuperieren. Tale architettura è stata via via dismessa, e al fine di garantire migliori prestazioni e un approccio più semplice allo sviluppo di algoritmi (un maggior controllo delle geometrie), si è passati ad una differente modalità struutile modalità strutui pro Quest ultima è OpenJump). Grazie al supporto di una libreria sviluppata internamente al Progetto, i dati ora possono essere caricati in RAM und gestiti - lato client - proprio come se fossero delle tabelle. Si è, inoltre, fatto ricorso ad una libreria esterna sviluppata in

16 KAPITEL 2. LA CARTOGRAFIA EI GIS 15 Java, die JTS-Topologie-Suite, eine große Reihe von Betreibern von Spaziali, Begrenzung der Anforderungen, die erforderlich ist, um das DBMS von Oracle für die effiziente Abfrage der JTS-Topologie-Suite zu verwenden, die JTS-Topologie-Suite zu begrenzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ? è una libreria open source, scritta interamente in Java, che fornisce una modellazione ad oggetti per le geometrie lineari in uno spazio euclideo bidimensionale [1]. Insbesondere, in der Questa libreria vengono supportate geometrie Fondamentali quali Point, LineString und Polygon (rispettivamente geometria puntuale, lineare und areale) und collezioni, con la possibilità di definire una terza dimensione. La JTS Rende Disponibili Numerose Funzioni Geometriche, Tra le Quali Citiamo: 1. Operatori topologici che Realizzano le funzioni di intersezione, differenza, unione 2. creazione di buffer (sia positivo, che negativo) intorno alle geometrie 3. costruzione dell inviluppo convesso di geometrie 4. Costruzione del Minimum Bounding Box, 5. Triangolazione 6. Funzioni per la semplificazione delle geometrie, come l algoritmo di Douglas- Peucker 7. ecc.. Sono presenti inoltre strutture spaziali per l implementazione di indici spaziali, come il Quad-Tree ed R-Baum, grafi planari ed algoritmi che offrono un modo veloce per la risoluzione di query spaziali. Diese Version ist für alle Anforderungen geeignet, um JTS OpenJump zu verwenden OpenJump und eine Desktop-Anwendung zur Verfügung zu stellen GIS-Lizenz für die GNU-GPL-Lizenz, für die Quali- und Egrave-Möglichkeiten, die lokale lokale Änderungen für jedes Ereignis zu ändern. Dà la possibilità, inoltre, agire anche su dati in rete tramite fileserver oder tramite DBMS (PostGIS, Oracle, ArcSDE), kommen rein auf dati remoti tramite und greifen auf einen WMS-Server zu. E un GIS Derivato da JUMP, sviluppato da Vivid Solution e dalla Refraction Research, Inc., BC Kanada: Scritto in Java, si basa sulla JTS ed è in grado di

17 KAPITEL 2. LA CARTOGRAFIA E I GIS 16 manipolare Datenraster oder Vettoriali, kommen Sie ad esempio ESRI-Shapefile. Es ist ein OpenSource-Programm, und Sie haben die Möglichkeit, eine Änderung des Programmcodes vorzunehmen, die für alle proprietären Eigenschaften erforderlich ist. Molto interessante, però, risulta essere la sua architettura modulare, che permette di estendere facilmente le funzionalità di base, potendo integrare il proprio codice mediante la realizzazione di plugin. In questo modo il lavoro di uno sviluppatore viene di molto facilitato: Grazie ai plugin, infatti, è possibile visualizzare direttamente il risultato del proprio codice, simplificando and velocizzando notevolmente la fase di test and debug. In OpenJump livelli (layer) rappresentano dei contenitori di feature, le quali devono appartenere ad un preciso schema dati (FeatureSchema): quest ultimo specifica il nome e la tipologia degli attributi che costituiscono la feature, simile a quanto accade nelle tabelle dei database Un Layer rappresenta, quindi, una vera e propria tabella, il cui schema dati è Specificato dal FeatureSchema. Il layer è interrogabile per mezzo di query, che possono essere sia spaziali che non spaziali. Per migliorare le query spaziali, è possibile associare al layer uno degli indici spaziali forniti dalla JTS. La versione di OpenJump utilizzata nello svolgimento di questa tesi è la

18 Kapitel 3 Partitionierung 3.1 Cenni generali Da un punto di vista puramente insiemistico, è possibile definire la partizione di un insieme X come una famiglia di sottoinsiemi non vuoti di X Xi in, tali che ogni elemento x in X è conten unuto in uno e di questi sottoinsiemi. In maniera äquivalente, un insieme P è una partizione di X sse non contiene l insieme vuoto e: 1. P = X 2. A B = ifa P, B P A B dove rappresenta l insieme vuoto. Gli elementi di P sono chiamati blocchi, parti o celle della partizione [19]. In informatica il problema del partizionamento si viene principalmente a creare poiché, talvolta, si è costretti a lavorare con istanze di grandi dimensioni, che richiedono particolari accorgimenti. Il motivo principale è che, quando la taglia dei dati in input (o prodotti da uno o più algoritmi) supera la taglia della memoria fisica (RAM) della macchina nel quale il problema deve essere risolto, si rischia un di andare intro, senza riuscire a portare a termine le esecuzione del/i algoritmo/i. Eine primäre Lösung von Potrebbe, die nicht beachtet wird, dass die begrenzte Dovuto alle Kapazitäten und Speicher des RAM, die Nutzung der virtuellen Erinnerung an die esterenische RAM-Fisica mit der Nutzung der sekundären Erinnerung, über die Diskotheken verfügen. Tale soluzione, tuttavia, non risulta sempre praticabile: se da un lato, infatti, si riesce ad evitare il problema di dover gestire in prima persona l interazione tra RAM e livelli di memoria più capienti (come la memoria second caria & dagrall il serio rischio che il sistema operativo non riesca a gestire bene tale comunicazione, andando 17

19 KAPITEL 3. TEILUNG 18 a degradare notevolmente le prestazioni (il rischio di stallo, quindi, non sarebbe completamente evitato). La seconda alternativa, invece, richiede una precisa e consapevole gestione dell interazione tra memoria secondaria e RAM, avendo ben chiaro che la prima verrà utilizzata per memorizzare i dati, mentre la seconda si occuperà dell stelaborazione. 3.2 Il partitioning nel processo cartografico Uno tra i Principali problemi nella costruzione di un GIS è proprio quello della gestione di grandi volumei di dati. Volendo fare una stima, il volume di dati necessario a rappresentare le risorse el infrastruttura di una Municipalità è dell ordine di 0,5 1 GB pro abitanti, e si possono trovare esempi a supporto di questa tesi che sostengona di necessituna region milioni di punti solo per rappresentare la planimetria della mappa, e questo senza betrachte il notevole volume di dati spaziali (coordinate, linee, poligoni, etc..). Da betrachte, inoltre, vi sono i costi del processo associati all analisi, al dataanreicherung e alla generalizzazione, che aumentano Considerevolmente con il crescere della zona interessata: è per queste ragioni di performance e di limiti di sistema che svilnuppicaare necessario una che permetta di Dividere lo spazio cartografico in partizioni da elaborare separatamente, possibilmente senza noticeare il contenuto informativo proveniente da partizioni vicine (il tutto senza influenzare il risultato finale) si possono individuare lavori inerenti al processo di clustering dei dati, [11], [9], [18, a tecniche di partizionamento che fanno uso di grafi [22], [23], Quad-Tree, R-Tree, [14 ], und GAP-Baum 1. Una possibile ed intuitiva visione d insieme su come partizionare i dati arriva dalla creazione di un dendogramma 2, mentre il Diagramma di Voronoj con il duale possono essere impiegati come metodo per un efficiencye indicizzazione 1 Il GAP-Tree Generalized Area Partitioning tree sviluppato da Van Oosterom (1991, 1994, 1995) è un modello di dati spaziali per rappresentare livelli a diverso dettaglio di oggetti all interno di partizione planar. Un nodo rappresenta una regione di poligoni generalizzata, che può contenere poligoni di minor importanza, e il cammino foglia-radice corrisponde alla selezione e semplificazione di poligoni durante la fase di generalizzazione 2 una processo di clustering gerarchico

20 KAPITEL 3. PARTITIONIERUNG 19 dell informazione spaziale.[24]. Altri studi hanno spostato l attenzione sulla necessità di estrapolare dai dati iniziali le informazioni necessarie per poter ricavare il miglior partizionamento tenendo conto delle esigenze del processo di generalizzazione: alcune soluzioni proposte kategorische kachele intelligent ],[5]. In Abbildung 2.1, tra i vari esempi, si propone come combinare la rete stradale e la linea costiera per ottenere un buon insieme di partizioni chiuse. Abbildung 3.1: Creare più partizioni combinando differenti classi poligoni, rete stradale, superfici e punti Altre soluzioni, invece, puntano ad una maggiore consapevolezza del competitiono utile per la derivazione di una geometria [10]: estendere quindi la

21 KAPITEL 3. PARTITIONIERUNG 20 tizione analizzata, ampliando il tile con le geometrie vicine, con il solo scopo di utilizzarle in fase di analisi, per portare a termine in maniera precisa e accurata la generalizzazione dei dati interni al tile (fettsolo quest salvati, poiché le geometrie esterne non hanno modo di essere validieren). Abbildung 3.2: Estensione della partizione per tener conto del competitiono spaziale. Il partizionamento suggerito da questo approccio si basa sul quad-tree, che permette di ottenere un miglior controllo del volume di dati su ciascuna partizione, bilanciandone il carico di lavoro. Sfrutta inoltre il concetto di adiacenza: partizioni, quindi, non indipendenti tra loro, ma che si trasmettono a vicenda alcune informazioni aggiuntive ritenute utili all intero processo di generalizzazione. In figura 2.3 osserviamo un ipotetica esecuzione parallela di sette processi: si inizia con quelle partizioni aventi il ​​maggior numero di partizioni adiacenti non processate, proseguendo man mano fino a quelle con il numero più basso.

22 KAPITEL 3. PARTITIONIERUNG 21 Abbildung 3.3: Esecuzione parallela di sette processi. Kommen Sie si evince dai lavori appena illustrati, le soluzioni al problema del partitioning sono relativamente poche, recieni e parziali, in quanto difficilmente si riescono ad estendere a tutti and tipi di generalizzazione. Le elevate potenze di calcolo dei newi processingi, Associate alla grande disponibilità di memoria, Garantiscono nella maggior parte dei casi le condizioni ottimali per portare a termine il processo di derivazione. Negli ultimi anni, però, l esigenza di lavorare su grandi map è diventata semper più pressante, rendendo necessario lo sviluppo di soluzioni alternative al semplice Incremento della potenza di calcolo deiprocessi di bilanciare il carico di lavoro associato a ciascuna partizione: in einem sistema con più processingi, ad esempio, questo si traduce in a migliore gestione del carico di lavoro per ogniprocessor. La difficoltà di questo approccio risiede nella forte dipendenza che sussiste tra il processo di generalizzazione di un oggetto e il competitiono geografico nel quale l oggetto stesso viene a trovarsi, poiché va.

23 KAPITEL 3. PARTITIONIERUNG 22 Le critità principali risiedono proprio sui bordi delle partizioni, insbesondere su quelle geometrie che vengono a trovarsi in prossimità di tale limite. E possibile suddividere la casistica generale in due grandi sottoinsiemi: quello dei casi continui e discreti. a) Casi Continui I ist ein Hauptgrund für die Suche nach erster Linie sono sicuramente und grafi, in Quanto spezzare uno dei loro lati che si trovano sul bordo del comporta una conseguente diminuzione di informazione spaziale. Si pensi, ad esempio, alla rete idrografica: tale generalizzazione si basa Principalmente sul processo di selezione di a elemento, ossia determinare se un particolare oggetto debba oder meno essere eliminato dalla mappa risultante. Tra le Principali motivazioni per cui un fiume viene definito nicht wichtig (e di conseguenza eliminato) vi è la sua lunghezza: lavorando localmente all interno di una partizione, un tratto di fiume potrebbe essere Considerato corto poich&graveacute alla nonester di conseguenza eliminato. Nell esempio sottostante è possibile osservare come la naturale ricostruzione del fiume rosso venga ad essere stravolta: il tratto b verrebbe ricostruito risalendo sino alla sorgente S2 invece di S1, mentre la parte cheborsbdoileta central resto del fiume rosso. Abbildung 3.4: Partizionamento tratto fluviale Così come per la rete fluviale, anche la rete stradale presenta problemhe simili, ossia la possibilità che un tratto di strada in prossimità di un bordo, sotto una determinata lungheliminatogiacto e non

24 KAPITEL 3. PARTITIONIERUNG 23 senza tener conto di una sua possibile continuazione all esterno del tile. Tra i possibili esempi è possibile citare quello della generalizzazione di a tratto autostradale, che per essere classificato tale, solitamente, necessita dell analisi di lunghi tratti. Anche la gestione degli incroci risulta problematischa se non affrontata nella maniera ottimale. Abbildung 3.5: Partizionamento rete stradale Come si evince dalla figura 2.5, l incrocio in basso (evidenziato in grigio) ha la necessità di una trattazione compatta, che verrebbe meno se i dati all interno della partizione rossa vediendennissero elaborati ve stradali che intersecano il bordo inferiore e che si collegano all incrocio potrebbero, ad esempio, essere eliminati, portando ad un errata generalizzazione finale). I problemi che riguardano i casi continui non fanno riferimento solamente al processo di selezione di a particolare geometria: anche la fase di ricostruzione porta con sé gunssioni aggiuntive. In questa ultteriore classificazione si inseriscono, ad esempio, alcuni algoritmi di semplificazioni di linee che richiedono di specificare un nodo di partenza o ancoraggio [6]. Qualora una di queste geometrie lineari venisse divisa e processata indipendentemente, andrebbe incontro al serio rischio di essere generalizzata erroneamente, a seconda del punto di rottura (Abb. 2.6a und 2.6b).

25 KAPITEL 3. PARTITIONIERUNG 24 Abbildung 3.6: Problematica del punto di rottura di geometrie lineari. b) Casi discreti Quando si parla di geometrie diskret si intentionono tutte quelle piccole e grandi geometrie che non fanno parte di un particolare grafo, e per la cui generalizzazione possono risultare necessarie informazioni provenienti dall ambiente a loro vicinodi . non stretta collegate): si rientra, perciò, nella casistica in cui la derivazione può aver bisogno del competitiono spaziale per essere portata a termine correttamente. In figura 2.7 è possibile avere un riscontro visivo immediato: qualora si andassero ad utilizzare partizioni di taglia fissa senza alcun tipo di controllo, si rischierebbe di produrre tre tre geometrie in output (figura 2.7a) 2.7b). Abbildung 3.7: Problematica del partizionamento di blocchi di edifici Spezzare una geometria (o un insieme di geometrie) senza un opportuna gestione comporterebbe la creazione di nuove identità indipendenti, ognuna

26 KAPITEL 3. PARTITIONIERUNG 25 derivata successivamente senza tener conto dell altra. (Abbildung 2.7). Tale problematischa si riferisce, insbesondere modo, alla tipologia di relazioni gerarchiche che possono instaurarsi tra le geometrie a differenti livelli di analisi [16]. In un primo caso si parla di dipendenza dall essere parte di un gruppo, in quanto si rende necessaria l identificazione di gruppi significativi per portare a termine operazioni di generalizzazione che non si riuscirebbe ad eseguire Considerando gli gli oggetti union comenden gli oggetti. Abbildung 3.8: Union: Fonde in unico elemento oggetti che preventemente erano separti o distinti. La scelta degli oggetti da sottoporre a questo tipo di operazione si casa su Considerazioni di tipo semantico. Abbildung 3.9: Typisierung: riduce la complessità di un gruppo di oggetti attraverso la loro eliminazione, riposizionamento, allargamento o aggregazione mantenendo la disposizione tipica di quegli oggetti. Inoltre, lessere parte di un gruppo significativo può influenzare il modo di generalizzare i suoi elementi Più grande).Il secondo caso riguarda lessere contenuto in einem particolare area : Influenza-Geschichte, derivazione Quanto permette di caratterizzare in maniera migliore l importanza degli oggetti. Di conseguenza, è possibile determinare quali oggetti debbano essere rappresentati sulla mappa, così come la loro modalità di rappresentazione Per il processo di partizionamento si è scelto di non prendere in Considerazione la strategia dei tile intelligenti, in cui differenti categorie di geometrie ven-

27 KAPITEL 3. PARTITIONIERUNG 26 Abbildung 3.10: Verschiebung: indica il movimento di un oggetto, mantenendo la forma invariata. Abbildung 3.11: Vergrößerung. indica ein globales Inkrement der Form eines Oggetto. Abbildung 3.12: Übertreibung: definisce un locale Incremento (o diminuzione) di un oggetto, la sua forma si modifica. Si usa quando, a causa della riduzione di scala, elementi Importanti non risultano più leggibili e chiari. gono combinate tra loro per formare partizioni chiuse [5], puntando invece alla creazione di una griglia di tile rettangolari: tale scelta si traduce in una maggiore semplicità nella gestione delle partizioni, andando a ri ri il dataset con geometrie provenienti da partizioni vicine. La fase iniziale di analisi si è quindi spostata sull individuazione di possibili metodology per l integrazione di geometrie di partizionivicine in quella esaminata. Per quanto riguarda i casi continui, si è visto che nei grafi un semplice inseguimento senza alcun controllo non avrebbe portato ad una soluzione ottimale, in quanto nella maggior parte dei casi sarebbe unicatagrave di casi sussiste tra le geometrie della rete fluviale o anche stradale (che si dirama anche per lunghi tratti). In Abbildung 2.13 si osserva che, inseguendo le geometrie senza alcun tipo di controllo a partire dalla partizione in alto a sinistra, si andrebbe a caricare in memoria la quasi totalità delle geometrie del dataset globale (grafo in rosso).

28 KAPITEL 3. PARTITIONIERUNG 27 Abbildung 3.13: Inseguimento senza controllo su grafo: troppe geometrie vengono integrieren nella partizione Ecco, quindi, l importanza di definire delle opportune condizioni di termine (ad esempio la lunghezza del tratto da inseguirere), Datensatz con un numero adeguato di geometrie (in rosso il nuovo grafo, con un numero di geometrie selezionate più consono). Abbildung 3.14: Inseguimento efffettuato fissando delle opportune condizioni di termine. Per i casi discreti, invece, il termine inseguimento sarebbe improprio in quanto una geometrie termina con se stessa, poiché essa non è parte di alcuna struttura (come, ad esempio, avviene per i grafi). Im Questo caso l ampliamento del dataset di lavoro avviene attraverso la creazione di buffer su quegli elementi prossimi al bordo, in modo da integrare source geometrie esterne che presentano una qualche relazione con quelle intern.

29 KAPITEL 3. PARTITIONIERUNG 28 L importanza di fissare delle opportune condizioni di termine si ritrova anche nell analisi dei casi discreti: Continuare ad iterare la creazione di buffer finché non si termina di aggiungere nuovi elementi funzionacsolamente per geometrie quelle di piccole dimensioni (come, ad esempio, per gli edifici figura 2.15). Abbildung 3.15: Tramitpuffer mit Integrazione nel tile di nuove Geometrie. Per geometrie di medie/grandi dimensioni (come, ad esempio, i boschi), si potrebbero avere casi in cui gli elementi aggiunti hanno dimensioni ragguardevoli, facendo perdere il controllo sulla partizione su cui si sta lavorando, pregiilamento processo quindi partion di caricare in memoria dataset di dimensioni ragionevoli. In figura 2.16 si vede chiaramente come, applicando il concetto appena visto di iterazione del buffer degli elementi prossimi al bordo, la partizione in Alto a sinistra si troverebbe a dover gestire geometrie la cui dimensione è piùqu del Abbildung 3.16: Problematica dell integrazione di grandi Geometrie.

30 KAPITEL 3. TEILUNG 29 Ecco che, in caso di grandi geometrie, risulta più efficace spezzare l elemento sul bordo del tile, prevedendo una successiva gestione che garantisca l integrità e unicità del dato finale. Nel prossimo capitolo si andranno und esaminare le methodology che gestiscono il processo di partizionamento del global dataset per i vari algoritmi di generalizzazione presenti nel progetto CARGEN.

31 Kapitel 4 Kachelmanager für kartografische Generalisierung 4.1 Il partitioning nel progetto CARGEN Attualmente, all interno del progetto CARGEN, si fa un uso intenso del DB in cui il dataset initial è memorizzato: lavorando con tabelle lato client si ha la possibilit&avarive di rendere algoritmi indipendenti dal DB utilizzato e più efficiencyi, sfruttando la potenza computazionale del calcolatore (implementando politiche di gestione del rischio di sovraccarico della memoria) ad aver animato Principalmente il lavoro di questa tesi: l unpossibilità, quindi, di Considerare un oggetto da generalizzare come entità unica e scollegata dall ambiente in Cui si Trova [16]. Bedeutende Bedeutung für die Umgebung in der Funktion von Aspetti quali prossimità, distanza oder partecipazione in strutture più grandi. L idea di fondo è che ciascuna partizione ha al suo interno un sottoinsieme di dati sui quali si riesce a portare a termine correttamente la generalizzazione: questa zona match con la parte centrale del tile, che ha a disposizione un informazione spaziidale certa . 30

32 KAPITEL 4. TILE MANAGER FÜR DIE KARTOGRAPHISCHE GENERALISIERUNG31 Abbildung 4.1: L informazione spaziale a disposizione diminuisce man mano che ci si avvicina al bordo della partizione Come si vede dalla figura, man mano che ci ci ci si allontana dal centro della partizione in Quanto un Tile non ha la visibilità di tutto ciò che si Trova esternamente ad esso, rendendo unpossibile die validazione di source geometrie che si trovano in prossimità del Bordo. Integrando il dataset della partizione con alcune geometrie vicine, aumentano le dimensioni della valided area sino a ricoprire interamente la partizione di partenza, che pertanto verrà generalizzata correttamente. Le problematischhe che sorgono con questo approccio riguardano principalmente: 1. la modalità di integrazione di nuove geometrie in una partizione, ossia individuare ove necessario - delle condizioni di termine che permettano all algoritmo di comprendere es genug qualere gare de inform una corretta generalizzazione di ciascuna partizione, e insbesondere modo di quelle geometrie presenti in prossimità dei bordi, mantenendo la Continuità dell informazione spaziale di partizioni adiacenti nella mappa risultante. 2. la successiva gestione delle ambiguità, ossia di quelle geometrie che si trovano a cavallo di più partizioni, e che verrebbero generalizzate più di una volta (presenza di duplicati nel risultato finale) Analisi parti gorza at presentel di carali part operano su: Rete fluviale Edifici Rete stradale Rete ferroviaria Scoline Grandi aree Geometrie puntuali A partire da tali algoritmi si è quindi cercato di trovare una Loro possibile classificazione in funzione delle problematischhe che espon delo delo algoritmi. Dopo aver appurato che le geometrie puntuali non presentano particolari Kritik & agrave, prendendo spunto dalla suddivisione tra casi continui e discreti

33 KAPITEL 4. TILE MANAGER FÜR DIE KARTOGRAPHISCHE GENERALISIERUNG32 osservata nel capitolo precedente (2.3.1 Soluzioni proposte), sono state individuate tre grandi classi in grado di fornire una metodologia generale e adattabile ai vari casi esistenticol grafi geometriee 1) Grafi In questa classe rientrano tutti i casi continui, ossia le generalizzazioni di fiumi, strade e rete ferroviaria. L aggiunta di nuove geometrie nel dataset della partizione deve essere mediata da specifiche condizioni di termine, per evitare l aggiunta di un numero eccessivo di geometrie: il processo di inseguimento, quindi, prevede di fermarsi di la informazione ragi (MSIG). Per quanto riguarda la rete stradale si è visto che una buona estensione può essere rappresentata da un inseguimento di 3km, che è la lunghezza minima per identificare a tratto stradale come tratto autostradale. Con tale estensione, inoltre, si riuscirebbe a risolvere la problematischa degli incroci, i quali hanno la necessità di essere trattati nella loro interezza, come unica entità, concetto che viene minato dalla creazione delle partizioni. Il caso dei fiumi lo si vedrà in particolare nel prossimo capitolo. Le ambiguità che si generano, pertanto, non riguardano tanto la presenza di geometrie duplicate nel risultato finale, bensì casi di situazioni unvollständig: in figura si nota come un tramto di fiume situato tra due partizioni sia semimato-dae che derivano dalla generalizzazione di entrambe le partizioni coinvolte. Abbildung 4.2: Grafi: Geometrie sul bordo, generalizzate da due partizioni adiacenti, si sovrappongono.

34 KAPITEL 4. TILE MANAGER FÜR KARTOGRAPHISCHE GENERALISIERUNG33 2) Piccole-Geometrie Questa classe racchiude und casi discreti di dimensioni ridotte, che riguardano quindi la generalizzazione degli edifici e delle scoline. L integrazione di nuove geometrie nella partizione avviene attraverso a buffer attorno a source presenti in prossimità del bordo, iterandolo fintanto che esistono geometrie toccate. Questo approccio, valido sia per le scoline che per gli edifici, permette di mantenere omogenea la generalizzazione di gruppi di geometrie che presentano una relazione di dipendenza: in questo modo un cluster di scoline del bordo viene generalizzato kommt unica entità. Con questo approccio, le situazioni ambigue saranno effetivamente geometrie complete e, supponendo che l algorithmo sia robusto e deterministico, si dovrà - come si evince dalla figura - prevedere la gestione di duplicati. Abbildung 4.3: Piccole-Geometrie: se presenti sul bordo, generalizzate in predenza da due partizioni adiacenti, vengono azünder 3) Grandi-Geometrie L ultima classe che chiude questa classificazione degli algoritmi di derivazione racchiude al suo interno quei casi dimensionicome di esempio boschi, laghi, etc.). Il problema derivante dalla gestione di questi elementi è rappresentato dal fatto che vi è il rischio di ritrovarsi a gestire geometrie di dimensioni maggiori a quelle del tile stesso. La fase di integrazione, quindi, viene sostituita con quella di divisione di tali elementi, che porterà pertanto a geneare delle situazioni unvollständig in prossimità dei bordi. La Loro gestione si basa quindi sulla fusione

35 KAPITEL 4. TILE MANAGER FÜR DIE KARTOGRAPHISCHE GENERALISIERUNG34 delle geometrie che si ritrovano ad essere komplementari, in quanto parti della stessa grande geometria iniziale. Abbildung 4.4: Grandi-Geometrien: se presenti sul bordo, generalizzate in predenza da due partizioni adiacenti, appartengono alla stessa geometria iniziale 4.2 Tile Manager La strada intrapresa è stata quella di implementare un Tile Manager (TM) per gestire l intero processo diguidionand la generalizzazione di ogni partizione e fornendo alcuni metodi che risolvessero situazioni particolari Gestione delle partizioni TM und algoritmo di generalizzazione dialogano tra loro lungo tutto il processo: 1. il TM genera n partizioni particolari 2. algoritmo esegue una fase di pre-processing in cui identifica quelle particolari situazioni che potrebbero generare dati incompleti in output, richiedendo al TM geometrie aggiuntive secondo la modalità di estensione più adatta (inseguimento, diseguimento, o informazione necessaria per completare la generalizzazione, i nizia a processare il dataset in input (indipendentemente dalle altre partizioni) 4. una volta terminata l esecuzione di ogni algoritmo, il TM controlla i risultati ottenuti eseguendo un intersezione con il rispettivo tile originale: che fanso partonie di geometrie vengono salvate le geometrie che fanno parte di situazioni sul bordo sono rücksichtsvolle Mehrdeutigkeit, und vengono pertanto inserite in einem Eimer pro l integrazione finale. Da sottolineare il fatto che in tale Bucket sono presenti delle situazioni, e non necessariamente geometrie generalizzate (si pensi

36 KAPITEL 4. TILE MANAGER FÜR KARTOGRAPHISCHE GENERALISIERUNG35 al caso di un cluster di scoline, o ad un raggruppamento di edifici): essenziale è quindi mantenere traccia di tutte quelle geometrie collegate a ciascuna situazione. Alcune situazioni, inoltre, potrebbero risiedere sul bordo del dataset global: in questi casi non si può parlare di agrave, pertanto le si andrà a salvare nel risultato finale. Dopo aver processato l intero dataset il TM si ritrova con n partizioni completamente generalizzate, eccezion fatta per tutte quelle situazioni presenti sui bordi che sono finite nel Bucket. Terminata l esecuzione sulle partizioni, quindi, il TM inizia l analisi delle ambiguità presenti nel Bucket: nel caso di grafi coincidono con le efffettive geometrie Derivate, ma in generale possono rappresentare anche più di una Geometria. A seconda del tipo di generalizzazione applicata, il TM lascerà risolvere le ambiguità all algoritmo che le ha generieren (e che pertanto conosce la loro struttura), a seconda che si tratti di grafi, piccoli o grande vrosse geometrie necessario a qualbe ora la possibilità di accedere al resto dei dati già processati e salvati Implementazione In questo lavoro si è cercato, per quanto possibile, di non stravolgere gli algoritmi già già ital già esistenti, ugriendoli esistenti, ugriendoli quasi Metodi aggiuntivi, senza intaccare il processo originale che lavora su unico dataset. Die verschiedenen Klassen der Algorithmen, die die Anweisung für die Teilung nicht erforderlich machen, müssen die Schnittstelle implementieren. Parallelisierung, die alle Methoden für die Bearbeitung der Fliesen benötigt. public void setconnection(connection vconn) Ciascuna partizione lavorerà su tabelle in memoria präsentieren, quindi l Algoritmo dovrà impostare la propria connessione come virtuale, and nonverso il DB. textttpublic String[] getinputtables(), public String[] getoutputtables() L Algoritmo deve quali tabelle notwending, in Quanto il TM deve sapere quali tabelle dovrà tagliare. Allo stesso modo dovrà conoscere il nome delle tabelle in output da salvare e/o successivamente gestire, compresa anche l eventuale tabella delle situazioni (che può matchire, comunque, con l effettiva tabella finale). public void manageboundary(tilemanager tm, String[] tabin, Geometriegrenze)

37 KAPITEL 4. TILE MANAGER FÜR DIE KARTOGRAPHISCHE GENERALISIERUNG36 Questo metodo permette all algoritmo di controllare tutte quelle geometrie (o situazioni) presenti in prossimità del bordo che potrebbero introdurre delle crità, potendo agrave introdurre delle crità, potendo agrave introdurre, introdurre delle crità, potendo agrave introdura il TM per avere dati aggiuntivi che risolvano potenziali situazioni problematischhe, attraverso la modalità più adatta di estensione tra quelle elencate in predenza (inseguimento, buffer statico. ). Al suo interno è prevista un ultteriore chiamata al TM, per controllare che eventuali situazioni problematischhe non risiedano sull effetivo bordo del mondo (ossia dell originale dataset global), fatto che non le etichetterebbe più come problematischhe. public void setboundary(Geometriegrenze) public Geometry getboundary() Methoden, Rispettivierung, Initialisierung und Wiederherstellung der relativen Spaziale-Informationen zum Bordo della Partizione. public void runparallel() E il metodo che lancia l esecuzione dell algoritmo di generalizzazione su una particolare partizione. public void solvpendings(table Bucket, String tablepending, Connection dbconn) Questo metodo gestisce l analisi delle situazioni ambigue presenti nella tabella Bucket, andando di volta in volta a risolvere tali ambiguità scegliendo la modalità siport più di grafo media geometrie per scegliere quali geometrie anhängig scrivere nella tabella finale. public void writeinresult(int id, String tablename, Connection conn) La relazione che sussiste tra una situazione e le geometrie generalize ad essa Associate è presente nella definizione della tabella tabsituationen: questo metodo, perciò, effetua del scrittura sulult DB public void writeinpending(int id, String tablename, Connection conn) Per questo metodo valgono le stesse berücksichtige fatte per il priorte: in questo caso, però, ad essere scripte non sono le geometrie finali bensì quelle in attesa di validazione, che saranno fase finale di analisi delle ambiguità (Geometrie ausstehend). Un ultteriore differenza dal metodo previous deriva dal fatto che la scrittura sul DB viene effettuata in maniera esclusiva, attraverso alcune primitiv di lock-and-wait, a causa del parallelismo che sussiste tra i processi che lavorano sulle partizioni (nela capitolofrontato 5) . L unica struttura dati aggiuntiva che l algoritmo di generalizzazione dovrà implementare sarà quella della tabella delle situazioni (tabsituationen), che

38 KAPITEL 4. TILE MANAGER FÜR KARTOGRAPHISCHE GENERALISIERUNG37 conterrà tre attributi: 1. Id attributo numerico che identifica la particolare situazione 2. Geometry attributo spaziale 3. Zugehöriges Attribut alfanumerico, composto da una id id id idizzano da chele ident tale situazione (nel caso di grafi i campi Id e Related avranno il medesimo valore).Il TM, dal canto suo, espone alcuni metodi per l integrazione di nuove nel dataset initial: public Collection<Feature> followgeom(geometry geom, Geometry border, String table, double maxlength, int buffer, String mask) rappresenta il sottografo che si estende all esterno della partizione corrente a partire dalla geometrie geom, per una lunghezza definita dal parametro maxlength. Es ist möglich, Geschichten mit Parametern zu erweitern, die eventuelle Puffer und Verwendungszwecke verwenden (Rispettivierung mit parametrischen Puffern und Maske) . public Collection<Feature> staticbuffer(Geometriegeometrie, Geometriegrenze, String-Tabelle, int-Puffer, String-Maske) Diese Methode muss eine Sammlung von Feature-Formaten wiedergeben, die die Geometrie-Quelle der Geometrie verwenden. public Collection<Feature> iteratebuffer(geometry geom, Geometry border, String table, int buffer, string mask) A differenza del metodo preview, l aggiunta di Feature viene iterata ciclicamente eseguendo un ultteriore buffer sulle geometrie appena aggiunte, terminando solivamente sonopie ugmente sonopief element da integrar. public boolean isonglobalboundary(geometry geom) Metodo che controlla se a particolare geometria risiede or meno sul bordo del dataset global.

39 Kapitel 5 Alcuni esempi concreti Dopo aver definito a livello macroscopico il processo di partizionamento, illustrando la sequenza di passi eseguiti dal TileManger e dall algoritmo di derivazione, ci si è concentrati nella risoluzione della Rete Fluviale. 5.1 Partizionamento della rete fluviale La generalizzazione della rete fluviale prevede un algoritmo di selezione: ciò significa che, una volta partizionato il dataset, non sarà necessario preservare la dipendenza gerarchica tra Due tratti fluviali (sufluent&a; rende corretto il processo di derivazione di un tratto fluviale è solamente la sua effettiva presenza nella mappa risultante La generalizzazione della rete fluviale fluviali troppo corti Eliminazione dei tratti fluviali per sfoltire aree tropo dicht. Il primo passo non presenta particolari kritischà al partizionamento, in Quanto si occupa solamente della ricostruzione di un fiume a partire dai suoi tratti per conoscerne la direzione. Questa fase è fondamentale in quanto permette di asserire se due sezioni convergono in una o se, al contrario, una singola si dirama in due. 38

40 KAPITEL 5. ALCUNI ESEMPI CONCRETI 39 Il secondo passo, attraverso una procedura di tipo top-down (partendo dalla sorgente sino alla foce), assegna a ciascun tratto delle informazioni aggiuntive utili alla ricostruzione, ossia: S(i) : l ordine di : Strahler dell i-esimo tratto L(i) : la distanza alla sorgente più lontana B(i) : il numero totale di diramazioni. A differenza della predente, questa fase stellen alcune crirità vor, in quanto tali informazioni sono strettamente legate alcontesto spaziale, in quanto fanno riferimento al fiume nella sua interezza. Un suo partizionamento, perciò, andrebbe a falsare questi parametri, portando successivamente ad una ricostruzione dei fiumi potenzialmente differente, e a reflexion errate in riferimento alla lunghezza dei fiumi. La problematische Frage, Tuttavia, Vengono Risolte dalla Preventiva Integrazione del Dataset di Tutte Source Geometrie ottenute attraverso l inseguimento del grafo all esterno del tile. In questo modo i parametri, nonostante risultino differenti da quelli che si avrebbero con unica generalizzazione global, raggiungono la soglia minima per garantire la validazione del processo di selezione. La ricostruzione dei corsi fluviali, quindi, procede senza particolari problemhe: a partire dalla foce con l ordine di Strahler maggiore l algoritmo ricostruisce il fiume sino alla sorgente scegliendo come prossimo da esaminare, uno trato de voltale padri, unto de volta berücksichtigen inerenti ai parametri SLB. Poiché tratti fluviali di lunghezza inferiore alla soglia di 250m vengono scartati, eine Eliminazione di tali geometrie präsentiert sul bordo rischierebbe di introdurre potenziali errori, poiché un fiume potrebbe weiter alle esterno del tile di pitale&gravrav. Inseguire le geometrie sul bordo all esterno pro 250m kommen già detto in prenza risolve la problema di questa fase.

41 KAPITEL 5. ALCUNI ESEMPI CONCRETI 40 Abbildung 5.1: Estensione della partizione tramite inseguimento intelligente L ultima fase, tuttavia, nonostante gli accorgimenti appena citati, presenta ancora una critià Important: per il calcolo della densità, infanoti a di fiumi che permettono di calcolare la percentuale di area in cui essi si sovrappongono. La mancata conoscenza della situazione esterna alla partizione comporta la Creazione di a risultato alterato, poiché non tiene conto degli apporti che dovrebbero arrivare dai tratti di fiumi esterni alla partizione. Nell esempio sottostante, infatti, the buffer del tratto di fiume evidenziato in rosso dovrebbe nella realtà intersecare i buffer azzurri, ma con l introduzione del partizionamento ciò non sarebbe più valido. Abbildung 5.2: Problematica della generalizzazione fluviale: i buffer di fiumi esterni alla partizione non vengono presi in Considerazione In questo caso, perciò, nella fase di integrazione è necessario tener conto anche di questi buffer. L inseguimento, pertanto, non sarà semplice, bensì effet-

42 KAPITEL 5. ALCUNI ESEMPI CONCRETI 41 tuato con l ulteriore ausilio di un buffer, e in egual modo verranno caricate nel dataset anche quelle geometrie esterne il cui buffer interseca il bordo del tile Gestione del processo di partizionamento L approccio di questello lavorstato di implementieren ein Plugin in Open- Jump per potersi ricollegare ai plugin già svilupppati, al fine di avere avere a sofortige riscontro visivo di quanto prodotto dai processi di partizionamento and generalizzazione. Una semplice schermata iniziale richiede all utente di scegliere la tipologia di algoritmo da eseguire, e il numero di partizioni cheintente creare (attraverso la definizione del numero di righe ecolone). La schermata successiva presenta, quindi, il plugin relativo alla generalizzazione scelta (riusabilità), che lancerà l esecuzione del TileManager.

43 KAPITEL 5. ALCUNI ESEMPI CONCRETI 42 Abbildung 5.3: OpenJump: Maschera per la scelta del tipo di algoritmo di generalizzazione, e del numero di partizioni Abbildung 5.4: OpenJump: Maschera dell algoritmo originale di generalizzazione fluviale. Riassumendo i passi dell intero processo:

44 KAPITEL 5. ALCUNI ESEMPI CONCRETI 43 Listing 5.1: I passi del processo associato al TileManager 1) il TM genera n partizioni rettangolari del dataset global e su ciascuna lancia l algoritmo 2) ciascuna partizione esegue una fase di pre - processing perazionie identificare problematische, e sukzessive integrazione del dataset 3) inizio della generalizzazione di ogni partizione 4) al termine dell esecuzione di ciascuna partizione, il TM controlla i risultati ottenuti eseguendo un intersezione con il rispettivo tile originale di ) che tutte geometrie interne ad esso vengono salvate b) le geometrie che fanno parte di situazioni sul bordo sono rücksichtsvolle Mehrdeutigkeit, e vengono pertanto inserite in a eimer per l integrazione finale. 5) una volta che tutte le partizioni hanno portato a termine la loro esecuzione, il TM lascia all algoritmo di generalizzazione l analisi e la risoluzione delle situazioni ambigue. 1) il TM genera n partizioni rettangolari del dataset global, and su ciascuna lancia l algoritmo Attraverso a semplice query spaziale il TM crea n partizioni a partire dal dataset global. In questa fase, inoltre, si crea l informazione relativa al perimetro della partizione, che servirà nelle fasi sukzessive per tutte quelle Berücksichtigung inerenti all geometrie che intersecano il bordo. 2) ciascun partizione esegue una fase di pre-processing per identificare situazioni potenzialmente problematischhe, e successiva integrazione del dataset Ogni algoritmo di generalizzazione, attraverso il metodo manageboundary(tile Manager tm, String[] tabin, Geometry grenz gest potenzialmente kritische zweite modalità più congeniale al tipo di processo. Per quanto riguarda i fiumi, quindi, si opererà un controllo su tutte le geometrie del dataset che intersecano il bordo della partizione, e si andrà ad operare

45 KAPITEL 5. ALCUNI ESEMPI CONCRETI 44 un inseguimento con Puffer. I parametri da utilizzare per tale inseguimento arrivano direttamente dagli studi effettuati per l implementazione dell algoritmo di generalizzazione: P = 120m (valore del buffer attorno ai fiumi per il calcolo della densità) L = 1000m (lunghezza minimalimin per la faseti dicht ) La soglia dei 250m relativa alla fase eliminazione tratti fluviali troppo corti viene scartata in quanto non consentirebbe di gestire l eliminazione per densità. 3) inizio della generalizzazione di ogni partizione Questa fase match con l effetiva esecuzione dell algoritmo di generalizzazione dei fiumi. A differenza del normale processo, ora si tiene conto del nuovo concetto introdotto dalle situazioni, creandone la relativa tabella (tabsituationen vedi paragrafo Implementazione). Ad ogni modo, per questa classe le situazioni coincidono effetivamente con le geometrie generalizzate, quindi ogni ID identificativo della situazione coincidono con l unico id presente nel campo RELATED. E necessario, inoltre, apportare un ultteriore modifica: nel processo originale le geometrie sul bordo vengono automaticamente salvate senza passare per la fasi di pruning, mentre ora si rende necassario estendere i controlli di lunghezza e densità anche elementa. 4) al termine dell esecuzione di ciascuna partizione, il TM controlla i risultati ottenuti eseguendo un intersezione con il rispettivo Tile originale Terminata la generalizzazione della partizione, il TM effettua una query spaziale sulla sulla gorle situllazi fliesen ed inserendo in uneimer quelle che intersercano il bordo, affinché vengano sukzessive analizzate nella fase di integrazione finale. Le geometrie collegate a situazioni ambigue, quindi, vengono anch esse salvate sul DB in un altra tabella (tabpending), in attesa della loro scrittura finale. Rispetto al dataset global questa tabella presenta un numero di geometrie in proporzione nettamente inferiore, pertanto si è deciso di utilizzarne una unica per tutte le partizioni, sfruttando la modalità di scrittura lock-and-wait del indal metodo esposto , String-Tabellenname, Connection conn). In questo modo, in fase di creazione del eimer (che presenta lo stesso schema di tabsituationen) viene garantita la corrispondenza tra id della situazione e id delle geometrie anhängig. 5) una volta che tutte le partizioni hanno portato a termine la loro esecuzione, il TM lascia all algoritmo di generalizzazione l analisi e la risoluzione delle situazioni ambigue

46 KAPITEL 5. ALCUNI ESEMPI CONCRETI 45 Una volta collezionate tutte le situazioni ambigue nella tabella Bucket, il TM crea una nuova istanza dell algoritmo di generalizzazione per lanciare il metodosolvprovendings(table Bucket, String tablening all), che dbconvede all analisie dbconved risoluzione delle ambiguità. Per quanto riguarda i fiumi, essendo le situazioni in realtà delle effetive geometrie generalizzate, tale funzione si riduce alla fusione di quegli elementi presenti nella tabpendings che da un punto di vista spaziale si sovrappongono, andalisiella final de tabcreatnucrivereo element risultati Gli obiettivi prefissati all inizio del lavoro sono stati, in prim ordine, la corretta gestione della memoria al fine di portare a termine correttamente il processo di generalizzazione di a qualsiasi tipo di dataset, with a attenzione particolare per dimensionii quelli. In Secondo luogo, si è cercato di proporre una soluzione che non introductionsse un eccessivo degrado nelle performance del processo di generalizzazione, puntando a preservare se non addirittura migliorare le tempistiche d esecuzione dell intero processo. Per avere un parametero di riferimento si è iseguita la versione dell algoritmo, prendendo come data in input geometrie provenienti da a tabella in our database ORACLE 10g di circa 11.000 elementi. Successivamente sono state effetuate alcune beweisen eseguendo l algoritmo di partizionamento, insbesondere creando 4 tile und generalizzandone solo due di essi contemporaneamente (2 processi attivi in ​​parallelo). Dopo varie beweis si è notato come le performance, con queste impostazioni, degradassero di quasi il 50%: pro questo motivo si è provata una nuova configurazione con un numero di processi attivi pari all effetivo numero di partizioni. Notando un lieve miglioramento, le beweisen si sono via via reifertute Inkrementando di Volta in Volta il numero di partizioni (e di conseguenza il numero di processi attivi in ​​parallelo), evidenziando un alta scalabilità dell o della versione originale (tabella). Questo risultato si spiega alla luce dell iniziale partizionamento del dataset: questa fase risulta essere la più crrita a livello computazionale, in Quanto una query spaziale per ricavare il tile su cui lavorare richiede comunque del tempo. Un alta parallelizzazione di questa fase permette di guadagnare quel tempo che una partizione dovrebbe attendere qualora venisse processata in maniera sequenziale (ossia nel caso in cui il numero di processi sia minore del numero di partizioni), beneficiando della quinizzion di quindi es minoruziondo tempoec Dataset di dimensioni inferiori.

47 KAPITEL 5. ALCUNI ESEMPI CONCRETI 46 Tabelle 5.1: Generalizzazione fluviale: Tabella dei risultati Significa di fatto caricare in memoria l intera mappa: nel caso di dataset di grandi dimensioni, quindi, ciò porterebbe und ein unvermeidlicher Stallo della macchina qualora tali dimensioni superassero quelle della memoria gestita dal calcolatore. 5.2 Partizionamento delle maglie stradali Una menzione a parte merita la trattazione delle maglie stradali. Nonostante non rientri tra i casi di generalizzazione, è comunque uno tra i passi fondamentali di alcuni algoritmi di derivazione, come ad esempio Edifici e Strade. La particolarità di questo algoritmo è che non rientra in nessuno dei casi visti in priornza, in quanto i dati in input appartengono ad una classe differente rispetto ai dati in output: partendo dalle strade si ottengono delle maglie. Il concetto su cui si basa la creazione di maglie su un dataset Preventivamente partizionato, ad ogni modo, risulta simile a quello già elencato per i vari algoritmi di generalizzazione: la parte centrale di una partizione risulta essere di una zuiona essere di le geometrie in der ausgabe, mentre

48 KAPITEL 5. ALCUNI ESEMPI CONCRETI 47 l incertezza aumenta avvicinandosi al bordo (figura). Abbildung 5.5: L informazione spaziale a disposizione diminuisce man mano che ci si avvicina al bordo della partizione Seguendo questo principio, tutte le maglie interne alla partizioni vengono quindi individuate correttamente e con precisione, mente del quelleico quelle che struano quanto perdono l informazione che arriva dalle strade che le compongono ma che si ritrovano all esterno della partizione. Per le maglie non c è modo di conoscere Preventivamente la lunghezza dei tratti stradali che le compongono: per risolvere questa kritikà si è osservato come, in realtà, le maglie che intersecano i bordi delle partizioni de rimangono una volta che si sono tolti quelli appartenenti a maglie già trovate (in figura vengono in rosso le maglie trovate durante la successiva fase d analisi, in cui si eliminano le strade di maglie tro già ). Abbildung 5.6: Maglie stradali: Prima Per riuscire ad implementare questa soluzione, si è leggermente modificato il concetto di situazioni.

49 KAPITEL 5. ALCUNI ESEMPI CONCRETI 48 Abbildung 5.7: Maglie stradali: Dopo La tabsituationen, in questo caso, contiene sia le maglie calcolate all interno della partizione, sia le strade che rimangono dopo aver eliminato tutti i tratti stradali che complie. Il metodo writeinresult(int id, String tablename, Connection conn), in questo caso, controlla che la geometria da salvare sia un Poligono e non una LineString, poiché in quest ultimo caso si tratta di una strada utile nella successiva fase di risoluzione dei ausstehend, e quindi da salvare nella tabpendings. Il metodo writeinpending(int id, String tablename, Connection conn), invece, scrive com è giusto che sia i tratti stradali nella tabpendings. In questo modo, il solvpendings si ritrova a dover eseguire nuovamente l algoritmo di creazione delle maglie sul dataset format dale rimanenti strade, salvando quindi solamente quelle presenti sul bordi della griglia erstellen dal TM all inamentizio del partiziono del inozio.