Tải bản đầy đủ (.pdf) (158 trang)

Luận văn:Nghiên cứu chuyển đổi phần mềm grass từ nền unix lên windows pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.38 MB, 158 trang )




Luận văn
Nghiên cứu chuyển đổi phần
mềm grass từ nền unix lên
windows




KHOA CNTT – ĐH KHTN




Lời Cảm Ơn
Lời Cảm Ơn
W X
Luận văn của chúng em sẽ rất khó hoàn thành nếu không có sự truyền đạt kiến
thức quí báu và sự hướng dẫn tận tình của Thầy Dương Anh Đức. Chúng em xin chân
thành cám ơn sự chỉ bảo của các thầy.
Chúng con xin gửi tất cả lòng biết ơn, sự kính trọng đến ông bà, cha mẹ, cùng
toàn thể gia đình, những người đã nuôi dạy, đã cho chúng con niềm tin và nghị lực để
vượt qua mọi khó khăn.
Chúng em xin trân trọng cám ơn quý Thầy cô trong 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
những kiến thức quý báu và tạo điều kiện cho chúng em được thực hiện luận văn này.
Xin chân thành cám ơn sự giúp đỡ, động viên và chỉ bảo rất nhiệt tình của các
anh chị đi trước và tất cả bạn bè. Các anh chị, các bạn luôn có mặt trong những thời
điểm khó khăn nhất, tiếp thêm động lực và ý chí, giúp chúng tôi hoàn thành được luận


văn.
Mặc dù đã cố gắng nỗ lực hết sức mình, song chắc chắn luận văn không khỏi
còn nhiều thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình
của quý Thầy cô và các bạn.

Tp.HCM, 7/2004
Nhóm sinh viên thực hiện
Nguyễn Quý Minh – Phạm Anh Vũ
Trang 1




KHOA CNTT – ĐH KHTN




Lời nói đầu
Lời Nói Đầu
[ \
Ngày nay, trong tất cả các lãnh vực của đời sống kinh tế, xã hội, công nghệ
thông tin được xem là một trong những ngành công nghệ mũi nhọn, đóng vai trò hết
sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ.
Các ứng dụng GIS ngày càng phát huy vai trò quan trọng trong việc hỗ trợ quản
lý, qui hoạch đặc biệt là đối với các tổ chức, chính phủ. Vấn đề qui hoạch ở Việt Nam,
cũng như ở nhiều quốc gia khác, đang gặp rất nhiều khó khăn, tốn nhiều thời gian và
tiền bạc, nhất là đối với các thành phố lớn, trọng điểm như TP Hồ Chí Minh, Hà Nội,
Hải Phòng Giải pháp cần thiết là một ứng dụng GIS hỗ trợ. Việc bắt tay xây dựng từ
đầu một ứng dụng GIS cần rất nhiều thời gian, tiền bạc và công sức nhưng chưa chắc

thành công. Trên thị trường cũng có những ứng dụng GIS thương mại, cho phép xây
dựng ứng dụng trên nền thư viện cung cấp sẵn như ArcView GIS, ArcGIS , tuy nhiên
sẽ phải đối mặt với vấn đề bản quyền, tốn rất nhiều tiền bạc khi triển khai trên diện
rộng.
GRASS là một phần mềm GIS có chức năng, sức mạnh bằng hoặc vượt các sản
phẩm thương mại nhưng điều đặc biệt là một ứng dụng mã nguồn mở, tức người sử
dụng có thể tự mình tòan quyền cài đặt, sữa chữa phù hợp với nhu cầu và đặc điểm
riêng của mình mà không phải trả chi phí bản quyền phần mềm. Điều hạn chế hiện nay
là GRASS chỉ được phát triển trên nền UNIX. Nếu có thể chuyển đổi GRASS sang
Windows, ta có thể xây dựng được nhiều ứng dụng GIS với chi phí rẻ, phù hợp để phổ
biến trên diện rộng do Windows là hệ điều hành dễ sử dụng, thân thiện và có số lượng
người dùng nhiều nhất hiện nay.
Với ý tưởng trên, chúng em đã tập trung thực hiện đề tài “NGHIÊN CỨU
CHUYỂN ĐỔI PHẦN MỀM GRASS TỪ NỀN UNIX LÊN WINDOWS”.


Trang 2




KHOA CNTT – ĐH KHTN




Lời nói đầu
Nội dung của luận văn được chia làm 5 chương:
Chương 0: Mở đầu giới thiệu chung về đề tài, ý nghĩa và các mục tiêu của đề
tài; trình bày các giải pháp và hướng nghiên cứu đã được thực hiện trong và ngoài

nước.
Chương 1: .OpenGIS – Khái niệm chung và Các mô hình dữ liệu, giới thiệu
chung về các khái niệm GIS, OpenGIS, các mô hình dữ liệu trên GIS.
Chương 2: Hệ Thống Hỗ trợ Phân tích Tài nguyên Địa lý, trình bày về phần
mềm mã nguồn mở GRASS, cách thức cài đặt và khởi tạo, cách thức sử dụng và lập
trình trên GRASS.
Chương 3: Quá trình chuyển đổi GRASS từ Unix lên môi trường Window,
các kỹ thuật cài đặt trong GRASS, mô hình và cấu trúc chi tiết của GRASS, các bộ thư
viện trung tâm.
Chương 4: Tổng kết tóm tắt lại các vấn đề đã được đặt ra trong luận văn, cách
giải quyết, kết quả đạt được và đề ra một số hướng phát triển trong tương lai.












Trang 3




KHOA CNTT – ĐH KHTN





Mục lục
Mục Lục

Lời Cảm Ơn 1
Lời Nói Đầu 2
Mục Lục 4
Danh sách các hình vẽ 6
Chương 0 : Mở Đầu 7
Chương 1 : OpenGIS – Khái niệm chung và Các mô hình dữ liệu 8
1.1 Giới thiệu về GIS 8
1.1.1 Định nghĩa GIS 8
1.1.2 Các thành phần của GIS 10
1.1.3 Các mô hình dữ liệu của 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 2 : Hệ Thống Hỗ trợ Phân tích Tài nguyên Địa lý 17
2.1 Sơ lược về GRASS 17
2.2 Kiến trúc GRASS 19
2.3 Định dạng dữ liệu 20
2.4 Tổ chức lưu trữ dữ liệu của GRASS 23
2.4.1 GISDBASE : 23
2.4.2 LOCATION : 23
2.4.3 MAPSETS 24
2.4.4 REGION và MASK 29
2.4.5 Các biến môi trường sử dụng trong 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 được cung cấp bởi GRASS (src/libes) 41
2.8.1 Danh sách 41
2.8.2 Giới thiệu sơ bộ hàm và thư viện 43
2.9 Cơ chế bổ sung và quản lý mã nguồn của GRASS 95
Trang 4




KHOA CNTT – ĐH KHTN




Mục lục
2.9.1 Mã nguồn chính 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 và sơ lược cách sử dụng 97
2.10.1 Cài đặt GRASS trên LINUX 97
2.10.2 Cài đặt GRASS trên Windows thông qua giả lập Cygwin 99
Chương 3 : Quá trình chuyển đổi GRASS5 từ Linux lên Windows 101
3.1 Sự khác biệt giữa Windows và Unix/Linux 101
3.1.1 Tổng quan về hệ điều hành Windows 101
3.1.2 Tổng quan về hệ điều hành UNIX 103
3.1.3 So sánh tổng quát về lập trình đa nhiệm trên hai môi trường 105
3.1.4 So sánh về hệ thống file của hai môi trường 109
3.1.5 Giao diện người dùng 112
3.1.6 Shell và script 113
3.2 Sơ lược về phần mềm GRASS 113
3.3 Sơ lược về mã nguồn của 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 đề chính khi chuyển đổi lên Windows 116
3.5.1 Khởi tạo các biến môi trường cần thiết 116
3.5.2 Dữ Liệu GRASS và Cấu trúc của dữ liệu GRASS 119
3.5.3 Cấu trúc chung của source code GRASS 121
3.5.3.1 Cài đặt bộ thư viện trung tâm 122
3.5.3.2 Cài đặt các nhóm lệnh xử lý của Grass 124
3.5.3.3 Các Driver dùng để hiển thị của Display 129
3.5.3.4 Cơ chế SendMessage trong GRASS5 132
3.5.3.5 Khái niệm hệ thống đồ họa XWindow trong Linux 143
3.5.3.6 Cài đặt và sử dụng các hàm X (Xlib) trên Window32 147
Chương 4 : 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 5




KHOA CNTT – ĐH KHTN




Danh sách các hình vẽ
Danh sách các hình vẽ

Hình 1 - 1 Minh họa về GIS 11
Hình 2 - 1 Mô hình kiến trúc GRASS 20

Hình 2 - 2 Minh họa cấu trúc lưu trữ của GISDBASE trên đĩa 23
Hình 2 - 3 Minh họa cấu trúc lưu trữ của LOCATION trên đĩa 24
Hình 2 - 4 Minh họa cấu trúc lưu trữ của MAPSET trên đĩa 25
Hình 2 - 5 Minh họa cơ chế MASK của GRASS 31
Hình 2 - 6 Minh họa dữ liệu điểm – POINT/SITE 39
Hình 2 - 7 Hình ảnh sử dụng GRASS5 trên Linux 99
Hình 2 - 8 Hình ảnh sử dụng GRASS5 trên Windows thông qua giả lập Cygwin. 100
Hình 3 - 1 Kiến trúc của hệ điều hành Windows theo họ NT 103

Hình 3 - 2 Các dòng hệ điều hành phát triển trên nền UNIX 104

Hình 3 - 3 Kiến trúc của hệ điều hành UNIX 105
Hình 3 - 4 Mô hình minh họa cơ chế Send Event trong GRASS5 138
Hình 3 - 5 Kiến trúc thư viện XLIB 151

Trang 6




KHOA CNTT – ĐH KHTN




Chương 0: Mở đầu
Chương 0 : Mở Đầu

Các ứng dụng GIS ngày càng phát huy vai trò quan trọng trong việc hỗ trợ quản
lý, qui hoạch đặc biệt là đối với các tổ chức, chính phủ. Vấn đề qui hoạch ở Việt Nam,
cũng như ở nhiều quốc gia khác, đang gặp rất nhiều khó khăn, tốn nhiều thời gian và
tiền bạc, nhất là đối với các thành phố lớn, trọng điểm như TP Hồ Chí Minh, Hà Nội,
Hải Phòng Giải pháp cần thiết là mộ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ỨU CHUYỂN ĐỔI PHẦN MỀM
GRASS TỪ NỀN UNIX LÊN WINDOWS”.
Đề tài phải giải quyết một số công việc chính:
• Nghiên cứu GIS và chuẩn OpenGIS.
• Nghiên cứu sự khác nhau giữa hệ điều hành Unix và Windows.
• Dựa vào những hiểu biết này, xem xét việc xây dựng một ứng dụng GIS
trên nền phần mềm mã nguồn mở GRASS.
• Triển khai việc chuyển đổi GRASS từ môi trường Unix sang môi trường

Windows.
Trang 7




KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm
Chương 1 :
OpenGIS –
Khái niệm chung và Các mô hình dữ liệu

Chương này trình bày khái quát về GIS và những vấn đề tồn tại liên quan đến trao đổi
dữ liệu GIS trong môi trường mạng dẫn đến nhu cầu xuất hiện OpenGIS. Các khái
niệm và chủ đề liên quan đến OpenGIS, vai trò của tổ chức OGC (Open GIS
Consortium), mô hình tham chiếu ORM (OpenGIS Refrerence Model), và các bộ đặc
tả về OpenGIS được đề xuất bởi OGC là những phần chính được đề cập đến trong
chương này.
1.1 Giới thiệu về GIS
1.1.1 Định nghĩa GIS
Hệ thống thông tin địa lý, gọi tắt là GIS (Geographic Information System) ra đời từ đầu
thập niên 60. Tuy nhiên mãi đến thập niên 80, GIS mới thực sự đượ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 nhau
về GIS. Những định nghĩa này bổ sung cho nhau giúp ta hiểu đầy đủ hơn các khía cạnh
của GIS. Sau đây là một số định nghĩa của GIS được trích theo Peter & Rachael
(1998):

GIS là một tập các công cụ mạnh dùng cho việc thu nhập, lưu trữ cũng như
truy tìm, biến đổi và hiển thị các dữ liệu không gian từ thế giới thực (Burrough,
1986)



GIS là một hệ thống dùng cho việc nắm bắt, kiểm tra, thao tác, phân tích và
hiển thị các dữ liệu qui chiếu không gian liên quan đến Trái đất (Department of
Environment, 1987)
GIS là công nghệ thông tin cho phép lưu trữ, phân tích, và hiển thị cả dữ liệu
Trang 8




KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm
không gian lẫn dữ liệu phi không gian (Parker, 1988)
GIS là hệ thống cơ sở dữ liệu trong đó phần lớn dữ liệu biểu thị không gian, và
tập các thủ tục thao tác trên những dữ liệu này nhằm trả lời những truy vấn về
các thực thể không gian chứa trong cơ sở dữ liệu (Smith et al,. 1987)










GIS là tập các thủ tục thủ công hoặc dựa trên máy tính được dùng để lưu trữ và
thao tác các dữ liệu tham chiếu địa lý (Aronoff, 1989)
GIS là tập các chức năng được thực hiện một cách tự động nhằm cung cấp
những năng lực cấp cao đối với sự lưu trữ, truy tìm, thao tá và hiển thị các dữ
liệu vị trí địa lý (Ozemoy, Smith, & Sicherman, 1981)
GIS là một 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 cơ sở dữ liệu và các chuyên gia, và tổ chức này liên tục hỗ trợ tài
chính (Carter, 1989)
GIS là hệ thống hỗ trợ quyết định liên quan đến sự tích hợp dữ liệu quy chiếu
không gian trong một môi trường giải quyết vấn đề (Cowen, 1988)
Thông qua các định nghĩa trên, ta thấy được ba khía cạnh quan trọng của một
hệ thống GIS bao gồm:
Tập các công cụ hoặc thủ tục cho phép thực hiện các chức năng lưu trữ, truy
tìm, biến đổi, phân tích và hiển thị dữ liệu không gian địa lý.
Cơ sở dữ liệu là thành phần quan trọng chức các dữ liệu không gian kết hợp dữ
liệu phi không gian.
Tổ chức nhằm phối hợp kỹ thuật và con người để có thể duy trì và phát triển hệ
thống nhằm đưa ra những quyết định hợp lý.
Trang 9




KHOA CNTT – ĐH KHTN





Chương 1: OpenGis – Các khái niệm
1.1.2 Các thành phần của GIS
Có nhiều mô hình GIS tuỳ theo nhu cầu của người dùng. Mô hình đầy đủ của GIS bao
gồm sáu thành phần: phần cứng, phần mềm, dữ liệu, qui trình, con người và tổ chức.
Những thành phần này cần phải kết hợp cân đối nhau để hệ thống làm việc hiệu quả.
Phần cứng GIS bao gồm hệ thống máy tính hoặc mạng máy tính cho phép
nhập, xuất, lưu trữ, truyền và hiển thị dữ liệu không gian.






Phần mềm GIS bao gồm những công cụ thực hiện năm chức năng chính là
nhập và kiểm tra dữ liệu, lưu trữ quản lý dữ liệu, xuất và thể hiện dữ liệu, biến
đổi phân tích dữ liệu, và giao tiếp với người sử dụng.
Dữ liệu GIS bao gồm dữ liệu không gian và dữ liệu phi không gian với dung
lượng rất lớn, cần được thu nhập và lưu trữ theo một cấu trúc chuẩn để thuận
tiện cho việc trao đổi và bảo quản.
Các qui trình xử lý được xác lập trong quá trình phân tích và thiết kế hệ thống
GIS cho một tổ chức với các mục tiêu cụ thể. Khả năng xây dựng và triển khai
các qui trình ảnh hưởng đến tính hữu hiệu của hệ thống GIS.
Con người là yếu tố quyết định sự thành công của hệ thống GIS. Con người
bao gồm các kỹ thuật viên, chuyên viên công nghệ thông tin, nhà quản trị hệ
thống và người sử dụng các kết quả của GIS để ra quyết định.
Tất cả những thành phần trên cần được đặt trong một tổ chức thích hợp, có các
cơ chế, chính sách và qui trình hợp lý.
Trang 10





KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm

Hình 1 - 1 Minh họa về GIS

1.1.3 Các mô hình dữ liệu của GIS
Trong GIS, các thực thể trong thế giới thực có thể được biểu diễn bằng những mô hình
dữ liệu khác nhau nhằm mô tả các thuộc tính, vị trí, thời gian và quan hệ không gian
giữa chúng. Các thực thể khi được biểu diễn trong mô hình dữ liệu thường được gọi là
các đối tượng. Để biểu diễn vị trí và quan hệ của các đối tượng trong không gian địa lý,
người ta dùng mô hình vector hoặc mô hình raster. Mô hình phân cấp, mô hình mạng
hoặc mô hình quan hệ thì được dùng để biểu diễn các thuộc tính của các đối tượng.
Trong cơ sở dữ liệu địa lý, các thuộc tính sẽ được liên kết với các đối tượng tương ứng
trong mô hình vector hoặc raster. Mỗi một mô hình đều có ưu điểm và nhược điểm
riêng, và có thể có nhiều cấu trúc dữ liệu, mỗi cấu trúc dữ liệu có thể được lưu trữ bằng
nhiều định dạng khác nhau.
Trang 11




KHOA CNTT – ĐH KHTN





Chương 1: OpenGis – Các khái niệm
Mô hình vector
Trong mô hình vector, mỗi đặc trưng địa lý trên mặt đất được xác định bằng những
điểm, đường và vùng trong mặt phẳng toạ độ Descartes. Mỗi điểm được xác định bởi
cặp toạ độ (x,y), mỗi đường được tuyến tính hoá thành nhiều đoạn biểu diễn bằng một
chuỗi những cặp toạ độ (x
i, yi), mỗi vùng được xác định bởi một đường khép kính và
được biểu diễn bằng một chuỗi các cặp tọa độ (xi, yi) có các tọa độ điểm đầu và điểm
cuối trùng nhau.
Mô hình raster
Trong mô hình raster, không gian được chia thành những phần tử nhỏ còn được gọi là
tế bào. Mỗi tế bào được xem như đồng nhất, cùng một thuộc tính và được biểu diễn
như một điểm. Kích thước của mỗi tế bào được đặc trưng bởi độ phân giải.Có thể hình
dung dữ liệu raster như là một tấm lưới phủ lên một địa thế nào đó trong thế giới thực,
và mỗi ô trong lưới có một mã số đặc trưng cho một ý nghĩa nào đó của vùng nằm bên
trong ô đó.
Một đặc điểm của cấu trúc raster là một lưới raster như vậy chỉ biểu diễn được một
thuộc tính àno đó của đối tượng thôi, vì mỗi tế bào trong lưới chỉ được gán bởi duy
nhất một giá trị thuộc tính. Do vậy, người ta thường tạo nhiều lớp lưới raster khác nhau
để biểu diễn nhiều thuộc tính cho cùng một đối tượng, mỗi lớp cho mỗi thuộc 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 ưu hóa việc lưu trữ, xử lý cũng như hiển
Trang 12




KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm
thị dữ liệu. Bên cạnh đó, các tổ chức cũng đưa ra những dạng thức riêng của họ để
thuận tiện cho việc ghi nhận và trao đổi dữ liệu địa lý của tổ chức.
Để lưu trữ dữ liệu không gian địa lý theo kiểu vector, phần mềm GIS ArcInfo dùng
dạng thức tập tin .shp, AutoCAD dùng .dwg, Autodesk Map dùng .dxf, MapInfo dùng
.mif, MicroStation dùng .dng, … Còn tổ chức US Geological Survey dùng dạng thức
DLG (Digital Line Graph), Chính phủ US dùng SDTS (Spatial Data Transfer System),
tổ chức US Census Bureau dùng TIGER (Topologically Integrated Geographic
Encoding and Referencing Files), … (có thể tham khảo thêm tại Đặng Văn Đức, 2001,
trang 202-204).
Tương tự với kiểu raster, nhiều dạng thức tập tin khác nhau cũng được sử dụng cho
việc lưu trữ dữ liệu, đặc biệt là những dữ liệu bản đồ được số hóa từ các thiết bị chuyên
dụng hoặc từ các ảnh chụp viễn thám. Chẳng hạn, các dạng thức PCX (PC PaintBrush
Exchange), TIFF (Tagged Image File Format) thường được dùng cho các ảnh raster tạo
được từ máy quét hoặc các chương trình vẽ PC, dạng thức ADRG (Arc Digitized
Raster Graphics) được dùng bởi Quân đội US lưu các ảnh raster của bản đồ giấy, dạng
thức BIL (Band Interleaved by Line) và BIP (Band Interleaved by Pixel) được dùng
cho các hệ thống viễn thám.
Về việc liên kết dữ liệu không gian địa lý với dữ liệu thuộc tính (còn gọi là dữ liệu phi

không gian) trong hệ GIS cũng có nhiều mô hình khác nhau. Chẳng hạn, MapInfo lưu
dữ liệu không gian vào tập tin dạng .mif, dữ liệu thuộc tính vào tập tin dạng .mid, và cả
hai tập tin này đều thuộc về MapInfo. Kiểu lưu trữ này của MapInfo được xem là kiến
trúc tích hợp của hệ GIS (Đặng Văn Đức, 2001, trang 202). Còn ArcInfo lưu dữ liệu
không gian vào tập tin dạng .dhp, và dùng tập tin dang .dbf vay mượn từ cơ sở dữ liệu
quan hệ thương mại để lưu dữ liệu thuộc tính. Đây được xem là kiến trúc đối ngẫu của
hệ GIS (Đặng Văn Đức, 2001, trang 199). Ngoài ra, một mẫu kiến trúc tích hợp khác
của hệ GIS nữa là một số cơ sở dữ liệu quan hệ thương mại truyền thống nay được mở
Trang 13




KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm
rộng thêm để có thể hỗ trợ việc lưu trữ và xử lý dữ liệu không gian địa lý. Ví dụ cơ sở
dữ liệu Oracle nay có thêm phần Oracle Locator và Oracle Spatial.
Sự đa dạng về mô hình và cấu trúc dữ liệu dùng trong GIS một mặt cho thấy được sự
sáng tạo của con người nhằm đáp ứng nhu cầu sử dụng và phát triển các ứng dụng GIS,
nhưng mặt khác cũng kéo theo những khó khăn nhất định trong việc truyền thông, trao
đổi cũng như tích hợp dữ 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ần mề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
được tích hợp trực tiếp vào các phần mề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 gian nào đó.

Ngày này với sự phát triển của mạng máy tính nói chung và mạng Internet nói riêng,
các nhu cầu thừa kế, trao đổi, tích hợp và khai thác dữ liệu GIS từ nhiều nguồn khác
nhau giữa các tổ chức, cộng đồng và quốc gia trong môi trường mạng ngày càng gia
tăng và có ý nghĩa. Việc thi hành các tác vụ chuyển đổi dữ liệu theo kiểu truyền thống
không được xem là hiệu quả và thuận tiện cho lắm đối với người sử dụng. Người ta cần
tìm ra giải pháp mang tính hệ thống và chuẩn mực hơn nhằm đêm lại sự thuận lợi lâu
dài và bền vững cho những người khai thác GIS.

1.2 Khái Quát Về OpenGIS
1.2.1 Tổ chức OGC
Tổ chức Liên hiệp OpenGIS, gọi tắt là OGC (Open GIS Consortium), là một tổ chức
phi lợi nhuận và mang tính quốc tế, được thành lập vào nằm 1994 nhằm giải quyết các
vấn đề liên quan đến sự trao đổi chia sẽ các dữ liệu không gian địa lý và khả năng làm
việc phối hợp giữa các phần mềm GIS. Các hoạt động của OGC tạo ra những ảnh
hưởng có ý nghĩa đến cộng đồng GIS và việc thiết kế các hệ thống GIS trong tương lai.
Trang 14




KHOA CNTT – ĐH KHTN




Chương 1: OpenGis – Các khái niệm
Nhận xét về vấn đề dữ liệu đối với GIS, OGC cho rằng:
“Hiện trên Web và trong các kho lưu trữ độc lập có nhiều dữ liệu không gian địa lý,
nhưng chúng quá phức tạp, không đồng nhất và không tương thích nhau. Người dùng
cần phải có kiến thức chuyên môn và các phần mềm GIS chuyên biệt để bao phủ hoặc

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 mềm GIS. OGC cung cấp cấu trúc hình thức để đạt được
sự thống nhất về các giao tiếp chung này.” (David Blasby)
Trên cơ sở nhận định này, mục tiêu bao trùm và dài hạn của OGC là:
“The full integration of geospatial data and geoprocessing resources into mainstream
computing and the widespread use of interoperable geoprocessing software and
geodata products throughtout the information infrastructure.” (Open GIS Consortium
Inc., 1999, Topic 0)
Tạm dịch:
“Tích hợp hoàn chỉnh các dữ liệu không gian địa lý và các cách xử lý thông tin địa lý
vào một luồng tính toán chính, và sử dụng phổ biến các sản phẩm dữ liệu địa lý và
phần mềm xử lý thông tin địa lý trong suốt cơ sở hạ tầng về thông tin.” (Open GIS
Consortium., 1999, Topic 0)
Theo ESRI (2003), việc tích hợp vào luồng tính toán chính mang ý nghĩa mở rộng
phạm vi trao đổi ứng dụng GIS ở mức tổ chức lớn hơn, chia sẽ dữ liệu không gian địa
lý không chỉ giữa các công nghệ GIS mà còn với các ứng dụng không phải GIS trên
những nền tảng khác nhau, và khả năng làm việc phối hợp giữa các chuẩn GIS với các
chuẩn IT công nghiệp.
Trang 15




KHOA CNTT – ĐH KHTN





Chương 1: OpenGis – Các khái niệm
Công việc của OGC là xây dựng và công bố các đặc tả mang tính mở cho các giao tiếp,
lược đồ và kiến trúc nhằm thúc đẩy khả năng tương thích giữa các kho dữ liệu không
gian địa lý, các ứng dụng và dịch vụ GIS không đồng nhất.

1.2.2 Định nghĩa OpenGIS
Các đặc tả mở được tạo bởi OGC được gọi là các đặc tả OpenGIS (Open GIS
Specifications). Vậy Open GIS là gì?
OpenGIS được định nghĩa là:
“Open and interoperable geoprocessing” or “The ability to share heterogeneous
geodata and geoprocessing resources transparently in a networked environment.”
(David, 2000)
Tạm dịch:
“Việc xử lý dữ liệu địa lý phải có tính mở và có khả năng làm việc liên thông” hoặc
“Khả năng chia sẻ một cách trong suốt các dữ liệu địa lý không đồng nhất và các tài
nguyên xử lý về mặt địa lý trong môi trường mạng.” (Dương Anh Đức)
Hai khái niệm “mở” (open) và “khả năng làm việc liên thông” (interoperability) là hai
khái niệm trung tâmcủa OpenGIS.
Mở được hiểu là nhiều thành phần tham gia soạn thảo các đặc tả, và các kết
quả đặc tả được tự do tham khảo và sử dụng.

• Khả năng làm việc liên thông là khả năng tương thích của các ứng dụng nhằm
khắc phục những trở ngại do sự không dồng nhất các môi trường xử lý cũng
như sự không đồng nhất về dữ liệu.
Tóm lại, có thể nói rằng các đặc tả OpenGIS được xây dựng nhằm giúp cho việc truy
cập các dữ liệu không gian địa lý và các dịch vụ xử lý dữ liệu trở nên trong suốt trong
môi trường làm việc mạng.
Trang 16





KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
Chương 2 :
Hệ Thống Hỗ trợ Phân tích Tài nguyên Địa lý

Chương 2 giới thiệu về phần mềm GRASS (The Geogaphic ResourcesAnalysis
Support System), là một hệ thống hỗ trợ phân tích tài nguyên địa lý. Đề cập một cách
khái quát 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, nguyên gốc được thiết kế và phát triển bởi những nhà nghiên
cứu tại Phòng Thí nghiệm Xây dựng của quân đội Mỹ (US Army Construction
Engineering Research Laboratory - USACERL) và ngày 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ỹ).
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 1,5 triệu dòng mã lệnh) và có thể
được biên dịch trên các hệ điều hành phát triển trên nền Unix như SUN Solaris,
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ố hoá. Hiện tại, phiên bản GRASS đã ra đến 5.x và là một trong mười
phần mềm mã nguồn mở có qui mô lớn nhất hiện nay . Đã có nhiều tổ chức, chính phủ,
trường học và công ty sử dụng thư viện GRASS để phát triển những ứng dụng chuyên
biệt cho riêng mình.
Trang 17




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
Những đối tượng GRASS hướng đến là các nhà qui hoạch, sinh thái học, địa chất học,
địa lý học và những kỹ sư trắc địa vẽ bản đồ, tuy nhiên người sẽ trực tiếp sử dụng
GRASS lại là các lập trình viên. Hầu hết các đối tượng GRASS hướng đến đều có
trình độ tin học hạn chế, họ tự mình không thể xây dựng một chương trình tin học phức
tạp liên quan đến GIS để phục vụ công việc của bản thân, tuy rằng công việc chuyên
môn rất cần sự hỗ trợ của những phần mềm tin học như vậy. GRASS cung cấp một bộ
thư viện để xây dựng ứng dụng GIS tương đối đầy đủ gọi là GISLIB (
khoảng trên 800
hàm)
, và bản thân GRASS cũng dựa trên bộ thư viện này để phát triển một số chức
năng cơ bản về GIS. Việc xây dựng một hệ GIS thật sự rất phức tạp nếu bắt tay từ đầu,
và vì thế, nhờ sự hỗ trợ của bộ thư viện này lập trình viên sẽ có thể nhanh chóng xây
dựng được các ứng dụng GIS hỗ trợ cho các đối tượng người dùng trên một cách dễ
dàng và nhanh chóng.
GRASS được thiết kế và phát triển cho nhiều mức độ sử dụng khác nhau, ở thời điểm

hiện tại có thể phân chia như sau :
• Mức chuyên biệt hoá : cho những người dùng mới học cách sử dụng, trình
độ tin học không cao. GRASS hiện tại hỗ trợ giao tiếp người dùng thông
qua giao diện đồ họa được viết bằng script TCL/TK. Cho phép xây dựng
nên các command truy vấn thông qua menu, dialog. Giao diện này thực chất
là lớp vỏ bọc cho những command chuyên biệt bên dưới.
• Mức command, gõ lệnh trực tiếp : đây là mức thông dụng nhất và được sử
dụng nhiều nhất. Trên môi trường LINUX/UNIX việc gõ command sẽ giúp
thao tác nhanh với hệ điều hành rất nhiều so với giao tiếp giao diện đồ họa.
GRASS ở mức giao tiếp này hỗ trợ người dùng gõ command trực tiếp để
truy vấn và sử dụng.
• Mức lập trình : đây là những developer, có trình độ tin học cao. Sử dụng
những bộ thư viện được cung cấp sẵn của GRASS để phát triển nên những
Trang 18




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
ứng dụng cho bản thân. Ràng buộc là các developer phải sử dụng những
hàm đã được hỗ trợ (nếu có) để mở rộng và phát triển, không viết lại những
gì đã có để tránh trùng lắp và bug
• Mức xây dựng thư viện : đây là công việc của nhóm phát triển GRASS đang
làm. Họ có trách nhiệm duy trì sự ổn định, phát hiện sửa chữa những lỗi và
đảm bảo một nền tảng thư viện hàm tốt để các ứng dụng được phát triển và

mở rộng trên đó.
GRASS hỗ trợ các chức năng chính yếu :
• Phân tích dữ liệu Raster (Raster Analysis)
• Phân tích dữ liệu Vector (Vector Analysis)
• Phân tích dữ liệu Điểm (Point Analysis)
• Xử lý hình ảnh (Image Process)
• Phân tích DTM ( DTM – Analysis)
• Hiển thị thông tin (Screen Displaying)
• Tạo lập bảng đồ (map creation)
• Hỗ trợ SQL ( PostgreSQL, MySQL )
• Các module khác (được các nhóm khác xây dựng và gắn vào)

2.2 Kiến trúc GRASS
Ở mức độ tổng quan, có thể mô tả kiến trúc của bộ thư viện GRASS như hình vẽ sau :
Trang 19




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài ngun địa lý
GRASS GIS LIB
Dữ liệu
RASTER
Dữ liệu
VECTOR

Dữ liệu
POINT
Xử lý
hình ảnh
Phân tích
DTM
Quản lý cơ
sở dữ liệu
Những
module khác
Lớp 0
Lớp 1
Lớp 2

Hình 2 - 1 Mơ hình kiến trúc GRASS

GRASS được viết theo bằng C nên hồn tồn khơng có yếu tố hướng đối tượng trong
kiến trúc. Các chức năng được đóng lại thành các gói. Theo chiều mũi tên, các gói
được phân thành kiến trúc lớp như trên, những gói thuộc lớp cao sẽ sử dụng các chức
năng do các gói ở lớp thấp cung cấp.
Những module khác có thể là các hỗ trợ phụ thêm cho GRASS như giao tiếp ODBC
với hệ quản trị cơ sở dữ liệu Postgres, cung cấp nơi lưu trữ, truy vấn cho cơ sở dữ liệu
khơng gian
2.3 Định dạng dữ liệu
GRASS lưu trữ dữ liệu theo một tổ chức thư mục được phân cấp được qui ước và mỗi
loại dữ liệu có định dạng lưu trữ xác định. Dữ liệu vector (vector data) được lưu theo
định dạng nhị phân, dữ liệu điểm (site / point data) được lưu theo định dạng ASCII và
dữ liệu ảnh (raster/imagery data) được lưu theo định dạng nhị phân và được nén. Về
phương diện lập trình GRASS được cung cấp thư viện GIS Library dùng để giao tiếp
với cơ sở dữ liệu của GRASS. Thư viện GIS Library cung cấp đủ các hàm khiến cho

lập trình viên có thể khơng cần phải hiểu cấu trúc của CSDL lưu bên dưới. Thư viện
Trang 20




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
GRASS dùng các biến môi trường (environment variable) để thiết lập các thông số cho
các hàm thư viện GIS Library truy xuất.
GRASS hỗ trợ 3 định dạng dữ liệu :
 Dữ liệu Raster : là kiểu dữ liệu dạng pixel, có thể là các ảnh TIFF, GIF, PPM, ảnh
chụp vệ tinh …
Hỗ trợ import các định dạng :
1. ASCII (X Y Z , Z trong khoảng -2E7 đến 2 E7)
2. TIFF (8 bit)
3. GIF (8 bit)
4. PPM (24 bit)
5. SUN Raster (8 bit)
6. NHAP ( ảnh không gian)
7. BIL/BSQ (ảnh vệ tinh)
8. LANDSAT TM, MSS (ảnh vệ tinh)
9. SPOT (ảnh vệ tinh)
Hỗ trợ kết xuất từ Raster ra các định dạng như :
1. ASCII (X Y Z , Z trong khoảng -2E7 đến 2 E7)
2. PPM (24 bit)

3. PPM/3 (24 bit)
4. TGA (24 bit)
5. TIFF (8 bit)
Trang 21




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
 Dữ liệu Vector : dữ liệu thể hiện hình dạng vật lý bên ngoài của đối tượng như :
dòng sông, đường xá, hồ nước hoặc cánh đồng … Được định dạng theo kiểu vector.
Hỗ trợ import các định dạng như :
1. ASCII vectorformat
2. ARC/INFO (các file có phần mở rộng .arc, .line, .point và .textlabel )
3. DXF
4. DXF3D
5. DLG
6. IDRISI
7. TIGER
Hỗ trợ kết xuất từ dữ liệu vector ra các định dạng
1. ASCII vectorformat
2. ARC/INFO
3. DXF
4. IDRISI
5. MOSS

 Dữ liệu điểm (Point data): trong GRASS được gọi là “sites”. Dữ liệu điểm có thể là
độ cao, lượng mưa ở một toạ độ xác định. Gọi là điểm vì thông tin thể hiện cho một toạ
độ xác định trên bản đồ
Định dạng hỗ trợ import và kết xuất là : ASCII format
Trang 22




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
2.4 Tổ chức lưu trữ dữ liệu của GRASS
2.4.1 GISDBASE :
Cơ sở dữ liệu trong GRASS sử dụng kiến trúc thư mục kiểu UNIX. Mức cao nhất được
gọi là GISDBASE, người dùng phải cung cấp thông tin này khi đăng nhập sử dụng
GRASS và thông tin sẽ được chứa trong biến môi trường GISDBASE. Truy xuất lại
thông tin này, ta dùng hàm G_gisdbase
2.4.2 LOCATION :
Thư mục con của GISDBASE là Location, có thể xem Location là những cơ sở dữ liệu
độc lập nhau của các vùng khác nhau và GISDBASE là tập các cơ sở dữ liệu mà
GRASS hiện đang được dùng để quản lý.
Người dùng phải xác lập Location sẽ làm việc khi đăng nhập sử dụng GRASS, thông
tin này sau đó sẽ được chứa trong biến môi trường LOCATION_NAME, và được trả
về khi sử dụng hàm G_location để truy vấn.
Trong một phiên làm việc, GRASS chỉ có thể làm việc với một Location duy nhất
trong số những Location mà GISDBASE quản lý.


LOCATION .1
LOCATION .2
LOCATION .1
LOCATION .4
GISDBASE

Hình 2 - 2 Minh họa cấu trúc lưu trữ của GISDBASE trên đĩa
Trang 23




KHOA CNTT – ĐH KHTN




Chương 2: Hệ thống hỗ trợ phân tích tài nguyên địa lý
2.4.3 MAPSETS
Thư mục con của Location là mapset (tập bản đồ). Người dùng phải đăng ký mapset sẽ
sử dụng trong Location cho GRASS khi đăng nhập. Mapset được chọn sẽ đựơc lưu
trong biến môi trường MAPSET và giá trị biến môi trường này được truy xuất thông
qua G_mapset
MAPSET .1
MAPSET .2
….
PERMANENT
LOCATION


Hình 2 - 3 Minh họa cấu trúc lưu trữ của LOCATION trên đĩa

Người dùng chỉ được sửa đổi đối với những mapset được tạo ra bởi chính người dùng.
Đối với những mapset khác, người dùng chỉ có thể xem nhưng không được thực hiện
việc sửa đổi (tuy nhiên, nếu chủ nhân của mapset không cho xem, bằng cách đặt quyền
sử dụng file thông qua Unix File System, thì ta cũng không xem được các mapset này).
Vậy đường dẫn đến một Mapset là : GISDBASE/LOCATION/MAPSET. Thông tin
này có thể lấy ra thông qua hàm G_location_path
Cấu trúc Mapset bao gồm : các file và các thư mục con khác (được gọi là các element,
trong sơ đồ các element được vẽ với dấu /).

Trang 24

×