Dr. Sárközy Ferenc: Térinformatika
Monday, December 21, 1998
Ebben a részben
először
összefoglaljuk
A GIS az információ technológiai szakterület
szerves, de egyelőre még nem nagy volumenű alkotóeleme. Ebből következik, hogy
a GIS fejlődésére jelentős hatást gyakorolnak a hardver és szoftver szabványok
illetve szabvány jellegű megoldások, ugyanakkor a GIS egyelőre nem meghatározó
az általános információ technológiai trendek kialakításában.
Az utóbbi néhány évben az
információ technológiában talán a legdöntőbb hardver fejlődés a nagysebességű
belső (intranet) és világméretű (internet) hálózati rendszerek és a
működésükhöz szükséges szabványos hálózati protokollok rohamos térhódítása,
illetve az ehhez a felépítéshez alkalmazkodó osztott hálózati architektúrák és
az ezt kiszolgáló szabványos adatelérési specifikációk mint például az OMG
(Object Management Group) CORBA (Common Objet Request Broker Architecture),
vagy a Microsoft OLE/COM kialakulása volt.
Hasonlóképpen fontos fejlemény volt a
Pentium PC munkaállomások és a rajtuk futó 32 bites Windows operációs
rendszerek döntő túlsúlyának létrejötte
A GIS felhasználók
számára talán nem volt ennyire mutatós, de a szoftver fejlesztők számára
legalább ennyire fontos változás volt az objektum orientált paradigmán alapuló
programozási nyelvek (JAVA, C++) uralkodóvá válása, illetve a kereskedelmi,
objektum orientált adatbázis kezelő rendszerek megjelenése.
Ezekre az általános trendekre a ma készülő GIS szabványoknak
természetesen figyelemmel kell lenniük, nem várható el ugyanakkor a régebbi
szabványoktól hogy előre lássák a jövőt. Ezzel is magyarázható, hogy a GIS
szabványokat karban kell tartani és időről időre új verziókat kell belőlük
megjelentetni.
Rátérve a GIS szabványokra azt kell mindenek előtt megnéznünk,
hogy mit is kell tulajdonképpen szabványosítani.
- Elsődlegesen
specifikálni kell a támogatott adatmodelleket;
- Meg kell
határozni a támogatott dátumokat és vetületi rendszereket;
- Specifikálni
kell a földrajzi entitásokat;
- Rendelkezni
kell a pontossági, megbízhatósági követelményekről;
- Elő kell
írni a metaadatok tartalmát és formáját;
- Rögzíteni
kell a térbeli adatok kódolási sémáját;
- El kell
dönteni, hogy a szabvány milyen formában kerüljön megírásra;
- Össze kell
állítani és meg kell határozni a támogatott archív adatállományokat.
Az adatmodellekről már viszonylag részletesen szóltunk a 32. részben. Kívánatos, hogy a szabvány minél több
adatmodellt specifikáljon olyanképpen, hogy ugyanaz az adat több szinten is
átvihető legyen, pontosabban a magasabb színtű adat alacsonyabb modellben is
kezelhető legyen az egyszerűbb GIS rendszerekben.
A referencia rendszerekről szintén szóltunk már a 17. részben. Lényeges, hogy a szabványos rendszerek mellett
a szabvány biztosítson eszközöket a felhasználó által definiált referencia
rendszerek kezelésére, e mellett tartalmazzon adatokat a diszkrét földrajzi
referenciák fogadására is.
Valamilyen formában meg
kell határozni a földrajzi entitások listáját és az egyes entitások
reprezentálására szolgáló objektumokat. Talán ez a pont a szabványosítás
legnehezebb része, mivel számos szakterület térbeli fogalmait kell egyeztetni
és újradefiniálni.
A pontosságot (élességet) és a megbízhatóságot szorosan
kapcsolni kell az entitások reprezentációjához. Ez magyarul azt jelenti, hogy
például egy épületet (földrajzi entitást) több objektum típus és azokon belül
több objektum fajta is reprezentálhat annak a függvényében, hogy milyen pontosak
a kérdéses geometriai vagy leíró adatok. Ezt a követelményt a szabványok
egyelőre nem elégítik ki, és a pontossági adatokat rendszerint metaadatként
kapcsolják az állományhoz.
A 30.5 pontban a WALIS projekt
kapcsán viszonylag részletesen foglalkoztunk a metaadatok
fogalmával és a kérdéses projekten belüli felhasználásával. A metaadatok szabványosítása az alapfeltétele a
nemzeti földrajzi infrastruktúra kialakításának, ugyanis a felhasználók a
szabványos metaadatok segítségével tudják kiválasztani a rendelkezésre álló
archív térbeli adatokból a számukra szükségest és eldönteni, hogy a
kiválasztott adatok mire használhatók. Ha nem minden
metaadat felel meg a feladat szabta igényeknek ezek alapján lehet eldönteni,
hogy milyen kiegészítésük szükséges.
A kódolási séma rögzítése a fájl és rekordstruktúra
meghatározását jelenti. Tulajdonképpen főként ezeket a kérdéseket tekintettük
át a vektoros és raszteres formátumok ismertetésénél. Az első térbeli
adatátviteli szabványok döntően ezeknek a kérdéseknek a specifikálásával
foglalkoztak.
Az objektum orientált paradigma terjedése kézenfekvővé teszi,
hogy a térbeli objektumokat az öröklődés és beskatulyázás
elveinek megfelelően osztályok illetve alosztályok tagjaiként határozzák meg. Így
lehetővé válik, hogy a közös jellemzők és módszerek csak egyszer kerüljenek
megírásra. Az ERDAS .img fájlok esetében például az osztályokat (típusokat) C
nyelvű struktúrákként határozták meg leegyszerűsítve az író/olvasó programokat
író fejlesztők munkáját. Arra is lehetőség van, hogy az egész specifikációt
valamely objektum orientált adatleíró nyelven készítsék. Ilyen nyelv pld. az A brit adatátviteli szabvány (NTF)
A szabványjavaslat első verzióját 1986-ben
jelentették meg, 1.1 verziója 1989-ben vált hivatalos előszabvánnyá, a
jelenlegi 2.0 verzió 1992-ben került kiadásra mint a BS 7567 brit szabvány.
Azért kezdjük ezzel a szabvánnyal a szabványok ismertetését,
mivel az NTF-et mint első térbeli adatátviteli szabványt valamennyi későbbi
szabvány, különösen Európában, kiindulási alapnak tekintette és kisebb-nagyobb
mértékben felhasználta.
A szabványjavaslatban az NTF kifejtése National Transfer
Format (Nemzeti Átviteli Formátum) volt míg a jelenlegi verzió a rövidítést
Neutral Transfer Format (Semleges Átviteli Formátum)-nak értelmezi.
Az NTF lehetővé teszi a térbeli és hozzájuk kapcsolt leíró
adatok cseréjét a számítógép rendszerek között. Eszközöket nyújt az
adatrekordok tartalmának leírására a nélkül, hogy definiálná tartalmukat. Az
NTF segítségével
- a földrajzi
adatok cseréjét biztosító médiafüggetlen fájl és rekord leírások
készíthetők;
- leírhatók a
sztring vagy szám értékű elemi adatok, vektorok és tömbök és a közöttük
lévő kapcsolatok:
- meghatározható
a kötet és fejezet információ, mely csökkenti a szükséges kiegészítő
adatok körét;
- az adatcsere
öt szinten valósítható meg az adatok bonyolultságának függvényében,
- mindezt
formális nyelv alkalmazása nélkül oldja meg.
A szabvány három részből áll. Az első rész
ismerteti az öt szintet, illetve a szintekhez kapcsolható
adatmodell variánsokat és logikai rekordstruktúrájukat, a második színt az
eredeti úgy nevezett 'plain NTF' (egyszerű NTF) implementációs
szabályokat azaz a fizikai fájl és rekordstruktúra egy megoldását, míg a
harmadik rész tartalmazza a modell implementálását az ISO 8211 adatátviteli
szabvány segítségével.
Az implementációs részek tulajdonképpen részletesen leírják a
fizikai fájlszerkezetet és kapcsolatát az adathordozókkal (mágnesszalag,
hajlékony lemez, stb.) a kötet (volume) szerkezetet, az adattömbök (blocks)
méretét (2000 karakter), a rekordok méretét (változó, maximum 80 karakter) és a
különböző rekord típusokat, azaz a rekordok neveit, a mezők neveit, a mező első
bájtjának rekordon belüli sorszámát, a mezők részére fenntartott helyek számát,
illetve az egyes mezők típusát. Megjegyezzük, hogy a rekordstruktúra általános
leírását már a szabvány első része tartalmazza. Hogy az implementáció
kérdéseiről is legyen bizonyos fogalmunk a későbbiekben bemutatjuk a
fájlszerkezetet és néhány rekord leírást. Mindenek előtt azonban megismerkedünk
a hivatkozott szintekkel és kapcsolatukkal az adatmodellel. E tárgyalás során
gondoljunk mindig arra, hogy a struktúra típusait rekord típusok, kapcsolatait
pedig mezőértékként jelentkező kulcsok realizálják az implementációban. Ez
utóbbi alól részben kivétel az első és második színt, ahol az objektumok
(features) és geometriájuk (geometry) kapcsolatát az egymásutániság határozza
meg.
|
5.7 ábra - általános
kapcsolatrendszer a formátum elemei között
|
Az 5.7 ábrán a szabvány alapján megrajzoltuk a formátum
elemei közötti általános kapcsolatrendszert. Ez a rendszer a figyelembe
vett szintnek megfelelően bővülhet vagy szűkölhet, ahogy ezt a következő ábrák
segítségével be fogjuk mutatni. Amint látjuk a struktúra fő eleme az objektum,
mely lehet egyszerű vagy összetett. Az objektumhoz közvetlenül kapcsolódnak a
szemantikus kapcsolatok, az objektum osztályok és az attribútumok, melyek
esetleg attribútum osztály kódokkal is leírhatók. A szöveg is kapcsolódhat az
objektumhoz. Térbelileg az objektumot a topológia (a koordinátás pontok
szervezési formája) és a geometria (maguk a koordinátás pontok vagy azok
sorozata) határozzák meg. A geometria meghatározhatja a szöveg elhelyezését is.
A topológiához nem tartozhat attribútum, míg a geometria csak minőségi leíró
adatokat tartalmazhat.
Mielőtt a szintekre rátérnénk nézzük meg, hogy a modell elemek
milyen konkrét meghatározásokat takarnak. Az objektumok közé a
következő összetett és egyszerű formák sorolhatók:
- a gyűjtemény
(collection) több különböző típusú, egy szekcióba (logikai egységbe) eső
objektumok csoportja;
- az
összetett poligon több, nem feltétlenül
szomszédos, esetleg átfedő zárt sokszög együttese közös, esetleg külső
referencia ponttal;
- az
összetett vonal egy vagy több vonalból
összeállított folyamatos vonalas objektum;
- a
terület egy önálló, zárt, folyamatos
kiterjedésű térrész;
- a
poligon egy önálló, zárt, folyamatos
kiterjedésű térrész;
- a
vonal egy vonalas objektum;
- a pont egyedi helyet jelölő objektum;
- a
szöveg különböző helyeken, különböző
stílusban megjeleníthető karakter sztring.
Mielőtt az olvasó felháborodna, hogy a terület és a poligon
ugyanazt a meghatározást kapta, meg kell jegyeznünk, hogy a szintek
megkülönböztetését a szabvány elég következetlenül részben azonos objektum típussal
de más topológiai leírással, részben különböző objektum névvel és különböző
topológiai definícióval végzi. Azaz bár a terület és poligon ugyanolyan
objektum, a négyes szinten területnek a hármas szinten poligonnak hívják és
folytonos lapokkal illetve lánccal írják le. Másfelől a pont típusú objektum
esetében bár a neve szintenként nem változik, topológiai leírása igen: a hármas
szinten magános koordinátás pontként határozzák meg, míg a négyes szinten
magános csomópont reprezentálja.
Az alábbi topológiai elemek első látásra talán
még nehezebben követhetők a különböző szintek kezelése miatt:
- a lap egy vagy több terület alkotó eleme. Egy sor él határolja és
tartalmazhat egy vagy több izolált csomópontot. A lapok nem fedhetik
egymást és teljes területük meg kell, hogy egyezzen az adat együttes
kiterjedésével;
- a lánc egy vagy több vonalas elem együttese;
- az él két csomópontot összekötő irányított görbe vonal (a geometriában
olyan koordináta sztring írja le, melynek első pontja az induló csomópont,
utolsó pontja pedig a végcsomópont);
- a
csomópont vagy az összeköttetések elejét
illetve végét, vagy egy magányos pontot reprezentál.
A geometriai elemek a következők:
- önálló
koordináta geometria azaz egy koordinátás
pont, mely a topológiának megfelelően képviselheti az összetett poligon
referencia pontját, vagy a lap referencia pontját, egy magányos pontot,
egy csomópontot, végül a szöveg elhelyezési pontját a kartográfiai
megjelenítésben;
- koordináta
sztring, mely kódtól függően egy objektumot,
egy élet vagy a szöveg folytonos betűinek helyét adja meg.
Az attribútumok egy vagy több objektumra
vonatkoznak. Bár a geometriának is lehetnek attribútumai, ezeket célszerű a
minőségi jellemzőkre korlátozni. A topológiai elemekhez nem lehet
attribútumokat rendelni.
Ezek után vizsgáljuk meg néhány ábra felhasználásával a már
többször aposztrofált szinteket.
- Az első
színt.
Egyszerű vektor adatok számára dolgozták ki ezt a szintet. A vonalak,
pontok és feliratok független objektumoknak tekintendők, melyekhez egy
objektum kód és egy attribútum érték rendelhető. Megadható a szöveg
rajzolás kezdő pontja és stílusa, de a szöveg objektumokhoz nem
kapcsolható. Az 5.8 ábrán ezt a szintet vázoltuk fel.
|
5.8 ábra - az
első színt szerkezeti vázlata
|
- A második
színt.
A második színt szintén az első szintnél bemutatott spaghetti struktúrát
realizálja azzal a különbséggel, hogy az objektumokhoz több attribútum is
kapcsolható azaz ebben az esetben az 5.8 ábra jobb felső blokkjába '+ 1
attribútum' helyett '+ attribútumok csoportja' írandó, a szövegek
attribútumként kapcsolhatók az objektumokhoz (ez az ábrán nem volna
szemléltethető), az objektumokhoz a geometrián keresztül minőségi adatok
kapcsolhatók (rajzunkat a geometria blokkal összekötött 'minőség' blokkal
egészíthetnénk ki), végül ez a színt megengedi, hogy csak a
változások kerüljenek átvitelre.
Az első és második színt
rekord szerkezete a következő rekordokat tartalmazza:
- [NAMEREC] a név rekord rövidített neve, három kötelező mezője a NAME_ID
(I6) azaz a névazonosító, mely 6 egésszel írható le, a TEXT_CODE (A4),
mely a szöveg stílusára szolgál egy 4 karakteres kóddal és TEXT (A*) azaz
a nevet tartalmazó szöveg. A 2. szinten az opcionális QLABEL (A1) mező hivatkozhat
a [QUALREC] minőség leíró rekordra.
- [CURVTEXT] az íves szöveg rekordja három mezőt tartalmaz: FONT (I4) a
betütipus készlet kódja, TEXT_HT (R3,1) az egy tizedes élességű valós
számmal kifejezett betűmagasság milliméterben, ORIENT (R4,1) a [NAMEREC]-ben
található karakterek alapjának dőlésszöge fokban kifejezve, a keleti
iránytól számítva az óramutató járásával ellentétes értelemben. Ez a mező
ismétlő mező ahány karakter van a név rekordban a szóközöket is számítva,
annyiszor kel alkalmazni.
- [NAMPOSTN]
ezt a rekordot kell használni, ha a [NAMEREC]-ben
található szöveget valamilyen irányú egyenes mentén kell megrajzolni.
Mezői megegyeznek a [CURVTEXT] mezőivel, csak az ORIENT nem
ismétlő, és kiegészülnek a DIG_POSTN (I1) mezővel. Ez utóbbi lehetővé
teszi, hogy a szöveg koordinátái a határoló téglalap különböző helyeire
vonatkozzanak
- [LINEREC] a vonalas objektumok rekordja, négy kötelező mezője a LINE_ID
(I6), azaz vonal azonosító, VAL_TYPE (A2) - az attribútum tipusa, VALUE
(A6) az előző mezőben definiált típusú attribútum értéke, FEAT_CODE (A4)
- az objektum fajta kódja. A 2. szinten az opcionális QLABEL (A1) mező
hivatkozhat a [QUALREC] minőség leíró rekordra
- [POINTREC] a pontszerű objektum rekordja, mező nevei megegyeznek az előző
rekord (vonalas objektum) rekordneveivel.
- [GEOMETRY1] a kétdimenziós geometria rekord típusa a következő mezőkkel:
GEOM_ID (I6) - a geometria azonosítója (az 1. és 2. szinteken rendszerint
0), GTYPE (A1) - a geometria típusa (pld. 0 = magános koordináta párok, 1
= pont azaz egy koordináta pár, 2 = vonal, stb.), X_COORD (I10), Y_COORD
(I10) - az x és y koordináta, QPLAN - az 1. szinten plotter utasítás 0
vagy 1 értékekkel, a 2. szinten az adatnyerésre utaló kód.
- [GEOMETRY2] a háromdimenziós geometria rekord típusa, az előző rekord típus
mezőin túl tartalmazza a Z_COORD (I10) mezőt a z koordináták számára és a
QHT mezőt mely mindig szóköz az 1. szinten és adatnyerési kód a 2.-esen.
- [ATTREC] az 1. szinten nem használható rekord típus a következő mezőket
tartalmazza: ATT_ID (I6) attribútum azonosító, mely 0 a 2. szinten,
VAL_TYPE (A2) - kétkarakteres előre definiált érték típus kód, VALUE (A*)
- az attribútum értéke.
Amint erre már utaltunk, az 1. és
2. szinten lényeges az egyes rekordtípusok szomszédsága. Ez magyarul azt
jelent, hogy a [LINEREC] és [POINTREC] után közvetlenül a
kérdéses vonal vagy pont koordinátáit tartalmazó [GEOMETRY1] vagy [GEOMETRY2]
rekordnak kell következni, majd pedig az objektumok tulajdonságait leíró egy
vagy több [ATTREC] rekordnak (a 2. szinten). Ezek a rekordok mindig a
megelőző utolsó objektum rekordra vonatkoznak.
A [NAMEREC] rekordot a [NAMPOSTN]
vagy [CURVTEXT] rekord egy vagy több példánya követ, melyek
mindegyike után el kell helyezni a megfelelő [GEOMETRY1] rekordot. A
fenti rekord egymásután csak a [QUALREC] minőség leíró rekord esetében
nem érvényes a 2. szinten.
Nem szeretnénk a rekordok fizikai
leírására túl nagy súlyt fektetni, ezért csak egy rekord implementálását
mutatjuk be 'plain NTF'-ben, legyen ez például a [GEOMETRY1].
Mező
neve
|
Pozíció
|
Méret
|
Megjegyzés
|
REC_DESC
|
1:
2
|
2
|
21
|
GEOM_ID
|
3:
8
|
6
|
|
GTYPE
|
9:
9
|
1
|
|
NUM_COORD
|
10:13
|
4
|
>0
|
|X_COORD
|
*:
*
|
10
|
|
|Y_COORD
|
*:
*
|
10
|
|
|QPLAIN
|
*:
*
|
1
|
|
|
5.10 táblázat - a
[GEOMETRY1] rekord implementálása 'Plain NTF'-ben
|
Két újdonságot fedezhetünk fel az
implementálás során: megjelent mezőként a REC_DESC azaz a mezőtípus kódja, mely
esetünkben 21 és a pontok száma - NUM_COORD, mely megmondja, hogy hány darab
X_COORD, Y_COORD, QPLAN hármas szerepel a rekordban. Talán ez az egyszerű példa
is bizonyítja hogy az NTF elvi megértéséhez nem szükséges elmélyednünk az
implementációs variánsban.
- A harmadik
színt.
Ez a színt a mellett, hogy kompatibilis az 1. és 2. szinttel alkalmas a
részleges topológia létrehozására, a hálózatos struktúra átvitelére,
összetett objektumok kezelésére, szöveg rekordok objektumokhoz
kapcsolására, külső raszter fájlok regisztrálására
(pozicionálására). Tulajdonképpen ez a színt több szintet foglal össze,
valószínű, hogy eredeti javaslat csak erre a szintre terjedt ki és ebből
választották le a két spaghetti modellt támogató első szintet, illetve
fejelték meg a negyedik színttel a teljes topológia modellezése érdekében.
A színt lehetőségei közül az 5.9
ábrán felvázoljuk a területeket a poligon és lánc rekordok segítségével
explicite kifejező úgynevezett összetett spaghetti modellt, az
5.10 ábrán a csomópont - összeköttetés modellt, az 5.11 ábrán
pedig az úgy nevezett részleges topológiai modellt, mely nem más
mint a csomópont - összeköttetés modell kiegészítve a területeket képviselő poligon
objektumokkal.
Az 5. 9 ábrát vizsgálva három
érdekes új vonásra fordíthatjuk a figyelmünket. Az egyik a külső objektumra
való hivatkozás és regisztrálás lehetősége, a második az objektum gyűjtemények
létrehozására való alkalmasság, a harmadik pedig az, hogy ebben a struktúrában
a zárt lánccal modellezett poligonok referencia pontjainak (gondoljunk a
földrészletek geokódjaira) rögzítésére is lehetőség nyílik.
|
5.9 ábra -
összetett spaghetti modell
|
Az 5.10 ábrán a 3. színt hálózat
leírási alkalmazását látjuk. A hálózatot úgy tekintjük mint összeköttetések
(links) és csomópontok rendezett halmazát. Az összeköttetéseket két csomópont
között elhelyezkedő láncok realizálják. Ebben a modellben az objektumok az
összetett vonalak vagy azok gyűjteményei, illetve az opcionális pontok illetve
külső fájl referenciák, következésképpen a tulajdonságjellemzők is csak
hozzájuk rendelhetők.
A 3. színt teljes eszköztára az
5.11-es ábrán látható részleges topológiai modellben kerül alkalmazásra. Ebben
a modellben az előző két modell objektumain kívül megjelennek az összetett
poligonok, ezek több olyan poligon együttes kezelését teszik lehetővé, melyek
nem feltétlenül töltik ki folyamatosan a síkot, e mellett át is fedhetik
egymást. Lehetőség van az átfedő poligonok előjelezésére is abból a
szempontból, hogy mely poligonokat kell hozzáadni vagy levonni a közös
területből. Például, ha egy erdő közepén egy tó van, úgy a befoglaló poligont
pozitív, a tavat jelentő poligont negatív előjellel ellátva megkaphatjuk az
erdő tényleges területét.
A referencia pont összetett
poligonhoz is illeszthető, azzal a feltétellel, hogy a pont valamelyik alkotó
poligon belsejébe esik. Ez a megkötés sajnos nem minden esetben teszi lehetővé,
hogy referencia pontként a súlypontot alkalmazzuk.
Mielőtt rátérnénk a 3. színt rekord
struktúrájára alá kell húznunk, hogy szemelvényként, a színt jobb megértéséhez
csak néhány új rekord tipust mutatunk be és semmiképpen sem törekszünk a
teljességre.
Szemelvények a harmadik színt
rekordstruktúrájából.
- [COLLECT]
tetszésszerinti objektumok összegyűjtésére
szolgál, melyekhez attribútum rekord kapcsolható. Első mezője a COLL_ID a
gyűjtemény azonosítója, következő mezője a TYPE megadja a gyűjteménybe
csatolt objektum rekord típusát, a harmadik mező az ID pedig a kérdéses
objektum azonosítóját. Az ATT_ID mező szolgáltatja a keresztreferenciát a
gyűjtemény attribútum rekordjához.
- [CLINE] olyan folytonos, több összeköttetésből álló vonalat határoz meg,
mely összeköttetések egymásutánját a [CHAIN] rekord szolgáltatja.
Mezői a CLINE_ID azonosító, a CHAIN_ID lánc azonosító, mely rámutat az
objektum [CHAIN] rekordjára, az ATT_ID, mely biztosítja a
keresztreferenciát az attribútum rekordhoz.
- [CPOLY]
ez a rekord határozza meg az összetett
poligonokat. Mezői a CPOLY_ID (I6) - a mezőazonosító, ismétlő mezők a
POLY_ID (I6) és a SIGN (A1), melyek közül az első az alkotó elemi
területek azonosítója, a második pedig egy + vagy - előjel annak
függvényében, hogy a terület hozzáadandó vagy levonandó (luk) az
összterületből. A GEOM_ID (I6) mező a referencia pont [GEOMETRY*]
rekordjának azonosítója. Az ATT_ID (I6) ismétlő mező itt is a komplex
poligon attribútum rekordjainak kulcsa.
- [POLYGON]
olyan zárt területi objektumot reprezentál,
melynek határoló oldalai a kapcsolt [CHAIN] rekordban az óramutató
járásának megfelelő vagy ellenkező sorrendben meg vannak adva. A rekord
négy mezője a POLY_ID (I6) - az objektum azonosító, a CHAIN_ID (I6) a
megfelelő lánc rekord azonosítója, a GEOM_ID (I6) - a referencia pont
koordináta rekordjára történő hivatkozás és az ATT_ID (I6) ismétlő mező,
mely rámutat a poligon attribútum rekordjaira.
- [EXTERNAL] mivel az NTF struktúrák alapvetően vektorosak a raszteres
állományokat külön fájlokként, pld. TIFF formátumban kapcsolhatjuk az
átviendő adat együtteshez. Ahhoz azonban hogy a raszter automatikusan
beilleszkedjen a vektoros adatok közé ezzel a rekorddal kell utalnunk rá
és megadnunk a beillesztéshez szükséges adatokat. A rekord mezői a
következők: EXTE_ID (I6) - a rekord azonosítója, mely a belső
objektumokhoz hasonlóan alkalmazható gyűjteményekben, GEOM_ID (I6) -
hivatkozás a geometria rekordra, mely tartalmazza a beillesztéshez
szükséges koordinátákat (megállapodás kérdése, hogy hány pontot
mellékelnek egy képhez, ha csak egy pont van, akkor a többi
transzformációhoz szükséges adatot attribútum rekordok tartalmazzák),
ATT_ID (I6) ismétlő mezők - a kapcsolt attribútum rekordok azonosítóit
tartalmazzák, az attribútumok ebben az esetben a raszteres adatok
beillesztését kell, hogy szolgálják.
- [CHAIN]
ez a rekord folyamatos, irányított vonalat
rendel a koordináta rekordok felhasználásával a poligon és összetett
vonal objektumokhoz. A CHAIN_ID (I6) mező - a rekord azonosító, a GEOM_ID
(I6) ismétlő mezők - a koordináta rekordok kulcsait tartalmazzák, a DIR
(I1) ismétlő mező pedig arról rendelkezik, hogy a koordináta rekordok
koordináta sorrendjét hogyan kell figyelembe venni a lánc kialakításánál.
Ha DIR=0, akkor a sorrend nem számít, ha DIR=1, akkor az összeköttetés iránya
megegyezik a koordináták sorrendjével, ha DIR=2, akkor az összeköttetés
iránya ellentétes a koordináták sorrendjével.
- [NODEREC] a csomópont rekord, mezői a NODE_ID (I6), - azonosítja a
rekordot, GEOM_ID (I6) azonosítja a koordináta rekordot, mely a csomópont
koordinátáit tartalmazza, ezután opcionális ismétlő mezők
formájában a csomópontban találkozó összeköttetésekre vonatkozó
információk következnek éspedig: DIR (I1), mely megmondja, hogy az
összeköttetés indul-e (1) vagy végződik (2) a csomópontnál, GEOM_ID (I6)
megadja a vizsgált összeköttetés koordináta rekordjának azonosítóját,
ORIENT (R4,1) - a vizsgált összeköttetés utolsó szegmensének irányszöge,
LEVEL (I1) - megadja a csomópontban összefutó vonalak relatív szintjét.
Talán az olvasónak is feltűnt, hogy ennek a szintnek
két hiányossága van: az egyik, hogy a csomópontokhoz nem lehet attribútumokat
kapcsolni (a topológiához egyáltalán nem lehet egyik szinten sem, a
geometriához pedig csak minőségi adatok ajánlottak), a másik pedig a raszteres
termékek kevéssé kidolgozott kezelése. Az utóbbi hiányosságon részletes
termékspecifikációval ugyan lehet segíteni, de csak egy konkrét termék
vonatkozásában.
4. A negyedik színt.
Új rekord típusok bevezetésével ez a színt valósítja meg a teljes
topológiát, a mellett, hogy használja a 3. színt rekordjait is a csomópont
- összeköttetés modell realizálására. A modell blokkdiagramját az 5.12 ábra
tartalmazza. Ez az a modell mely az NTF által lap-nak (face) nevezett
topológiai struktúrával megvalósítja az úgynevezett síkba feszítést, ami azt
jelenti, hogy a lap topológiával rendelkező területek átfedés nélkül
folyamatosan beborítják a síkot.
5. Szemelvények a negyedik színt rekordstruktúrájából.
- [AREA] a terület objektum leírására szolgál a teljes topológiai
modellben. Egy vagy több [FACEREC] (lap) rekord alkotja és más
objektumokkal a [COLLECT] rekordok segítségével köthető össze.
Mezői az AREA_ID - terület azonosító, ismétlő mezők a FACE_ID - az alkotó
lapok azonosítói, a SIGN, amely itt is megmutatja, hogy a kérdéses lap
területét hozzá kell-e adni az összterülethez, akkor értéke + vagy le
kell abból vonni, ekkor értéke -, az ATT_ID a terület objektum attribútum
rekordjait jelzi.
- [FACEREC] érdekes módon a lap rekord nem hivatkozik az alkotó élekre, csak
amint látni fogjuk azok hivatkoznak rá, ezért teljes topológia esetén a
területek felépítését az élekkel kell kezdeni, azokból kell létrehozni
topológiai meggondolásokból a csomópontok figyelembevételével láncokat és
ezekből a lapokat, melyekből a terület alakítja ki az objektumot.
Közvetlen objektum létrehozó jelentősége akkor van, ha a 3. szintnek
megfelelően egy élből álló zárt láncból hozza létre a területet. Mezői a
FACE_ID (I6) lapazonosító, NODE_ID (I6) csomópont azonosító mely a lap
opcionális referencia pontjára hivatkozik és a CHAIN_ID (I6) ismétlő
mezők, melyek a zárt láncok azonosítóit tartalmazzák.
- [EDGEREC] az él rekord a modell legtartalmasabb eleme. Leírja a vonalakat
hivatkozva a kezdő és végpontra, a jobb és baloldali lapra és az élet
alkotó pontok koordinátáira. Mezői EDGE_ID (I6) - az él azonosító,
SNODE_ID (I6) - a kezdő csomópont azonosítója, ENODE_ID (I6) - a vég
csomópont azonosítója, LFACE_ID (I6) - a baloldali lap azonosítója,
RFACE_ID (I6) - a jobboldali lap azonosítója, GEOM_ID (I6) - az él
koordináta rekordjának azonosítója.
- [CHAIN] a lánc rekord reprezentálja az él rekordokból kialakított
folyamatos vonalakat, illetve az egy élből álló zárt vonalat. Mezői
CHAIN_ID (I6) - lánc azonosító, és az EDGE_ID (I6) - él azonosító és DIR
(I1) ismétlő mezők. A DIR megmondja, hogy az él pontjainak mi a
topológiai sorrendje, ha értéke 0, akkor a sorrend nem számít, ha 1,
akkor a GEOMETRY*-ban található sorrend megfelelő, ha 2, akkor fordított
sorrendre van szükség a folyamatossághoz.
- [NODEREC] bár az NTF szabvány nem mondja ki nyíltan a csomópont rekord
azonkívül, hogy azonosítóval látja el a csomópontokat és hivatkozik
koordináta rekordjukra az önálló pont objektumok topológiai leképezésére
is szolgál. Mezői a NODE_ID (I6) - az azonosító, a GEOM_ID (I6) a
csomópont koordinátáit tartalmazó rekord azonosítója, a FACE_ID (I6) - a
lap azonosító, melyet akkor kell alkalmazni, ha a csomópont a lap referencia
pontját jelképezi.
- A nem
ismertetett objektum rekordok azaz a [LINE] és a [POINT] a
korábban elmondottak értelmében az él rekordra illetve a csomópont
rekordra hivatkoznak.
6. Az ötödik színt.
Ezt a színtet olyan speciális adatrendszerek átvitelére szánják, melyek nehezen
kezelhetők az ismertetett 4 színt bármelyikével. A szintet a felhasználóknak
kell definiálnia a 3. színt rekordtípusainak átvételével, esetleges
módosításával és bővítésével. A módosított és új rekordokat az adat szótár
(data dictionary) rekordok felhasználásával kell definiálni.
Az átviteli állomány globális struktúrája
Az 5.13 ábrán bemutatjuk az átviteli állomány (fájl) logikai
struktúráját, az 5.14 ábrán pedig a fizikai struktúrát. Az 5.13 ábrán *-al
jelöltük az ismétlődő, o-val pedig az opcionális blokkokat. Az 5. 14 ábrán a *
jellel ellátott két tömb csak az 5. szinten lép be. Az ábrákon látható strukturálást
különböző rekordok segítségével oldja meg az NTF. Nem tekintjük feladatunknak
ezeknek a strukturáló rekordoknak a részletes ismertetését és megelégszünk
rövid táblázatos összefoglalásukkal.
|
5.13 ábra - az
átviteli állomány logikai struktúrája
|
|
5.14 ábra - az
átviteli állomány fizikai struktúrája
|
Típus
|
Rekord
|
Megjegyzés
|
megjegyzés
rekord
|
comment
|
a köteten belül bárhol elhelyezhető szabad szöveg
|
kötet
rekord
|
volume
header
|
azonosító, küldő, fogadó, verzió, stb.
|
adatbázis
rekordok
|
database
header
|
minden szintnek külön adatbázis
|
|
feature
classification
|
az adatbázis kódolási sémájának leírása, más
sémával való egybevetése
|
|
code
list
|
az attribútum rekordok kódolásának definiálása
|
|
database
quality
|
szöveg rekord az egész adatbázis minőségének
jellemzésére
|
adat
szótár rekordok
|
attribute
description
|
leírja a mezőket és típusukat az attribútum
rekordokban
|
|
attribute
combination
|
attribútumok összevonása egy 2 karakteres
rövidítés alá
|
szekció
rekordok
|
section
header
|
megadja a szelvény paramétereit pld. koordináta
rendszer, egységek
|
|
section
quality
|
a szelvény pontossági jellemzése
|
|
data
quality
|
adat rekordonkénti pontosság
|
|
5.11 táblázat - a
strukturáló rekordtípusok összefoglalása
|
Az NTF annak ellenére, hogy a Föld első térinformatikai adatátviteli
szabványa volt viszonylag csekély mértékben terjedt el. Az Ordnance Survey az
Egyesült Királyság térképészeti hivatala, mint a szabvány elődjének alkotója is
ebben a formátumban szállítja digitális térinformatikai termékeit. De mivel az
amerikai szoftver gyártók nem igen támogatják ezt a formátumot, Nagy Britanniában
az ESRI helyi irodája konverter programokat dolgozott ki a különböző NTF
verziók és szintek ARC/INFO formátumba konvertálására.. A viszonylag szűk
felhasználói kört az is magyarázhatja, hogy a szabvány nem kezeli kellő szinten
az egyre nagyobb jelentőségű raszter struktúrákat.
Az SDTS-t (Spatial Data Transfer Standard azaz térbeli
adatátviteli szabvány), melyet 1992-ben terjesztettek elő föderális információ
feldolgozó szabványnak (FIPS) 1994-ben ratifikálták FIPS 173-1néven. Bizonyos
kisebb módosítások után 1997-ben a szabványt amerikai nemzeti szabványként
(ANSI) is benyújtották, melyet előreláthatólag 1999 elején fognak elfogadni. Az
alap specifikációt jól összefoglalja Fegeas és társainak cikke [5].
Az alap szabvány három részből áll. Az első rész tárgyalja az
adatmodellt, bevezetve az úgynevezett profilok fogalmát. A
második rész formális eszközökkel kísérli meg szabványosítani a térbeli
fogalmakat. A harmadik rész a fizikai implementációval
foglalkozik, felhasználva a már létező ISO 8211 nemzetközi szabvány, melyet az
Egyesült Államokban FIPS 123 néven honosítottak. Az ANSI-nak benyújtott
tervezetet további három résszel is kiegészítették, melyek az úgy nevezett profilokat
tartalmazzák. A negyedik rész írja le a topológiai vektor profilt,
az ötödik rész a raszter profilt és kiterjesztéseit, a hatodik
rész pedig a pont profilt. Az elképzelés szerint a szabvány
további profilokkal bővíthető, már elkészült a szállítási hálózati profil
vázlata.
Az SDTS formátumba való kódolást illetve az e formátumból
történő dekódolást végző programok profilonként kerülnek implementálásra.
Erre az egyszerűbb programozás és nagyobb hatékonyság érdekében van szükség. A
profilok tulajdonképpen az eredeti szabvány biztosította lehetőségek
részhalmazai, maguk az átvitt termékek pedig a profilok részhalmazai. Ezt a
gondolatot szemlélteti az 5.15 ábra.
|
5.15 ábra - a
profilok fogalma
|
A profilok
- követelményeket
és korlátozásokat fogalmaznak meg bizonyos objektum típusok használatával
kapcsolatban;
- követelményeket
és korlátozásokat tartalmaznak az SDTS modulok (logikai rekordok)
használata vonatkozásában, s egyben szabályokat adnak arra, hogy a
szabvány opciói közül hogyan kell választani;
- konvenciókkal
szolgálnak a modul-, és fájlnevekre;
- előírják az
ISO 8211 kódolási specifikációkat, utalva a megengedett opciókra.
Első rész: koncepcionális adatmodell, adatminőségi
specifikáció, logikai rekord és mező specifikáció
- Koncepcionális
adatmodell
A szabvány a valós világ
jelenségeit entitásoknak, digitális reprezentációjukat objektumoknak
hívja, az angol feature szót az entitás-objektum kettősre használja.
Bár a 0, 1 és 2 dimenziós
objektumok alapvetően a síkbeli ábrázolást szolgálják, lehetőség van az
objektumok z koordinátáinak figyelembe vételére is. Az objektumokat 13 altípusokkal
is rendelkező típusban foglalja össze a szabvány, melyek - egy példaként
bemutatott altípussal (G-gyűrű) együtt - a következők:
Csak geometriát tartalmazó
úgynevezett G objektumok:
- Pont
- koordináta párral vagy hármassal megadott 0
dimenziós helymeghatározó, altípusai az entitás pont, terület pont, címke
pont.
- Vonal
szegmens - közvetlen vonal két pont között.
- Sztring - a vonal szegmensek összekötött, elágazás nélküli egymásutánja.
- Ív - matematikai kifejezéssel meghatározott görbe.
- G-gyűrű
- vonal szegmensekből és/vagy ívekből álló, nem
metsződő, zárt vonal (és nem terület, a gyűrű altípusa).
- Belső
terület - olyan terület, mely nem tartalmazza a
határát.
- G-poligon - egy belső terület és egy külső G-gyűrű valamint esetleges
belső, nem metsződő G-gyűrű(k) által alkotott terület.
- Pixel - kétdimenziós, tovább nem osztható képelem.
- Rács
cella - a rács összetett 2 dimenziós objektum
legkisebb már oszthatatlan eleme.
Geometriai és topológiai,
úgynevezett GT objektumok:
- Csomópont - 0 dimenziós metszés vagy végpont.
- Összeköttetés - két csomópont közötti, esetleg irányított topológiai
kapcsolat.
- Lánc - nem feltétlenül különböző csomópontok közötti, irányított, nem
metsződő, vonal szegmens és/vagy ív folyam.
- GT-gyűrű
- zárt, nem metsződő láncokból álló szekvencia.
Zárt határt alkot, de nem képviseli a bezárt területet.
- GT-poligon - olyan elemi terület, mely alkotója egy és csakis egy
kétdimenziós halmaznak (összetett objektumnak), a határát GT-gyűrűk definiálhatják,
de közvetlenül is kapcsolható az alkotó láncokhoz.
Az objektumok vagy közvetlenül,
vagy összetett objektumokká való aggregálás útján reprezentálják
a valós világ entitásait. Az összetett objektumok egyszerű objektumokból
és/vagy más összetett objektumokból állnak. Ez a konstrukció lehetővé teszi
tetszőleges adatmodell realizálását.
2. Adatminőség
Az SDTS előírásai szerint,
lehetőséget kell biztosítani a felhasználónak, hogy az adatok pontosságáról
mind az adatokkal együtt, mind az adatok nélkül megfelelő specifikációval
(adatminőségi jelentéssel, angolul report-tal) rendelkezzen. A specifikáció
valódi pontossági értékek közlését írja elő és nem támogatja az osztályozott
pontossági tájékoztatást (más szóval nem elég azt írni hogy pld. valamely pont
koordinátái az elsőrendű hibahatáron belül vannak, hanem meg kell írni, hogy a
hiba a konkrét esetben milyen határok között, milyen átlagos értékkel, stb. tanúsítható,
még az is belefér ebbe a specifikációba, ha a szállító azt írja, hogy nem
ismeri a pontosságot). Ez a megközelítés megosztja a felelősséget az adatok
szállítója és felhasználója között.
Az alap szabványban a minőségi
jelentésnek öt alkotó eleme van, melyek mindegyikének fontos eleme a dátum. A
szabvány lehetőséget biztosított arra, hogy a később kidolgozott teljes
metaadat szabvány is csatolható legyen majd az adatokhoz. Az eredeti öt
alkotóelem a következő:
- származás - leírja a forrás és felújító anyagokat és előállításuk
technológiai folyamatát;
- helyzeti
pontosság - megadja a koordináták viszonyát a
valódi helyhez;
- attribútum
pontosság - jellemzi a leíró adatok pontosságát,
mind a helyzeti, mind az attribútum pontosság meghatározására a szabvány
több módszert ismertet;
- logikai
konzisztencia - a topológiai viszonyok
ellenőrzöttségéről tájékoztat;
- teljesség
- ismerteti a földrajzi területet illetve a
rétegek válogatási módszereit.
Az adatminőségi jelentés különböző szinteken
kapcsolható az adatokhoz: tartozhat az egész adatállományhoz, egyes
kiválasztott rétegekhez vagy térképekhez, sőt jellemezhetők az egyes objektumok
is. Ez utóbbi különösen akkor jelentős, ha az adat együttest különböző adatok
integrálásával hozták létre.
Az adatminőségi jelentésre a szabvány
három formát biztosít. A szöveges forma, ahogy a nevéből is
következtethetünk, narrative fejti ki a minőségi kérdéseket. A definiált
minőségi attribútumok esetében a meghatározott paraméterekhez illetve
jellemzőkhöz értékek rendelhetők. A minőségi rétegek alkalmazása
lehetővé teszi a metaadatok térbeli változásának illusztrálását.
3. A logikai adatstruktúra
Az elvi és fizikai adatmodell
közötti átmenetet a logikai adatstruktúra valósítja meg. A logikai rekord típusokat
az SDTS moduloknak hívja, melyekből 34-et specifikál. A modulok
egy vagy több rekordból állnak, a rekordokat egy vagy több mező
alkotja, a mezők pedig egy vagy több almezőt tartalmaznak. Maguk
az adatok ezeket az almezőket töltik ki.
Minden rekord legalább egy,
úgynevezett elsődleges mezőből áll, mely tartalmazza az átviteli
állományra egyedi, a modul névből és rekordsorszámból álló, modul rekord
azonosítót. A másodlagos mezőkben fenntartott helyek vannak a
rekordok közötti kapcsolatot realizáló idegen azonosítók
(pointerek) számára. Alapvetően ezeken a pointereken keresztül realizálhatók a
modul tipusok között specifikált kapcsolatok, melyeket az 5.16 ábrán kísérelünk
meg felvázolni.
A 34 modul típust célszerű a
következő 5 kategóriába csoportosítani: globális modulok, adat
minőségi modulok, térbeli adat modulok, attribútum
modulok, grafikus megjelenítési modulok.
A 13 globális modul
további 5 csoportra osztható:
1.
az azonosító modul az SDTS
verziószámát, az alkalmazott profil nevét és verziószámát valamint más fontos
leíró fejezeti adatokat (név, dátum, méretarány, stb.) tartalmazza. Alkalmazása
minden átvitelhez kötelező.
2.
a katalógust három modul típus
(katalógus/címjegyzék, katalógus/keresztreferencia, katalógus/térbeli
kiterjedés) alkotja. Mindhárom alkalmazása javasolt. A katalógus/címjegyzék
megmondja, hogy hol találhatók az egyes modulok (fájl név, kötet címke, rekord
sorszám). A katalógus/keresztreferencia modul rögzíti az egyedi,
modultól modulra mutató kapcsolatokat. Ilyen kapcsolatok keletkeznek például
akkor, ha a térbeli referencia modulok kétféle koordináta rendszert
specifikálnak. Ebben az esetben a katalógus/keresztreferencia modul
mondja meg, hogy melyik koordináta rendszer melyik térbeli objektumra
vonatkozik. A katalógus/térbeli kiterjedés modul földrajzi egység,
térkép név és/vagy téma alapján jellemzi az állományt.
3.
A koordináta adatok referencia rendszerét
négy térbeli referencia modul írja le. A belső térbeli
referencia modul megadja a koordináták dimenzióját (x,y vagy x,y,z)
és formáját (egész, valós, bináris, stb.) valamint azokat a méretarány és
eltolási tényezőket, melyekkel a belső koordináták a külső térbeli
referencia modulban megadott terepi koordinátákká transzformálhatók. A külső
térbeli referencia modul tartalmazza a vízszintes és magassági dátumot
valamint a vetületi rendszert. A regisztrációs modul illesztőpontok
belső és külső koordinátáit tartalmazza. A térbeli kiterjedés modul
megadja azt az ablakot vagy azokat a földrajzi határvonalakat, melyeken belül a
koordináták elhelyezkednek.
4.
Az adatszótárt három modul típus
az adatszótár/definíció, az adatszótár/kiterjedés és az adatszótár/séma
alkotja. Az adatszótár/definíció modul meghatározza az entitás és attribútum
kifejezéseket (melyeket címkéknek nevez) és megnevezi, hogy milyen
szervezet felelős az egyes definíciókért. Az adatszótár/kiterjedés
megadja az attribútum értékek típusát és értékhatárait, valamint az attribútum
érték kódok jelentését. Az adatszótár/séma megadja az attribútum modulok
(elsődleges attribútum, másodlagos attribútum) formáját a leírt
attribútumok szerint, az attribútumok típusát, formátumát és maximális hosszát.
Az elsődleges attribútumok számára, a fentieken kívül, megnevezi a jellemzett
entitás címkével kifejezett típusát.
5.
Az opcionális modulok közé a biztonsági
modul és az átviteli statisztika modul tartozik
Az 5 minőségi modul,
azaz a származás, helyzeti pontosság, attribútum pontosság, logikai
konzisztencia, teljesség kifejezésére szolgáló modul típusok különböző
formában és szinten alkothatják a minőségi leírást. A minőségi rekord
tartalmazhat tetszőleges hosszúságú szöveges leírást, hivatkozhat tetszőleges
számú attribútum rekordra, melyek a meghatározott minőségi attribútum értékeket
tartalmazzák, illetve az idegen azonosítok felhasználásával tetszőleges számú
egyedi objektum vagy attribútum rekord pontosságát is jellemezheti. A minőségi
modulok egy vagy több rekord felhasználásával jellemezhetik az egész átviteli
állományt vagy annak válogatott moduljait (például egy rétegét). Ez utóbbi
esetben a válogatott modulok minőségi modulokhoz való hozzárendelését a katalógus/keresztreferencia
modul tartalmazza.
A 7 térbeli objektum modul
szolgál a térbeli objektumok átvitelére. Az objektumok jellemzésére helyzeti,
kapcsolati és attribútum adatok szolgálnak. A helyzeti (koordináta) adatok a
legtöbb modul rekordjaiban megtalálhatók a térbeli cím másodlagos mezőiben. A
kapcsolatok rögzítésére a rekordokban elhelyezett pointerek (idegen azonosítók)
szolgálnak. A külön modulokban elhelyezett attribútum adatokat idegen
azonosítók kapcsolják a térbeli objektumhoz. A térbeli objektum modulok 3 főcsoportra
oszthatók:
6.
A kompozit modul az FF
kóddal jelzett összetett térbeli objektum leírására szolgál. Ez a modul nem
tartalmaz koordinátákat, hanem csak mutatókat az őt alkotó, egy vagy több,
tetszőleges struktúrájú - kompozit, vektor vagy raszter - objektumra.
7.
A vektor modulok csoportja
5 modulból áll és a koncepcionális modell 27 objektum típusa illetve altípusa
leírására alkalmas. A pont-csomópont modul objektumai: pont,
kódja NP, entitás pont, kódja NE, címke pont, kódja
NL, terület pont, kódja NA, csomópont, síkbeli gráf,
kódja NO, csomópont, hálózat, kódja NN. A vonal modul
objektumai a következők: sztring, kódja LS, összeköttetés,
kódja LQ, teljes lánc, kódja LE, terület lánc,
kódja LL, hálózati lánc, sík gráf, kódja LW, hálózati
lánc, nem sík gráf, kódja LY. A csoport következő modulja az ív
modul, melyhez a következő objektumok tartoznak: körív, 3 pont középpont,
kódja AC, elliptikus ív, kódja AE, folyamatos B-spline,
kódja AU, szakaszos Bezier, kódja AB. A gyűrű modul
objektumai: vegyes felépítésű gyűrű, kódja RM, sztringekből
álló gyűrű, kódja RS, láncokból álló gyűrű, kódja RU, ívekből
álló gyűrű, kódja RA. A csoport utolsó modulja a poligon modul
a következő objektumokkal: G-poligon, kódja PG, gyűrűkből
összetett GT-poligon, kódja PR, gyűrűkből álló univerzum poligon,
kódja PU, láncokból álló univerzum poligon, kódja PW, gyűrűkből
álló üres poligon, kódja PV, láncokból álló üres poligon,
kódja PX.
8.
A raszter definíciós modul
4 objektum típus kódolására alkalmas, ezek a következők: szekvenciális
réteg, direkt kódolás, kódja GI, soronként összefűzött réteg,
direkt kódolás, kódja GJ, szekvenciális réteg
hossztömörítő-kódolás, kódja GK, hossztömörítő kódolás cellánkénti
attribútumokkal, kódja GM. Megjegyezzük, hogy a raszter
objektumoknak még egy cella modulra is szükségük van, mely
tartalmazza az oszlop és sorindex információkat illetve a cellák aktuális
értékét (ez utóbbi helyettesíthető az attribútum rekordokra való hivatkozással
is).
Bár mindössze 2 attribútum modul
szolgál a leíró adatok átvitelére az attribútum átviteli mechanizmus igen
rugalmas. Az elsődleges attribútum modul tulajdonképpen egy
relációs táblázat, melynek fejléce az attribútum címkéket, sorai pedig az
attribútum rekordokat tartalmazzák. Lényeges kikötés, hogy ebben a modulban
minden rekordnak tartalmaznia kell azt az idegen azonosítót (pointert), mely
megmutatja, hogy a rekord attribútumai melyik objektumra vonatkoznak. A
gyűrűkön kívül valamennyi térbeli objektumnak lehet attribútuma. A másodlagos
attribútum modul abban különbözik az elsődlegestől, hogy nem
rendelkezik pointerrel. A benne található adatok az azonos oszlopok alapján
kapcsolhatók az elsődleges modul táblázataihoz. Mindkét modul attribútum
táblázatait (az oszlopok jelentését, címkéjét, formátumát, maximális hosszát,
mértékegységét) az adatszótár/séma modul rekordjaiban kell
meghatározni. Itt arra is lehetőség van, hogy hozzárendeljék az attribútum
modul attribútumait valamely entitás típushoz. Lényeges követelmény, hogy mind
az entitás típusok, mind az attribútumok esetében hivatkozni kell az adatszótár
modulokban a meghatározást végző hatóságra. Ezen túlmenően az adatszótár/definíció
moduljában minden entitás és attribútum típust részletesen meg kell határozni,
hivatkozva a forrást biztosító hatóságra. Ez alól a szabály alól kivételt
képeznek az SDTS második részében szabványosan definiált entitás és attribútum típusok.
Ezeknél ugyanis a meghatározó hatóság rovatba SDTS kerül, míg az adatszótár/definíció
moduljában a meghatározásokat nem kell elvégezni. Végül érdemes megemlíteni,
hogy olyan adatmodell esetén, mely a szabványos objektum modulokkal nem írható
le az adatmodellt attribútumokként kódolva lehet átvinni.
Bár az SDTS-t földrajzi és nem
kartográfiai adatok átvitelére koncepcionálták a felmerült igények
kielégítésére mégis 6 grafikus megjelenítési modult specifikáltak. A szöveg
megjelenítési modul segítségével vihetők át a megjelenítendő szövegek.
A vektoros objektumoknál már felsorolt speciális pont objektum a címke pont (kódja
NL) szolgál a megjelenítendő szöveg referencia pontjául. A címke pont
rekord többi mezője hivatkozik a kiírandó szövegre (mely egy attribútum modul
almezejében található), a felírat tájékozására vagy a görbére, mely mentén a
szöveget el kell helyezni. Maga a szöveg megjelenítési modul
többek közt meghatározza a betűtípust, a betűk színét, magasságát, dűlését és a
címke ponthoz viszonyított helyzetét. A betűtípus és szín specifikálása a betűtípus
index modulra illetve a szín index modulra történő
hivatkozással történik. A pont, vonal és terület objektumok megjelenítésére
szolgálnak a szimbólum megjelenítési modul, vonal megjelenítési modul
és terület kitöltés megjelenítési modul. Mindhárom modul
tartalmaz megjelenítési lépték paramétereket és hivatkozást a szín index
modulra. A szimbólum megjelenítési modul meghatározza a
pont objektumok megjelenítésére szolgáló szimbólumok méretét és típusát. A vonal
megjelenítési modul megadja a vonal vastagságot és vonal tipust. A terület
kitöltés megjelenítési modul megadja a kitöltés típusát illetve
sraffozásos vagy mintázatos kitöltés esetén a megkívánt minta index adatait. A szín
index modul a többi modul számára szolgál hivatkozási alapként a kívánt
szín vörös, zöld, kék (RGB) komponensei vonatkozásában, de lehetőség van
szürkeségi értékek illetve nyomtatási színek (YMC) figyelembe vételére is. A betűtípus
index modul a betűtípusokra szám vagy név formában hivatkozik. A
hivatkozott számok illetve nevek az adatszótár/kiterjedés modul
rekordjaiban vannak specifikálva. Mind a szövegek mind az egyéb megjelenítési
modulok vonatkozásában ez a mechanizmus lehetővé teszi felhasználó specifikálta
megjelenítési elem átvitelét.
|
5.16 ábra - a
modul tipusok kapcsolatrendszere
|
Második rész: a szabványos entitás
lista kialakítására tett kísérlet
Egyrészt azért, hogy az entitás típusokat
és attribútumaikat ne keljen egyenként definiálni az adatszótár/definíció
modulban, másrészt hogy az adatok több felhasználó által történő használata
ne járjon értelmezési problémákkal az SDTS második része 200 entitás típus, 244
attribútum és több mint 1200 kapcsolódó kifejezés meghatározására tett kísérletet
az alábbi struktúrában:
- Entitás
típus - olyan halmaz, melybe hasonló tulajdonságú entitásokat
csoportosítanak (pld. híd);
- Entitás
egyed - olyan entitás típushoz tartozó egyed, mely más entitás típusok
közé van beékelve (pld. a 103. utca hídja);
- Attribútum
- egy entitás típus meghatározott jellemzője (pl. szerkezet);
- Attribútum
érték - valamely konkrét entitás egyed attribútumának adott speciális
minőségi vagy mennyiségi tulajdonság, illetve érték (pl. acél);
- Szabványos
kifejezés - az entitás típus vagy attribútum elsődleges címkéje (pld.
híd);
- Kapcsolódó
kifejezés - egy szinonima vagy specialis forma, melyet keresztreferencia
kapcsol az SDTS által definiált entitás típushoz vagy attribútumhoz (pld.
felüljáró).
Ez a része a szabványnak nyitott abban a
vonatkozásban, hogy különböző szakterületi bizottságok dinamikusan fejlesztik
az eredetileg topográfiai és vízrajzi entitások körét.
Harmadik rész: az SDTS fizikai
implementálása
A szabvány harmadik része azt írja
le, hogy miként kell transzformálni a fizikai átvitelhez a logikai rekordok
mezőit és almezőit egy meglévő általános célú adatátviteli szabvány - az ISO
8211 struktúrájába. Ez a szabvány alkalmas tetszőleges adathordozón illetve
kommunikációs vonalon történő átvitel realizálására.
Az ISO 8211 rekordstruktúrája
Az ISO 8211 fájl
"önleíró", ami azt jelenti hogy minden fájl tartalmaz egy szabványos
rögzített részt, mely leírja a fájl második, változó részét.
Az ISO 8211 fájlt Adatleíró Fájlnak
nevezik (angolul: Data Descriptive File, rövidítve DDF), mely rögzített
részét Adatleíró Rekordnak (Data Descriptive Record, DDR), változó
részét pedig Adat Rekordoknak (Data Records, DRs) hívják.
A rekordoknak egy vagy több mezőjük
van, a mezők egy vagy több almezőből állnak. A mezőt úgy tekinthetjük, mint ami
két részből áll: a leírásból és struktúrából melyeket a DDR tartalmazza,
illetve adatokból, melyek a DR-ben foglalnak helyet.
Mind a DDR mind a DR rekordok három
részből állnak (5.17 ábra).
|
5.17 ábra - Az
ISO 8211 Adatleíró Fájl felépítése
|
Az első rész a "vezető"
(leader) bár rekord típusonként különböző formában, de ugyanazt a funkciót
látja el. A 24 bájt hosszúságú leader feladata, hogy leírja a rekord maradék
részeit. Ennek keretében tartalmazza a rekord hosszát valamint a DDR és DR
második része a címjegyzék (directory) egyes elemeinek hosszát.
A címjegyzék (directory) meghatározza
a rekord minden mezőjének címkéjét (tag), hosszát és rekordon belüli relatív
címét. A címkék belső mező nevek, melyek segítségével a DDR és DR-ek
összekapcsolhatók.
A harmadik rész különbözik a DR-ek
és a DDR között. A DR-ek harmadik része a tényleges adatokat tartalmazó "felhasználói
adatterület" (User Data Area, UDA), míg a DDR harmadik része az "adatleíró
terület" (Data Descriptive Area, DDA).
Az "adatleíró terület"
valamennyi mező leírására szolgál és mezőnként az alábbi négy részből áll:
- a
mező meghatározó rész hat bájtból áll melyek jelentése a következő:
- a
0.-ik helyen áll a szerkezeti kód (0=elemi, 1=vektor, 2=tömb)
- az
1.-ső hely a típus kódé (karakter, egész, valós, bináris, kevert, stb.)
- a
2.-ik és 3.-ik hely mindig 0
- a 4.-ik
hely egy felhasználó definiált, nyomtatható mező vége jelet tartalmaz,
mely rendszerint ";"
- az
5.-ik hely egy felhasználó definiált, nyomtatható rendszer egység vége
jelet tartalmaz, mely rendszerint "&"
- a
mező név
- címkék,
melyek a mezőt alkotó almezőket nevezik el
- valamennyi
almező formátum specifikációja.
A 2. és 3. változó hosszúságú
részeknek szabványos egység vége jellel (ASCII 31) kell végződnie. Mivel ez a
jel nem nyomtatható ezért megjelenítési célból a felhasználó specifikálhat egy
nyomtatható karaktert, mely rendszerint "&", hasonlóképpen mivel
az adatleíró mező szabványos mező vége jele ASCII 30 és ez sem nyomtatható
ezért helyette szintén specifikálható nyomtatható karakter, pld. ";".
Elemi mező értékek esetén nincsenek
almezők és az adatleíró mező címke része üres. Vektoros struktúra esetén minden
almezőnek van egy címkéje, melyeket a felsorolásban "!" karakter
választ el egymástól. Tömbök címkézésére felhasználják a szorzás műveletét is,
azaz, ha a tárolandó mátrix címkéi: , úgy jelölésük a címke részben:
A!B!C*X!Y!Z. A *-al kezdődő címkék pld *X!Y annyiszor ismétlik önmagukat, amíg
az adatok el nem érik a mező végét. Ilyen módon lehet a változó koordináta
számot a vonal modulban implementálni.
A formátum specifikáció a típus
mellett vagy megadja a hosszat, vagy az almező végét az egység vége jel jelöli.
A szabványos típusjellemzők a következők: A - karakter, B - bináris, C - 0 és 1
karakterként értelmezve, I - egész, R - valós, S - lebegőpontos, X nem használt
karakter pozíciók.
Az egész fájl címét a DDR-ben 0..0
kóddal jelölt mező tartalmazza, a 0..1 kód a rekord azonosító mezőt jelöli. Az
ISO 8211 fájl szintjét a vezetőben (leader) kell specifikálni. Három
színt áll rendelkezésre. Az első színt csak elemi struktúrákat és karakteres
adatokat támogat. A második, leggyakrabban használt szinten minden struktúra és
adat típus használható. A harmadik színt ezeken túl még a mezők közti
hierarchikus kapcsolatokat is megengedi.
Azonos hosszúságú adatrekordok
esetén az adatrekordokból az első kivételével a vezető és címjegyzék
elhagyható. Az elhagyás tényét az első adat rekord vezetője hatodik pozícióján
elhelyezett "R" betű rögzíti.
Az ISO 8211 lehetővé teszi bináris
adatok átvitelét is. Bináris formátumban pontosan specifikálni kel a bitek
hosszát, B(32) például egy 32 bites érték, mivel ilyenkor a mező- és egység
vége jelek nem használhatók. Az adatnak kerek bájttal kel kezdődni, mely
szükség esetén előre írt nullákkal állítható elő. Arról, hogy a bináris adatot
hogyan kell értelmezni az SDTS erre a célra rendelkezésre álló almezői
intézkednek.
Az [5] alapján írjunk fel egy rövid
példát egy kinyomtatott ISO 8211 Adatleíró Fájlra (DDF), mely valamennyi
társához hasonlóan egy Adatleíró Rekordot (DDR) és három Adat Rekordot (DR)
tartalmaz. A könnyebb érthetőség kedvéért a fájlt átformattáltuk: sorokra
bontottuk, a szóközöket ^ karakterrel jelöltük, az egység vége jelet &, a
mező vége jelet pedig ; jelöli. Baloldalon, zárójelben közöltünk néhány
magyarázatot, illetve az aláhúzott sorokhoz még külön szöveges magyarázatot is
fűztünk.
Kétségtelen, hogy a DDF olvasása a formattálás
ellenére sem túl szórakoztató. Próbáljunk meg egy kevés információt kibányászni
a kódokból.
A 002212L^^^0600073^^^4404 DDR
vezető a következőket jelenti:
- A DDR
bájtokban kifejezett teljes hossza 221 (a vezető első 5 karaktere);
- A
fájl csere szintje 2 (a hatodik karakter);
- A
címjegyzék hossz-, pozíció- és címke elemeinek hosszai egyaránt 4
karakter értékűek (a 21., 22. és 23. karakterek).
Mind a DDR mind a DR címjegyzéke
tartalmaz egy ATTP nevű címkét. Az ATTP-hez tartozó elemeket aláhúzással
jelöltük a példában. A DDR-ben az ATTP címke 44 karakter hosszú és az adatleíró
terület (DDA) elejétől 104 karakterre van. A megfelelő címke a DR-ben 11
karakter hosszú és a felhasználói adatterület (UDA) elejétől 18 karakternyire
van.
Az ATTP címke leíró része a
következőket tartalmazza:
- A
mező vezérlő értéke 1600;&, ahol
- 1 a
vektor struktúrát kódolja,
- 6 a
vegyes adattípust jelenti,
- ;&
a nyomtatásban az egység és mezővége jelek helyettesítő karakterei;
- A
mező neve PRIMARY ATTRIBUTES;
- Két
almezője van, melyek címkéi PSAD és NAME;
- A
PSAD formátuma rögzített hosszúságú (2) karakteres, NAME formátuma
rögzítetlen hosszúságú karakteres.
A formátum felhasználásával
dekódolhatjuk a hivatkozott almezők értékét az első adatrekordból:
- A
mező első két karaktere 01, azaz ez lesz a PSAD almező értéke;
- A
NAME almezőnek nincs előre megadott hossza, ezért végét a mező végződés
jel mutatja, értéke pedig Missouri.
Az SDTS logikai struktúrájának ISO
8211-be történő leképezéséhez mindenek elött meg kell feleltetni a megfelelő
struktúrák elnevezéseit:
SDTS
|
ISO 8211
|
Modul almező
|
Almező/elem
|
Almező név/mnemonik
|
Címke (label)
|
Mező név
|
Név
|
Mező mnemonik
|
Címke (tag)
|
Tartomány
|
Adattipus/formátum
|
A megfeleltetést praktikusan az
SDTS harmadik részében található táblázat realizálja, mely valamennyi
modul mező számára megadja a címkéket (tag), mezővezérlőket, neveket,
címkéket (label) és formátumokat illető ISO 8211 specifikációt az alábbi
formában:
Címke (Tag)
|
st00fuName (Hivatkozás az SDTS 1. rész
paragrafusára)
|
[ ]|[n]|[m,n]
|
Címke(Label)&
|
|
Formatum;, ahol
|
- Címke
(Tag) - az ISO 8211 mező címkéje;
- st00fuName - a 6 bájtos mező vezérlők;
- (Hivatkozás
az SDTS 1. rész paragrafusára) - a hivatkozás
csak minden modul első mezőjénél jelenik meg;
- [
] - annak a specifikálása, hogy nincsenek címkék
(label);
- [n]
- specifikálja a vektor struktúra n
almező elemét;
- [m,n] - specifikálja a kétdimenziós tömb dimenzióit;
- | - jelzi, hogy az előző három esetből egy létezni fog;
- Címke(Label)& - ISO 8211 vektor-, vagy szorzási címke az egység vége határoló
jelével;
- Formatum; - ISO 8211 formátum vezérlés és ; mezővége határoló jel.
Példaként lássunk egy konkrét
specifikációt a hivatkozott táblázatból.
IDEN
|
1600;&IDENTIFICATION& (See
Part 1, 5.2.1.1)
|
[15]
|
MODN!RCID!STID!STVS!DOCU!PRID!PRVS!PDOC!
TITL!DAID!DAST!MPDT!DCDT!SCAL!COMT&
|
|
(A,I,11A,I,A);
|
Példánk esetében az SDTS mező
mnemonik kód "IDEN" volt, melyet a táblázat ISO 8211 mező címkére
képez le. Az első SDTS almező mnemonik kód "MODN", ami az ISO
8211-ben az első almező címkére képződik le. A mező név "IDENTIFICATION"
mindkét rendszerben mező név marad. Az SDTS-ben az első almező típusa
karakteres, tartománya alfanumerikus karakterek, az ennek megfelelő ISO 8211
formátum a karakter.
Általában az SDTS-ben a nem
ismétlődő mezők vektor struktúrájúak, míg az ismétlődő mezők tömb
struktúrájúak. Lássunk erre is egy példát a hivatkozott leképező táblázatból.
SADR
|
2600;&SPATIAL ADRESS&
|
[m,3]
|
*X!Y!Z&
|
|
(3z); ahol z (I|R|S|B)
|
A példa a Vonal (Line) modul egy mezőtípusához,
"Térbeli Címeknek" nevezett koordináta mezőkhöz tartozik. Mivel a
vonalakban a koordináta mezők ismétlődnek ezt a második sor elején szereplő *
jelzi. Az első sorban a 2 a tömb struktúrára utal. A vonalak váltakozó számú
koordinátát tartalmazhatnak, ezt az egyik tömbdimenzióként megadott m mutatja.
A formátum specifikációban z pedig azt jelenti, hogy több adattipus közül
választhatunk. Esetünkben ezek a típusok: egész, valós, lebegőpontos, bináris.
A fizikai modellben egy globális
modul rekord mezőit mindig egy ISO 8211 rekord képezi le. Hasonlóképpen egy ISO
8211 fájl egy globális modul rekordjait tartalmazza.
A többi modul esetén általában
nincs ilyen megkötés és az SDTS megengedi, hogy az ISO 8211 rekordok egy vagy
több modul mezőit tartalmazzák, illetve, hogy egy ISO 8211 fájl egy vagy több
modulból álljon. Ennek ellenére az SDTS óv a kapcsolat nélküli modulok
egybeolvasztásától és a gyakorlati adatátvitelt szolgáló Topológiai Vektor
Profilban kiköti, hogy minden ISO 8211 fájl csak egy modult tartalmazzon.
Az ISO 8211 fájlok adathordozókra
vitelét további szabványok írják le: ANSI X3.27 - mágnesszalag, ISO 9293 -
hajlékony lemez (DOS), ISO 4341 - kartridzsok és kazetták, ISO 9660 - CD-ROM.
Ezzel a viszonylag részletes
leírással azt szeretném elérni, hogy az érdeklődők legalább egy szabvány
vonatkozásában az átviteli folyamat teljes spektrumát - a koncepcionális
modelltől a fizikai modellig - áttekinthessék. Ha azonban valakinek még további
ismeretekre van szüksége (pld. formátum transzformációt akar programozni), úgy
ajánlom, hogy tanulmányozza át az eredeti szabványt, mely szerencsére az INTERNET-ről szabadon letölthető.
Megjegyzéseit E-mail-en várja a
szerző: Dr Sárközy Ferenc