Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Geodaten mit OracleGeodaten mit Oracle LocatorLocator ((SpatialSpatial) in der Praxis ) in der Praxis am Beispiel der Wismut GmbHam Beispiel der Wismut GmbH
Von der Erzeugung Von der Erzeugung üüber die Verarbeitung bis zur Auswertungber die Verarbeitung bis zur Auswertung
Dipl.-Ing. (BA) Mathias Fritz
WISMUT GmbH Abteilung Datenbanken/Modellierung
Jagdschänkenstraße 2909117 Chemnitz
Tel. 0371 / 8120 446WISMUT
WISMUT
GliederungGliederung
1. Vorstellung der Wismut 2. Allgemeine Voraussetzung3. Wie kommen die Geodaten in die Datenbank?4. Beispiele für die Nutzung in Fachanwendungen5. Probleme bei Nutzung von SDO_GEOMETRY aus
Entwicklersicht6. Nahtlose Nutzung von Geodaten in Integrationslösung
ALWIS
WISMUT
Das Unternehmen Wismut GmbHDas Unternehmen Wismut GmbH
AB
Pöhla
Aue
Ronneburg
CrossenSeelingstädt
AB
THÜRINGEN SACHSENKönigstein
DresdenGittersee
Unternehmensleitung
Die Wismut GmbH saniert die Hinterlassenschaften des Uranerzbergbaus in Sachsen und Thüringen an den
dargestellten Standorten
WISMUT
Das Unternehmen Wismut GmbHDas Unternehmen Wismut GmbHMehr als 2000 Sanierungsobjekte aller Art (Halden, Schächte, Betriebsflächen, Absetzanlagen,...)Ca. 6000 Genehmigungen zu 4000 Vorgängen mit rund 10000 Ausgangsschreiben und 7400 Dokumenten zu Nebenbestimmungen Messpunkte / -werte:– Ca. 2900 Oberflächenwasser-MPe, 3300 Grundwasser-MPe,
31000 Boden-MPe, 1200 Luft-MPe, 10 Wetterstationen– 2003 ca. 49300 Proben mit ca. 615000 Messergebnissen
Tagerisswerk und georeferenzierte Luftbilder an allen Standorten (jährlich aktualisiert)12600 Bilder für alle Sanierungsobjekte von 1964 – jetztMehr als 5300 Flurstücke mit Geometriedaten Ca. 6700 Ingenieurleistungen (Studien)
Weiterhin kaufmännische Daten und Informationen (SAP)
WISMUT
Technische Vorrausetzungen für NutzungTechnische Vorrausetzungen für Nutzung
Oracle 9i Standard Edition:– Oracle Locator als Feature enthalten
Oracle 9i Enterprise Edition:– Oracle Spatial als lizenzpflichtige Option
Unterscheidung:– Locator liefert:
• Datentyp, Indexes• Funktionen zur Selektion, „Verschneidung“
– Spatial zusätzlich z.B.: • Erweiterte Funktionen (die „neue“ Geometrien erzeugen)• Koordinaten Transformation• LRS, GeoCoding, 10g: GeoRaster
WISMUT
Was sind Geometrien?Was sind Geometrien?
WISMUT
SDOSDO--GeometryGeometry DatentypDatentypTYPE SDO_GEOMETRY AS OBJECT (
SDO_GTYPE NUMBER,SDO_SRID NUMBER,SDO_POINT SDO_POINT_TYPE,SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,SDO_ORDINATES SDO_ORDINATE_ARRAY,MEMBER FUNCTION GET_GTYPERETURN NUMBER DETERMINISTIC,MEMBER FUNCTION GET_DIMSRETURN NUMBER DETERMINISTIC,MEMBER FUNCTION GET_LRS_DIMRETURN NUMBER DETERMINISTIC);
WISMUT
Schritte zum Anlegen von SDOSchritte zum Anlegen von SDO--GeometryGeometry
Tabelle mit SDO Spalte erzeugen / AnfügenCREATE TABLE PPV (
PPV_NR NUMBER(7),GEOM MDSYS.SDO_GEOMETRY
);
Metadaten anlegenINSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO)
VALUES ('PPV', 'GEOM',MDSYS.SDO_DIM_ARRAY
(MDSYS.SDO_DIM_ELEMENT('X', 4500000, 5591000, 0.0005),MDSYS.SDO_DIM_ELEMENT('Y', 5430000, 5655000, 0.0005)
));
Spatial Index erzeugenCREATE INDEX IX_PPV_GEOM ON PPV(GEOM)INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=2');
WISMUT
Wie kommen Geodaten in die Datenbank?Wie kommen Geodaten in die Datenbank?
SDO_GEOM ETRY
Eingabe
Befehlszeilenprogramme:SHP2SDO + SQLLDR
ArcINFO über SDE(als SDO_GEOMETRY)
Cardo GeoEdit(Webbasiert)
Autodesk CAD Map
Manuelle Koordinateneingabe
Ein-/Ausgabe
Ein-/Ausgabe
Eingabe
Ein-/Ausgabe Optionale Wandlung3D -> 2D Geom Eingabe
DXF-Convert(Beibehaltung Layer,Blöcke...)
AvAlk-Converter Eingabe
Eingabe
ArcView 3.x über Erweiterung Ein-/Ausgabe
WISMUT
Wie kommen Geodaten in die Datenbank?Wie kommen Geodaten in die Datenbank?
Umwelt-datenbank
Messwerte Wasser,Luft,Boden, ODL
Geotechnik-datenbank
Bohrlochdaten, RKS etc.
Flurstücks-datenbank
Manuell (RW/HW)
ALK
GIS-Daten im Filesystem (Shape,
dxf)
Textdokumente im Filesystem
Risswerk
Sanierungs-objekte
Bild-Datenbank
Flächen-Datenbank
DXF-Converter
Acad Map
ArcView 3.x
Genehmigungs-datenbank
AvAlk-Converter
WISMUT
Wie kommen Geometrien in die Datenbank?Wie kommen Geometrien in die Datenbank?
Manuelle Eingabe (E) + Keine spezielle Software nötig (z.B. Webformular)- Wenig komfortabel
ArcView 3.x Erweiterung (E/A)+ Kein SDE notwendig- Spezialentwicklung; nicht universell
ArcInfo (SDE) (E/A)+ Einfache Nutzung in ESRI-Welt- Kompatibilität beim Zugriff auf „nicht-SDE-Layern“ in Oracle
ACAD Map (E/A)+ Einfache Nutzung aus CAD-Programm- Speichert immer 3D-Geometrie
WISMUT
Wie kommen Geometrien in die Datenbank?Wie kommen Geometrien in die Datenbank?
AvAlk-Converter (E)+ leistungsfähig
DXF-Converter (E)+ Beim Import Zerlegung von Blöcken zu Einzelelementen+ Vereinfachung der Geometrie-Typen+ Über Exportserver ist Original DXF wieder herstellbar
SHP2SDO (E)+ Schnelles Laden von vielen Geometrien per SQLLDR - nur Kommandozeile- Konvertierung des SDO_GTYPE (SDO_MIGRATE.TO_CURRENT)
Cardo-GeoEdit (E/A)+ Keine Software auf Client, nur Internet Explorer+ weitere Datenquellen (z.B. PostGIS)+ flexible Bearbeitungsfunktionen
WISMUT
Beispiele für die Nutzung in FachanwendungenBeispiele für die Nutzung in Fachanwendungen-- Beispiel 1: Einfache Abfrage: "Welche Messpunkte liegen auf der Fläche"-- 0.2 sec; 549 DatensätzeSELECT mpkt, f, rw, hw
FROM v_udb_gesamt a, geodaten bWHERE b.ppv_nr = 2040090AND sdo_relate (a.geom, b.geom,
'MASK=ANYINTERACT QUERYTYPE=WINDOW') ='TRUE'ORDER BY mpkt;
-- Beispiel 2: Einfache Abfrage: -- "Welche Messpunkte liegen im Umkreis der Fläche"-- 0.3 sec; 698 DatensätzeSELECT mpkt, f, rw, hw
FROM v_udb_gesamt a, geodaten bWHERE b.ppv_nr = 2040090AND sdo_within_distance (a.geom, b.geom, 'DISTANCE=50') = 'TRUE'
ORDER BY mpkt;
-- Beispiel 3: Einfache Abfrage mit Aggregierung-- 0.2 sec; 6 DatensätzeSELECT a.f, COUNT (*) AS anzahl
FROM v_udb_gesamt a, geodaten bWHERE b.ppv_nr = 2040090AND sdo_relate (a.geom, b.geom,
'MASK=ANYINTERACT QUERYTYPE=WINDOW') ='TRUE'GROUP BY fORDER BY f, 2;
WISMUT
Beispiele für die Nutzung in FachanwendungenBeispiele für die Nutzung in Fachanwendungen-- Beispiel 4: Histogramm von verteilten Ortdosisleistungen auf einer Fläche *-- 0.2 sec; 32 Datensätzeselect /*+ORDERED*/ distinct xaxis.odl,(vwn.anz/155)*100 as vwn_anz ,(nwn.anz/157)*100 as nwn_anz from (
select odl,id fromflaechen_adm.wnf_geom w,udbguru.odl_vwn_g owhere w.objectid=143 and sdo_relate( o.geom, w.geom,'MASK=ANYINTERACT QUERYTYPE=WINDOW')='TRUE'unionselect odl,id fromflaechen_adm.wnf_geom w,udbguru.odl_nwn_g owhere w.objectid=143 and sdo_relate( o.geom, w.geom,'MASK=ANYINTERACT QUERYTYPE=WINDOW')='TRUE'
) xaxis,(
select odl,count(*) as anz fromflaechen_adm.wnf_geom w,udbguru.odl_vwn_g owhere w.objectid=143 and sdo_relate( o.geom, w.geom,'MASK=ANYINTERACT QUERYTYPE=WINDOW')='TRUE'group by odl
) vwn,(
select odl,count(*) as anz fromflaechen_adm.wnf_geom w,udbguru.odl_nwn_g owhere w.objectid=143 and sdo_relate( o.geom, w.geom,'MASK=ANYINTERACT QUERYTYPE=WINDOW')='TRUE'group by odl
) nwn where
xaxis.odl=vwn.odl(+) andxaxis.odl=nwn.odl(+) order by 1
* Etwas umständlich, umgeht aber einen ORA-600 Fehler bei Full-Outer-Join mit Geom-Tabellen
WISMUT
Beispiele für die Nutzung in FachanwendungenBeispiele für die Nutzung in Fachanwendungen-- Beispiel 5: Nächster Nachbar (Nearest Neighbor )-- 0.2 sec ; 50 Datensätze SELECT b.mpnr as nn_mpnr, b.mpkt as nn_mpkt, round(sdo_nn_distance(1) ,2) dist
FROMv_udb_gesamt b
WHEREsdo_nn ( b.geom,
(select geom from v_udb_gesamt where mpnr=26418),'SDO_NUM_RES=50',1) = 'TRUE'
ORDER BY dist;
-- Beispiel 5: Nächster Nachbar (Nearest Neighbor )-- 0.2 sec ; 5 Datensätze SELECT b.mpnr as nn_mpnr, b.mpkt as nn_mpkt, round(sdo_nn_distance(1) ,2) dist
FROM(select * from v_udb_gesamt where f='GW') b
WHEREsdo_nn ( b.geom,
(select geom from v_udb_gesamt where mpnr=26418),'SDO_NUM_RES=50',1) = 'TRUE'
ORDER BY dist;
Aber:
WISMUT
Probleme bei der Nutzung von SDO_GEOMETRYProbleme bei der Nutzung von SDO_GEOMETRY
(Erfahrungen basieren auf Oracle 9i R2)
1. Abfrage von Windows Clients über ODBC/OLEDB– Selektierte SDO_GEOMETRY Spalte bringt OraOleDB Treiber
zum Absturz (select * from table)– Microsoft Provider liefert Fehlermeldung; unterstützt aber viele
andere Funktionen nicht– Funktionierend: OO4O (Oracle Objects 4 OLE)
beim Erweitern von bestehenden Tabellen um SDO-Spalten müssen Clientzugriffswege beachtet werden
WISMUT
Probleme bei der Nutzung von SDO_GEOMETRYProbleme bei der Nutzung von SDO_GEOMETRY
2. Problem SRID (Spatial Reference, Projektion)– In einer Tabelle können nur gleiche SRID‘s genutzt werden
• Wismut arbeitet in GK4 + GK5 würde doppelte Tabellen bedeuten
• SDO_CS zur Transformation der Koordinaten ist Bestandteil Spatial (eigene Lizenz, Enterprise Edition)
– SDE und AcadMap speichern Geometrien ohne SRID– Verschneidung (SDO_RELATE) funktioniert nur mit gleichen
(oder kompatiblen) SRID‘s • wünschenswert: Option, SRID zu ignorieren
vor Aufbau einer Geodatenbank sollte man sich generell festlegen, ob SRID‘s genutzt werden
WISMUT
Probleme bei der Nutzung von SDO_GEOMETRYProbleme bei der Nutzung von SDO_GEOMETRY
3. Verschiedene Layer-Dimensionen– Fehlermeldung bei Verschneidung von 3D und 2D
• Nur AcadMap speichert immer 3D ab– Änderung der Anordnung der Tabellen in „from“ und
„sdo_relate“ als Workaround, • dadurch aber schlechte Performance möglich
4. Verschneidung über DB-Link– Nicht sehr performant, da Domain Indexes (Spatial Index)
nicht über Instanzen wirken– Erster Parameter beim SDO_RELATE muss Index haben– Möglich, wenn Menge der „remote“-Geometrien klein ist, d.h.
nur als Abfragekriterium dient
WISMUT
Probleme bei der Nutzung von SDO_GEOMETRYProbleme bei der Nutzung von SDO_GEOMETRY
5. MERGE-Befehl– „MERGE“ = INSERT+UPDATE– Funktioniert nicht mit aktivem Domain Index – Drop und Create des Index dauert oft sehr lange
WISMUT
Struktur von ALWIS auf Basis von Struktur von ALWIS auf Basis von cardocardo
Windows-Server zur Kartenaufbereitung und Informationsausgabe
Oracle 9i
HPUX-Server Datenhaltung und Verschneidung
Webserver
(Win2000, IIS)
MapServer
(GIS-Funktionen)
?
??
?
!!
!
!
SDE
ObjekteRisswerk,Flurstücke
Oracle 9i
Fremdsysteme, z.B. SAP
Filesystem:•Geometrien (Shape, dxf)•Textdokumente•Bilder
Intranet
WISMUT
LiveLive--DemonstrationDemonstration
Workflow in WNF-Anwendung mit Geometrie VerarbeitungBergschadenkundliche Analyse zur Beurteilung von Gefährdung durch BergbauHoch qualitative PDF-Ausdrucke bis A0Räumliche Interpolation von Messwerten und Grundwasserständen
WISMUT
EndeEnde
Danke für Ihre Aufmerksamkeit!