SM-06-LAB-WIKI
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).

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).

Styl symbolu
SYMBOL (shape, color, size) SYMBOL (shape, color, size, fontname, fontstyle, rotation)
Dostępne wzory symboli (Rysunek 3).

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).

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).

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

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

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.