Phân tích không gian trong một hệ thống WEBGIS
TÓM TẮT
Trong phần lớn các ứng dụng WebGIS,
tương tác chú trọng chủ yếu vào việc biên tập
hoặc tra xét thông tin liên quan đến các phần tử
trên bản đồ. Vẫn còn một khía cạnh khác chưa
được chú trọng khai thác đó là việc cho phép
người sử dụng thực hiện các phân tích không
gian. Thực hiện phân tích không gian có thể
được thực hiện phía server, sử dụng WPS (Web
Processing Service), hoặc thực hiện phía Client
sử dụng JSTS (JavaScript Topology Suite). Như
là một đóng góp thêm vào trong lĩnh vực này,
bài báo này trình bày cách thức sử dụng dịch vụ
WPS của Geoserver, cũng như sử dụng thư viện
JSTS để thực hiện các phân tích không gian.
Một hệ thống WebGIS - dựa trên các sản phẩm
mã nguồn mở Geoserver, và OpenLayers - đã
được xây dựng và được sử dụng để thực hiện
minh họa hoạt động phân tích không gian trong
tìm kiếm các đối tượng không gian trong mối
quan hệ với đối tượng không gian khác. Kết quả
thực nghiệm cho thấy việc sử dụng WPS hoặc
JSTS để thực hiện phân tích không gian qua
internet là hoàn toàn có thể thực hiện được.
Tóm tắt nội dung tài liệu: Phân tích không gian trong một hệ thống WEBGIS
TAÏP CHÍ PHAÙT TRIEÅN KH&CN, TAÄP 19, SOÁ K4-2016 Trang 75 Phân tích không gian trong một hệ thống WEBGIS Trần Trọng Đức Trường Đại học Bách Khoa, ĐHQG-TPHCM (Bản thảo nhận ngày 04 tháng 07 năm 2016, hoàn chỉnh sửa chữa ngày 22 tháng 08 năm 2016) TÓM TẮT Trong phần lớn các ứng dụng WebGIS, tương tác chú trọng chủ yếu vào việc biên tập hoặc tra xét thông tin liên quan đến các phần tử trên bản đồ. Vẫn còn một khía cạnh khác chưa được chú trọng khai thác đó là việc cho phép người sử dụng thực hiện các phân tích không gian. Thực hiện phân tích không gian có thể được thực hiện phía server, sử dụng WPS (Web Processing Service), hoặc thực hiện phía Client sử dụng JSTS (JavaScript Topology Suite). Như là một đóng góp thêm vào trong lĩnh vực này, bài báo này trình bày cách thức sử dụng dịch vụ WPS của Geoserver, cũng như sử dụng thư viện JSTS để thực hiện các phân tích không gian. Một hệ thống WebGIS - dựa trên các sản phẩm mã nguồn mở Geoserver, và OpenLayers - đã được xây dựng và được sử dụng để thực hiện minh họa hoạt động phân tích không gian trong tìm kiếm các đối tượng không gian trong mối quan hệ với đối tượng không gian khác. Kết quả thực nghiệm cho thấy việc sử dụng WPS hoặc JSTS để thực hiện phân tích không gian qua internet là hoàn toàn có thể thực hiện được. Từ khóa: GIS, WebGIS, WPS, JSTS, Phân tích không gian 1. ĐẶT VẤN ĐỀ Việc dễ dàng truy cập vào internet mở ra những cơ hội cho việc chia sẻ thông tin về các đối tượng địa lý (thửa đất, con đường, tuyến cấp nước, thoát nước,) phân bố trên một bề mặt địa lý rộng. Do vậy, đã có nhiều phần mềm liên quan đến phục vụ bản đồ và các dịch vụ bản đồ trên Web được các công ty và tổ chức trên thế giới đầu tư phát triển. Chính vì điều này nhiều cơ quan đơn vị trong nước đã bắt đầu tiếp cận với công nghệ thể hiện bản đồ trên Web. Tuy nhiên, các đơn vị, tổ chức ở Việt Nam hiện chỉ khai thác các phần mềm WebGIS ở khía cạnh hiển thị thông tin dạng bản đồ và thực hiện một số truy vấn thông tin đơn giản. Một khía cạnh quan trọng khác là phân tích không gian thì vẫn chưa có nhiều ứng dụng, có thể do tính chất phức tạp của việc phân tích dữ liệu không gian qua mạng internet. Thực hiện phân tích không gian có thể được thực hiện ở phía client hay ở phía server. Việc chọn phương pháp thực hiện nào sẽ lệ thuộc vào độ phức tạp của phép phân tích không gian, khả năng xử lý của máy tính tại client và server, cũng như định dạng bản đồ được thể hiện là ở dạng WMS hoặc WFS. Trong trường hợp dữ liệu bản đồ được thể hiện chủ yếu ở dạng WMS, phân tích không gian nên tiến hành tại Map Server. Cho đến thời gian gần đây, việc xử lý dữ liệu không gian tại Map Server đã trở nên dễ dàng hơn với sự hỗ trợ của Web Processing Service (WPS), một chuẩn về xử lý dữ liệu không gian được phát triển bởi tổ chức SCIENCE & TECHNOLOGY DEVELOPMENT, Vol. 19, No. K4-2016 Trang 76 Open Geospatial Consortium (OGC). OGC WPS định nghĩa một cơ chế, dựa vào đó một ứng dụng ở máy Client có thể gửi một yêu cầu xử lý không gian đến máy Server [7]. Trên thế giới đã có nhiều nghiên cứu cơ bản về xử lý dữ liệu không gian sử dụng dịch vụ WPS [6, 9]. Bên cạnh đó còn có các nghiên cứu mở rộng khả năng của dịch vụ geoprocessing như tái sử dụng các công cụ xử lý đã có từ các phần mềm GRASS, SEXTANTE hoặc kết nối các dịch vụ xử lý riêng lẻ thành chuỗi dịch vụ để thực hiện các xử lý phức tạp hơn [2, 10]. Hiện nay, một số dự án mã nguồn mở phát triển thành công, có cung cấp dịch vụ WPS ở phía server, ví dụ Deegree WPS [4], GeoServer WPS [5], và 520 North WPS [11]. Trong trường hợp dữ liệu bản đồ được thể hiện chủ yếu ở dạng WFS, phân tích không gian nên tiến hành tại Client. Thực hiện phân tích không gian tại client có thể được thực hiện với sự hỗ trợ của JavaScript Topology Suit (JSTS) [3]. JSTS là một thư viện JavaScript của các hàm không gian trong xử lý hình học phù hợp với mô tả “Simple Feature Specification for SQL” được công bố bởi tổ chức Open Geospatial Consortium. JSTS được viết lại một phần dựa vào thư viện nổi tiếng JTS nền Java. Trong nghiên cứu này, tác giả minh họa cách thức sử dụng cả hai Geoserver WPS, và JSTS trong bài toán tìm kiếm các đối tượng trong mối quan hệ không gian với các đối tượng khác trong một hệ thống WebGIS. 2. CÁCH THỨC TIẾN HÀNH PHÂN TÍCH KHÔNG GIAN TRÊN WEBGIS Như đã trình bày ở trên, thực hiện phân tích không gian có thể tiến hành ở phía client hoặc ở phía server. 2.1 Thực hiện phân tích không gian ở server Vào ngày 13/07/2005, OGC công bố đặc tả dịch vụ Web Processing Service (WPS) hoàn chỉnh đầu tiên - phiên bản 0.4.0 và phiên bản WPS 1.0.0 được công bố ngày 08/06/2007 đã mở ra khả năng cung cấp, trao đổi và thực hiện công việc xử lý không gian thông qua internet. Đặc tả WPS định nghĩa 3 hoạt động bắt buộc thực hiện bởi một WPS server, cụ thể là GetCapabilities, DescribeProcess và Execute. Khi sử dụng WPS, người sử dụng có thể đưa ra yêu cầu GetCapabilities để được cung cấp thông tin về các hoạt động xử lý (process) nào có thể có. Để có thông tin chi tiết về yêu cầu dữ liệu nhập và dữ liệu xuất của một WPS process cụ thể, người sử dụng có thể đưa ra yêu cầu DescribeProcess tới WPS server. Việc thực hiện một WPS process xử lý không gian cụ thể chỉ được tiến hành khi một yêu cầu Execute được gửi đến WPS với tất cả các thông số cần thiết như tên của phép xử lý WPS và các dữ liệu cần được xử lý. Trong nghiên cứu này WPS Server được sử dụng là module mở rộng WPS của Geoserver. Module này cung cấp cho người dùng một số hoạt động xử lý không gian từ thư viện của JTS Topology Suite như tạo vùng đệm, tính giao giữa các hình thể, đơn giản hóa hình thể, Để hỗ trợ cho việc thực hiện một hoạt động WPS từ một ứng dụng web, các thư viện web API được cung cấp đến cho người sử dụng. Ví dụ, để làm việc với WPS trong OpenLayers, OpenLayers cung cấp OpenLayers.WPSClient. Khi đối tượng này được khởi tạo để thực hiện một hoạt động xử lý không gian, người sử dụng cung cấp URL của WPS server và cung cấp các thông số cần thiết như đã mô tả bởi DescribeProcess đến WPS server. Hoạt động phân tích không gian sẽ được tiến hành ở server, và kết quả được trả trở về cho client. Thông tin chi tiết về cách thức thực hiện sẽ được mô tả ở phần ứng dụng. 2.2 Thực hiện phân tích không gian ở Client Thực hiện phân tích không gian ở phía client muốn nói rằng tất cả các hoạt động xử lý không gian xảy ra ở máy tính của client. Các TAÏP CHÍ PHAÙT TRIEÅN KH&CN, TAÄP 19, SOÁ K4-2016 Trang 77 ứng dụng phía client được thực hiện hầu như chủ yếu dùng JavaScript. Đương nhiên, vẫn phải có các mã HTML và CSS. Để tiến hành một hoạt động phân tích không gian nào đó, đòi hỏi i) phải có dữ liệu hình thể của đối tượng và ii) hàm thực hiện hoạt động phân tích không gian. Trong hệ thống WebGIS, hình thể của đối tượng được truy xuất từ các lớp dữ liệu WFS. Dữ liệu WFS được nạp về máy tính của client khi các lớp dữ liệu này hiển thị trên trang web. Còn hàm thực hiện hoạt động phân tích không gian sẽ được lấy từ thư viện JSTS, các hàm của JSTS sẽ được nạp về máy tính người sử dụng nhờ vào các địa chỉ khai báo nơi các tập tin JavaScript JSTS được lưu trữ. JSTS hỗ trợ các hàm phân tích không gian như tạo vùng đệm (buffer), lấy tâm (centroid), xác định hợp, giao, khác biệt giữa các hình thể, 3. THỰC NGHIỆM PHÂN TÍCH KHÔNG GIAN Để đánh giá khả năng của việc thực hiện phân tích dữ liệu không gian thông qua internet như đã trình bày ở trên, một hệ thống WebGIS đã được xây dựng thử nghiệm và được sử dụng trong phân tích quan hệ không gian giữa các đối tượng thoát nước đang được quản lý như tuyến cống, và hầm ga nằm dọc theo các tuyến cống của một khu vực thuộc thành phố Hồ Chí Minh. Hệ thống WebGIS đã thiết kế hoạt động theo mô hình client-server giống như hoạt động của một website thông thường. Hệ thống có kiến trúc 3 tầng (hình 1): Tầng trình bày (Presentation Tier: Client), tầng giao dịch (Bussiness Logic Tier: Application Server), và tầng dữ liệu (Data Management Tier: Data Server ) [1]. Tầng trình bày gồm một trình duyệt web như Internet Explorer, FireFox, dùng để mở các trang Web theo các địa chỉ URL định sẵn. Các trang Web được viết bằng các công nghệ chuẩn của W3C (World Wide Web Consortium) nhằm tăng tính linh động cho web cũng như tăng tính tương tác với người duyệt web. Các trang Web có liên quan đến bản đồ được viết sử dụng OpenLayers. OpenLayers là một thư viện JavaScript thuần túy được sử dụng để hiển thị bản đồ theo các chuẩn định dạng WMS/WFS trong hầu hết các trình duyệt web hiện hành, không lệ thuộc vào phía server. Tầng giao dịch bao gồm Web Server kết hợp với một ứng dụng bản đồ bên phía server gọi là Map Server. Trong nghiên cứu này GeoSever được sử dụng như là Map Server. Tầng dữ liệu là nơi lưu trữ các dữ liệu của hệ thống bao gồm dữ liệu không gian và dữ liệu thuộc tính liên quan. Dữ liệu thử nghiệm bao gồm dữ liệu nền và dữ liệu chuyên đề về hệ thống thông tin thoát nước được tổ chức thành các lớp dữ liệu và được lưu trong hệ quản trị cơ sở dữ liệu SQL Server 2008 theo mô hình Geodatabase. Dữ liệu nền được trích ra từ dữ liệu nền địa hình tỉ lệ 1/2000 được cung cấp bởi Sở Khoa học công nghệ thành phố Hồ Chí Minh, bao gồm 1 số lớp dữ liệu như: kênh rạch, giao thông, tim đường và ranh giới hành chính. Dữ liệu chuyên ngành thoát nước được cung cấp bởi công ty thoát nước đô thị thành phố Hồ Chí Minh, bao gồm: tuyến cống, hầm ga, trạm bơm, cửa xả. Hệ thống WebGIS đã xây dựng có đầy đủ các chức năng cơ bản cần thiết của một hệ thống GIS như tương tác với bản đồ, truy vấn tìm kiếm thông tin (theo một hoặc nhiều tiêu chí), biên tập dữ liệu không gian và ngoài ra còn có nhóm chức năng phân tích không gian. Trong phạm vi và mục đích của bài báo này, chỉ mô tả 1 trong những chức năng phân tích không gian đã được thực hiện, đó là chức năng “Select by Location”. Giao diện của trang WebGIS chính của hệ thống được thể hiện trong hình 2, trong đó nhóm chức năng phân tích không gian “Select by location” được đánh dấu với ký hiệu bàn tay. SCIENCE & TECHNOLOGY DEVELOPMENT, Vol. 19, No. K4-2016 Trang 78 Chức năng giúp thực hiện hoạt động tìm kiếm các đối tượng dựa trên quan hệ không gian với các nhóm đối tượng khác. Giao diện của chức năng về cơ bản giống như trong hình 3. Với các thông số đã nhập giống như trên hình 3, khi thực thi sẽ cho phép chọn các hố ga nước mưa nằm trong khoảng cách 10m, so với đối tượng tuyến cống đã được chọn, ví dụ tuyến cống được chọn là tuyến cống trên đường Hải Thượng Lãn Ông. Hình 3. Giao diện chức năng “Select By Location” Hình 1. Kiến trúc chung của một hệ thống WebGIS Tầng trình bày Tầng dữ liệu Tầng giao dịch Hình 2. Giao diện của hệ thống WebGIS TAÏP CHÍ PHAÙT TRIEÅN KH&CN, TAÄP 19, SOÁ K4-2016 Trang 79 3.1 Thực hiện phân tích không gian tại Server Cách thức thực thi trong trường hợp thực hiện phân tích không gian tại Server bao gồm hai bước chính. Bước đầu tiên nhằm tạo vùng lân cận 10 m xung quanh tuyến cống đã chọn. Để làm được điều này cần khởi tạo biến wpsClient, một giao thức giúp tương tác với Web Processing Services (WPS). OpenLayers.WPSClient được sử dụng để tạo một đối tượng OpenLayers.WPSProcess từ WPS Server. var wpsClient = new OpenLayers.WPSClient({servers: {local: ' }}); Tiếp theo gọi thực thi một hoạt động WPS wpsClient.execute, trong đó hoạt động xử lý được yêu cầu thực thi (process) là 'JTS:buffer'. Hoạt động xử lý này giúp tạo vùng đệm xung quanh tuyến thoát nước đã chọn. wpsClient.execute({ server: 'local', process: 'JTS:buffer', inputs: { geom: selectedFeature, distance: bufferdistance}, success: function(outputs) { theBuffer = outputs.result[0]}}); Trong nhóm câu lệnh trên, khoảng cách buffer, gọi là bufferdistance, do người sử dụng cung cấp và trong ví dụ này là 10m. Tuyến cống được chọn, là selectedFeature, có thể nhận được bằng cách khai báo var selectedFeature = tuyencong.selectedFeatures[0]. Kết quả tạo vùng đệm sẽ được lưu vào biến theBuffer = outputs.result[0]. Bước kế tiếp, nhằm tìm kiếm các đối tượng hố ga giao với vùng đệm 10m vừa tạo xung quanh tuyến cống đã chọn. Trong trường hợp lớp hố ga là lớp dữ liệu có định dạng WFS, bước xử lý có thể thực hiện phía Client với nhóm các câu lệnh sau: var fts = Hoga.features; for(var i=0;i<fts.length;i++) { if (theBuffer.intersects(fts[i].geometry) == true) { var clone = fts[i].geometry.clone(); var newfeature = new OpenLayers.Feature.Vector(clone, null); highlightLayer.addFeatures(newfeature); } } Trong nhóm câu lệnh trên, quan hệ hình học giữa vùng đệm xung quanh tuyến cống, theBuffer, với các đối tượng trong lớp tìm kiếm là lớp Hố ga, var fts = Hoga.features được xác định dựa vào hàm giao intersects. Nếu tồn tại quan hệ intersects giữa theBuffer với đối tượng trong lớp hố ga thì bản sao của đối tượng hình học này sẽ được đưa vào lớp dữ liệu vector highlightLayer để hiển thị trên bản đồ. Kết quả thực hiện được minh họa trong hình 4. 3.2 Thực hiện phân tích không gian tại Client Cũng với ví dụ trên, nhưng nếu thực hiện xử lý không gian tại client, thì cách thức thực hiện giống như dưới đây: SCIENCE & TECHNOLOGY DEVELOPMENT, Vol. 19, No. K4-2016 Trang 80 Đầu tiên khởi tạo môi trường làm việc cho hoạt động phân tích không gian bằng cách cung cấp thông tin đường dẫn đến thư viện JSTS <script type="text/javascript" src="javascript.util.js"> <script type="text/javascript" src="jsts.js"> Bước tiếp theo nhằm tạo vùng lân cận 10 m xung quanh tuyến cống đã chọn. Câu lệnh dùng thực thi hoạt động như dưới đây: var jsts_parser = new jsts.io.OpenLayersParser(); var input = jsts_parser.read(selectedFeature.geometry); var theBuffer = input.buffer(Bufferdistance); Bước này sử dụng chức năng buffer của thư viện JavaScript JSTS. Các hàm của JSTS, trong đó có hàm buffer, sẽ được nạp về máy tính client nhờ vào các địa chỉ khai báo nơi các tập tin JavaScript JSTS được lưu trữ. Tuyến cống được chọn là selectedFeature. Hình thể của tuyến cống nhận được nhờ vào selectedFeature.geometry. Kết quả tạo vùng đệm buffer thực hiện hoàn toàn tại Client và sẽ được lưu vào biến theBuffer. Bước kế tiếp, nhằm tìm kiếm các đối tượng hố ga nằm trong vùng đệm 10m xung quanh tuyến cống đã chọn. Bước này được thực hiện giống như mô tả trong trường hợp 3.1. 4. KẾT LUẬN Tích hợp công nghệ GIS và công nghệ Web mở ra một cơ hội mới không chỉ để chia sẽ, hiển thị và truy vấn thông tin mà còn cho phép thực hiện phân tích không gian thông qua internet. Bài báo này trình bày cách thức như thế nào hoạt động phân tích không gian có thể được thực hiện i) tại server sử dụng các dịch vụ Web Processing Service (WPS) và ii) tại client sử dụng thư viện JavaScript JSTS. Để minh họa, một hệ thống WebGIS – dựa trên các sản phẩm mã nguồn mở GeoServer, OpenLayers – đã được xây dựng và sau đó được sử dụng để minh họa cách thức tiến hành một hoạt động phân tích không gian, trong bài báo này là hoạt động tìm kiếm các hố ga nằm trong vùng đệm 10 m xung quanh một tuyến cống đã chọn nào đó. Kết quả thực hiện cho thấy việc sử dụng các dịch vụ WPS, hoặc sử dụng JSTS để thực hiện xử lý phân tích không gian qua internet là hoàn toàn khả thi. Tuy nhiên, cần lưu ý nếu dữ liệu bản đồ được thể hiện chủ yếu ở dạng WFS, phân tích không gian nên tiến hành tại Client. Còn trong trường hợp dữ liệu bản đồ được thể hiện chủ yếu ở dạng WMS, phân tích không gian chỉ có thể tiến hành tại Server. Hình 4. Kết quả thực hiện một hoạt động phân tích không gian Các hố ga được TAÏP CHÍ PHAÙT TRIEÅN KH&CN, TAÄP 19, SOÁ K4-2016 Trang 81 Spatial analysis in WebGIS Tran Trong Duc Ho Chi Minh city University of Technology, VNU-HCM, Vietnam ABSTRACT In most of WebGIS applications, user interactions mainly concentrate on map data editing or data querying. Another aspect with paying less attention is to allow user doing spatial analysis. Spatial analysis can be implemented on server side, by using WPS (Web Processing Service), or on client side, by using JSTS (JavaScript Topology Suite). As an contribution to this aspect, this paper shows how to use to use WPS service of Geoserver and JSTS JavaScript library to carry on spatial analysis activities. A WebGIS system - based on the open source Geoserver and OpenLayers - has been developed and used to perform spatial analysis, searching for spatial features that have spatial relationships with other spatial features. Experiment result shows that the use of WPS and JSTS to perform spatial processing over the internet is practically doable. Keywords: GIS, WebGIS, WPS, JSTS, spatial analysis TÀI LIỆU THAM KHẢO [1]. AA. Alesheikh, H. Helali, HA. Behroz, Web GIS: Technologies and Its Applications, Symposium on Geospatial Theory, Processing and Applications, Ottawa 2002. [2]. Beate Stollberg & Alexander Zipf, OGC Web Processing Service Interface for Web Service Orchestration-Aggregating Geo- processing Services in a Bomb Threat Scenario, 2007. [3]. Björn Harrtell, JavaScript Topology Suit (JSTS ). https://github.com/bjornharrtell/jsts. [4]. Deegree, OSGeo Project, 23 July 2016. [5]. Geoserver, Geoserver User Manual, 23 July 2016. [6]. Jáchym Cepický & Lorenzo Becchi, Processing geospatial operations via Internet on remote servers – PyWPS, 2007. [7]. Open Geospatial Consortium Inc., OpenGIS Web Processing Service, Version 1.0.0, Document number OGC 05-007r7, 2007. [8]. OpenLayers, User Guide, 23 July 2016. [9]. Rob Lemmens, Theodor Foerster & Barent Kobben, Hand-on experience on OGC Web Processing Service using 52north web processing framework, 2007. [10]. Víctor Olaya, Introduction to geoprocessing services using SEXTANTE, course.org/system/files/sextante_en.pdf [11]. 520 North exploring horizons, ng/, 13 May 2016.
File đính kèm:
- phan_tich_khong_gian_trong_mot_he_thong_webgis.pdf