Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 157 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
157
Dung lượng
2,6 MB
Nội dung
Lời Cảm Ơn Lời Cảm Ơn WX Luận văn chúng em khó hoàn thành truyền đạt kiến K H TN thức quí báu hướng dẫn tận tình Thầy Dương Anh Đức Chúng em xin chân thành cám ơn bảo thầy Chúng xin gửi tất lòng biết ơn, kính trọng đến ông bà, cha mẹ, toàn thể gia đình, người nuôi dạy, cho chúng niềm tin nghị lực để vượt qua khó khăn H Chúng em xin trân trọng cám ơn quý Thầy cô Khoa Công nghệ thông tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh tận tình giảng dạy, truyền đạt Đ kiến thức quý báu tạo điều kiện cho chúng em thực luận văn – Xin chân thành cám ơn giúp đỡ, động viên bảo nhiệt tình C N TT anh chị trước tất bạn bè Các anh chị, bạn có mặt thời điểm khó khăn nhất, tiếp thêm động lực ý chí, giúp hoàn thành luận văn Mặc dù cố gắng nỗ lực mình, song chắn luận văn không khỏi nhiều thiếu sót Chúng em mong nhận thông cảm bảo tận tình K H O A quý Thầy cô bạn Tp.HCM, 7/2004 Nhóm sinh viên thực Nguyễn Quý Minh – Phạm Anh Vũ Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Lời nói đầu Lời Nói Đầu [\ Ngày nay, tất lãnh vực đời sống kinh tế, xã hội, công nghệ thông tin xem ngành công nghệ mũi nhọn, đóng vai trò hết K H TN sức quan trọng, tạo bước đột phá mạnh mẽ Các ứng dụng GIS ngày phát huy vai trò quan trọng việc hỗ trợ quản lý, qui hoạch đặc biệt tổ chức, phủ Vấn đề qui hoạch Việt Nam, nhiều quốc gia khác, gặp nhiều khó khăn, tốn nhiều thời gian tiền bạc, thành phố lớn, trọng điểm TP Hồ Chí Minh, Hà Nội, H Hải Phòng Giải pháp cần thiết ứng dụng GIS hỗ trợ Việc bắt tay xây dựng từ đầu ứng dụng GIS cần nhiều thời gian, tiền bạc công sức chưa Đ thành công Trên thị trường có ứng dụng GIS thương mại, cho phép xây – dựng ứng dụng thư viện cung cấp sẵn ArcView GIS, ArcGIS , nhiên rộng C N TT phải đối mặt với vấn đề quyền, tốn nhiều tiền bạc triển khai diện GRASSphầnmềm GIS có chức năng, sức mạnh vượt sản phẩm thương mại điều đặc biệt ứng dụng mã nguồn mở, tức người sử dụng tự tòan quyền cài đặt, sữa chữa phù hợp với nhu cầu đặc điểm riêng mà trả chi phí quyền phầnmềm Điều hạn chế K H O A GRASS phát triển UNIX Nếu chuyểnđổiGRASS sang Windows, ta xây dựng nhiều ứng dụng GIS với chi phí rẻ, phù hợp để phổ biến diện rộng Windows hệ điều hành dễ sử dụng, thân thiện có số lượng người dùng nhiều Với ý tưởng trên, chúng em tập trung thực đề tài “NGHIÊN CỨUCHUYỂNĐỔIPHẦNMỀMGRASSTỪNỀNUNIXLÊN WINDOWS” Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Lời nói đầu Nội dung luận văn chia làm chương: Chương 0: Mở đầu giới thiệu chung đề tài, ý nghĩa mục tiêu đề tài; trình bày giải pháp hướng nghiêncứu thực nước K H TN Chương 1: OpenGIS – Khái niệm chung Các mô hình liệu, giới thiệu chung khái niệm GIS, OpenGIS, mô hình liệu GIS Chương 2: Hệ Thống Hỗ trợ Phân tích Tài nguyên Địa lý, trình bày phầnmềm mã nguồn mở GRASS, cách thức cài đặt khởi tạo, cách thức sử dụng lập trình GRASS H Chương 3: Quá trình chuyểnđổiGRASStừUnixlên môi trường Window, kỹ thuật cài đặt GRASS, mô hình cấu trúc chi tiết GRASS, thư Đ viện trung tâm – Chương 4: Tổng kết tóm tắt lại vấn đề đặt luận văn, cách K H O A C N TT giải quyết, kết đạt đề số hướng phát triển tương lai Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Mục lục Mục Lục K H O A C N TT – Đ H K H TN Lời Cảm Ơn Lời Nói Đầu Mục Lục Danh sách hình vẽ Chương : Mở Đầu Chương : OpenGIS – Khái niệm chung Các mô hình liệu 1.1 Giới thiệu GIS 1.1.1 Định nghĩa GIS 1.1.2 Các thành phần GIS 10 1.1.3 Các mô hình liệu GIS 11 1.1.4 Vấn Đề Dữ Liệu Đối Với GIS 12 1.2 Khái Quát Về OpenGIS 14 1.2.1 Tổ chức OGC 14 1.2.2 Định nghĩa OpenGIS 16 Chương : Hệ Thống Hỗ trợ Phân tích Tài nguyên Địa lý 17 2.1 Sơ lược GRASS 17 2.2 Kiến trúc GRASS 19 2.3 Định dạng liệu 20 2.4 Tổ chức lưu trữ liệu GRASS 23 2.4.1 GISDBASE : 23 2.4.2 LOCATION : 23 2.4.3 MAPSETS 24 2.4.4 REGION MASK 29 2.4.5 Các biến môi trường sử dụng GRASS 31 2.5 Dữ liệu RASTER 32 2.5.1 Ý niệm sơ lược 32 2.5.2 Hệ thống tập tin raster 34 2.5.3 Các thao tác quan trọng 34 2.6 Dữ liệu VECTOR (VECTOR DATA) 35 2.6.1 Ý niệm sơ lược 35 2.6.2 Hệ thống tập tin vector 36 2.6.3 Các thao tác quan trọng 37 2.7 Dữ liệu điểm (POINT/SITE DATA) 38 2.7.1 Ý niệm sơ lược 38 2.7.2 Hệ thống tập tin site 39 2.7.3 Các thao tác quan trọng 40 2.8 Các thư viện cung cấp GRASS (src/libes) 41 2.8.1 Danh sách 41 2.8.2 Giới thiệu sơ hàm thư viện 43 2.9 Cơ chế bổ sung quản lý mã nguồn GRASS 95 Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Mục lục K H O A C N TT – Đ H K H TN 2.9.1 Mã nguồn thức (thư mục src) 96 2.9.2 Mã nguồn ALPHA (thư mục src.alpha) 96 2.9.3 Mã nguồn đóng góp (thư mục src.contrib) 96 2.9.4 Mã nguồn có liên quan (thư mục src.related) 97 2.9.5 Mã nguồn GARDEN (src.garden) 97 2.9.6 Các script (src/script/shell) 97 2.10 Hướng dẫn cài đặt sơ lược cách sử dụng 97 2.10.1 Cài đặt GRASS LINUX 97 2.10.2 Cài đặt GRASSWindows thông qua giả lập Cygwin 99 Chương : Quá trình chuyểnđổi GRASS5 từ Linux lênWindows 101 3.1 Sự khác biệt Windows Unix/Linux 101 3.1.1 Tổng quan hệ điều hành Windows 101 3.1.2 Tổng quan hệ điều hành UNIX 103 3.1.3 So sánh tổng quát lập trình đa nhiệm hai môi trường 105 3.1.4 So sánh hệ thống file hai môi trường 109 3.1.5 Giao diện người dùng 112 3.1.6 Shell script 113 3.2 Sơ lược phầnmềmGRASS 113 3.3 Sơ lược mã nguồn GRASS 5.0.2 114 3.4 Môi trường sử dụng để chuyểnđổi GRASS5 115 3.5 Các vấn đề chuyểnđổilênWindows 116 3.5.1 Khởi tạo biến môi trường cần thiết 116 3.5.2 Dữ Liệu GRASS Cấu trúc liệu GRASS 119 3.5.3 Cấu trúc chung source code GRASS 121 3.5.3.1 Cài đặt thư viện trung tâm 122 3.5.3.2 Cài đặt nhóm lệnh xử lý Grass 124 3.5.3.3 Các Driver dùng để hiển thị Display 129 3.5.3.4 Cơ chế SendMessage GRASS5 132 3.5.3.5 Khái niệm hệ thống đồ họa XWindow Linux 143 3.5.3.6 Cài đặt sử dụng hàm X (Xlib) Window32 147 Chương : Tổng Kết 152 4.1 Kết Luận 152 4.2 Hướng Phát Triển 152 Tài Liệu Tham Khảo 153 Phụ Lục 154 Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Danh sách hình vẽ Danh sách hình vẽ K H O A C N TT – Đ H K H TN Hình - Minh họa GIS 11 Hình - Mô hình kiến trúc GRASS 20 Hình - Minh họa cấu trúc lưu trữ GISDBASE đĩa 23 Hình - Minh họa cấu trúc lưu trữ LOCATION đĩa 24 Hình - Minh họa cấu trúc lưu trữ MAPSET đĩa 25 Hình - Minh họa chế MASK GRASS 31 Hình - Minh họa liệu điểm – POINT/SITE 39 Hình - Hình ảnh sử dụng GRASS5 Linux 99 Hình - Hình ảnh sử dụng GRASS5 Windows thông qua giả lập Cygwin 100 Hình - Kiến trúc hệ điều hành Windows theo họ NT 103 Hình - Các dòng hệ điều hành phát triển UNIX 104 Hình - Kiến trúc hệ điều hành UNIX 105 Hình - Mô hình minh họa chế Send Event GRASS5 138 Hình - Kiến trúc thư viện XLIB 151 Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 0: Mở đầu Chương : Mở Đầu Các ứng dụng GIS ngày phát huy vai trò quan trọng việc hỗ trợ quản lý, qui hoạch đặc biệt tổ chức, phủ Vấn đề qui hoạch Việt Nam, K H TN nhiều quốc gia khác, gặp nhiều khó khăn, tốn nhiều thời gian tiền bạc, thành phố lớn, trọng điểm TP Hồ Chí Minh, Hà Nội, Hải Phòng Giải pháp cần thiết ứng dụng GIS hỗ trợ Từ nhu cầu nói trên, chúng em đầu tư xây dựng đề tài “NGHIÊN CỨUCHUYỂNĐỔIPHẦNMỀMGRASSTỪNỀNUNIXLÊN WINDOWS” Đề tài phải giải số công việc chính: Nghiêncứu GIS chuẩn OpenGIS • Nghiêncứu khác hệ điều hành UnixWindows • Dựa vào hiểu biết này, xem xét việc xây dựng ứng dụng GIS Đ H • K H O A Windows Triển khai việc chuyểnđổiGRASStừ môi trường Unix sang môi trường C N TT • – phầnmềm mã nguồn mở GRASS Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 1: OpenGis – Các khái niệm Chương : OpenGIS – Khái niệm chung Các mô hình liệu K H TN Chương trình bày khái quát GIS vấn đề tồn liên quan đến trao đổi liệu GIS môi trường mạng dẫn đến nhu cầu xuất OpenGIS Các khái niệm chủ đề liên quan đến OpenGIS, vai trò tổ chức OGC (Open GIS Consortium), mô hình tham chiếu ORM (OpenGIS Refrerence Model), đặc tả OpenGIS đề xuất OGC phần đề cập đến H chương Đ 1.1 Giới thiệu GIS 1.1.1 Định nghĩa GIS – Hệ thống thông tin địa lý, gọi tắt GIS (Geographic Information System) đờitừ đầu C N TT thập niên 60 Tuy nhiên đến thập niên 80, GIS thực phát triển nhanh chóng Cho đến nay, tuỳ theo cách tiếp cận mà người ta có nhiều định nghĩa khác GIS Những định nghĩa bổ sung cho giúp ta hiểu đầy đủ khía cạnh GIS Sau số định nghĩa GIS trích theo Peter & Rachael (1998): GIS tập công cụ mạnh dùng cho việc thu nhập, lưu trữ K H O A • truy tìm, biến đổi hiển thị liệu không gian từ giới thực (Burrough, 1986) • GIS hệ thống dùng cho việc nắm bắt, kiểm tra, thao tác, phân tích hiển thị liệu qui chiếu không gian liên quan đến Trái đất (Department of Environment, 1987) • GIS công nghệ thông tin cho phép lưu trữ, phân tích, hiển thị liệu Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 1: OpenGis – Các khái niệm không gian lẫn liệu phi không gian (Parker, 1988) • GIS hệ thống sở liệu phần lớn liệu biểu thị không gian, tập thủ tục thao tác liệu nhằm trả lời truy vấn • K H TN thực thể không gian chứa sở liệu (Smith et al, 1987) GIS tập thủ tục thủ công dựa máy tính dùng để lưu trữ thao tác liệu tham chiếu địa lý (Aronoff, 1989) • GIS tập chức thực cách tự động nhằm cung cấp lực cấp cao lưu trữ, truy tìm, thao tá hiển thị • H liệu vị trí địa lý (Ozemoy, Smith, & Sicherman, 1981) GIS thực thể tổ chức, phản ánh cấu trúc tổ chức cho phép tích hợp công Đ nghệ với sở liệu chuyên gia, tổ chức liên tục hỗ trợ tài GIS hệ thống hỗ trợ định liên quan đến tích hợp liệu quy chiếu C N TT • – (Carter, 1989) không gian môi trường giải vấn đề (Cowen, 1988) • Thông qua định nghĩa trên, ta thấy ba khía cạnh quan trọng hệ thống GIS bao gồm: • Tập công cụ thủ tục cho phép thực chức lưu trữ, truy K H O A tìm, biến đổi, phân tích hiển thị liệu không gian địa lý • Cơ sở liệu thành phần quan trọng chức liệu không gian kết hợp liệu phi không gian • Tổ chức nhằm phối hợp kỹ thuật người để trì phát triển hệ thống nhằm đưa định hợp lý Trang Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 1: OpenGis – Các khái niệm 1.1.2 Các thành phần GIS Có nhiều mô hình GIS tuỳ theo nhu cầu người dùng Mô hình đầy đủ GIS bao gồm sáu thành phần: phần cứng, phần mềm, liệu, qui trình, người tổ chức Những thành phần cần phải kết hợp cân đối để hệ thống làm việc hiệu Phần cứng GIS bao gồm hệ thống máy tính mạng máy tính cho phép K H TN • nhập, xuất, lưu trữ, truyền hiển thị liệu không gian • Phầnmềm GIS bao gồm công cụ thực năm chức nhập kiểm tra liệu, lưu trữ quản lý liệu, xuất thể liệu, biến đổiphân tích liệu, giao tiếp với người sử dụng Dữ liệu GIS bao gồm liệu không gian liệu phi không gian với dung H • Đ lượng lớn, cần thu nhập lưu trữ theo cấu trúc chuẩn để thuận • – tiện cho việc trao đổi bảo quản Các qui trình xử lý xác lập trình phân tích thiết kế hệ thống C N TT GIS cho tổ chức với mục tiêu cụ thể Khả xây dựng triển khai qui trình ảnh hưởng đến tính hữu hiệu hệ thống GIS • Con người yếu tố định thành công hệ thống GIS Con người bao gồm kỹ thuật viên, chuyên viên công nghệ thông tin, nhà quản trị hệ K H O A thống người sử dụng kết GIS để định • Tất thành phần cần đặt tổ chức thích hợp, có chế, sách qui trình hợp lý Trang 10 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows 3.5.3.5 Khái niệm hệ thống đồ họa XWindow Linux Trong Unix, hình (display) quản lý chương trình server, server nhận yêu cầu vẽ xóa từ chương trình cần sử dụng hình X (X protocol) Giao thức có đặc điểm sau: K H TN (được gọi client) Giao tiếp client server thực thông qua giao thức Server client nằm máy, nằm nhiều máy, liên lạc thông qua mạng máy tính Chỉ có server bị phụ thuộc vào phần cứng máy tính (màn hình), giao thức X lại không phụ thuộc vào phần cứng, chương trình client H chạy sử dụng hình máy tính khác từ xa Đ Server xử lý nhiều yêu cầu nhiều client lúc – hình, client giao tiếp với thông qua server C N TT Một client nối kết với nhiều server Mỗi client gửi yêu cầu tạo bỏ nhiều cửa sổ hình Các cửa sổ tổ chức theo dạng cây, cửa sổ gốc hình, client tạo cửa sổ top-level mình, cửa sổ lại cửa sổ toplevel Khi cửa sổ vượt giới hạn cửa sổ cha, phần vượt K H O A bị cắt bỏ Ðối với server, cửa sổ tất đối tượng vẽ khác resource, có số resource quan trọng: Pixmap: vùng chữ nhật vẽ được, không nằm hình, pixmap tạo thành từ đơn vị nhỏ pixel Mỗi pixel có độ sâu, biểu diễn số bit (còn gọi plane) Vì pixel có giá trị phụ thuộc vào độ sâu vùng vẽ Một pixmap có độ sâu bit gọi bitmap, pixel bitmap có giá trị: Trang 143 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Colormap cách xác định màu từ giá trị pixel, màu tổ hợp từ giá trị mức độ đỏ (red), xanh dương (green) xanh (blue) (RGB) Mỗi cửa sổ có colormap xác định màu pixel K H TN Font Cursor đối tượng chứa thông tin cần thiết để biểu diễn đồ họa cho trỏ chuột Nó bao gồm source bitmap, shape bitmap, hotspot (vị trí thời trỏ), màu Graphic context (GC) tập hợp thuộc tính để xác định cách tác vụ vùng vẽ ảnh hưởng đến vùng Mỗi tác vụ sử dụng H GC client cung cấp, ví dụ vài thuộc tính GC foreground Đ pixel, background pixel, bề dày đường, vùng cắt bỏ (clip) – Property cấu trúc liệu có tên cửa sổ, client dùng C N TT property để giao tiếp với Mỗi client nối kết với nhiều server, chúng trao đổi request (yêu cầu), reply (trả lời), error (báo lỗi), event (sự kiện) Client gửi request đến server để yêu cầu vẽ xóa, server gửi reply lại client có yêu cầu thông tin, gặp lỗi server gửi thông báo error cho client Server gửi event để thông báo thay đổi trạng thái, K H O A có phím nhấn trỏ chuột bị di chuyển Các chương trình giao tiếp với X Server ? Các chương trình không trực tiếp giao tiếp với X server, chúng sử dụng thư viện có sẵn để giao tiếp Có thư viện Xlib, X Toolkit Intrinsics (Xt), Motif i) Thư viện Xlib X protocol có sẵn interface giao tiếp với X server, gọi Xlib Các chức Xlib có sau: Trang 144 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Các lệnh để tạo quản lý resource server, bao gồm cửa sổ, pixmap, font, cursor, GC, property Lệnh để thêm chữ hình ảnh vào vùng vẽ K H TN Cấu trúc liệu chứa event, lệnh để chọn đọc event Lệnh để sử dụng colormap Lệnh đọc ghi chữ X resource manager (Xrm) sở liệu tùy chọn xác định người sử dụng chương trình H Xrm ý tưởng chủ đạo X: người sử dụng chương trình phải tự điều khiển hình Đ dáng, cách tương tác màu sắc đối tượng đồ họa Những yếu tố biểu diễn resource, chương trình có giá trị mặc định cho – resource này, người sử dụng sửa lại cần thiết C N TT Resource ba gồm tên, class, giá trị Một class chứa tập resource khác tên Resource tổ chức phân cấp chương trình Tên class đầy đủ resource tên tên class chương trình kết thúc tên class resource Resource manager cho phép chương trình người sử dụng xác định K H O A resource: file, dòng lệnh, gọi lệnh Xrm chương trình ii) Thư viện Xt Mặc dù Xlib cung cấp phương tiện giao tiếp với X server, lệnh bắt lập trình viên viết nhiều X kèm theo thư viện, X Toolkit Intrinsics (Xt), để cung cấp số hàm mức độ cao Các thành phần quan trọng là: Trang 145 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Các đối tượng, gọi widget, dùng để chứa liệu interface người sử dụng Quản lý hình dáng widget K H TN Phân phối xử lý event Widget Widget class tập hợp procedure cấu trúc liệu dùng chung cho tất widget thuộc class Một đối tượng widget chứa procedure liệu riêng Xt có sẵn đặt tên sẵn cho class widget, người lập trình tạo đặt tên H cho đối tượng widget Đ iii) Thư viện Motif Motif cung cấp thêm nhiều lệnh để tạo widget phục vụ cho mục đích khác – giao tiếp với người sử dụng Sau tóm tắt chức này: C N TT Kiểu dáng trực quan Các widget Motif có kiểu dáng trực quan, đường biên có màu sắc khác tạo cảm giác widget lên chìm sâu xuống so với Một widget đối tượng tác động bàn phím có đường biên tô sáng Khi trỏ chuột button người sử dụng nhấn nút Btn1, màu button thay đổi tạo cảm giác K H O A nhấn Tất màu sắc hình dáng widget chọn mặc định, người sử dụng chương trình chọn riêng cho màu sắc ảnh pixmap Motif có chế kéo thả đầy đủ để truyền liệu, liệu kéo từ điểm nút Btn2 sang điểm đích, người sử dụng thả chuột, liệu chuyển, chép liên kết đến đích Trang 146 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Sử dụng Xlib, Xt Motif Xt xây dựng Xlib, Motif lại xây dựng Xt Tuy nhiên Xt không thay hết interface Xlib, Motif không thay hết interface Xt Bất kỳ chương trình Motif phải sử dụng lệnh Xt khởi xử lý event K H TN tạo, quản lý widget, xử lý resource, tạo hàm callback, để vào vòng lặp Theo quy ước, tên hàm cấu trúc liệu Xlib bắt đầu ‘X’, Xt bắt đầu ‘Xt’, Motif bắt đầu ‘Xm’ Ðể viết chương trình sử dụng Motif, lập trình viên trước hết phải quen với chương Đ H trình Xt đơn giản hiểu biết Xlib 3.5.3.6 Cài đặt sử dụng hàm X (Xlib) Window32 – Để thực thao tác đồ họa MONITOR, Grass sử dụng hệ thống thư viện C N TT Unix, XLIB Hệ thống hàm X Xlib nói theo nghĩa đó, tương tự hàm đồ họa API hệ điều hành Window Khi MONITOR yêu cầu vẽ hình Driver sử dụng thư viện hàm vẽ mà bao bọc bên thư viện hàm X K H O A Ví dụ: int draw_line (int cur_x, int cur_y, int x, int y) { …………………… XDrawLine(dpy, bkupmap, gc, cur_x, cur_y, x, y); needs_flush = 1; return 0; } Trang 147 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Cấu trúc liệu hàm X phức tạp, tổ chức theo nhiều xâu kép nối với nhau, tạo thành dãy phầntử NT_WINDOW, với khái niệm Display, Screen v.v… Ngoài ra, phải xử lý chuyển kiện XWindow sang kiện Window, K H TN xử lý cấu trúc liệu cửa sổ… Vì thế, việc viết lại hệ thống hàm X XWindow MS Window công việc vô phức tạp, khó khăn không muốn nói nan giải (!) Tuy nhiên, toán khó lời giải Rất may mắn cho chúng ta, nhóm phát triển dự án Cygwin, nỗ lực cố gắng xây dựng môi H trường giả lập Linux thật hoàn hảo Window, với mong muốn Grass5 có Đ thể chạy Window thông qua Cygwin, phát triển hệ thống hàm thư viện C N TT – giả lập hệ thống XLIB Unix Window (Open Source) Source code nằm thư mục src\ display\ devices\ windows\ libW11\ Trong thư mục có thư mục sau: X11\ : Chứa file tiêu đề (.h) mô tả thư viện Xlib Muốn sử dụng Xlib, cần include file : Chứa source code thư viện Xlib, dịch thành DLL K H O A w32\ wrap\ : thư mục chứa lớp bao bọc xlib, sử dụng hàm X thông qua lớp này, không gọi trực tiếp xuống thư viện Xlib Tuy nhiên, hàm thư viện xlib viết WinAPI, chúng xây dựng để chạy Cygwin, chúng thư viện sở cấp thấp Chúng viết giả lập lại hàm X Unix, gọi sử dụng trực tiếp hàm Muốn sử dụng được, phải cần đến Trang 148 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows lớp bao bọc bên hàm này, lớp xử lý, khởi tạo sơ yếu tố cần thiết để sẵn sàng gọi đến thư viện X Cụ thể là, source code thư viện xlib.c chủ động đóng gói lại thành thư viện động DLL tên libG11.dll, sau dùng file khác cài đặt K H TN lại prototype hàm X, có xử lý sơ trước lại gọi xuống hàm X thư viện động libG11.dll Ví dụ: Thư viện Xlib.c (đã xây dựng thành libG11.dll) có hàm XopenDisplay(int a, int b, int H c); Để sử dụng hàm này, ta không gọi trực tiếp từ thư viện libG11.dll mà ta phải xây dựng Đ hàm khác tên, làm xử lý sơ bộ, trước gọi làm hàm thật Xlib, – sau: C N TT void XOpenDisplay(int a, int b, int c) { // Các xử lý sơ int test = Set_Atom(_register_class( )); //chỉ ví dụ //Sau gọi hàm Xlib libG11.dll LoadDLL_XOpenDisplay(a, b, c); } K H O A Trên minh họa thuật giải, cụ thể, xem file wrap\wrap.c & wrap\xwrappers.gen Ghi chú: Load hàm thư viện từ DLL cách sử dụng file lib Setting VC++, ta load trực tiếp từ file DLL mà không cần file lib, hàm sau: LoadLibrary(); GetProcAddress(); Trang 149 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Ví dụ: Load hàm thư viện: static void* _lib; K H TN // hàm sau load hàm tên “name” DLL lên để sử dụng void* _loadfunc(char *name) { void *f = NULL; _lib = LoadLibrary(“libG11.dll”); // load thư viện libG11.dll f = GetProcAddress(_lib,name); // đọc trỏ hàm “name” return f; // trả trỏ hàm hàm “name” } H Gọi thực hàm thư viện: – Đ //khai báo dạng thức hàm hàm XOpenDisplay thư viện typedef Display * (proto_XOpenDisplay)(const char *name); //khai báo trỏ hàm XOpenDisplay static proto_XOpenDisplay *func_XOpenDisplay = NULL; K H O A C N TT Display * XOpenDisplay(const char *name) { //load hàm thư viện XOpenDisplay lên func_XOpenDisplay=(proto_XOpenDisplay *)_loadfunc("XOpenDisplay"); //gọi thực return (func_XOpenDisplay)(name); } Trang 150 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Quá trình chuyểnđổi GRASS5 từUnixlênWindows Mô Hình Xây Dựng Thư Viện XLIB: H K H TN USER / GRASS Đ XLIB LIBRARY C N TT – Wrap.c K H O A libG11.dll ntutil.c xlib.c event.c Hình - Kiến trúc thư viện XLIB Trang 151 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Tổng kết Chương : Tổng Kết 4.1 Kết Luận K H TN Với GRASS5, chúng em chuyểnđổi hầu hết thư viện (gis, display, raster, bitmap, v.v…) dịch vụ bản, xử lý tính toán, phần nhỏ nhóm lệnh hiển thị bên (d.mon, d.rast … ) Điểm nhấn dự án khởi động hiển thị cửa sổ MONITOR GRASS với XWindow môi trường Windows Khối lượng mã nguồn GRASS5 đồ sộ phức tạp, với đạt được, chúng em tin tiếp tục chuyểnđổi hết khối lệnh lại – 4.2 Hướng Phát Triển Đ H Nếu có nhiều thời gian nữa, dự án chắn thành công rực rỡ C N TT Trong thời gian vừa qua, chúng em đặt bản, tạo tảng vững để phát triển tiếp sau Với khối lượng mã nguồn chuyển được, chương trình phát triển tiếp, chuyểnđổi nhiều chức mạnh mẽ GRASS5, phầnmềm mà đến phát triển đến phiên 5.7, cách K H O A trọn vẹn Trang 152 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Tài liệu tham khảo Tài Liệu Tham Khảo K H TN Albrecht, J : GTZ-handbook GRASS Vechta, Germany, 1992 Hoặc xem địa sau: http://www.laum.uni-hannover.de/iln/grass/ Byars, B.W., Clamons, S.F : GRASS 4.2 Reference Manual Waco, U.S.A, 1997 Hoặc xem địa sau: http://www.baylor.edu/~grass/ C N TT – Đ H Fox, J : RIM database system Installers manual University of Washington, 1989 Fox, J : RIM database system Users manual University of Washington, 1989 Harmon, V., Shapiro, M : GRASS tutorial: Image processing CERL, Champaign, Illinois, 1992 Jensen, J R : Introductory Digital Image Processing: A remote sensing perspective Second Edition New Jersey, 1996 Larson, M., Shapiro, M., Tweddale, S : Performing map calculations on GRASS data : r.mapcalc programming tutorial CERL, Champaign, Illinois, 1991 Hoặc xem địa sau: http://www.laum.uni-hannover.de/iln/grass/ K H O A Lillesand, Th M., Kiefer, R W : Remote sensing and image interpretation New York, 1994 Neidig, C.A., Gerdes, D., Kos, Ch : GRASS 4.0 map digitizing manual: v.digit CERL, Champaign, Illinois, 1991 Neteler, M : Das GRASS Handbuch Ein problemorientierter Leitfaden Auflage, Hannover, Germany, 1998 Phiên trước có tại: http://www.laum.uni-hannover.de/iln/grass/handbuch/ Shapiro, M., Westerveld, J : GRASS programmer's manual CERL, Champaign, Illinois, 1991 Shapiro, M., Westerveld, J : GRASS user's manual CERL, Champaign, Illinois, 1991 Trang 153 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Phụ lục Phụ Lục Một số kỹ thuật chuyểnđổi K H TN Æ Kỹ thuật ReDirect Output Stream Kỹ thuật dùng để chuyển hướng lại output, thay xuất dòng stdout, chuyển hướng sang ListBox Sử dụng kỹ thuật chủ yếu để bắt lấy output hàm printf( ), fprintf( ), tạo dễ dàng cho việc xử lý Đ Æ Kỹ thuật xử lý PAD GRASS H Chi tiết kỹ thuật này, xem mã nguồn chương trình – Khi tạo hay xử lý cửa sổ XWindow GRASS có sử dụng xâu liên kết đôi C N TT PAD (cấu trúc xâu PAD xử lý xâu định nghĩa độc lập file pad.h pad.c thư mục device/lib) Khi cần thao tác cửa sổ XWindow, hàm R_xxx_Pad gọi Các hàm R_xxx_Pad thực cách gửi kiện với tham số liệu kèm theo kiện vào file fifo.1a, đó, xử lý command (thread) đón lấy K H O A kiện liệu kèm theo để xử lý cách gọi lại hàm PAD chuẩn định nghĩa create_pad(), find_pad() v.v để thực trả kết xử lý (bằng cách ghi vào file fifo.1b) PAD chẳng qua xâu kép sau: pad1 pad2 pad3 pad n Trang 154 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Phụ lục Mỗi PAD có tên định danh riêng, danh sách liên kết ITEM Mỗi danh sách liên kết ITEM lại nắm giữ xâu LIST, phầntử LIST có giá trị K H TN riêng Bởi vậy, thường hay có câu sau đây: " duyệt hết Item Pad " " duyệt hết List Item " C N TT Hàm create_pad (char *name) : – Đ Và pad khởi tạo ban đầu create_pad("") H Ở đây, xâu bắt đầu biến trỏ toàn cục "padlist" file pad.c Để tạo PAD có tên name, gắn vào đầu xâu pad_mới pad1 pad2 pad n K H O A Hàm find_pad (char *name) : Trả trỏ đến phầntử pad có tên name xâu, có Sự Kiện PAD_GET_ITEM: Để lấy giá trị toàn danh sách LIST ITEM PAD (currentPad) Cụ thể sau gửi kiện PAD_GET_ITEM với tham số tên Item (chẳng hạn "cur_w" ) Trang 155 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Phụ lục C N TT – Đ H K H TN _send_ident(PAD_GET_ITEM); //gửi kiện _send_text("cur_w"); //gửi tiếp tham số tên Item _get_char(&result); // ghi thực vào file nhận lại kết // Tới thread chạy ngầm bên // bắt lấy xử lý Sự Kiện RECTEXT(text, text_size); /* đọc lên tham số kèm theo: tên Item, cụ thể chuỗi "cur_w" */ if (curpad == NULL){ // không tồn Pad RESULT(NO_CUR_PAD); // trả kết error break; } item = find_item(curpad, text); // tìm danh sach Items // current pad items có tên // text if (item == NULL) { RESULT(NO_ITEM); // không tìm thấy // trả kết error break; } RESULT(OK); // tìm thấy Item có tên thế, //trả kết OK trước! for (list = item->list; list != NULL; list = list->next) //duyệt List if (*list->value) //của Item vừa tìm thấy SENDTEXT(list->value); // ghi liên tục vào file chuỗi // danh sách giá trị List SENDTEXT(""); // kết thúc ký hiệu rỗng "" K H O A /* Tới kết thúc Thread bắt kiện */ if (result == OK) // mà kết trả OK get_list(list, count); // lấy lên danh sách giá trị List vừa // ghi vào hồi D_New_Window(name, top, bottom, left, right): Trang 156 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Phụ lục Hàm dùng để tạo pad có tên "full_screen", sau chọn Pad hành, sau đó, thiết lập giá trị ITEM có tên "d_win" giá trị top, bottom, right, left cửa sổ cần tạo Sau đó, gọi hàm D_Show_Window để show hình HẾT K H O A C N TT – Đ H K H TN Các hàm khác tương tự… Trang 157 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 [...]... này được đọc lêntừ file grassrc5 và được GRASS khởi tạo thành biến mơi trường • LOCATION_NAME: biến này ghi nhận đường dẫn đến thư mục K H TN LOCATION sẽ làm việc, thơng tin biến này được đọc lêntừ file grassrc5 và được GRASS khởi tạo thành biến mơi trường • MAPSET : biến này ghi nhận đường dẫn đến thư mục MAPSET sẽ làm việc, thơng tin biến này được đọc lêntừ file grassrc5 và được GRASS khởi H tạo... liệu GIS Để giải quyết vấn đề trao đổi dữ liệu GIS, một cách truyền thống người ta thường xây dựng thêm các thành phần phầnmềm làm nhiệm vụ chuyểnđổi giữa các dạng thức dữ liệu, thường được gọi là các bộ chuyểnđổi (converter) Các bộ chuyểnđổi này hoặc H được tích hợp trực tiếp vào các phầnmềm GIS thương mại và thể hiện ở các chức năng Đ import/export, hoặc được cung cấp bởi một bên “thứ ba” trung... điều hành phát triển trên nềnUnix như SUN Solaris, K H O A SunOS, HP, SCO, Linux, DEC Alpha v.v và có thể chạy trên Windows thơng qua mơi trường giả lập Cygwin (chương trình giả lập LINUX /UNIX trên nền Windows) GRASS có khả năng lưu trữ, phân tích và hiển thị một cách sinh động dữ liệu khơng gian đã được số hố Hiện tại, phiên bản GRASS đã ra đến 5.x và là một trong mười phầnmềm mã nguồn mở có qui mơ... nay, nó được hỗ trợ bởi nhóm phát triển GRASS có tổng hành dinh tại ITC-irst, Trento Italy) và Đại học Baylor, – Waco (Mỹ) C N TT GRASS là một phần mềm mã nguồn mở (GNU – General Public Licence), được phát hành lần đầu năm 1985 Phát triển trong hơn 20 năm qua, kích thước GRASS vào khoảng 100 MB và là một bộ thư viện lớn để phục vụ việc xây dựng các ứng dụng GIS GRASS được viết bằng ngơn ngữ C (khoảng... tính 1.1.4 Vấn Đề Dữ Liệu Đối Với GIS Hiện nay trên thị trường có rất nhiều sản phẩm phần mềm GIS Một số phần mềm GIS được xây dựng trên mơ hình dữ liệu vector (mơ hình thơng dụng), một số khác xây dựng trên mơ hình raster, và một số khác nữa xây dựng trên cả hai mơ hình Với mỗi mơ hình được chọn, các hãng sản xuất phần mềm GIS lại có những biễu diễn vật lý riêng của mình ở thiết kế bên trong nhằm tối... liệu từ file raster INPUT MASK 3 4 4 3 3 4 2 3 3 OUTPUT 0 4 4 0 1 1 + 1 1 0 = 3 3 0 2 0 0 1 0 0 H Hình 2 - 5 Minh họa cơ chế MASK của GRASS – Đ GRASS 5 Khơng hỗ trợ mặt nạ dấu chấm động 2.4.5 Các biến mơi trường sử dụng trong GRASS C N TT Các module của GRASS được viết độc lập với cơ sở dữ liệu được sử dụng bởi người dùng, cơ sở dữ liệu đó được lưu ở đâu, cũng như vị trí các module làm việc của GRASS. .. thiệu về phầnmềmGRASS (The Geogaphic ResourcesAnalysis K H TN Support System), là một hệ thống hỗ trợ phân tích tài ngun địa lý Đề cập một cách khái qt về khía cạnh sử dụng cũng như trong lãnh vực lập trình 2.1 Sơ lược về GRASS Là một hệ thống thơng tin địa lý (GIS – Geographic information system), phát triển theo chuẩn của OpenGIS, ngun gốc được thiết kế và phát triển bởi những nhà nghiên H cứu tại... 2, 3, 4) Người dùng có thể gán màu sắc tương ứng cho từng lọai giá trị cell tùy thích (trong ví dụ trên màu đen cho giá trị 1) Từ đó sẽ có hai khả năng xảy, hoặc là ta giữ ngun màu sắc ngun thủy của ơ từ bản đồ gốc được đưa vào để hiện thị, hoặc là ta gán giá trị màu thể hiện cho từng giá trị ơ (điều này có thể làm thay đổi hình ảnh được hiện thị lên của bản đồ so với bản đồ gốc được nhập vào) Trang... phầnmềm GIS chun biệt để bao phủ hoặc K H TN kết hợp các lớp bản đồ khác nhau của cùng một vùng địa lý Việc chuyểnđổi dữ liệu thường nặng nề và mất nhiều thời gian, nhưng kết quả lại khơng được như ý Chỉ có giao tiếp chung là cách cho phép sự bao phủ và kết hợp các loại thơng tin địa lý phức tạp khác nhau xảy ra một cách tự động trên Internet, bất chấp những khác biệt nằm phía dước các hệ thống phần. .. thơng tin này cũng rất cần cho q trình xử lý, GRASS sẽ tạo các biến mơi trường để ghi nhận và lấy ra khi cần thiết K H O A Khi được khởi động bằng lệnh grass5 .0, GRASS lập tức khởi tạo thơng tin cho các biến mơi trường sau • GISBASE : là đường dẫn tuyệt đối đến thư mục chứa cài đặt của GRASS • GIS_LOCK : biến này ghi nhận đường dẫn đến file gis_lock, là file GRASS dùng để đảm bảo cơ chế lock (khố) của