SM-06-LAB-WIKI

From Studia Informatyczne

Spis treści

Temat ćwiczenia

Zapoznanie się z podstawowymi sposobami przechowywania danych geograficznych (GIS).

Wymagania

Ćwiczenie

Wprowadzenie

Geographical Information System – GIS (System Informacji Geograficznej) – jest to zbiór urządzeń oraz oprogramowania służący do zbierania, przechowywania oraz analizowania wszelkich form powiązanych danych geograficznych np. rozmieszczenie obiektów w terenie. GIS ma szereg zastosowań, od administracji publicznej do rozwiązań biznesowych np. planowanie przejazdu pojazdów, analizowanie zagrożeń pożarowych, badania statystyczne rozmieszczenia różnych gatunków zwierząt. Istnieje wiele formatów opisu i przechowywania danych geograficznych. Należą do nich m.in. MIF oraz SHP.

MIF

MapInfo Format (MapInfo Data Interexchange Format – MIF) – jest to globalny format reprezentacji danych wektorowych. Format ten jest formatem tekstowym i umożliwia przechowywanie wielu atrybutów dla obiektów geograficznych. Dane w formacie MIF występują zazwyczaj w postaci dwóch plików:

  • .mif – plik przechowujący opis danych geograficznych,
  • .mid – plik zawierający opisy atrybutów danych geograficznych.

Dane opisujące obiekt geograficzny oddzielone są znakiem powrotu karetki (CR) natomiast poszczególne atrybuty znakiem określonym parametrem DELIMITER w części nagłówkowej pliku .mif.

Opis formatu – plik .mif

Format MIF składa się z części nagłówkowej oraz części zawierającej dane opisujące obiekt geograficzny.

Nagłówek pliku

VERSION n
CHARSET "Char-set"
[DELIMITER "<c>"]
[INDEX n,n..]
[COORDSYS...]
COLUMNS n
<Name><Type>

VERSION – numer wersji pliku z zakresu 1-3,

CHARSET – kodowanie znaków w plikach .mif i .mid, np.: "WindowsLatin1",

DELIMITER – znak separacji używany w opisie obiektu, atrybut opcjonalny – domyślnym znakiem separacji jest tabulacja, np.: ";",

INDEX – specyfikacja kolumny lub listy kolumn, które będą indeksowane, każda wartość odnosi się do konkretnego atrybutu bazy danych, np.: wartość 2 odpowiada atrybutowi drugiemu, atrybut jest opcjonalny,

COORDSYS – specyfikacja sposobu przechowywania danych geograficznych w przypadku gdy dane nie są przechowywane w formacje długość/szerokość geograficzna,

COLUMNS – specyfikacja liczby kolumn, poniżej dla każdej z kolumn występuje specyfikacja jej nazwy oraz typu danych w niej przechowywanych, dopuszczalnymi typami danych są:

  • char (długość łańcucha znaków),
  • integer (4 bajty),
  • smallint (2 bajty – wartości z zakresu od -32767 do +32767),
  • decimal (ilość znaków,długość część dziesiętnej),
  • float,
  • date,
  • logical.

Np.:

COLUMNS 3
State char (15)
Population integer
Area decimal (8,4)

Część danych pliku

Obiekty geograficzne

Dane opisujące obiekty geograficzne następują bezpośrednio po części nagłówkowej i rozpoczynają się od słowa DATA. Część danych pliku .mif może składać się z wielu części, z których każda opisuje jeden obiekt geograficzny. Powiązanie pomiędzy obiektami znajdującymi się w pliku .mif, a atrybutami pliku .mid dokonywane jest w następujący sposób. Atrybut pierwszego obiektu pliku .mif znajduje się w pierwszej linii pliku .mid. Atrybut drugiego obiektu pliku .mif znajduje się w drugiej linii pliku .mid, itd.

Wspierane typy obiektów geograficznych:

  • point,
  • line,
  • polyline,
  • region,
  • arc,
  • text,
  • rectangle,
  • rounded rectangle,
  • ellipse.

point

Obiekt przyjmujący współrzędne x oraz y, możemy zdefiniować również symbol reprezentujący obiekt:

POINT x y
[ SYMBOL (shape, color, size) ]

line

Definiujemy współrzędne x oraz y obu końców obiektu, możemy również określić styl linii:

LINE x1 y1 x2 y2
[ PEN (width, pattern, color) ]

polyline

Obiekt może składać się z wielu sekcji (wymagana klauzula MULTIPLE oraz liczba sekcji). Dla każdej z sekcji określamy liczbę wierzchołków, a następnie definiujemy współrzędne wierzchołków. Możemy określić styl linii oraz zastosować opcję wygładzania:

PLINE [ MULTIPLE numsections ]
numpts1
x1 y1
x2 y2
:
[ numpts2
x1 y1
x2 y2 ]
:
[ PEN (width, pattern, color) ]
[ SMOOTH ]

region

Obiekt składający się z wielu wielokątów. Dla każdego wielokąta definiujemy liczbę jego wierzchołków oraz współrzędne tych wierzchołków. Zdefiniować możemy styl linii, styl wypełnienia wielokątów oraz współrzędne wierzchołka obiektu (musi znajdować się wewnątrz obiektu):

REGION numpolygons
numpts1
x1 y1
x2 y2
:
[ numpts2
x1 y1
x2 y2 ]
:
[ PEN (width, pattern, color) ]
[ BRUSH (pattern, forecolor, backcolor) ]
[ CENTER x y ]

arc

Dla zdefiniowania łuku podajemy współrzędne przeciwległych wierzchołków prostokąta otaczającego łuk oraz wartości kątów (w stopniach) początku oraz końca łuku (parametry a oraz b). Przejście od początku łuku odbywa się zgodnie z ruchem wskazówek zegara:

ARC x1 y1 x2 y2
a b
[ PEN (width, pattern, color) ]

text

Aby umieścić łańcuch znaków korzystamy z obiektu TEXT. Określamy współrzędne tekstu oraz opcjonalnie krój czcionki, justowanie, odstępy, styl linii:

TEXT "textstring"
x1 y1 x2 y2
[ FONT... ]
[ Spacing {1.0 | 1.5 | 2.0} ]
[ Justify {Left | Center | Right} ]
[ Angle text_angle ]
[ Label Line {simple | arrow} x y ]

rectangle

Dla obiektu prostokąt definiujemy współrzędne przeciwległych wierzchołków oraz opcjonalnie styl linii oraz wypełnienia:

RECT x1 y1 x2 y2
[ PEN (width, pattern, color) ]
[ BRUSH (pattern, forecolor, backcolor) ]

rounded rectangle

Prostokąt o zaokrąglonych wierzchołkach. Dodatkowo definiujemy kąt zaokrąglenia w stopniach (parametr a):

ROUNDRECT x1 y1 x2 y2
a
[ PEN (width, pattern, color) ]
[ BRUSH (pattern, forecolor, backcolor) ]

ellipse

Określamy współrzędne przeciwległych wierzchołków prostokąta otaczającego elipsę:

ELLIPSE x1 y1 x2 y2
[ PEN (width, pattern, color) ]
[ BRUSH (pattern, forecolor, backcolor) ]

Style długopisu

PEN (width, pattern, color)

Definiując styl linii określamy jej szerokość (w pikselach oraz punktach), kolor oraz krój linii (Rysunek 1).

Rysunek 1 – Style linii
Rysunek 1 – Style linii

Styl pędzla

BRUSH (pattern, forecolor [, backcolor ])

Definiując styl wypełnienia figury określamy krój (wzór wypełnienia), kolor wzoru oraz kolor opcjonalnie kolor tła). Dostępne wzory wypełnienia (Rysunek 2).

Rysunek 2 – Style pędzla
Rysunek 2 – Style pędzla

Styl symbolu

SYMBOL (shape, color, size)
SYMBOL (shape, color, size, fontname, fontstyle, rotation)

Dostępne wzory symboli (Rysunek 3).

Rysunek 3 – Style symbolu
Rysunek 3 – Style symbolu

Style tekstu

FONT ("fontname", style, size, forecolor [, backcolor])
Wartość Efekt
0 Brak
1 Pogrubiony
2 Kursywa
4 Podkreślenie
16 Otaczanie(tylko dla komputerów Macintosh)
32 Cień
256 Halo
512 Duże litery
1024 Rozszerzony

Kolor

Kolor definiowany jest jako wartość całkowitoliczbowa określona wzorem:

(red * 65536) + (green * 256) + blue

Opis formatu – plik .mid

Plik .mid zawiera wartości atrybutów obiektów zdefiniowanych w pliku .mif. W każdej linii pliku znajduje się wartość atrybutu jednego obiektu geograficznego. Plik .mid jest opcjonalny.

SHP

Format pliku SHP (ESRI Shape Format) został opracowany przez Environmental System Research Institute jako format reprezentacji danych wektorowych. Wspiera obiekty typu punkt, wielopunkt, wielolinia, wielokąt. Do opisywanych obiektów geograficznych umożliwia dołączenie atrybutów, nie wspiera przechowywania danych topologicznych.

Format SHP składa się ze zbioru plików obowiązkowych oraz opcjonalnych. Pliki muszą spełniać konwencję nazewniczą systemu MS-DOS (8,3), jak również pliki tego samego zbioru znajdować się muszą w tym samym folderze.

Pliki obowiązkowe

Istnieję trzy obowiązkowe pliki każdego opisu obiektów geograficznych w formacie SHP. Pliki te zawierają niezbędne informacje opisu obiektów.

Plik .shp

Główny plik formatu SHP zawierający informacje o geometrii obiektów. Składa się ze stałej długości nagłówka oraz jednego lub wielu zmiennej długości rekordów. Każdy rekord zawiera nagłówek rekordu oraz część danych (Rysunek 4).

Rysunek 4 – Schemat pliku .shp
Rysunek 4 – Schemat pliku .shp

Nagłówek pliku zajmuje obszar 100B i składa się 17 pól z danymi (File Code (9994), Unused / Reserved, File Length, Version Number, Shape Type and Bounding Box (minimalne i maksymalne wartości X, Y, Z, M)) (Rysunek 5).

Rysunek 5 – Format nagłówka pliku .shp
Rysunek 5 – Format nagłówka pliku .shp

Nagłówek rekordu zajmuje 8B i zawiera numer rekordu oraz rozmiar części danych rekordu (Rysunek 6).

Rysunek 6 – Format nagłówka rekordu pliku .shp
Rysunek 6 – Format nagłówka rekordu pliku .shp

Zawartość pola danych rekordu zależy od zdefiniowanego typu obiektu w polu Shape Type nagłówka pliku (Rysunek 7).

Rysunek 7 – Typy obiektów formatu SHP
Rysunek 7 – Typy obiektów formatu SHP

Typy obiektów:

  • Null Shape (Wartość : 0) – 1 pole 1B – pusty obiekt – przeznaczone do przechowywania obiektów w przyszłości,
  • Point (Wartość : 1) – 3 pola (Shape Type, X, Y) – 20B,
  • PolyLine (Wartość : 3) – 6 pól (Shape Type, Box, NumParts, NumPoints, Parts, Points) – 44+4*NumParts B,
  • Polygon (Wartość : 5) – 6 pól (Shape Type, Box, NumParts, NumPoints, Parts, Points) – 44+4*NumParts B,
  • MultiPoint (Wartość : 8) – 4 pola (Shape Type, Box, NumPoints, Points),
  • PointZ (Wartość : 11) – 5 pól (Shape Type, X, Y, Z, Measure),
  • PolyLineZ (Wartość : 13) – 9 obowiązkowych pol (Shape Type, Box, NumParts, NumPoints, Parts, Points, Zmin, Zmax, Zarray) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • PolygonZ (Wartość : 15) – 9 obowiązkowych pól (Shape Type, Box, NumParts, NumPoints, Parts, Points, Zmin, Zmax, Zarray) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • MultiPointZ (Wartość : 18) – 7 obowiązkowych pól (Shape Type, Box, NumPoints, Points, Zmin, Zmax, Zarray) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • PointM (Wartość : 21) – 4 pola (Shape Type, X, Y, M),
  • PolyLineM (Wartość : 23) – 6 obowiązkowych pól (Shape Type, Box, NumParts, NumPoints, Parts, Points) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • PolygonM (Wartość : 25) – 6 obowiązkowych pól (Shape Type, Box, NumParts, NumPoints, Parts, Points) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • MultiPointM (Wartość : 28) – 4 obowiązkowe pola (Shape Type, Box, NumPoints, Points) + 3 opcjonalne pola (Mmin, Mmax, Marray),
  • MultiPatch (Wartość : 31) – 10 obowiązkowych pól (Shape Type, Box, NumParts, NumPoints, Parts, PartTypes, Points, Zmin, Zmax, Zarray) + 3 opcjonalne pola (Mmin, Mmax, Marray),

Plik .shx

Plik zawierający indeks geometrii opisywanego obiektu.

Plik .dbf

Plik bazy danych lub dBASE służący do opisu atrybutów obiektów.

Pliki opcjonalne

  • .sbn i .sbx – zawierają indeks przestrzenny obiektu,
  • .fbn i .fbx – zawierają indeks przestrzenny obiektu dla plików .shp tylko do odczytu,
  • .prj – plik zawierający informacje o układzie współrzędnych dla obiektów,
  • .shp.xml – plik metadanych dla plików .shp.

Przeglądarki formatu SHP

Ze względu na binarny charakter zapisu danych w formacie SHP dostępnych jest wiele programów – przeglądarek, zarówno w wersji shareware jak i freeware, służących do wizualizacji obiektów geograficznych za pisanych w formacie SHP, m.in.: ESRI ARC Explorer, ESRI ARCView, ESRI-view i inne.

Zadanie

Należy przygotować pliki MIF oraz SHP. Zawierających następujące informacje:

Plik MIF:

  • Prostokąt (Rectangle) o współrzędnych w punkcie 0,0 oraz w punkcie 15,15, narysowanego linią o wzorze nr 99 z rysunku Style Linii, a wypełnionego wzorem nr 67 z rysunku Style Pędzla,
  • Elipsa o współrzędnych w punkcie 20,20 oraz 40,40 o linii narysowanej wzorem 44 oraz wypełnionej wzorem 08,
  • Punkty o współrzędnych 50,50; 60,50; 70,50; 80,50 o symbolach odpowiednio 66, 65, 44 oraz 66,

Plik SHP:

  • 2 wielokąty Poligon,
  • 3 punkty Point
  • 4 obiekty PolyLineZ,
  • 2 obiekty MultiPointZ,

Należy dobrać parametry obiektów w prawidłowy, lecz dowolny sposób.