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

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

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

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

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

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)





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 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ý

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 đó.

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

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

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à

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

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


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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status