Hình 3.1: Sơ đồ hệ thống.
Nhiệm vụ chính: Từ vùng đầu vào, hệ thống duyệt trong CSDL địa lý tập các vùng đã có, tính độ tương đồng và lấy ra vùng tương tự.
Hình 3.2: Màn hình chính chương trình.
CSDL địa lý: shape file tỉnh Quảng Ninh
Các tính năng tính của chương trình: - Hiển thị các vùng từ CSDL địa lý. - View danh sách vùng đầu vào. - Hiển thị vùng đầu vào được chọn.
3.2.Trích xuất các vùng từ CSDL địa lý
Dữ liệu địa lý về tỉnh Quảng Ninh chứa trong tập các file:
DuongDiaGioi_Clip.cpg DuongDiaGioi_Clip.dbf DuongDiaGioi_Clip.prj DuongDiaGioi_Clip.sbn DuongDiaGioi_Clip.sbx DuongDiaGioi_Clip.shp DuongDiaGioi_Clip.shp.xml DuongDiaGioi_Clip.shx
Dữ liệu lưu trong thư mục “data”
Nhiệm vụ: trích xuất dữ liệu thông tin (địa giới hành chính) và dữ liệu hình học và hiển thị trên màn hình
Thư viện sử dụng: EGIS
3.3.Hiển thị dữ liệu địa lý
Bản đồ các vùng tỉnh Quảng Ninh
3.4.Hiển thị vùng đầu vào được chọn
Các vùng đầu vào được được lưu sẵn trong mỗi file trong thư mục “input”:
Hình 3.4: Các vùng đầu vào.
Hiển thị vùng đầu vào được chọn:
Hình 3.6: Hiển thị vùng đầu vào được chọn.
3.5.Tìm kiếm vùng tương tự
Phát biểu bài toán;
- Đầu vào: CSDL danh sách vùng, vùng được chọn để tìm kiếm.
- Đầu ra: Vùng tương tự với vùng đầu vào. Các nhiệm vụ cần thực hiện như sau:
Tính ma trân 0..1 sử dụng thuật toán phủ lưới
Tính độ tương tự giữa hai ma trận 0..1
3.6.Thử nghiệm với một số vùng đầu vào
*) Mô tả phần mềm sử dụng
B1: Chọn vùng DL từ danh sách vùng (cột bên trái), vùng DL này sẽ hiển thị trên màn hình phía dưới bên phải.
B2: Nháy chuột vào nút “Tìm vùng tương tự”
B3: Kết quả: Vùng tương tự với vùng đầu vào sẽ hiển thị trên màn hỉnh phía trên, bên phải, đồng thời thông tin hành chính về vùng này sẽ được hiển thị phía nút “Tìm vùng tương tự”
3.7.Kết chương
Trong chương 3, luận văn đã trình bày quy trình thử nghiệm cho bài toán tìm kiếm đối tượng vùng. Trước hết, chương 3 trình bày sơ đồ xử lý của bài toán với hai nhiệm vụ chính. Một là, truy cập dữ liệu địa lý lấy ra thông tin chung và thông tin hình dạng để đưa vào cơ sở dữ liệu. Hai là, tìm kiếm trong cơ sở dữ liệu đối tượng vùng có hình dạng tương tự với vùng đầu vào. Ngoài ra, chương trình thử nghiệm còn cho phép hiển thị bản đồ các vùng từ cơ sở dữ liệu liệu địa lý, vùng đầu vào và vùng tương tự tìm thấy trên bản đồ. Chương trình thử nghiệm sử dụng thuật toán phủ lưới (đã trình bày trong chương 2) để kiểm tra độ tượng tự giữa các vùng. Các kết quả thử nghiệm cho thấy chương trình làm việc tốt, tìm kiếm được vùng tương tự và hiển thị lên màn hình.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Đặng Văn Đức (2001), Hệ thống thông tin địa lý, NXB Khoa học và Kỹ Thuật, Hà Nội.
Tiếng Anh
[2] Adrijit Basu (2015), Shape Based Image Representation and Retrieval,
International Journal of Emerging Research in Management &Technology
[3] Aratrika Sarkar, PallabiBhatttacharjee (2014), A Shape Based Image Search
Technique, International Journal of Advanced Computer Science and Applications.
[4] [
Arvind M. Bhave (2016), Shape Based Descriptors for Image Retrieval,
IOSR Journal of Computer Engineering.
[5] Arulmozhi[ P., S.Abirami (2014), Shape Based Image Retrieval: A Review,
International Journal on Computer Science and Engineering (IJCSE)
[6] Jhansi Rani S. and V. Vallikumari (2016),Survey on Content Based Image [ Retrieval Techniques, International Journal of Trend in Research and Development.
[7] [
Guojun Lu (1999), Multimedia Database Management Systems, Artech House, Boston – London.
[8] Santhosh[ P Mathew, Philip Samuel (2010), A Novel Image Retrieval
System Using an Effective RegionBased Shape Representation Technique,
International Journal of Image Processing (IJIP).
[9] Shashi Shekhar, Sanjay Chawla (2001), A Tour Of Spatial Databases,
PHỤ LỤC: Cấu trúc file Shapefile
1. Main file header
Main file header có độ dài 100 bytes. ... chỉ ra các trường trong file header với vị trí byte, giá trị, kiểu và thứ tự byte của chúng. Trong bảng này, vị trí được là tương đối tính từ vị trí bắt đầu file.
Bảng P-1. Mô tả của Main file header
Position Field Value Type Byte
Order
Byte 0 File Code 9994 Integer Big
Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 12 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big
Byte 24 File Length File Length Integer Big
Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer Little Byte 36 Bounding Box Xmin Double Little Byte 44 Bounding Box Ymin Double Little Byte 52 Bounding Box Xmax Double Little Byte 60 Bounding Box Ymax Double Little Byte 68* Bounding Box Zmin Double Little Byte 76* Bounding Box Zmax Double Little Byte 84* Bounding Box Mmin Double Little Byte 92* Bounding Box Mmax Double Little
* Không dùng nếu có giá trị 0.0, nếu không thì là độ đo hoặc kiểu Z.
Giá trị của độ dài file là tổng độ dài của file theo đơn vị là các từ 16-bit, trong đó bao gồm 50 từ (tức là 100 byte) của file header. Tất cả các hình dạng không null trong một shapefile phải có cùng kiểu shape. Các giá trị của kiểu được cho trong
Bảng P-2. Các giá trị của shape type. Giá trị Kiểu Shape
0 Null Shape 1 Point 3 PolyLine 5 Polygon 8 MultiPoint 11 PointZ 13 PolyLineZ 15 PolygonZ 18 MultiPointZ 21 PointM 23 PolyLineM 25 PolygonM 28 MultiPointM 31 MultiPatch
Hộp biên (Bounding Box) trong main file header chứa phạm vi thực sự của các shape trong file: Hình chữ nhật bé nhất phủ toàn bộ các shape có cạnh song song với trục X và Y (và có khả năng mở rộng với trục M và Z). Nếu shapefile là rỗng (không có bản ghi nào) thì giá trị của Xmin, Ymin, Xmax,
2. Các header bản ghi
Header cho mỗi bản ghi chứa số hiệu bản ghi và độ dài nội dung của bản ghi đó. Các header bản ghi có độ dài cố định là 8 byte. Bảng P- mô tả các trường của header bản ghi, với vị trí được tính từ đầu của bản ghi tương ứng.
Bảng P-3. Mô tả header bản ghi.
Position Field Value Type Byte Order
Byte 0 Record Number
Số hiệu bản ghi Integer Big
Byte 4 Content Length Độ dài nội dung Integer Big
Số hiệu bản ghi bắt đầu từ 1. Độ dài nội dung bản ghi là độ dài của phần nội dung bản ghi theo đơn vị từ 16-bit. Do đó, mỗi bản ghi sẽ đóng góp số lượng từ 16-bit là (4 + độ dài nội dung) vào tổng độ dài của file (được chứa ở Byte 24 trong file header).
PL3.3. Nội dung bản ghi
Nội dung bản ghi shapefile bao gồm một kiểu shape, theo sau bởi dữ liệu hình học của shape đó. Độ dài của nội dung bản ghi phụ thuộc vào số thành phần và số đỉnh trong shape.
Tiếp sau đây trình bày một số nội dung bản ghi theo các kiểu shape trong hệ quy chiếu X, Y.
Kiểu Point (điểm). Một điểm bao gồm một cặp tọa độ kiểu double- precision theo thứ tự X, Y. Point { Double X // X coordinate Double Y // Y coordinate }
Bảng P-4. Nội dung bản ghi biểu diễn điểm.
Position Field Value Type Number Byte Order
Byte 0 Shape Type 1 Integer 1 Little
Byte 4 X X Double 1 Little
Byte 12 Y Y Double 1 Little
Kiểu MultiPoint (đa điểm). Biểu diễn một tập các điểm, như sau: MultiPoint
{
Double[4] Box // Bounding Box
Integer NumPoints // Number of Points
Point[NumPoints] Points // The Points in the Set }
Hộp Biên (Bounding Box) được lưu theo thứ tự Xmin, Ymin, Xmax, Ymax. Bảng P-5. Nội dung bản ghi biểu diễn đa điểm.
Position Field Value Type Number Byte Order Byte 0 Shape
Type
8 Integer 1 Little
Byte 4 Box Box Double 4 Little
Byte 36 NumPoints NumPoints Integer 1 Little Byte 40 Points Points Point NumPoints Little
Kiểu PolyLine (đa đoạn). Một PolyLine là một tập có thứ tự các đỉnh bao gồm một hoặc nhiều thành phần. Một phần là một thành phần liên thông gồm
phần có thể hoặc không cắt nhau với phần khác. Do là đặc tả này không cấm các điểm liên tục với các tọa độ trùng nhau, nên khi đọc shapefile phải kiểm soát được các trường hợp như vậy. Việc dẫn tới các phần thoái hóa có độ dài bằng không là không được phép.
PolyLine {
Double[4] Box // Bounding Box Integer NumParts // Number of Parts
Integer NumPoints // Total Number of Points
Integer[NumParts] Parts // Index to First Point in Part Point[NumPoints] Points // Points for All Parts
}
Các trường của một PolyLine được mô tả chi tiết sau đây:
Box: Hộp Biên cho PolyLine được lưu theo thứ tự Xmin, Ymin, Xmax, Ymax.
NumParts: Số các phần trong PolyLine.
NumPoints: Tổng số các điểm trong tất cả các phần của PolyLine.
Parts: Một mảng có độ dài NumParts chứa chỉ số của điểm đầu tiên của nó trong mảng các điểm. Các chỉ số mảng được đánh từ 0.
Points: Một mảng cú độ dài NumPoints.
Bảng P-6. Nội dung bản ghi chi tiết đa đoạn.
Position Field Value Type Number Byte
Order Byte 0 Shape
Type
3 Integer 1 Little
Byte 4 Box Box Double 4 Little
Byte 36 NumParts NumParts Integer 1 Little Byte 40 NumPoints NumPoints Integer 1 Little Byte 44 Parts Parts Integer NumParts Little Byte X Points Points Point NumPoints Little Chú ý: X = 44 + 4 * NumParts.
Kiểu Polygon (Đa giác)
Một đa giác bao gồm một hoặc hơn một vành. Một vành là một chuỗi đóng liên thông của ít nhất 4 điểm, không tự cắt. Một đa giác có thể chứa nhiều vành ngoài. Thứ tự của các định hoặc hướng của một vành chỉ ra mặt nào của vành là phía trong của đa giác. Lân cận bên phải của người quan sát đi dọc theo vành theo thứ tự đỉnh là thuộc vùng phía trong của đa giác. Các đỉnh của các vành định nghĩa lỗ rỗng trong đa giác theo hướng ngược chiều kim đồng hồ. Các đỉnh của vành đơn do đó luôn có thứ tự thuận chiều kim đồng hồ. Các vành của một đa giác được cho bởi các part (phần) của nó.
Lưu ý là các điểm liên tiếp không nhất thiết phải phân biệt, nên khi đọc shapefile phải xử lý tình huống này. Cấu trúc của đa giác cũng giống như cấu trúc đa đoạn, như sau
Polygon {
Double[4] Box // Bounding Box Integer NumParts // Number of Parts
Integer NumPoints // Total Number of Points
Integer[NumParts] Parts // Index to First Point in Part Point[NumPoints] Points // Points for All Parts
}
Các trường của một đa giác được mô tả chi tiết như sau:
Box: Hộp biên của đa giác theo thứ tự Xmin, Ymin, Xmax, Ymax.
NumParts: Số vành trong đa giác.
NumPoints: Tổng số điểm trong tất cả các vành.
Parts: Một mảng gồm NumParts phần tử, chứa chỉ số điểm đầu tiên của mỗi vành trong mảng Points.
Points: Một mảng gồm NumPoints phần tử. Các điểm cho vành 2 nối tiếp các điểm của vành 1 và cứ như vậy.
Một ví dụ về đa giác gồm 2 vành và 10 điểm như sau:
Thứ tự các đỉnh được lưu trữ trong shape file được minh họa bởi Hình P-.
Hình P-2. Lưu trữ đa giác trong shapefile. Bảng P-7. Nội dung bản ghi đa giác.
Position Field Value Type Number Byte
Order
Byte 0 Shape Type 5 Integer 1 Little
Byte 4 Box Box Double 4 Little
Byte 36 NumParts NumParts Integer 1 Little Byte 40 NumPoints NumPoints Integer 1 Little Byte 44 Parts Parts Integer NumParts Little Byte X Points Points Point NumPoints Little Chú ý: X = 44 + 4 * NumParts.
Ngoài ra shapefile còn có các cấu trúc shape khác như: PointM, MultiPointM, PolyLineM, PolygonM (M là độ đo), PointZ, MultiPointZ, PolyLineZ, PolygonZ (trong hệ quy chiếu X, Y, Z) và cấu trúc MultiPatch (đa mảnh).