460 likes | 608 Views
Introduktion Spatiala objekt i Autodesk Topobase 2. Peter Arninger. Introduktion Spatiala objekt i Autodesk Topobase 2. Agenda. Vad är Oracle Spatial? Varför? Kommande versioner av Autodesk Topobase Hur fungerar det i Autodesk Topobase 2 Tekniska förutsättningar Oracle Spatial–komponenter
E N D
Introduktion Spatiala objekt i Autodesk Topobase 2 Peter Arninger
Introduktion Spatiala objekt i Autodesk Topobase 2 Agenda • Vad är Oracle Spatial? Varför? Kommande versioner av Autodesk Topobase • Hur fungerar det i Autodesk Topobase 2 • Tekniska förutsättningar • Oracle Spatial–komponenter • Skapa spatiala defintioner med hjälp av Autodesk Topobase 2 • Skriva spatiala objekt med hjälp av Autodesk Topobase 2 • Validering av spatiala obejt • Felsökning och rättning • Triggrar i Autodesk Topobase 2 • Referenser • TB2Metadata • Använda spatiala objekt tillsammans med andra verktyg • Arbetssätt • Diskussion och frågor
Vad är Oracle Spatial? WikipediaOracle Spatial forms a separately-licensed option component of the Oracle Database. Oracle Spatial aids users in managing geographic and location-data in a native type within an Oracle database, potentially supporting a wide range of applications — from automated mapping/facilities-management and geographic information systems (GIS), to wireless location services and location-enabled e-business.
Vad är Oracle Spatial? OracleOracle Spatial (formerly called SDO and before that MultiDimension), provides a way to store and retrieve multi-dimensional data in Oracle. It is primarily used for Geographical Information Systems to implement geo-reference and solve queries such as how is something related to a specific location. With this, representation of features (point, line or polygon) are stored in a single field within a table. A single Helical Hyperspatial code (HHCODE) is used to store the Euclidean spatial dimensions and additional data dimensional include depth, elevation, or time. The types of multidimensional data are restricted only in that they must be a numeric data type and have a bounded range. The HHCODE is generated through the recursive decomposition of dimensional space. Attribute data for specific multidimensional data is stored within columns of a table in the database. Access to the data for processing and manipulation is accomplished through extensions to Oracle PL/SQL.
Vad är Oracle Spatial? Annan definitionOracle Spatial består av en mängd funktioner och procedurer som är inbyggda i databasen vilket möjliggör att spatiala (geografiska) data kan lagras, läsas och analyseras.
Varför? Varför?Standardiserat sätt att lagra geometrier så att flera verktyg kan komma åt det spatiala datatLeverantörer anpassar sig ”standarden”Läsa och sätta samman spatiala data från olika källor (verksamhetssystem)Senare Topobase-versioner använder enbart geometrier i Oracle Spatial
Kommande versioner av Autodesk Topobase Kommande versioner av TopobaseSenaste versionen är Autodesk Topobase 2008Använder Oracle Spatial fullt utFör att komma från Topobase 2 till Autodesk Topobase 2008 krävs spatiala objekt i Topobase 2
Hur fungerar det i Autodesk Topobase 2 Autodesk Topobase 2 används som vanligt En ”skuggdatabas” används där en kopia läggs som Oracle Spatial-data Synkronisering via s k triggrar
Tekniska förutsättningar Oracle 9i eller 10g med det spatiala tillägget (Enterprise Edition)Spatiala tillägget ger schemat MDSYS, ”ägaren” till spatialProgramkod laddas ned i databasen till:- MDSYS- TBSYSSe Tekis hemsida och TBSYS.zipLäs TBSYS.pdfTBSYS är Topobase ”system”-schema
Oracle Spatial-komponenter DatatypEn speciell datatp används för geometrier i en Oracle spatial-databas
Oracle Spatial-komponenter MetadataMetadata (data om data) lagras om det spatiala objektet (hos MDSYS) Geografisk utbredning i x och yTolerans – när betraktas det som samma punktKoordinatsystem (SRID) Exempel:select * from user_sdo_geom_metadata where table_name = ’BY_POLYGON’
Arc line string Point Line string Polygon with hole Polygon Compound polygon Oracle Spatial-komponenter Exempel på geometrityper
GeometrityperTopobase 2 Oracle Spatial Oracle Spatial-komponenter • Punkt • Linje • Polygon • Lablar (text) • Point • CompoundLine String • CompoundPolygon • Saknas, (Topobase 2 skapar dessa som points)
Oracle Spatial-komponenter Spatiala indexIndex behövs för att snabba upp sökningar och för att geografiska utsökningar ska kunna görasIndex kan skapas mot en speciell geometritypeller för alla geometrityperIndex måste finnas för att verktyg ska kunna använda det spatiala datatEtt index innehåller aldrig något data, därför kan spatiala index tas bort och skapas om på nytt
Skapa spatiala definitioner med Autodesk Topobase 2 Topobase AdministratorDe spatiala delarna finns under varje objektklass och nås med högerklick och valet Spatial objektFinns i även högst upp i trädet Skapa och skriv Spatiala objekt för alla objektklasser
Skapa spatiala definitioner med Autodesk Topobase 2 Definitionerna skapas med hjälp av valet Skapa Spatialt objektVälj:- Koordinatsystem, vad som finns att välja på varierar mellan vad som finns i Oracle- Tolerans, rekommendation 5 mm, d v s 5e-003 eller 0.005- Geografisk utbredning, tänkta området för geometrierna, finns data lämnas ett förslag.
Skapa spatiala definitioner med Autodesk Topobase 2 Det som händer är: - Kolumnen GEOM skapas med den speciella datatypen, syns i Topobase Administratorn- Spatialt metadata skapas för objektklassen med kolumn GEOM, geografisk utbredning, tolerans och SRIDIndex och triggrar skapas inte.Detta behöver normalt sett bara göras en gång per objektklass. Däremot om något förändras (t ex geografisk utbredning) så görs det på nytt.
Skriva spatiala objekt med Autodesk Topobase 2 Topobase AdministratorVälj objektklass och högerklick Spatial objekt och Skriv spatiala objekt
Skriva spatiala objekt med Autodesk Topobase 2 Det som händer är: • Kolumnen GEOM fylls med data av Topobase baserat på de geometrier som finns i koordinatsystem 1Någon kontroll (validering) av datat sker inte. Topobase loggar vissa ”fel” i tabell TB_SPATIAL_ERROR_LOG
Validering av spatiala objekt Oracle validerar inte datat som lagras spatialt utan det är upp till användaren att göra (applikationen) I Oracle finns det rutiner för att validera det spatiala data Tekis har tagit fram ett skript ”Validate_geom_with_context.sql” för validering av enskild objektklass (finns på hemsidan) Skriptet anpassas
Validering av spatiala objekt Körs sedan med hjälp av SQL*Plus inloggad som ägare Skriptet sparar resultatet i en text-fil, titta och ev. rätta En annan variant är att använda TB2Metadata
Validering av spatiala objekt Valideringen och skrivningen är en process som upprepas till alla objekt inom en objektklass är felfri Skriv spatialaobjekt Finns det felaktigheter? Validera Ja Rätta Nej Skapatrigger om synkronisering önskas Skapaindex
Validering av spatiala objekt De fel som visas vid valideringen består av en numerisk felkod, t ex 13011 Felkodens betydelse kan fås fram via nätet eller Oracle-handbok (t ex Oracle 10g Database Error Messages, finns på hemsidan)
Felsökning och rättning Använd FID-en för att visa geometrini Basic Map med villkor Rätta geometrin
Felsökning och rättning StädningsskriptNågra enklare städningsskript finns som rensar bort en del valideringsfel:Radera_tomma_linjer_polygoner.sql Raderar linjer och polygoner i alla objektklasser som saknar godkänd geometri, d v s har färre än 2 poster (brytpunkter) i _GEO-tabellen. Uppdaterar DELETED till 1, USER_DELETED till 'TOMMA' och DATE_DELETED till aktuellt körningsdatum. Radera_koordinatdubletter_system1_linjer.sqlRaderar dubletter (vertex med samma x- och y-koordinater) i _GEO-tabellen för linjer i koordinatsystem 1. Skriptet anpassas med aktuell objektklass i DEFINE-delen. Observera att skriptet ska göras om och om igen tills inget händer för att alla dubletter ska tas bort. Radera_koordinatdubletter_system1_polygoner.sql Raderar dubletter (vertex med samma x- och y-koordinater) i _GEO-tabellen för polygoner i koordinatsystem 1. Skriptet hanterar inte öar. Skriptet anpassas med aktuell objektklass i DEFINE-delen. Observera att skriptet ska göras om och om igen tills inget händer för att alla dubletter ska tas bort. På Tekis hemsida – Användarsidor – TOPOBASE – Filhämtning och ”TB2_OracleSpatial.zip - Diverse skript för Topobase 2 och Oracle Spatial” finns dessa skript att hämta.
Felsökning och rättning Vanliga fel som kan förekomma: ORA-13011Value is out of range Cause: A specified dimension value is outside the range defined for that dimension. Action:Make sure that all values to be encoded are within the defined dimension range. Objektet ligger utanför den geografiska utbredningen. Ska inte objektet flyttas eller raderas måste definitionen av den geografiska utbredningen av det spatiala objektet ändras via Topobase Administrator genom att skapa om det spatiala objektet.
Felsökning och rättning Vanliga fel som kan förekomma: ORA-13345A compound polygon geometry has less than five coordinates Cause:A geometry, specified as being an arcpolygon, has less than six coordinates in its definition. Action:A compound polygon must contain at least five coordinates. A compound polygon consists of at least one arc and one line each of which must be described using three and at least two distinct coordinates respectively. Correct the geometric definition or set the appropriate SDO_GTYPE or SDO_ETYPE attribute for this geometry. Ofta en ”polygon” med bara två (2) punkter i databasen.Rätta geometrin i Basic Map om det ska vara en polygon. Flytta den till en linje objektklass om den skulle bestå av två punkter.
Felsökning och rättning Vanliga fel som kan förekomma: ORA-13348Polygon boundary is not closed Cause:The boundary of a polygon does not close. Action:Alter the coordinate values or the definition of the SDO_GTYPE or SDO_ETYPE attribute of the geometry. Öppen polygon. Rätta geometrin i Basic Map eller ev. flytta den till en linje objektklass.
Felsökning och rättning Vanliga fel som kan förekomma: ORA-13349Polygon boundary crosses itself Cause:The boundary of a polygon intersects itself. Action:Correct the geometric definition of the object. Polygonen skär sig själv vilket inte är tillåtet, t ex en ögla. Rätta geometrin i Basic Map.
Felsökning och rättning Vanliga fel som kan förekomma: ORA-13356Adjacent points in a geometry are redundant Cause:There are repeated points in the sequence of coordinates. Action:Remove the redundant point. Det finns punkter med samma koordinater, s k nollpunkter. Kör rensingsskript beroende på om det är en linje eller polygon. Hjälper inte detta rätta geometrin i Basic Map.
Trigger och index När valideringen av en objetklass är klar och det inte finns några fel ska index (spatiala) och ev. triggrar skapas. IndexAdministratorSpatial objekt – Index - Skapa
Trigger och index Trigger används när synkronisering önskas, d v s att alla geometriska förändringar även ska utföras i den spatial ”skuggdatabasen”. TriggerAdministratorSpatial objekt – Trigger - Skapa Sak att tänka påTopobase har en flagga för borttaget. Vid läsning av spatiala verktyg måste villkoret DELETED = 0 användas för att de borttagna objekten ska ”försvinna”.
Analysera … Analysera och optimera alla TOPOBASE-tabeller rekommenderas att köras då och då, särskilt då spatialt data används
Information På Tekis hemsida finns: Whitepaper: KonverteringTB2 till TB2007 Där mycket av det som gåtts igenom står. Ändras till TB2008 när migreringsverktyg kommer…
Spatialt data i drift Validering bör utföras regelbundet Felaktigt spatialt data kan hindra att datat kan läsas Kolla Tekis hemsida och om Förslag till lösning av spatial validering i Autodesk Topobase 2 på tidkan vara något
TB2Metadata TB2Metadata kan vara ett hjälpmedel för den spatiala hanteringen Statistik kan ge svar på frågor som- Finns det spatiala defintioner?- Vilket koordinatsystem används?- Hur mycket spatialt data finns?- Finns index och hur mår indexet?- Finns triggrar?
TB2Metadata TB2Metadata kan vara ett hjälpmedel för den spatiala hanteringen Spatial validering med lista på felaktiga objekt med villkor för att hitta objekten med hjälp av Basic Map
Andra verktyg Saker att tänka på • Använd användare med enbart läsbehörighet så att det spatiala datat och attributdata inte kan ändras om titta-möjlighet används. Generella användare kan skapas med läsbehörighet till Topobase-data • Används s k vyer för att sammanställa data (flera tabeller) där spatialt data ingår måste även dessa ha spatialt metadata
Andra verktyg – Autodesk MapGuide Skapa datakälla av typenAutodesk Spatial Data Provider for Oracle Spatial i Autodesk MapGuide Server Admin (en gång)
Andra verktyg – Autodesk MapGuide Författa kartan som vanligt med Autodesk MapGuide Author Kom ihåg villkoret DELETED = 0
Andra verktyg – MapInfo Professional Se till att Oracle Spatial-stöd finns i installationen Skapa mapcatalog (en gång per Oracle-databas)
Andra verktyg – MapInfo Professional Avbilda, registrera varje spatialt skikt (valet Gör DBMS-tabell avbildningsbar)
Andra verktyg – MapInfo Professional Val Öppna DBMS-tabell Kom ihåg villkoret DELETED = 0
Andra verktyg – ESRI Registrera skikt i ArcSDE Referera till skikt, kom ihåg villkoret DELETED = 0
Arbetssätt Validering och rättning av spatiala data är en process som spänner över tiden Kan vara bra att arbeta strukturerat, kanske någon enklare form av projekt Logga vad som gjorts
Referenser Mer information Tekis hemsidaANVÄNDARSIDOR – Topobase - Filhämtning Oracle-sida om Spatialhttp://www.oracle.com/technology/products/spatial/index.html