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.32 MB, 157 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Luận văn của chúng em sẽ rất khó hồn thành nếu khơng có sự truyền đạt kiến thức q 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 tồn thể gia đình, những người đã ni 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 ln 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 hồ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 q 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ũ
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">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.
<b>Với ý tưởng trên, chúng em đã tập trung thực hiện đề tài “NGHIÊN CỨU </b>
<b>CHUYỂN ĐỔI PHẦN MỀM GRASS TỪ NỀN UNIX LÊN WINDOWS”. </b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">Nội dung của luận văn được chia làm 5 chương:
<b>Chương 0: Mở đầu giới thiệu chung về đề tài, ý nghĩa và các mục tiêu của đề </b>
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.
<b>Chương 1: .OpenGIS – Khái niệm chung và Các mơ hình dữ liệu, giới thiệu </b>
chung về các khái niệm GIS, OpenGIS, các mơ hình dữ liệu trên GIS.
<b>Chương 2: Hệ Thống Hỗ trợ Phân tích Tài ngun Địa lý, trình bày về phần </b>
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.
<b>Chương 3: Quá trình chuyển đổi GRASS từ Unix lên môi trường Window, </b>
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.
<b>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 </b>
giải quyết, kết quả đạt được và đề ra một số hướng phát triển trong tương lai.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">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.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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">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,
<b>chúng em đã đầu tư xây dựng đề tài “NGHIÊN CỨU CHUYỂN ĐỔI PHẦN MỀM </b>
<b>GRASS TỪ NỀN UNIX LÊN WINDOWS”. </b>
Đề 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.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">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.
<b>1.1.1 Định nghĩa GIS </b>
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à công nghệ thông tin cho phép lưu trữ, phân tích, và hiển thị cả dữ liệu
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">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à 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ý.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">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.
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ý.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><b>Hình 1 - 1 Minh họa về GIS </b>
<b>1.1.3 Các mô hình dữ liệu của GIS </b>
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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><b>Mơ hình raster </b>
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.
<b>1.1.4 Vấn Đề Dữ Liệu Đối Với GIS </b>
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
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">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). Ngồ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ở
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Để 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.
<b>1.2.1 Tổ chức OGC </b>
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
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">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à:
<i>“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 </i>
Inc., 1999, Topic 0) Tạm dịch:
“Tích hợp hồ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 tố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 tố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.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">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.
<b>1.2.2 Định nghĩa OpenGIS </b>
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à:
<i>“Open and interoperable geoprocessing” or “The ability to share heterogeneous geodata and geoprocessing resources transparently in a networked environment.” </i>
(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
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">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 .
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 qn độ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
<b>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ể </b>
đượ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.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">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 (<small>khoảng trên 800 hàm)</small>, 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
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">ứ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 đó.
<b>GRASS hỗ trợ các chức năng chính yếu : </b>
• 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)
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><b><small>Hình 2 - 1 Mơ hình kiến trúc GRASS</small></b>
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...
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
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">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)
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><i><b> Dữ liệu Vector : dữ liệu thể hiện hình dạng vật lý bên ngồi của đối tượng như : </b></i>
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
<i><b> Dữ liệu điểm (Point data): trong GRASS được gọi là “sites”. Dữ liệu điểm có thể là </b></i>
độ 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
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><i><b>thông tin này, ta dùng hàm G_gisdbase </b></i>
<b>2.4.2 LOCATION : </b>
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ý.
<small>LOCATION .1LOCATION .2LOCATION .1LOCATION .4GISDBASE</small>
<b><small>Hình 2 - 2 Minh họa cấu trúc lưu trữ của GISDBASE trên đĩa</small></b>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><b><small>Hình 2 - 3 Minh họa cấu trúc lưu trữ của LOCATION trên đĩa </small></b>
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 /).
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><b><small>Hình 2 - 4 Minh họa cấu trúc lưu trữ của MAPSET trên đĩa</small></b>
<i>Các file trong mapset </i>
• GROUP : nhóm hình ảnh hiện tại (current imagery group), được dùng bởi các hàm xử lý hình ảnh (imagery function).
• SEARCH_PATH : đường dẫn tìm kiếm của Mapset (mapset search path), đựơc tạo và sửa đổi bởi lệnh g.mapsets. Nó chứa bên trong danh sách các mapset có thể được sử dụng để tìm kiếm các file cơ sở dữ liệu. Khi người dùng gõ vào tên một một file cơ sở dữ liệu mà không ghi rõ thuộc mapset nào, thơng tin đó sẽ được tìm kiếm trong file SEARCH_PATH này. • WIND : khu vực hiện tại (current region), file được tạo và sửa đổi bởi
lệnh g.region, nội dung của WIND được lấy ra bởi lệnh G_get_window. • Các ELEMENTS : Các element này không được tạo khi mapset được tạo
mà các command của GRASS sẽ tạo động khi nó tham chiếu đến (ví dụ : g.ask). Vì các element khơng chắc chắn đã tồn tại, nên ta phải luôn kiểm tra sự hiện diện của nó trước khi thực hiện các thao tác.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">cell file nhị phân raster (số nguyên – INT)
FLOAT/DOUBLE)
cellhd file header cho các raster map
cats Thông tin được phân loại của các raster map (category raster map information)
colr Bảng màu của raster map
colr2 Bảng màu thứ hai của raster map cell_misc Những file linh tinh khác phục vụ cho
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">dig_cats danh mục các label của vector được hỗ trợ (vector category label support) dig_plus đồ hình vector được hỗ trợ (vector
topology support)
arc các file ARC/INFO là những file không được tạo tự động. Dùng cho việc trao đổi dữ liệu (data-exchange)
bdlg File nhị phân dlg, dùng cho việc trao đổi dữ liệu
dlg file ascii dlg, dùng cho việc trao đổi dữ liệu
dxf file ascii DXF, dùng cho việc trao đổi dữ liệu
camera dùng bởi hàm i.ortho.photo, là file đặc tả camera
icons những file biểu tượng, được dùng bởi hàm p.map
group dữ liệu hỗ trợ cho các nhóm hàm xử lý hình ảnh
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Mỗi location đều có những dữ liệu mapset thuộc loại cố định (PERMANENT
MAPSET). Mapset này chứa các file dữ liệu raster và vector nguyên gốc không được phép sửa đổi và các file đặc biệt khác.
• MYNAME : mơ tả thơng tin về location. Có thể truy xuất thơng qua hàm G_myname
• DEFAULT_WIND : mô tả region mặc định cho location, được trả về thông qua hàm G_get_default_window. File này được dùng để khởi tạo WIND file khi GRASS tạo mới một mapset trong Location.
• PROJ_INFO : chứa các thơng tin về project
• PROJ_UNITS : chứa thơng tin về các unit của project
<i><b>Ràng buộc khi sử dụng cơ sở dữ liệu mapset </b></i>
Dựa trên ba ràng buộc cơ bản :
1. Người sử dụng chỉ được chọn mapset đó để làm việc nếu đó là chủ nhân của mapset đó
2. GRASS chỉ tạo và sử đổi file chỉ trên mapset hiện tại được chọn
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">3. Tất cả các file trong các mapset đều có thể được đọc bởi những người sử dụng không phải chủ nhân của nó (thơng qua MAPSET SEARCH_PATH để truy xuất), nếu chủ nhân của các mapset này “chia sẻ” , cho phép các user khác được xem (thông qua cơ chế UNIX file permission)
<b>2.4.4 REGION và MASK </b>
GRASS cung cấp hai cơ chế cho phép người dùng lựa chọn khu vực sẽ quan sát và phân tích dữ liệu của họ, được gọi là lựa chọn theo kiểu “khu vực” (region) và lựa chọn theo kiểu “mặt nạ” (mask). Người sử dụng định nghĩa một khu vực hình chữ nhật để tạo ra một “lựa chọn theo kiểu khu vực” (region) và sau đó có thể tuỳ ý giới hạn lại bớt khu vực được chọn đó bằng một “mặt nạ” (mask). Dữ liệu về region và mask sẽ được tự động lưu trữ vào cơ sở dữ liệu GRASS trong MAPSET hiện tại được người sử dụng chọn lựa.
Các module của GRASS tự động làm việc với những dữ liệu nằm trong region đã được chọn, nếu có thêm mask thì chỉ những dữ liệu trong region sau khi vượt được qua lớp “mặt nạ“ sẽ được chọn để xử lý.
REGION
Để chọn khu vực làm việc, người sử dụng thao tác qua lệnh g.region, hoặc d.zoom, và những thơng tin này sau đó được lưu trong file WIND của MAPSET. File này không chỉ xác lập sự giới hạn của khu vực địa lý được chọn trong một khn viên hình chữ nhật mà dựa trên độ phân giải của khu vực đó, một cách ngầm định GRASS sẽ phân khu vực thành những cell hình chữ nhật có cùng kích thước.
File WIND chứa những thơng tin sau : north: 4660000.00
south: 4570000.00
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">west : 710000.00 e-w resol: 50.00 n-s resol: 100.00 rows: 900 cols: 1200 proj: 1 zone: 18
<i><b> north, south, east, west : tọa độ bốn góc định ra khu vực làm việc </b></i>
<i><b>rows, cols : số lượng dòng và cột được chia ra trong khu vực làm việc </b></i>
<i><b>e-w resol, n-s resol : Độ phân giải theo chiều rộng và chiều dài của khu vực làm việc. </b></i>
Đây chính là kích thước của mỗi cell được chia nhỏ ra từ khu vực làm việc ban đầu. w resol là chiều dài của cell và n-s resol là chiều rộng của cell.
<i><b>e-proj, zone : </b></i>
proj giúp xác định loại toạ độ được sử dụng :
0 : không sử dụng tọa độ (x,y), loại bản đồ image 1 : UTM
2 : State Plane
3 : Kinh độ, vĩ độ (Latitude Longitude)
zone xác định trường của proj, trong ví dụ trên là zone 18
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">Mặt nạ hoạt động như một bộ lọc khi đọc dữ liệu từ file raster.
<small>3 4 43 3 42 3 3</small>
<small>0 4 43 3 02 0 00 1 1</small>
<small>1 1 01 0 0</small>
<b><small>Hình 2 - 5 Minh họa cơ chế MASK của GRASS</small> </b>
GRASS 5 Không hỗ trợ mặt nạ dấu chấm động..
<b>2.4.5 Các biến môi trường sử dụng trong GRASS </b>
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 .. Các thông tin này cũng rất cần cho quá 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.
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
<b>• 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 </b>
GRASS dùng để đảm bảo cơ chế lock (khố) của chương trình.
<b>• GISRC : chỉ đến thư mục lưu trữ file .grassrc5, là file chứa thông tin về tất </b>
cả các biến môi trường. Khi được khởi động, GRASS sẽ đọc từ file
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><b>• GISDBASE: biến này ghi nhận đường dẫn đến thư mục cài đặt cơ sở dữ </b>
liệu của GRASS, thông tin biến này được đọc lên từ file .grassrc5 và được GRASS khởi tạo thành biến mơi trường
<b>• LOCATION_NAME: biến này ghi nhận đường dẫn đến thư mục </b>
LOCATION sẽ làm việc, thông tin biến này được đọc lên từ file .grassrc5 và được GRASS khởi tạo thành biến mơi trường.
<b>• MAPSET : biến này ghi nhận đường dẫn đến thư mục MAPSET sẽ làm </b>
việc, thông tin biến này được đọc lên từ file .grassrc5 và được GRASS khởi tạo thành biến môi trường.
<b>• MONITOR : Monitor đang được chọn để hiện thi hiện tại • PAINTER : thiết bị hiện thị đang được chọn </b>
<b>• DIGITIZER : digitizer đang được chọn </b>
<b>Các biến môi trường được lưu trong .grassrc5 được gọi là biến môi trường GRASS và được thao tác thông qua hai hàm thư viện : G_getenv và G_setenv. Hai hàm này đảm </b>
bảo các thông tin biến môi trường GRASS được lưu xuống file khi có sự thay đổi.
<b>2.5.1 Ý niệm sơ lược </b>
Dữ liệu dạng này có thể xem là được kết hợp lại từ một ma trận các ô. Nó có thể là một bản đồ giấy, một ảnh vệ tinh, hoặc một bản đồ có được do tổng hợp từ nhiều bản đồ khác.
Bản đồ được phân rã thành ma trận, gồm nhiều ô, mỗi ô được gọi là một grid cell. Ô grid cell là đơn vị nguyên tố của bản đồ, thể hiện một dữ liệu đã được qui ước và đánh số thành danh mục.
Ví dụ : Raster map sau
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">
Raster map về sự phân bố đất đai Với danh mục được qui định là
1 : Thành thị 2 : Đồng cỏ 3 : Rừng 4 : Đầm lầy
Mỗi ô, bên cạnh dữ liệu thể hiện tọa độ, còn đi kèm theo dữ liệu thể hiện ý nghĩa của cell (trong bản đồ ví dụ bên trên là các giá trị 1, 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ữ nguyên màu sắc nguyên 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).
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">cell File nhị phân thể hiện thông tin của các raster cell ( được thể hiện bằng số nguyên int)
fcell File nhị phân thể hiện thông tin của các raster cell ( được thể hiện bằng số thực float/double)
cellhd các file header của raster
cats Danh mục (category information) của các raster map colr bảng màu của raster map
colr2 bảng màu thay thế của raster map hist File lưu vết, lịch sử của raster map
cell_mísc Những thơng tin khác (linh tinh, khơng thật sự quan trọng) Ví dụ : raster map về đất đai (soils), có thể có các file sau : cell/soils, cellhd/soils, colr/soils, và cats/soils.
Những thư mục phân rã này được gọi là các “thành phần dữ liệu” (database elements).
<b>2.5.3 Các thao tác quan trọng </b>
<i> Nhận dữ liệu từ một tập tin bên ngoài (import data) </i>
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35"><i> Kết xuất dữ liệu (export data) </i>
Tùy theo lọai dữ liệu muốn kết xuất, ta dùng các lệnh sau Dữ liệu kết xuất là file ảnh định dạng ppm
<b>2.6.1 Ý niệm sơ lược </b>
Dữ liệu vector được sử dụng đối với những đối tượng có kiến trúc và hình thể, nghĩa là trong thực tế các đối tượng này có hình dạng và kích thước xác định. GRASS sử dụng dữ liệu vector để “mã hố” đường biên bao bọc hình dạng của kiến trúc hoặc vật thể cần thể hiện.
<i>Ví dụ : những đối tượng mà dữ liệu vector có thể dùng để “mã hố” là hệ thống </i>
đường xá, cầu cống, núi non, hồ nước, cánh đồng, sơ đồ qui hoạch thành phố ... Nói chung, những đối tượng dạng này có đặc điểm là hình dạng của chúng có thể dùng những đường liền nét để thể hiện.
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36"> Những cung có thể biệt lập hoặc kết hợp với nhau tạo nên những hình thể trên bản đồ : đường thẳng ( sơng ngịi, đường xá ...) , các khu vực ..
Các cung tạo nên những đường liền nét (sơng ngịi, đường xá .. ) được gọi là các “đường liền” (lines)
Các cung phân ranh nên một vùng, khu vực được gọi là các “đường ranh bao bọc” (area lines).
Mỗi loại thông tin hiện thị trên bản đồ vector được gán với một con số nguyên gọi là số chỉ mục tương tự kỹ thuật dùng cho raster map layer (category number).
Thông tin của một bản đồ vector trong GRASS được chứa trong nhiều file dữ liệu. Tương tự như raster map layer, các file này có tên trùng nhau nhưng được chứa trong các thư mục con khác nhau trong thư mục mapset, mỗi file này biểu thị cho một thông tin đã được phân rã.
dig_ascii file ascii, chứa thông tin cung
dig_att file phân loại các thuộc tính ( category attribute file)
dig_cats Tên các danh mục phân loại của vector
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">(vector category labels)
dig_plus File chỉ mục của dữ liệu vector vector pointer/ index file
reg digitizer registration points : những điểm đã được đăng ký
Ví dụ: bản đồ vector về đất đai (soils) có thể được lưu trữ theo cấu trúc sau : dig/soils, dig_plus/soils, dig_ascii/soils, dig_cats/soils và reg/soils ..
Vector file cịn được gọi là file số hố (digit file), vì nó được tạo và thao tác bởi thư viện các hàm digit : v.digit ..
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38"><i><b>$v.out.dfx </b></i>
và trả lời các tham số cho lệnh
<i> Hiện thị dữ liệu vector </i>
Dùng lệnh
<i><b>$d.vect </b></i>
và trả lời các tham số cho lệnh
<i> Kết xuất sang các định dạng dữ liệu khác của GRASS </i>
Ta dùng lệnh sau để kết xuất sang dữ liệu định dạng vector
<i><b>$v.to.vect </b></i>
Ta dùng lệnh sau để kết xuất sang dữ liệu định dạng vector
<i><b>$v.to.rast </b></i>
<b>2.7.1 Ý niệm sơ lược </b>
Trong nghiên cứu về mơi trường, có những loại dữ liệu chỉ liên quan đến một vị trí hay một khu vực rất nhỏ : số liệu về lượng mưa ghi nhận được một trạm quan sát, số liệu về độ cao đo được tại một điểm ... Khi biểu hiện lên trên bản đồ, người ta dùng một chấm để thể hiện, kèm theo đó là màu sắc và các số liệu. Những dữ liệu dạng này được gọi là dữ liệu điểm (point data) và GRASS có thêm một tên gọi khác là dữ liệu nơi chốn (site data). Loại dữ liệu này có thể
<i>hiểu một cách nơm na là dữ liệu “khơng có hình thể”, tức là trong thực tế nó </i>
khơng có hình dạng cụ thể và ta qui ước dùng một điểm để biểu diễn nó.
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39"><b>2.7.2 Hệ thống tập tin site </b>
Dữ liệu điểm được lưu trong các tập tin định dạng ASCII, gọi là các tập tin site hoặc tập tin danh sách (list file). Những tập tin này được xử lý bởi các mô-đun
<b>xử lý dữ liệu nơi chốn (module sites) trong thư viện GRASS. </b>
<b>Trường name : Dòng này chứa tên của file site, và được in trên tất cả các báo </b>
cáo được tạo bởi module s.menu. Chữ name phải được viết thường. Dịng thơng tin name này có thể được để trống vì s.menu sẽ tự động thêm tên mặc định là tên của file site.
<b>Trường desc : Dịng này chứa mơ tả về file site, chữ desc buộc phải viết </b>
thường. Dịng thơng tin này sẽ được in trên tất cả các báo cáo được tạo bởi module s.menu. Nó có thể được bỏ qua, trong trường hợp này, file site sẽ khơng
<b>có mơ tả </b>
<b>Các trường point : Những dòng còn lại là những record point. Mỗi site được </b>
mô tả bởi một record point và cấu trúc của một record như sau east|north[|dim]...|#cat %double [%double] @string [@string] hoặc mô tả về ngày giờ như sau :
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40"><b>Ví dụ : </b>
<b>name | sample desc | sample site list </b>
728220 | 5182440 | #27 %1.34 %23.13 @"pH 7.1" 727060 | 5181710 | #28 %2.32 %22.21 @"pH 6.8" 725500 | 5184000 | #29 %4.73 %17.34 @"pH 5.5" 719800 | 5187200 | #30 %3.65 %27.79 @"pH 6.2"
Trong lệnh trên, có một chỉ thị rất LINUX/UNIX đó là “>” dùng để chuyển
<b>nội dung vào một file. </b>
Hiện thị dữ liệu điểm
</div>