CHƯƠNG 2: MÔ HÌNH HỆ THỐNG GIS PHÂN TÁN
2.2. Các gợi ý giải quyết
2.2.1. Chính sách, tiêu chuẩn
Yếu tố quan trọng nhất để đảm bảo cho một hệ thống hoạt động bền vững lại không hề liên quan đến kỹ thuật, đó là các chính sách của người lãnh đạo. Các sản phẩm do hệ thống tạo ra phải có tính pháp lý. Đơn cứ như việc cấp giấy chứng nhận sử dụng đất trước đây vẫn cần phải có giấy trắng mực đen, con dấu đỏ thì mới được pháp luật công nhận. Nhưng nếu việc cấp giấy chứng nhận qua mạng (dạng hồ sơ số) mà vẫn được công nhận thì mọi người mới thấy tính cần thiết của hệ thống; việc này rất giúp ích cho việc sống còn của nó.
Song song với chính sách thì cũng cần có các tiêu chuẩn về kỹ thuật nhằm đảm bảo cho hệ thống được hoạt động thông suốt, cho các thành phần của hệ thống “nói chuyện” được với nhau. Các tiêu chuẩn cũng đảm bảo cho hệ thống có thể giao tiếp với các hệ thống khác nữa. Có thể đơn cử đề xuất một vài tiêu chuẩn như sau:
Chuẩn mã ký tự chữ Việt do Tổng cục Tiêu chuẩn Đo lường Chất lượng quy định.
Chuẩn các mã số do Tổng cục Thống kê quy định.
Chuẩn hệ toạ độ: Trong phạm vi quốc gia thì VN2000 do Bộ Tài nguyên và Môi trường quy định. Ở phạm vi quốc tế thì có thể sử dụng WGS84 hay WebMercator.
“Quy định áp dụng chuẩn thông tin địa lý cơ sở quốc gia” số 06/2007/QĐ- BTNMT ngày 27 tháng 02 năm 2007.
Các định dạng chuẩn (dịch vụ) trao đổi thông tin, dữ liệu: WMS, WFS, WSDL, XML, GML,… Ở đây đặc biệt lưu ý đến hai chuẩn dịch vụ trao đổi WMS và WFS, vốn được ban hành bởi hiệp hội OGC – tập hợp các công ty, tổ chức lớn trong ngành GIS:
Web Map Service (WMS)
Theo tài liệu tham khảo [3], một Web Map Service cung cấp dữ liệu các đối tượng địa lý cho Client theo dạng hình ảnh hoặc một đoạn mã GML (không bao gồm tọa độ không gian). Web Map Service cung cấp các chuẩn nhận request như sau:
GetMap (bắt buộc): Yêu cầu GetMap trả về một bản đồ dưới dạng ảnh (ảnh bản đồ) trong một phạm vi địa lý và theo các tham số được định nghĩa cụ thể.
GetMap được gọi bởi một client để nhận về một tập hợp các pixels. Các pixels này chứa một ảnh của một bản đồ trong một vùng địa lý (không gian) hoặc một tập các đối tượng đồ hoạ nằm trong vùng địa lý cụ thể. Yêu cầu GetMap cho phép các Web Map Client chỉ ra một lớp thông tin cụ thể, hệ quy chiếu không gian (SRS), khu vực địa lý, và các tham số khác quy định định dạng dữ liệu trả về. Trên cơ sở các yêu cầu GetMap từ Web Map Client mà một Web Map Server sẽ trả về các kết quả theo chỉ dẫn trong yêu cầu của GetMap.
Yêu cầu
Một trình duyệt web tạo ra một yêu cầu GET để hỏi một server về một trang web. Phần lớn các yêu cầu này được trả lời bằng HTML cấu thành lên một trang web. Tuy nhiên, một kết quả có thể là một ảnh, ví dụ là một đoạn HTML sau:
<img src=” http://localhost:8080/images/header.gif”>
Đoạn HTML trên yêu cầu một ảnh được lưu trữ trên web server. Một yêu cầu web map giống như URL này ở điểm cũng yêu cầu một ảnh của bản đồ, cho dù nó có vẻ phức tạp hơn. Ví dụ:
http://geoserver.itc.nl/cgi-
bin/mapserv.exe?map=D:/Inetpub/geoserver/mapserver/config.map&SERVICE=WMS&VERSI ON=1.1.1&REQUEST=GetMap&LAYERS=forest,railroad,airports&STYLES=&SRS=EPSG:
4326&BBOX=97.35,5.61,105.64,20.47&WIDTH=400&HEIGHT=600&FORMAT=image/png
Kết quả trả lại như sau trên trình duyệt:
Hình 2.1: Kết quả trả về của phương thức GetMap - WMS
Ta có thể chia yêu cầu trong phần cơ chế hoạt động của web như sau:
http - giao thức được sử dụng.
geoserver.itc.nl - tên máy chủ chạy WMS.
cgi-bin/mapserv.exe - chương trình chạy trên máy chủ để xử lý các yêu cầu.
Các tham số được bắt đầu bằng dấu ? và được phân biệt bởi dấu &
version=1.1.1 - chỉ ra phiên bản của đặc tả WMS mà hệ thống đang thực thi.
request=getmap - chỉ ra loại yêu cầu mà client cần server xử lý (trong trường hợp này là GetMap)
layers= forest,railroad,airports - chỉ ra lớp thông tin trên server mà client cần lấy, có thể yêu cầu nhiều lớp thông tin cùng lần, giữa các lớp thông tin cách nhau một dấu “,”
srs=EPSG:4326 - chỉ ra kiểu phép chiếu được bản đồ sử dụng
bbox=97.35,5.61,105.64,20.47 - phạm vi không gian cần tạo bản đồ width=400 - độ rộng theo pixel của ảnh bản đồ
height=600 - độ cao theo pixel của ảnh bản đồ
format=image/png - định dạng của ảnh bản đồ (Image/gif, image/jpg, image/svg+xml)
Phản hồi
Nếu quá trình xử lý yêu cầu từ Client không gặp lỗi bản đồ kết quả sẽ được trả về theo định dạng mà Client yêu cầu. Nhưng nếu có một lỗi xảy ra, Server sẽ gửi trả về một thông điệp lỗi được mã hoá bởi XML về Client.
Ví dụ, trong yêu cầu dưới đây, yêu cầu đã bị sai trong tham số format (thiếu chữ g) một lỗi sau sẽ được trả về:
<ServiceExceptionReport version="1.1.0">
<ServiceException code="InvalidFormat">
There is no support for creating maps in image/pn format </ServiceException>
</ServiceExceptionReport>
GetCapabilities (bắt buộc): Yêu cầu GetCapabilities trả về các siêu dữ liệu mô tả Web Map Server. Các mô tả bao gồm nội dung thông tin mà WMS có thể phục vụ, các tham số mà Web Map Server có thể nhận.
Yêu cầu này được gửi khi client muốn biết các thông tin về server như các lớp thông tin mà server phục vụ, các định dạng dữ liệu mà server hỗ trợ. Dưới đây là một ví dụ về một request GetCapabilities:
http://localhost:8080/geoserver/wms?%20version=1.1.0&request=
getcapabilities
Kết quả của yêu cầu GetCapabilities server sẽ trả về một XML chứa các thông tin sau:
Các dịch vụ được hỗ trợ.
Các định dạng được hỗ trợ.
Các hệ tham chiếu không gian.
Danh sách các lớp thông tin bản đồ.
SLD (Styles layer descriptor) Mô tả lớp bản đồ.
Mã nhà cung cấp dịch vụ.
GetFeatureInfo (tuỳ chọn): Yêu cầu GetFeatureInfo trả về thông tin về đối tượng địa lý cụ thể được hiển thị trên bản đồ. Nếu một Web Map Server hỗ trợ dịch vụ này thì bản đồ mà nó trả về được gọi là bản đồ có khả năng truy vấn thông tin và một Web Map Client có thể yêu cầu thông tin về đối tượng trên một bản đồ bằng cách thêm vào URL các tham số chỉ ra một vị trí (x,y) và số đối tượng có thể trả về thông tin.
Một Client có thể sử dụng yêu cầu này để tìm một đối tượng bản đồ tại một điểm trên bản đồ đang được hiển thị. Yêu cầu này giống như yêu cầu GetMap nhưng có thêm vị trí x, y theo toạ độ pixel tính từ phía trên bên trái của ảnh bản đồ và một tên lớp thông tin cần truy vấn.
Sau đây là một ví dụ về yêu cầu GetFeatureInfo:
http://localhost:8080/geoserver/wms?version=1.1.0&request=
getfeatureinfo&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,- 67,50&width=400&height=200&format=text/html& X=100&y=100 &query_layers=topp:states
Yêu cầu trên giống một yêu cầu GetMap, điểm khác biệt ở phần format chỉ ra định dạng kết quả trả về hoặc là text/html.
Kết quả trả về của yêu cầu trên sẽ là:
Results for FeatureType 'states':
---
the_geom = [GEOMETRY (MultiPolygon) with 153 points]
STATE_NAME = Arizona STATE_FIPS = 04
SUB_REGION = Mtn STATE_ABBR = AZ
LAND_KM = 294333.462 WATER_KM = 942.772 PERSONS = 3665228.0 FAMILIES = 940106.0 HOUSHOLD = 1368843.0 MALE = 1810691.0 FEMALE = 1854537.0 WORKERS = 1358263.0 DRVALONE = 1178320.0 CARPOOL = 239083.0 PUBTRANS = 32856.0 EMPLOYED = 1603896.0 UNEMPLOY = 123902.0 SERVICE = 455896.0
MANUAL = 185109.0 P_MALE = 0.494 P_FEMALE = 0.506 SAMP_POP = 468178.0
--- Web Feature Service (WFS)
Một Web Feature Server (WFS) cung cấp các đối tượng địa lý cho client.
Nó cũng có thể cho phép các client thay đổi và thêm các đối tượng vào cơ sở dữ liệu. Khi WMS cung cấp một hình ảnh của dữ liệu thì WFS cung cấp dữ liệu thực được mã hóa trong GML.
Một WFS có thể:
Lấy thông tin hoặc truy vấn đến một lớp thông tin dựa theo vị trí không gian của một đối tượng được chọn.
Update một đối tượng - Cho phép người dùng thay đổi một số thuộc tính trên một đối tượng lựa chọn.
Xóa một đối tượng - nếu thông tin giá trị đối tượng đó không quá dài hoặc không có yêu cầu sử dụng thì có thể được xóa khỏi bộ dữ liệu.
Tạo mới một đối tượng - Cho phép người dùng thêm mới một đối tượng lên bản đồ.
Một WFS cung cấp 3 request:
GetCapabilities (bắt buộc) - Đây là request cơ bản cho phép Client nhận ra các dịch vụ và kiểu dữ liệu do WFS hỗ trợ.
Yêu cầu
Format: Đây là tham số không bắt buộc, là tham số hỗ trợ cho yêu cầu GetCapabilities trên WMS. Mọi server hỗ trợ định dạng mặc định text/xml. Nếu request mô tả định dạng không hỗ trợ bởi server, server sẽ trả về định dạng mặc định text/xml.
Version: Là tham số không bắt buộc, chỉ ra phiên bản WMS cung cấp.
Service: Tham số này bắt buộc, nó chỉ ra các kiểu dịch vụ cho phép khi yêu cấu đến Server.
Request: Tham số phải có, dùng để triệu gọi thao tác GetCapabilities. Giá trị “GetCapabilities” sẽ sử dụng.
UpdateSequence: Tham số không bắt buộc.
Phản hồi
Khi gọi Web Map Service, trả về yêu cầu của GetCapabilities là một tài liệu XML chứa dịch vụ metadata định dạng mã hoá theo lược đồ XML. Lược đồ này đặc tả những nội dung thiết yếu hay không cần thiết của dịch vụ metadata và mô tả định dạng của nó. Tài liệu này có chứa một Root element với tên là WMS_Capabilities trong không gian.
DescribeFetuareType (bắt buộc) - Cho phép mô tả kiểu đối tượng. Khi bản đồ muốn thêm một đối tượng mới thì nó phải biết cấu trúc của đối tượng đó.
Yêu cầu
Hàm của DescribeFeatureType thao tác đến một lược đồ mô tả các kiểu dịch vụ Feature được WFS cung cấp. Ví dụ như một yêu cầu sau:
<DescribeFeatureType version="1.0.0"
service="WFS"
xmlns="http://www.opengis.net/wfs"
xmlns:topp="http://www.openplans.org/topp"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
<TypeName>topp:bc_roads</TypeName>
</DescribeFeatureType>
Yêu cầu được xây dựng theo quy cách và như là một tài liệu XML và được gửi đến server bằng HTTP POST request. Mới nhìn qua thì ta thấy rất phức tạp nhưng thực ra chỉ có đoạn in đậm mới là key line. Ở đây chỉ rõ kiểu đối tượng mà ta đưa vào là: topp:bc_roads.
Phản hồi
Kết quả trả về từ ví dụ trên là:
<xs:schema targetNamespace="http://www.openplans.org/topp"
elementFormDefault="qualified" attributeFormDefault=
"unqualified"
version="1.0">
<xs:import namespace="http://www.opengis.net/gml"
schemaLocation="http://localhost:8080/geoserver/data/
capabilities/
gml/2.1.2/feature.xsd"/>
<xs:complexType name="bc_roads_Type">
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="the_geom" minOccurs="0"
nillable="true" type="gml:MultiLineStringPropertyType"/>
<xs:element name="LENGTH" minOccurs="0" nillable="true"
type="xZs:double"/>
<xs:element name="BTRN_BC_ID" minOccurs="0"
nillable="true"
type="xs:int"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="bc_roads" type="topp:bc_roads_Type"
substitutionGroup="gml:_Feature"/>
</xs:schema>
GetFeartue (bắt buộc) - Đây là dữ liệu thật được trả về client sau request đã được nhận.
Cũng giống như WMS GetMap, nhưng GetFeature của WFS mô tả về dữ liệu thực. Đối với WMS thì dữ liệu sau khi được trả về là một định dạng ảnh hoặc text nhưng có thể convert một cách đơn giản trở thành ảnh còn đối với WFS thì dữ liệu được trả về là dữ liệu thực và được mô tả như một tài liệu XML. Một số tham biến đáng chú ý:
Version (required) - Tùy theo phiên bản là 1.0.0 hay là 1.1.0
Outputformat (optional) - Là định dạng dữ liệu được trả về trong capabilities, mặc định là GML
Maxfeatures (optional) - Số lượng lớn nhất các Feature được trả về, mặc định là unlimited.
Typename (required) - kiểu Feature muốn được trả về
TeatureVersion (optional) - Cung cấp để hỗ trợ cho việc lưu trữ Feature, mặc định là newest
TropertyName (optional) - Đặc tính của từng Feature muốn lấy về tùy theo từng Feature
Filter (optional) - Lọc lựa chọn các Feature trả về. Có thể lọc theo không gian hoặc theo giá trị thuộc tính.
Sau đây là ví dụ:
<wfs:GetFeature service="WFS" version="1.0.0"
outputFormat="GML2" –="" we="" would="" like="" gml2="" as=""
the="" return="" format=""
xmlns:topp="http://www.openplans.org/topp"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
<wfs:Query typeName="topp:bc_roads">
<ogc:Filter>
<ogc:FeatureId fid="bc_roads.1"/>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Phản hồi
Phản hồi trả về từ Server là một GML mã hóa tập hợp Feature
<wfs:FeatureCollection
xsi:schemaLocation="http://www.openplans.org/topp
http://localhost:8080/geoserver/wfs/DescribeFeatureType ?typeName=topp:bc_roads
http://www.opengis.net/wfs
http://localhost:8080/geoserver/data/capabilities/wfs/1
.0.0/WFS-basic.xsd">
<gml:boundedBy>
<gml:Box srsName="http://www.opengis.net/gml/srs/eps g.xml#27354">
<gml:coordinates decimal="." cs="," ts=" ">
494475.71056415,5433016.8189323 494982.7 0115662,5435041.95096618
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<topp:bc_roads fid="bc_roads.1">
<topp:the_geom>
<gml:MultiLineString –="" a="" multistring=""
srsName="http://www.opengis.net/gml/srs/epsg.xml#27354">
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">
494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 </gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>
</topp:the_geom>
<topp:LENGTH>2163.48</topp:LENGTH>
<topp:BTRN_BC_ID>13166</topp:BTRN_BC_ID>
</topp:bc_roads>
</gml:featureMember>
</wfs:FeatureCollection>
Ngoài tài nguyên, dữ liệu GIS của hệ thống thì chúng ta cũng quan tâm cả đến Siêu dữ liệu (Metadata) hay còn gọi là Thông tin về dữ liệu. Các phân hệ sẽ nắm bắt được thông tin về dữ liệu của các phân hệ khác bằng cách tra cứu Metadata. Các đặc điểm về dữ liệu có tác động tổng thể đến tính hữu ích của dữ liệu, bao gồm các đặc điểm như độ chính xác vị trí, độ chính xác thuộc tính, tính hợp lý, tính toàn vẹn, tính thời gian, nguồn gốc, khả năng truy cập và chi phí trực tiếp, gián tiếp [10].
Hầu hết các yếu tố nội dung của Metadata đều liên quan đến chất lượng. Cần phải tạo cho người sử dụng dữ liệu sự tin tưởng rằng dữ liệu sẽ đáp ứng được những nhu cầu của họ và phù hợp với các tiêu chuẩn của họ.
Chất lượng dữ liệu là nhân tố quan trọng để thấy được giá trị của sự đầu tư vào dữ liệu.
Sự hiểu biết đầy đủ và chính xác dữ liệu không gian trong GIS là rất quan trọng để có thể sử dụng dữ liệu cho công việc. Tiêu chuẩn chất lượng dữ liệu của tổ chức luôn phải ở mức độ chính xác có thể chấp nhận được trong suốt quá trình thu thập, chuyển đổi và phân tích dữ liệu.
Độ chính xác dữ liệu là thành phần quan trọng bậc nhất của những tiêu chuẩn chất lượng dữ liệu. Độ chính xác được phân thành 3 loại cơ bản sau:
Độ chính xác thuộc tính: Độ chính xác thuộc tính là độ chính xác của các thuộc tính phi không gian như tên tỉnh, huyện, xã hay giá trị tọa độ, độ cao… Đánh giá độ chính xác của những thực thể, thuộc tính và những giá trị thuộc tính trong tập dữ liệu.
Việc đánh giá này được thực hiện thông quan việc nhận dạng và phân lớp các đối tượng thể hiện trên bản đồ.
Độ chính xác vị trí: Độ chính xác vị trí là độ sai lệch về vị trí của một đối tượng không gian trong tập dữ liệu so với vị trí thật của nó trên mặt đất. Độ tin cậy về vị trí của các đối tượng không gian là điều quan trọng đối với tất cả những người sử dụng
dữ liệu không gian. Độ chính xác của dữ liệu liên quan đến lưới chiếu, hệ thống tọa độ (toàn cầu hay cục bộ địa phương), tỉ lệ, đơn vị đo, …
Hai yếu tố để đánh giá độ chính xác vị trí là độ sai lệch hệ thống và độ sai lệch ngẫu nhiên. Thông thường độ sai lệch hệ thống phải bằng không, nghĩa là tập dữ liệu không có khuynh hướng sai lệch một cách hệ thống so với vị trí thực. Trong khi đó, độ sai lệch ngẫu nhiên ảnh hưởng trên từng vị trí và được đánh giá bằng cách tính độ lệch chuẩn của những điểm được chọn để kiểm tra.
Độ chính xác vị trí gián tiếp: Độ chính xác vị trí gián tiếp của các đối tượng không gian (như địa chỉ, cột mốc cây số) cũng phải được chú ý và đánh giá.
Nguồn gốc dữ liệu: Thông tin liên quan đến nguồn gốc dữ liệu, các qui trình xử lý để tạo ra dữ liệu. Bao gồm việc mô tả những thông tin về nguyên liệu đầu vào (nguồn gốc, thời gian tạo ra, cơ quan tạo ra) để có thể xác định được mức độ tin cậy của nguồn dữ liệu, phương pháp số hóa tạo dữ liệu (chuyển đổi lưới chiếu, ghép biên,
…). Đây là một yếu tố then chốt của Metadata trong việc đánh giá sự thích hợp để sử dụng của tập dữ liệu.
Tính toàn vẹn: Tính toàn vẹn của tập dữ liệu cần phải được đánh giá, những thiếu sót bất kỳ trong dữ liệu đều phải được ghi chú cẩn thận.