Oracle 10 g Geo Raster Haitham Zyadeh Senior

  • Slides: 31
Download presentation

Oracle 10 g Geo. Raster Haitham Zyadeh Senior Sales Consultant Server Technology Competence Center

Oracle 10 g Geo. Raster Haitham Zyadeh Senior Sales Consultant Server Technology Competence Center Düsseldorf Oracle Deutschland Gmb. H

Spatial in Oracle 10 g Ÿ Topology Data Model – Unterstützung für topologische Beziehungen

Spatial in Oracle 10 g Ÿ Topology Data Model – Unterstützung für topologische Beziehungen (Verwaltung von Flächen und Teilgebieten) Ÿ Network Data Model – Speicherung von Netzwerken (Graphen) Ÿ Geo. Raster Data Model – Verwaltung von Rasterdaten Ÿ Geocoding – Funktionen zur Umwandlung von Adressen in Koordinaten Ÿ Spatial Analytic Functions – Erzeugung von räumlichen Beziehungen

Rasterdaten vs. Vektordaten Vektorkoordinaten -74. 1651749, 41. 339141, -73. 4284481, 40. 678193, -72. 9792214,

Rasterdaten vs. Vektordaten Vektorkoordinaten -74. 1651749, 41. 339141, -73. 4284481, 40. 678193, -72. 9792214, 41. 686228 -74. 1651749, 41. 339141, -74. 1651749, 39. 559004, -72. 9792214, 41. 339141 Rasterdaten

Rasterdaten vs. Vektordaten Ÿ Vektordaten – – – Präzise Repräsentation von Punkten, Linien oder

Rasterdaten vs. Vektordaten Ÿ Vektordaten – – – Präzise Repräsentation von Punkten, Linien oder Polygonen Kompakte Form -> effiziente Speicherung Vorteile Ÿ Rendering von Land-/Straßenkarten Ÿ Verbindungen bzw. Zusammenhänge zwischen Objekten Ÿ Rasterdaten: – – – Viele Zellen approximieren Punkte, Linien oder Polygone Speicherung der vollen Matrix -> hoher Platzbedarf Vorteile Ÿ Leicht zu zeichnen, da pixelorientiert Ÿ Darstellung vieler Details (Satellitenfotos)

Rasterdaten in Oracle 10 g Ÿ Oracle 10 g Geo. Raster Ÿ Neue Datentypen

Rasterdaten in Oracle 10 g Ÿ Oracle 10 g Geo. Raster Ÿ Neue Datentypen – – SDO_GEORASTER SDO_RASTER Ÿ Geokoordinaten – Zusammenhang zwischen Rasterdaten und Geokoordinaten in der Datenbank Ÿ Funktionalitäten – – – Importieren / Laden von Rasterdaten Bearbeiten von Rasterdaten Visualisierung

Speicherung der Rasterdaten Ÿ Datenmodell GEORASTER-Tabelle (Metadaten) Raster SDO_GEORASTER Rasterdaten-Tabelle (Daten) Rasterblock SDO_RASTER

Speicherung der Rasterdaten Ÿ Datenmodell GEORASTER-Tabelle (Metadaten) Raster SDO_GEORASTER Rasterdaten-Tabelle (Daten) Rasterblock SDO_RASTER

Speicherung der Rasterdaten Ÿ Georaster-Tabelle (SDO_GEORASTER) – – Eine Zeile pro Raster Metadaten Ÿ

Speicherung der Rasterdaten Ÿ Georaster-Tabelle (SDO_GEORASTER) – – Eine Zeile pro Raster Metadaten Ÿ "Spatialextent" Ÿ Auslösungs-Pyramiden Ÿ Name der Rasterdatentabelle Raster SDO_GEORASTER Ÿ Rasterdatentabelle (SDO_RASTER) – – – Eine Zeile pro Rasterblock -> mehrere Zeilen pro Raster Inhalt: Rasterdatenblöcke als BLOB Achtung: Datenkompression Ÿ Verfügbar erst mit 10 g Release 2 Rasterblock SDO_RASTER

Georaster Datentypen SQL> desc SDO_GEORASTER Name Null? -------------RASTERTYPE SPATIALEXTENT RASTERDATATABLE RASTERID METADATA Type ---------NUMBER

Georaster Datentypen SQL> desc SDO_GEORASTER Name Null? -------------RASTERTYPE SPATIALEXTENT RASTERDATATABLE RASTERID METADATA Type ---------NUMBER MDSYS. SDO_GEOMETRY VARCHAR 2(32) NUMBER SYS. XMLTYPE SQL> desc SDO_RASTER Name Null? -------------RASTERID PYRAMIDLEVEL BANDBLOCKNUMBER ROWBLOCKNUMBER COLUMNBLOCKNUMBER BLOCKMBR RASTERBLOCK Type ---------NUMBER NUMBER MDSYS. SDO_GEOMETRY BLOB

Speicherung der Rasterdaten Ÿ Datenmodell GEORASTER-Tabelle (Metadaten) Raster SDO_GEORASTER Weitere Informationen VAT, GCP, etc.

Speicherung der Rasterdaten Ÿ Datenmodell GEORASTER-Tabelle (Metadaten) Raster SDO_GEORASTER Weitere Informationen VAT, GCP, etc. Rasterdaten-Tabelle (Daten) Rasterblock SDO_RASTER BLOBs . . .

Speicherung der Rasterdaten Blocking Ÿ Rasterdateien können extrem groß werden Ÿ Effizientere Speicherung in

Speicherung der Rasterdaten Blocking Ÿ Rasterdateien können extrem groß werden Ÿ Effizientere Speicherung in kleineren Blöcken Ÿ Geo. Raster erlaubt das "Blocking" anhand … – "Bands", "Zeilen", "Spalten" Ÿ Beispiel – – Vor dem Laden: 1 (große) Rasterdatei Nach dem Laden: 4 (kleinere) Blöcke Blocking "4 x 4"

Speicherung der Rasterdaten Blocking Ÿ Erzeugung von 4 Blöcken beim Laden des Rasters GEORASTER-Tabelle

Speicherung der Rasterdaten Blocking Ÿ Erzeugung von 4 Blöcken beim Laden des Rasters GEORASTER-Tabelle (Metadaten) Raster SDO_GEORASTER Rasterdaten-Tabelle (Daten) Rasterblock SDO_RASTER

Georeferenzierung Raster "Spatial-Extent": Zuordnung des Rasters zu einem Koordinatensystem X Y Geo. Raster Spatial

Georeferenzierung Raster "Spatial-Extent": Zuordnung des Rasters zu einem Koordinatensystem X Y Geo. Raster Spatial Reference System (SRS) Breitengrade National Park Restaurant Längengrade

Georeferenzierung "Spatialextent" Ÿ Spatial Extent zu einem Raster abrufen Ÿ Koordinatensystem: GK Zone 3

Georeferenzierung "Spatialextent" Ÿ Spatial Extent zu einem Raster abrufen Ÿ Koordinatensystem: GK Zone 3 (DHDN) select e. georaster. spatialextent from georaster_table e where georid=1; GEORASTER. SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT( ---------------------------SDO_GEOMETRY(2003, 82027, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(3699985. 79, 5969990. 98, 36 99985. 79, 5929975. 35, 3699985. 79, 5889990. 98, 3740001. 4 2, 5889990. 98, 3779985. 79, 5929 975. 35, 3779985. 79, 5969990. 98, 3740001. 42, 5969990. 98, 3699985. 79, 5969990. 98))

Auflösungspyramiden Level 2 Ÿ Vorberechnung von Ansichten der Rasterdaten mit geringerer Auflösung Ÿ Höhere

Auflösungspyramiden Level 2 Ÿ Vorberechnung von Ansichten der Rasterdaten mit geringerer Auflösung Ÿ Höhere "Pyramidenebene" bedeutet geringere Auflösung Level 0 sdo_geor. generate. Pyramid( georaster => gr, pyramidparams => 'rlevel=2, resampling=NN' ); Level 1 Ÿ Ebene 0: Originaldaten

Wertetabelle Ÿ Zuordnung der Zahlenwerte im Raster zu Attributen Ÿ Normale relationale Tabelle sdo_geor.

Wertetabelle Ÿ Zuordnung der Zahlenwerte im Raster zu Attributen Ÿ Normale relationale Tabelle sdo_geor. set. VAT( georaster => gr, layernumber => 0, vatname => 'MY_VAT_TAB' ); Wertetabelle (Value Attribute Table) WERT 1 2 3 0 BEDEUTUNG niedrige Verschmutzung mittlere Verschmutzung hohe Verschmutzung keine Daten Rasterdaten … 2 2 1 1 1 2 1 3 2 2 2 3 1 0 3 3 1 2 3 3 3 1 1 2 2 0 3 3 3 1 1 1 0 0 0 2 1 1 0 0 2 2 1 1 1 0 0 0

Farbtabelle Ÿ Falschfarbendarstellung Ÿ Farbzuordnung für jeden Wert im Raster Ÿ Angabe von RGB-Werten

Farbtabelle Ÿ Falschfarbendarstellung Ÿ Farbzuordnung für jeden Wert im Raster Ÿ Angabe von RGB-Werten sdo_geor. set. Color. Map. Table( georaster => gr, layernumber => 0, tablename => 'MY_COLOR_TAB' ); CELL VALUE 1 2 Red 255 82 Green 255 123 3 0 142 0 230 0 Blue 0 67 98 0

Falschfarbendarstellung am Beispiel

Falschfarbendarstellung am Beispiel

Falschfarbendarstellung am Beispiel Darstellen von Zellwerten und Ändern der RGB-Farben je Layer

Falschfarbendarstellung am Beispiel Darstellen von Zellwerten und Ändern der RGB-Farben je Layer

Visualisierung der Rasterdaten Oracle. AS Map. Viewer

Visualisierung der Rasterdaten Oracle. AS Map. Viewer

Geo. Raster Setup - Syntaxbeispiele Ÿ 1. Schritt: Anlegen der Rastertabelle CREATE TABLE MY_RASTER_TAB(

Geo. Raster Setup - Syntaxbeispiele Ÿ 1. Schritt: Anlegen der Rastertabelle CREATE TABLE MY_RASTER_TAB( ID NUMBER PRIMARY KEY, SOURCE_FILE VARCHAR 2(80), DESCRIPTION VARCHAR 2(32), GEORASTER SDO_GEORASTER ) call SDO_GEOR_UTL. create. DMLTrigger('MY_RASTER_TAB', 'GEORASTER') Ÿ 2. Schritt: Anlegen der Rasterdatentabelle CREATE TABLE RDT_1 OF SDO_RASTER( PRIMARY KEY ( RASTERID, PYRAMIDLEVEL, BANDBLOCKNUMBER, ROWBLOCKNUMBER, COLUMNBLOCKNUMBER ) ) LOB(RASTERBLOCK) STORE AS (NOCACHE NOLOGGING);

Geo. Raster Setup - Syntaxbeispiele Ÿ 3. Schritt: Initialisierung der Raster-Objekte – Erzeugung "leerer"

Geo. Raster Setup - Syntaxbeispiele Ÿ 3. Schritt: Initialisierung der Raster-Objekte – Erzeugung "leerer" Rasterobjekte INSERT INTO MY_RASTER_TAB (ID, GEORASTER) VALUES (1, SDO_GEOR. INIT('RDT_1', 1)); : : INSERT INTO MY_RASTER_TAB (ID, GEORASTER) VALUES (4, SDO_GEOR. INIT('RDT_1', 100));

Rasterdaten laden. . . Ÿ Unterstützte Formate – – – TIFF mit "World File"

Rasterdaten laden. . . Ÿ Unterstützte Formate – – – TIFF mit "World File" JPEG GIF BMP PNG Ÿ Unterstützte Wege – – – Außerhalb der Datenbank Ÿ Geo. Raster. Loader (Java-Werkzeug) In der Datenbank: Ÿ PL/SQL Paket SDO_GEOR 3 rd-Party Werkzeuge Ÿ Beispiel: PCI Geomatics

Geo. Raster Setup – Syntaxbeispiele Geo. Raster. Loader Ÿ Beispielaufruf von der Kommandozeile java

Geo. Raster Setup – Syntaxbeispiele Geo. Raster. Loader Ÿ Beispielaufruf von der Kommandozeile java -Xms 900 M -Xmx 900 M Geo. Raster. Loader 127. 0. 0. 1 orcl 101 1521 georaster thin 32 T JDBC connection parameters my_raster_tab georaster Table and column "blocking=true, blocksize=(512, 1)" Raster blocking ". . /images/image 01. tif" Source file 1 "RDT_1" Raster id and data table

Geo. Raster Setup – Syntaxbeispiele Laden mit PL/SQL Paket SDO_GEOR declare g sdo_georaster; begin

Geo. Raster Setup – Syntaxbeispiele Laden mit PL/SQL Paket SDO_GEOR declare g sdo_georaster; begin select georaster into g from my_raster_tab where id = 1 for update; sdo_geor. import. From( georaster => g, storageparam => 'blocksize=(512, 512)', r_sourceformat => 'TIFF', r_sourcetype => 'file', r_sourcename => '. . /images/image 01. tif', h_sourceformat => 'WORLDFILE', h_sourcetype => 'file', h_sourcename => '. . /images/image 01. tfw', ); update my_raster_tab set georaster = g where id = 1; end; Raster sperren Importieren Update Raster

Geo. Raster Setup – Syntaxbeispiele Auflösungspyramide generieren declare geor sdo_georaster; begin select georaster into

Geo. Raster Setup – Syntaxbeispiele Auflösungspyramide generieren declare geor sdo_georaster; begin select georaster into geor from my_raster_tab Raster sperren where id = 1 for update; sdo_geor. generate. Pyramid( georaster => geor, pyramidparams => 'rlevel=4' ); update my_raster_tab set georaster = geor where id = 1; end; Auflösungspyramide generieren Update Raster

Geo. Raster Setup – Syntaxbeispiele Teile aus dem Raster extrahieren … Ÿ PL/SQL Prozedur

Geo. Raster Setup – Syntaxbeispiele Teile aus dem Raster extrahieren … Ÿ PL/SQL Prozedur Ÿ BLOB als OUT-Parameter sdo_geor. get. Raster. Subset( georaster => g, pyramidlevel => 0, layernumbers => '1 -3', window => sdo_geometry( 2003, 8307, null, sdo_elem_info_array(1, 1003, 3), sdo_ordinate_array( -4. 8095747, 50. 3160369, -3. 4189001, 50. 7910561 ) ), raster. Blob => b );

Geo. Raster Setup – Syntaxbeispiele Teile aus dem Raster extrahieren … java -Xms 900

Geo. Raster Setup – Syntaxbeispiele Teile aus dem Raster extrahieren … java -Xms 900 M -Xmx 900 M Geo. Raster. Exporter 127. 0. 0. 1 orcl 101 1521 georaster thin 32 T JDBC Parameter my_raster_tab georaster Tabelle "1, RDT_1" Raster ID "JPEG" Ausgabeformat raster_1_p 0_0_0. 500_500 Dateiname "p. Level=0, crop. Area=(0, 0, 500)" Formatierung

Geo. Raster Setup – Syntaxbeispiele Fazit Ÿ Oracle 10 g unterstützt Raster- und Vektordaten

Geo. Raster Setup – Syntaxbeispiele Fazit Ÿ Oracle 10 g unterstützt Raster- und Vektordaten – – – – Laden Indizieren (Spatial Indizes) Georeferenzierung Auflösungspyramiden Bearbeiten Visualisieren (Map. Viewer) Exportieren Ÿ Anwendungsintegration – Oracle HTML DB als Beispiel

Q& A Q U E S T I O N S A N S

Q& A Q U E S T I O N S A N S W E R S