Chương 4: Xử lý dữ liệu

Trở lại Mục lục cuốn sách

Giới thiệu

Các chương trình GIS kết nối những file dữ liệu với các bản đồ số. Chương trước đã đề cập đến khía cạnh bản đồ của mối liên hệ này. Bây giờ ta hãy tập trung vào các file dữ liệu thuộc tính. Giống như chương trước, chương này xem xét những khái niệm then chốt và đề cập đến khâu tiền xử lý dữ liệu GIS bạn đang có, nhưng sẽ tập trung cụ thể vào các thuộc tính, file dữ liệu, và khâu soạn thảo dữ liệu thuộc tính bạn có. Những khái niệm này tập trung vào dữ liệu thuộc tính và những nguyên lý trong việc quản trị cơ sở dữ liệu raster và vector. Hiểu được những khái niệm này, bạn sẽ biên tập và quản lý một cách hiệu quả những dữ liệu thuộc tính hiện có.  Toàn bộ chương này đề cập đến những chức năng tiền xử lý bao gồm thêm và xóa các trường, xóa các bản ghi, nối các file dữ liệu, lựa chọn và sắp xếp các các bản ghi, tính toán những thuộc tính, và mã hóa địa lý (geocoding).  Chương này kết thúc bằng một thảo luận ngắn về việc thẩm định thuộc tính. 

Dữ liệu thuộc tính

Như đã nêu ở chương trước, dữ liệu không gian có chiếm chỗ. Nó có một vị trí riêng và được gắn với hệ quy chiếu địa lý của Trái đất (như kinh-vĩ độ). Ngoài dữ liệu không gian, các file GIS còn chứa những thuộc tính phi không gian để miêu tả địa vật. Mục này sẽ tập trung xét đến những thuộc tính phi không gian này.

Liên quan đến thảo luận về “các thang đo” ở Chương 2, thì những thuộc tính của dữ liệu hiện tại có thể được phân loại thành định tính hoặc định lượng, và phân thành thuộc tính thực hoặc suy diễn. Các dữ liệu định lượng nói về con số và tần suất thay vì về mặt chủ quan, ý nghĩa, và kinh nghiệm. Chúng dễ dàng được tính toán, và những giá trị của chúng thường là kết quả từ khảo sát thực địa hoặc thí nghiệm. Những bản đồ thể hiện dữ liệu định lượng đều cho thấy sự khác biệt về mặt độ lớn giữa các địa vật với nhau.

Trái ngược lại, dữ liệu định tính thường cho ta thông tin mô tả và ý nghĩa sâu sắc hơn. Bản đồ thể hiện dữ liệu định tính cho thấy sự khác biệt về kiểu hoặc loại. Bạn có thể đánh giá một cách chủ quan rằng một đại lượng thuộc hạng thấp, trung bình, hay cao. Bạn cũng có thể phân loại mục đích sử dụng đất thành các mạng mục rộng hơn như: đất sinh sống, đất giao dịch thương mai, đất công nghiệp. Các lựa chọn tính toán bị thu hẹp vì tính chủ quan của dữ liệu và của cách phân loại dữ liệu này.

Dữ liệu cũng có thê được xác định bằng cách liệu chúng có biểu diễn một đặc tính nội tại nào đó của địa vật được đo đạc không (đặc tính tuyệt đối), hoặc liệu chúng được “tạo ra” theo nghĩa nào đó (đặc tính suy diễn). Dữ liệu tuyệt đối bao gồm cả dữ liệu định lượng và định tính như đã nêu trên, nhưng chúng biểu thị cho các hiện tượng được đo đạc (như số liệu bầu cử hoặc lượng nước được cất trữ), thứ hạng và điểm số của các thộc tính (ngay cả khi quy trình này có thể mang tính chủ quan), và những quan điểm, đánh giá có tính chủ quan, cá nhân sau khi thu được từ phiếu câu hỏi và hoạt động điều tra.

Dữ liệu suy diễn hoặc là không tự xảy ra, hoặc là chúng không thể được thu thập trực tiếp; mà là kết quả tính toán. Một ví dụ là nhiệt độ trung bình tháng Bảy, vốn là kết quả được tính trung bình từ nhiều con số nhiệt độ đo được trên thực tế. Dữ liệu suy diễn có thể có được qua việc tính trung bình dữ liệu thực như trong trường hợp này, hoặc chúng biểu diễn những mối quan hệ giữa các dữ liệu thuộc tính đã thu thập từ trước; và dữ liệu loại này có thể tồn tại theo ba dạng: tỉ số, tỉ lệ, và phần trăm.

  • Các thuộc tính tỉ số được suy diễn bằng cách lấy giá trị của một thuộc tính này chia cho giá trị của thuộc tính khác. Mật độ dân cư là một ví dụ điển hình. Ta lấy tổng số người trong một khu vực cụ thể đem chia cho diện tích khu vực đó. Cả hai thuộc tính: dân cư và diện tích có thể đều là các giá trị “thực sự”, nhưng thuộc tính mật độ dân cư tính được là suy diễn.
  • Loại tỉ lệ thì so sánh giá trị của một thuộc tính với tổng giá trị của tất cả những thuộc tính liên quan xung quanh nó. Tỉ lệ người Mỹ da đen trên tổng dân số được suy diễn bằng cách đem chia số người Mỹ da đen (dữ liệu thực tế) cho tổng số người (cũng là dữ liệu thực tế).
  • Nhiều người hình dung tỉ lệ dưới dạng số phần trăm; hai loại này gần giống nhau, nhưng phần trăm thì bằng tỉ lệ nhân với 100.

Nguyên lý quản trị cơ sở dữ liệu và véc-tơ

Ta hãy chuyển chủ đề thảo luận từ đặc tính của dữ liệu về việc những giá trị đó sẽ được tổ chức trong một file dữ liệu ra sao.  Các file dữ liệu là “cơ sở dữ liệu” căn bản đối với nhiều chương trình bao gồm các bảng tính, chương trình thống kê, và GIS. Trong một hệ thống GIS, có một file dữ liệu cho từng kiểu địa vật riêng (chẳng hạn đường phố, đèn đường, tòa nhà, lô đất). Chúng là dạng cơ sở dữ liệu của các địa vật hiện có. Các file dữ liệu này được tự động tạo nên khi các lớp địa vật được xác định trong hệ thống GIS của bạn. Bạn đưa vào trong những file này các thuộc tính liên quan đến địa vật.

Các file dữ liệu, thường gọi là “bảng,” tổ chức các thuộc tính thành một ma trận gồm các trường và các bản ghi.  Các trường hình thành nên các cột của một file dữ liệu (xem Hình 4.1), và chúng chứa những giá trị của từng thuộc tính mà bạn đang thu thập. Chẳng hạn, các lô đất có thể bao gồm các thuộc tính như diện tích, cách sử dụng đất, và mã số (Assessor’s Parcel Number, APN).  Ở ví dụ này, bạn sẽ có ít nhất là ba trường, mà tên gọi có thể là: area, land use, và APN.

Hình 4.1: Các phần then chốt của một file dữ liệu.

Hình 4.1: Các phần then chốt của một file dữ liệu.

Hãy nhớ từ Chương 2, rằng mỗi trường thế này có riêng một “định dạng dữ liệu” để xác định kiểu và độ dài của giá trị mà ta có thể nhập trực tiếp vào file dữ liệu.  Những thuộc tính thường dùng được mã hóa theo một trong những dạng sau, nhưng còn nhiều định dạng dữ liệu khác và tên gọi của các dịnh dạng thường khác nhau tùy theo phần mềm. Những thể loại định dạng dữ liệu nói chung gồm có:

Integer Những giá trị số học gồm các số nguyên. Không chứa phần thập phân.
Real Các số có phần nguyên và thập phân.
Byte Giá trị số từ 0 đến 255.
Character Các giá trị gồm chữ và số.

Hình 4.2: Các thể loại định dạng dữ liệu.

Một bản ghi, hay một hàng trong file dữ liệu, thể hiện một địa vật được lưu trong cơ sở dữ liệu, bao gồm tất cả những giá trị thuộc tính của nó (xem Hình 4.1). Một số ít trong những thuộc tính này có thể là các biến hệ thống mà hệ GIS cần để đảm bảo thống nhất dữ liệu và để kết nối file dữ liệu đến các file không gian của địa vật. Ngoài ra, một số các chương trình GIS tự động phát sinh ra các phép tính chiều dài cho những địa vật dạng đường và cả diện tích lẫn chu vi đối với địa vật dạng đa giác. Mỗi file dữ liệu cần phải có một trường làm khóa nhận diện để xác định duy nhất mỗi địa vật (tức là mỗi bản ghi). Các thuộc tính còn lại thì tùy chọn theo mục đích của nghiên cứu.

Các file dữ liệu là một tập hợp gồm những bản ghi có liên hệ với nhau. Nếu bạn biểu thị 25 ngọn đèn đường trong hệ thống GIS, bạn sẽ có 25 bản ghi về đèn đường trong file thuộc tính. Như đã đề cập vắn tắt ở trên, một file dữ liệu đa phần là rỗng đã được tạo nên khi một lớp mới được định nghĩa trong chương trình GIS. Nhiệm vụ của bạn là bổ sung các trường cùng các giá trị thuộc tính vào file dữ liệu. Những thuộc tính đặc tả này có thể được nhập vào bàng tay hoặc nhập từ các nguồn bên ngoài. Nhiều khả năng là bạn sẽ nhập thuộc tính nào đó bằng tay (và có thể sẽ rất tốn thời gian và tẻ nhạt), nhưng nhiều—nếu không muốn nói là hầu hết—các thuộc tính bạn tìm được sẽ được nhập hoặc “kết nối” từ các file dữ liệu riêng, không phải GIS. Đó là vì nhiều file dữ liệu phi không gian tồn tại trước khi bạn cần đưa nó vào trong một hệ GIS, nhưng lý do còn sâu xa hơn như thế. Việc thao tác dữ liệu bên trong GIS là rất vụng về, cũng bởi đa số người dùng GIS đều quen với những chương trình quản trị dữ liệu như Excel và Access, nên họ ưa dùng những chương trình này hơn rồi sau đó mới xuất dữ liệu và “kết nối” file dữ liệu ngoài vào với file dữ liệu GIS.  Việc kết nối sẽ được đề cập đến ở phần sau chương này.

Những file dữ liệu ngoài được mã hóa theo một trong nhiều “định dạng file”.  Một số định dạng file thuộc riêng về một chương trình phần mềm, song cũng có những định dạng phần nào có tính phổ biến. Ngay cả người dùng định dạng sở hữu riêng của chương trình cũng có thể xuất file dữ liệu sang một trong số các định dạng mà đa số những chương trình GIS đều đọc được.   Một số định dạng file mà nhiều chương trình GIS đọc được bao gồm:

dBase Định dạng tiêu chuẩn công nghiệp này có thể đọc được bằng hầu hết mọi chương trình GIS.  Nhiều chương trình GIS dùng định dạng này bên trong thay vì tự tạo riêng định dạng cho bản thân chương trình.

ExcelAccess: Các định dạng file của – Microsoft’ cho phần mềm Excel và Access có thể đọc được bởi nhiều chương trình GIS.  Nếu chương trình GIS bạn dùng không đọc những định dạng này, hãy mở file dữ liệu trong Excel hoặc Access rồi xuất nó dưới dạng một định dạng khác mà chương trình đọc được.

ASCII (American Standard Code for Information Interchange) – Vì tuyệt đại đa số máy tính đều dùng ASCII để biểu diễn văn bản chữ nên có thể dùng định dạng này để chuyển dữ liệu giữa các máy tính. Định dạng này cũng đọc và ghi được bằng đa số các chương trình GIS, nhưng hiếm khi nó được dùng làm định dạng file chính cho GIS (ngoại trừ một số chương trình GIS dựa trên raster).  Một số tập dữ liệu của chính phủ được lưu trữ dưới định dạng file này. Các file chữ có một số hình thức “ngăn cách dữ liệu” khác nhau, và có thể chứa số liệu hoặc dữ liệu không phải số (xem mục “Kết nối các file dữ liệu” ở mục sau trong chương này).

Các file dữ liệu chứa một ma trận các trường và các bản ghi cho mỗi lớp địa vật. Một cơ sở dữ liệu là một tập hợp nhiều file dữ liệu liên hệ với nhau (như lô đất, cột đèn đường, tòa nhà).  Nói cách khác, cơ sở dữ liệu chứa các file dữ liệu của những lớp có liên quan đến nhau. Việc truy cập các file dữ liệu được thực hiện qua phần mềm GIS hoặc ngày càng nhiều những hệ quản trị dữ liệu (database management systems, DBMS) riêng được kết nối tới GIS.  DBMS là những chương trình đặc biệt để tổ chức, tính toán, và báo cáo dữ liệu phi không gian và giúp bạn lưu trữ dữ liệu một cách hiệu quả hơn. Chúng đặc biệt quý giá khi ta phải làm việc với những tập dữ liệu lớn vì bạn có thể chọn được một tập con các bản ghi và các trường để làm việc trên đó. Không cần dùng đến toàn bộ file thuộc tính. Các ví dụ về chương trình DBMS riêng biệt bao gồm Access, Oracle, Ingres, SQLServer, INFORMIX, và ở một mức độ nào đó là Excel, vốn có thể dùng làm một chương trình dữ liệu đơn giản. Bất kể là bạn truy cập các file dữ liệu ngay trong phần mềm GIS hoặc từ DBMS bên ngoài, thì tất cả cơ sở dữ liệu đều có chung những phép toán tiêu chuẩn, bao gồm sắp xếp và lựa chọn các bản ghi, xóa các bản ghi và các trường, cũng như biên tập/sửa chữa các trường và các thuộc tính.

Những cơ sở dữ liệu khác nhau thì có cấu trúc dữ liệu, hay cách tổ chức dữ liệu, khác nhau. Ví dụ như hai mô hình dữ liệu: kiểu kế thừa và kiểu mạng lưới, nhưng chúng ít khi được dùng trong GIS (vì vậy mục này ta sẽ không đề cập đến).  Ở các hệ thống vector, mô hình cơ sở dữ liệu quan hệ có thể coi là mô hình dữ liệu thông dụng nhất vì chúng linh hoạt hơn, trong đó cấu trúc bảng dễ hiểu và dễ lập trình; bên ngoài hệ GIS, các file dữ liệu cũng thường được lưu trữ trong các cơ sở dữ liệu quan hệ.

Thao tác liên kết hoặc nối các file dữ liệu chính là điểm mạnh của mô hình cơ sở dữ liệu quan hệ. Khóa nhận dạng vốn có ở nhiều file dữ liệu, được dùng để liên kết các bản ghi từ một file dữ liệu này sang file khác. Nói cách khác, bạn tham chiếu qua lại giữa các file dữ liệu bằng những thuộc tính chung và gắn (hoặc kết nối) những file dữ liệu ngoài này vào file dữ liệu GIS.  Mối liên kết này nhận lấy những trường được chọn trong file dữ liệu mà bạn muốn kết nối và gắn chúng với các bản ghi phù hợp trong file dữ liệu GIS.  Điều này đồi hỏi từng file dữ liệu phải có ít nhất là một trường chung mới có thể thực hiện kết nối được. Có những tên gọi khác nhau cho khóa nhận diện: như: khóa (key) và khóa sơ cấp (primary key).  Quá trình này sẽ được nhấn mạnh ở phần sau của chương này.

Tuy nhiên, nhiều người nghĩ rằng mô hình cơ sở dữ liệu quan hệ không đủ biểu diễn dữ liệu không gian. Một lý do là các bản ghi trong một file dữ liệu quan hệ là quá rời rạc; chúng không thể hiện hợp lý bản chất liên tục và đa chiều của những địa vật cần biểu diễn. Chúng ta dùng mô hình dữ liệu quan hệ bởi chúng đơn giản và tiện dụng, nhưng ta lại can thiệp, bẻ cong những địa vật để hợp với tiêu chuẩn cơ sở dữ liệu sẵn có đã lập cho dữ liệu mang tính phi không gian.

Điều này đã dẫn tới sự phát triển của những cấu trúc dữ liệu hướng đối tượng, vốn được coi là một mô hình cơ sở dữ liệu tinh vi hơn. Cơ sở dữ liệu này loại bỏ nhiều khái niệm nền tảng đã được áp dụng xuyên suốt cuốn sách này. Các địa vật được định nghĩa theo cách khác; những địa vật hướng đối tượng làm nhòe đi ranh giới giữa các điểm, đường, và đa giác. Đồng thời, thay vì việc có nhiều file đối với từng lớp GIS, các dữ liệu không gian và thuộc tính đều được tích hợp vào cùng một file. Điều đó cho phép đồng thời biên tập hình dạng và thuộc tính địa vật và cho phép xử lý nhanh hơn. Tuy nhiên, mô hình tinh vi này phức tạp hơn, và có lẽ điều đó đã kìm hãm độ phổ biến của nó, mặc dù cơ sở dữ liệu “hướng đối tượng” từng là một trong những chủ đề nóng hổi nhất trong GIS vào thập niên 1990. Có thể nó vẫn là mô hình cao cấp để thay thế mô hình quan hệ, nhưng xem ra mặc dù vẫn còn hạn chế song mô hình quan hệ có ưu điểm đáng kể—bao gồm việc dễ sử dụng—sẽ giúp cho nó tiếp tục thống trị ít nhất là trong tương lai gần.

Nguyên lý quản trị cơ sở dữ liệu – raster

Như đã đề cập đến ở Chương 1, mô hình dữ liệu raster chia bề mặt Trái đất thành một lưới các hàng và cột. Những ô, hoặc điểm ảnh—những viên gạch tạo nên mô hình dữ liệu raster—được hình thành ở giao điểm các cột và hàng. Mỗi ô chứa một giá trị thuộc tính, biểu diễn cho tình trạng của một phần bề mặt đất. Điều đó nghĩa là một lớp raster trong không gian chỉ chứa những giá trị cho một thuộc tính riêng. Đặc điểm này rất quan trọng vì các lớp raster lấp đầy không gian. Thuộc tính của chúng tồn tại mọi nơi trong vùng nghiên cứu; không chừa ra chỗ trống nào. Các vùng trống trải thì có giá trị “0”, nhưng mọi điểm ảnh phải nhận một giá trị.  Nếu bạn cần nhiều thuộc tính, thì bạn phải lập nhiều lớp, mỗi lớp chứa một thuộc tính cho cùng một khu vực. Xét về mặt khái niệm, thì mô hình raster rất đơn giản. Như trên Hình 4.3, vùng nghiên cứu của bạn được chia thành nhiều ô, và mỗi ô của một lớp thì có một giá trị biểu diễn cho diện tích đó.

Hình 4.3:  Raster image.

Hình 4.3: Ảnh raster. Do Mike Tuck cung cấp.

Có nhiều cách lưu trữ mô hình dữ liệu raster—có cách đơn giản, có cách phức tạp hơn. Nhìn chung có hai thể loại là đều và không đều. Cấu trúc đều dễ hình dung, và lại gồm hai kiểu: mã hóa raster đầy đủ và mã chạy theo chiều dài.  Mã hóa đầy đủ (Full raster encoding) tạo ra một file dữ liệu để ghi giá trị thuộc tính cho từng điểm ảnh.  Tựa như bạn đọc vào những điểm ảnh như đọc trang sách: bắt đầu từ góc trái phía trên và đọc từ trái qua phải, sau đó dòng trên xuống dòng dưới. File dữ liệu này thì hơi khác. Nó ghi lại giá trị thuộc tính của từng điểm ảnh lên một dòng riêng, vì vậy nếu bạn có tấm ảnh gồm 640.000 điểm ảnh thì file dữ liệu tương ứng sẽ có 640.000 dòng, dẫn đến kích thước rất lớn.  Hình 4.4 là một ví dụ được giản hóa.

Hình 4.4: Mã hóa raster đầy đủ. Hình này chỉ hiện ra phần đầu—ba dòng đầu tiên—trong file dữ liệu của tấm ảnh trên Hình 4.3. Ở đây có tô màu để làm nổi bật những giá trị thuộc tính khác nhau.

Hình 4.4: Mã hóa raster đầy đủ. Hình này chỉ hiện ra phần đầu—ba dòng đầu tiên—trong file dữ liệu của tấm ảnh trên Hình 4.3. Ở đây có tô màu để làm nổi bật những giá trị thuộc tính khác nhau.

Mã hóa chạy theo chiều dài thì hiệu quả hơn so với mã hóa đầy đủ. Vì các ô cùng giá trị thường chạy kề nhau, nên cách mã hóa chạy theo chiều dài nhập các giá trị thuộc tính dưới dạng cặp đôi: số thứ nhất là chiều dài chạy và số thứ hai là giá trị của ô. Cách này làm giảm đáng kể dung lượng của file, đặc biệt là khi các điểm ảnh liền nhau có cùng giá trị. Hãy so sánh Hình 4.5 với Hình 4.4.

Hình 4.5: Mã hóa chạy theo chiều dài. Hình vẽ này cũng biểu thị ba hàng đầu tiên của ảnh Hình 4.3. Hãy so sánh mã hóa theo chiều dài với mã hóa đầy đủ (Hình 4.4). Ở đây có tô màu để làm nổi bật những giá trị thuộc tính khác nhau.

Hình 4.5: Mã hóa chạy theo chiều dài. Hình vẽ này cũng biểu thị ba hàng đầu tiên của ảnh Hình 4.3. Hãy so sánh mã hóa theo chiều dài với mã hóa đầy đủ (Hình 4.4). Ở đây có tô màu để làm nổi bật những giá trị thuộc tính khác nhau.

Những cấu trúc dữ liệu raster không đều, như cây tứ phân (quadtree) và các loại khác thì phức tạp hơn, thường chuyên dùng trong một số hệ thống nhất định, và sách này sẽ không đề cập đến. Những cấu trúc như vậy thường làm giảm kích thước file và cung cấp những cách lưu trữ dữ liệu raster để có thể lấy được dữ liệu nhanh chóng.

Tiền xử lý và biên tập dữ liệu

Khi bạn bổ sung các lớp địa vật có chứa cả dữ liệu không gian và thuộc tính, vào kịch bản chương trình hiện thời, thì file dữ liệu thuộc tính có thể chưa hiện ra ngay. Việc mở và soạn thảo các file thuộc tính là khâu dễ dàng, nhưng lại tùy theo từng chương trình cụ thể. Khi bảng thuộc tính đã mở ra, bạn có thể nhập liệu bằng cách gõ các giá trị thuộc tính trực tiếp vào file dữ liệu hoặc nạp và kết nối các file dữ liệu ngoài vào.  Những quá trình khác như biên tập thuộc tính, thêm hoặc xóa trường, xóa các bản ghi, truy vấn thuộc tính (chọn bản ghi), tính toán các trường, và mã hóa địa lý đều được thực hiện qua giao diện file dữ liệu.

Thêm và xóa trường
Như đã nêu trên, các trường có nhiệm vụ định nghĩa những thuộc tính của địa vật. Hầu hết những chương trình GIS đều cho phép bạn bổ sung hoặc xóa các trường ngay trong file dữ liệu đang mở.  Chương trình GIS sẽ hướng dẫn bạn cách định nghĩa một trường mới. Bạn sẽ đặt tên cho nó rồi lựa chọn định dạng dữ liệu đối với dữ liệu sẽ đặt vào trường đó. Việc xóa trường nói chung là chọn trường cần xóa và loại bỏ nó.

Xóa các bản ghi
Bạn có thể xóa một bản ghi hoặc một nhóm các bản ghi trong một file dữ liệu bằng cách trước hết chọn những bản ghi này rồi xóa.  Vì các bản ghi chính là cơ sở dữ liệu để biểu diễn các địa vật, nên khi bạn xóa các bản ghi in the file thuộc tính, bạn cũng vĩnh viễn xóa bỏ hình biểu diễn nó trong không gian. Toàn bộ địa vật, cả về hình dạng lẫn bản ghi, đều bị xóa.

Nói chung, bạn không thể bổ sung một bản ghi qua giao diện file dữ liệu vì nó cũng phải kèm theo hình thức biểu diễn không gian. Hãy xem Chương 3 để biết cách bổ sung một địa vật. Bản ghi của nó được tự động lập nên khi hình địa vật được vẽ ra trong chương trình máy tính.

Kết nối các file dữ liệu
Khi một lớp GIS được tạo ra, file thuộc tính của nó thể được kết nối với những file dữ liệu ngoài.  Kết nối là một trong những thao tác được thực hiện thường xuyên nhất với file dữ liệu vì nó thu gom lại những thuộc tính địa vật được chứa trong nhiều file dữ liệu khác nhau.  Để kết nối thì cả hai file dữ liệu cần có một trường chung duy nhất, khóa nhận diện, chứa giá trị khớp nhau.  Như đã nói ở Chương 3, khóa nhận diện có thể là một thứ kiểu như số chứng minh thư của người hoặc mã số APN đánh cho lô đất. Đó là một trường cho phép nhận diện duy nhất một địa vật. Một khi đã kết nối, thì mối liên kết nói trên có thể mang tính tạm thời hay vĩnh viễn.

Những file ngoài mà bạn nạp vào trong hệ GIS để thực hiện phép nối thường là các định dạng file dBase, ASCII, Microsoft Excel, hoặc Microsoft Access.  Những bước tỉ mỉ liên quan đến việc nối hai file với nhau tùy thuộc vào phần mềm, nhưng thường bao gồm:

  1. nạp file ngoài mà bạn muốn kết nối đến file thuộc tính GIS,
  2. lựa chọn file ngoài và file thuộc tính GIS mà bạn muốn kết nối,
  3. lựa chọn trường (có chứa khóa nhận diện) trong từng file, và khi đã kết nối thì,
  4. cần đảm bảo rằng phép kết nối thành công.

Trong ví dụ ở Hình 4.6, lớp bản đồ lô đất đã tồn tại, nhưng nó không bao gồm giá trị đánh giá. Nó có chứa một trường mang tên APN (Assessor’s Parcel Number) mà giá trị là duy nhất cho từng bản ghi và có thể dùng để kết nối các file dữ liệu.  Một file bảng tính cũng tồn tại; nó chứa giá trị đánh giá đất, và phải được nạp trong GIS dưới dạng gốc (nếu được chấp nhận) hoặc dạng sau khi xuất từ chương trình bảng tính để hệ GIS đọc được.  Bảng tính này có một trường mang tên APN_NUM, mà sau khi ta nhìn vào kiểm tra, sẽ thấy có cùng giá trị như ở APN trong lớp bản đồ chứa lô đất, và trường này có thể dung để kết nối.

Hình 4.6: Kết nối hai file thuộc tính với nhau đòi hỏi rằng hai file này phải có chung khóa nhận diện.

Hình 4.6: Kết nối hai file thuộc tính với nhau đòi hỏi rằng hai file này phải có chung khóa nhận diện.

Khi file bảng tính đã được nạp, bạn bắt đầu thao tác kết nối bằng cách chỉ định hai file (bảng của lớp và file bảng tính) cùng với hai tên trường sẽ thực hiện việc kết nối. APN và APN_NUM là những khóa nhận diện của hai file này (xem Hình 4.7), và ngay cả khi tên trường không giống nhau, chương trình GIS vẫn có thể kết nối hai file này lại miễn là các giá trị dưới hai tên trường bằng nhau.

Hình 4.7:  Khớp các khóa nhận diện.

Hình 4.7: Khớp các khóa nhận diện.

Nếu việc khớp thành công, hai file của bạn sẽ được nối lại thành một file (xem Hình 4.8).

Hình 4.8:  A joined file with accessed values a one of the attributes.

Hình 4.8: Một file sau khi kết nối với một thuộc tính là những giá trị đánh giá.

Có lẽ công việc tốn thời gian nhất là các bước thứ nhất và thứ tư. Việc nạp một file dữ liệu ngoài sẽ phải dễ dàng—và thực tế thường như vậy—song đôi khi file dữ liệu cần nạp có thể sai định dạng hoặc không đọc được. Nếu điều này xảy ra, hãy quay trở về chương trình chủ (chương trình bảng tính hoặc DBMS đang dùng) rồi lưu file này dưới dạng khác.  Thông thường chương trình GIS sẽ càng có nhiều khả năng đọc được file dữ liệu ngoài này khi bạn chuyển từ các định dạng tinh vi (như Excel và Access) về dBase rồi về ASCII (định dạng cơ bản).  Nhiều file dữ liệu được mã hóa dạng ASCII vì tính chất tương thích gần như hoàn toàn với mọi hệ máy và chương trình phần mềm, nhưng định dạng này vẫn có rắc rối—theo vài cách khác nhau.  Dưới đây là bốn dạng ASCII tùy theo dấu phân cách giữa các trường được dùng là gì.

Những file ASCII phân cách bằng khoảng trống thì các trường tách rời nhau bằng một hoặc nhiều dấu cách. Vì những dấu cách này đã dùng để phân biệt các trường, nên trường nào không giá trị lại phải được biểu diễn bằng một mã không phải là dấu trống, đồng thời những thuộc tính dạng chữ thì không thể chứa dấu cách giữa các từ (dấu gạch thấp được dùng thay).  Bạn có thể mở file ASCII bằng bất kì phần mềm soạn thảo văn bản hay phần mềm gõ file chữ (text editor) nào. Sau đây là một ví dụ về file dữ liệu ASCII phân cách bằng khoảng trống chứa 5 bản ghi:

M1 Betsy_Burns Yes 38.5 0.85
P1 Dan_Arreola No 45.7 0.99
M2 Frank_Aldrich Yes 32.8 0.55
P2 Fritz_Steiner No – –
P3 Ruth_Yabes No 37.72 –

Dạng file ASCII phân cách bằng cặp nháy kép kết hợp dấu trống là một biến thể của dạng phân cách bằng dấu trống, nhưng các thuộc tinh biểu diễn bằng nhiều từ được bao giữa cặp dấu nháy kép, và vì vậy, chúng có thể chứa dấu cách giữa các từ. File ASCII phân cách bằng cặp nháy kép có thể trông như sau khi mở bằng phần mềm gõ file chữ:

M1 “Betsy Burns” Yes 38.5 0.85
P1″Dan Arreola” No 45.7 0.99
M2 “Frank Aldrich” Yes 32.8 0.55
P2 “Fritz Steiner” No – –
P3 “Ruth Yabes” No 37.72 –

Các file phân tách bởi dấu Tab thì phân tách các trường bằng một dấu tab. Hai dấu tab liên tiếp dùng để chỉ một trường bỏ trống. Các giá trị bên trong một trường thuộc tính không thể chứa dấu tab nào nữa. Một file ASCII phân cách bằng dấu tab có thể trông như sau khi mở bằng phần mềm gõ file chữ:

M1     Betsy Burns     Yes      38.5     0.85
P1      Dan Arreola     No       45.7     0.99
M2    Frank Aldrich Yes      32.8     0.55
P2     Fritz Steiner     No
P3     Ruth Yabes       No      37.72

Các file phân tách bởi dấu phẩy (còn gọi là CSV, comma-separated values) dùng dấu phẩy để phân biệt các trường.  Những trường kí tự có thể được đóng trong cặp dấu nháy kép, và điều này bắt buộc nếu như trường đó có chứa dấu phẩy. Hai dấu phẩy đi liền nhau báo hiệu rằng có trường để trống.  thường thì dấu cách không được phép đứng ở đầu hoặc cuối nội dung trường (mặc dù điều này có thể được châm chước trong dạng CSV). Một file ASCII phân cách bằng dấu phẩy có thể trông như sau khi mở bằng phần mềm gõ file chữ:

M1,”Betsy Burns”,Yes,38.5,0.85
P1,”Dan Arreola”,No,45.7,0.99
M2,”Frank Aldrich”,Yes,32.8,0.55
P2,”Fritz Steiner”,No,,
P3,”Ruth Yabes”,No,37.72,

Sắp xếp các bản ghi
Việc sắp xếp tạm thời làm thay đổi trật tự các bản ghi trong file dữ liệu, vì vậy bạn có thể xem chọn, cập nhật, hoặc in chúng theo thứ tự mới sắp xếp. Dù chi tiết cụ thể còn tùy thuộc từng chương trình, song nói chung bạn chọn (một hoặc nhiều) trường muốn sắp xếp. Lần sắp xếp thứ nhất lập lại trật tự các bản ghi, thường là tăng dần hoặc giảm dần dựa trên nội dung của các trường. Chẳng hạn, danh sách một lớp học có thể được sắp xếp theo thứ tự bảng chữ cái đối với họ tên.  Có những hệ thống còn cho phép ta chọn một (hoặc nhiều) trường sắp xếp thứ hai, để lập lại trật tự các bản ghi (tăng hoặc giảm dần) khi hai hoặc nhiều bản ghi có cùng giá trị của trường thứ nhất.  Trong ví dụ nêu trên, nếu danh sách xếp theo bảng chữ cái lại có bốn học viên có cùng họ Smith, thì bốn bản ghi này có thể được sắp xếp tiếp theo thứ tự bảng chữ cái dựa trên tên riêng.

Chọn bản ghi/Truy vấn thuộc tính (chọn logic)
Việc lựa chọn các bản ghi cụ thể là một trong số những chức năng chung nhất của cơ sở dữ liệu. Thường được gọi là truy vấn thuộc tính, thao tác này bao gồm việc chỉ rõ một tập con gồm các bản ghi dựa trên một tiêu chuẩn riêng. Nói cách khác, bạn tạo nên một biểu thức—một công thức—để truy vấn tất cả những bản ghi trong file dữ liệu và hệ GIS sẽ chỉ ra—cả trong file dữ liệu lẫn trên hình bản đồ—những địa vật nào thỏa mãn tiêu chuẩn đặt ra.

Đa số các chương trình GIS đều dùng một giao diện Ngôn ngữ truy vấn tiêu chuẩn (Standard Query Language, SQL) để tiến hành truy vấn thuộc tính. Nếu ta dùng riêng một chương trình DBMS quan hệ (như Access hay Oracle), thì SQL sẽ gọi đến cơ sở dữ liệu ngoài đó tách riêng những bản ghi mà bạn cần đến.  SQL dùng đại số tập hợp, đại số Boole, và các toán tử số học (=, -, *, /) để truy vấn thuộc tính. Đại số tập hợp gồm có các phép toán so sánh nhỏ hơn (<), lớn hơn (>), bằng (=), và khác (<>).  Bạn có thể lập một biểu thức như dưới đây (xem Hình 4.9) để tách riêng chỉ những bản ghi thỏa mãn yêu cầu đề ra. Bạn có thể bổ sung hoặc giới hạn lựa chọn địa vật bằng cách dùng đại số Boolean, trong đó có những điều kiện như OR (để mở rộng), AND (giới hạn), và NOT để chọn tiếp hoặc tách riêng các bản ghi.  Từng bản ghi được truy vấn và bổ sung vào tập hợp nếu nó thỏa mãn chỉ tiêu.

Hình 4.9: Lựa chọn các bản ghi dựa trên thuộc tính của chúng bằng các dùng các biểu thức SQL.

Hình 4.9: Lựa chọn các bản ghi dựa trên thuộc tính của chúng bằng các dùng các biểu thức SQL.

Một khi the các bản ghi đã được chọn, bạn có thể là việc chỉ với các bản ghi đó.  Điều này có ích trong việc xem xét, sắp xếp, biên tập, tính toán các trường, tạo số thống kê, dùng những địa vật chọn trước để lựa chọn các địa vật trong một lớp GIS khác, tạo ra một lớp mới chỉ chứa những địa vật đã chọn, và cô lập các bản ghi để thực hiện các hàm tính toán đối với chúng (như việc tạo viền quanh các địa vật chọn sẵn).

Ngoài ra, việc truy vấn không gian, lựa chọn các địa vật dựa trên vị trí địa lý của chúng (xem Chương 5), có thể được kết hợp với truy vấn thuộc tính đối với những truy vấn phức tạp hơn. Có thêm thông tin về truy vấn thuộc tính và truy vấn không gian trong Chương 5.

Tính toán các thuộc tính
Với một file dữ liệu đã mở, bạn có thể tạo những thuộc tính mới bằng cách dùng những giá trị trong các trường sẵn có, viết các biểu thức toán học, và các hàm xử lý chữ (xem Hình 4.10).  Phép toán cho ta cộng, trừ, nhân, và chia các trường hoặc giá trị để tạo nên những thuộc tính suy diễn mới. Các hàm xử lý chữ cho phép ta điền giá trị vào trường, sao chép giá trị giữa các trường, nối liền các trường (hoặc với các giá trị), cắt ngắn nội dung thuộc tính, và chuyển đổi dạng chữ sang những định dạng khác. Tuy vậy, trước khi tính toán trường mới, bạn phải tạo nên một trường thuộc tính mới; việc này bao gồm đặt tên cho nó và xác định các thuộc tính của dữ liệu đi kèm theo). Việc tính toán có thể thực hiện trên một trường, một số các bản ghi chọn trước, hoặc trên từng bản ghi trong file dữ liệu.  Hàm tính toán cũng có thể được dùng để sao chép số liệu từ một trường sang trường khác.

Hình 4.10: Tính toán các trường. Ở ví dụ này, mật độ dân cư được tính bằng cách lấy dân số chia cho diện tích. Đầu tiên ta cần phải bổ sung trường mới. Sau đó, tính trực tiếp kết quả vào trường mới này.

Hình 4.10: Tính toán các trường. Ở ví dụ này, mật độ dân cư được tính bằng cách lấy dân số chia cho diện tích. Đầu tiên ta cần phải bổ sung trường mới. Sau đó, tính trực tiếp kết quả vào trường mới này.

Mã hóa địa lý
Có một cách để trực tiếp tạo ra dữ liệu địa lý từ dữ liệu thuộc tính.  Quá trình này, với tên gọi mã hóa địa lý, thực hiện ấn định các vị trí địa lý vào với địa vật trực tiếp từ các trường thuộc tính có chứa thông tin về địa phương tring file dữ liệu.  Đây là một cách phổ dụng để tạo nên các lớp địa vật GIS; bạn tạo ra hoặc nhận một bảng tính hoặc một file dữ liệu với thông tin địa phương, rồi mở bảng thuộc tính trong hệ GIS đang dùng, và chỉ cho chương trình thấy được các trường thuộc tính phù hợp.  Có hai kiểu mã hóa địa lý: định vị tọa độ và khớp địa chỉ.

Các địa vật trong không gian có thể được tạo từ các file dữ liệu chứa các trường với những giá trị tọa độ x,y. Các tọa độ này cần được phân chia vào hai trường riêng: một trường chứa tọa độ x và một chứa tọa độ y.  Quy trình này đơn giản; bạn chỉ dẫn cho hệ GIS đến các trường x, y thích hợp của file dữ liệu, và nó sẽ tạo ra một lớp không gian chứa những địa vật điểm từ các tọa độ này. Một khả năng gây phức tạp là các tọa độ của file dữ liệu lại khác với hệ tọa độ bạn đang dùng. Như vậy bạn sẽ phải mở file trong một bản thảo chương trình mới, tạm thời được đăng kí theo hệ tọa độ của file dữ liệu và sau đó chuyển đổi lớp không gian mới về hệ tọa độ mong muốn.

Khớp địa chỉ là một cách mã hóa địa lý khác. Cách này khớp các bản ghi trong hai file dữ liệu—một chứa danh sách các địa chỉ và một chứa thuộc tính mạng lưới đường phố—để tạo ra một lớp mới (xem Hình 4.11).  Nói cách khác, nó tạo nên một lớp địa vật điểm bên cạnh các đoạn phố trong trường hợp các địa chỉ trong hai file dữ liệu khớp nhau.  Bản chất là việc tra tìm địa chỉ có ở bản ghi thứ nhất của file dữ liệu ngoài rồi cố gắng tìm một cái khớp với nó trong số những con phố trên lớp bản đồ mạng lưới giao thông.  Nếu có khả năng trùng lặp, thì chương trình sẽ hiển thị đủ mọi thứ để người dùng chọn lựa. Sau khi bản ghi đầu tiên được chấp nhận hoặc không, nó sẽ chuyển đến bản ghi thứ hai rồi thử lại.  File kết quả được gắn hệ tọa độ của mạng lưới đường phố.

Hình 4.11:  Khớp địa chỉ.  The addresses in an file dữ liệu ngoài (A) are compared to a street network's (B) trường thuộc tínhs, và if a match is made, the bản ghi in the file dữ liệu ngoài gets a point on the map (C).

Hình 4.11: Khớp địa chỉ. Các địa chỉ trong một file dữ liệu ngoài (A) được so sánh với các trường thuộc tính của mạng lưới đường phố (B), và nếu khớp nhau thì sẽ bổ sung một bản ghi vào file dữ liệu ngoài cùng với một điểm trên bản đồ (C).

Cả lớp mạng lưới đường phố lẫn file dữ liệu ngoài đều cần dữ liệu địa chỉ (tên phố, kiểu đường phố, và một khoảng số nhà từ đầu đến cuối từng đoạn phố), và có thể thêm thông tin như thành phố, bang, và mã Zip để làm cho thông tin địa chỉ đang xét là duy nhất (nhiều khi các thành phố lại có đường phố trùng tên).  Quy trình này hoạt động tốt nếu như các địa chỉ trong cả file dữ liệu ngoài và lớp mạng lưới đường phố là chính xác và đầy đủ, nhưng khớp địa chỉ là một quá trình tốn thời gian.

Xuất dữ liệu
Việc xuất các lớp GIS, gồm các file địa lý va dữ liệu thuộc tính, sẽ được trình bày ở Chương 6.  Hầu hết các chương trình GIS đều có thể xuất file thuộc tính của lớp hiện có theo nhiều định dạng, bao gồm dBase và ASCII.  Những file được xuất có thể lại được dùng trong cơ sở dữ liệu, để tính thống kê và các chương trình bảng tính để phân tích thêm.

Thẩm định thuộc tính

Mục này xét đến việc thẩm định độ chính xác của các thuộc tính. Quá trình thẩm định nhằm tìm cả những giá trị thuộc tính bị thiếu lẫn không chính xác. Khác với thẩm định địa lý, không có chức năng thẩm định thuộc tính nào được dựng sẵn trong phần mềm để phục vụ mục đích này.

Thay vì vậy, file dữ liệu của lớp bản đồ có thể được hiển thị và sắp xếp theo từng thuộc tính với thứ tự tăng dần để nhận diện những thuộc tính thiếu (xem Hình 4.12).  Các địa vật thiếu mất giá trị của một trường cụ thể sẽ được hiện rõ ở đoạn đầu của bảng. Việc lựa chọn những địa vật này từ file dữ liệu rồi đánh dấu chúng trên màn hình có thể là một cách rất tiện lợi cho thấy những địa vật đang thiếu thuộc tính.  Sau đó các địa vật được chọn có thể được kiểm tra và cập nhật. Bạn có thể sắp xếp các thuộc tính theo thứ tự bảng chữ cái và liếc nhìn xuống nội dung của trường để phát hiện ra lỗi chính tả.

Hình 4.12: Sắp xếp theo thứ tự tăng dần có thể làm xuất hiện lỗi khiếm khuyết dữ liệu.

Hình 4.12: Sắp xếp theo thứ tự tăng dần có thể làm xuất hiện lỗi khiếm khuyết dữ liệu.

Khó phát hiện hơn là những giá trị thuộc tính sai.  Để phát hiện được đòi hỏi phải quen thuộc với những bản đồ nguồn và hiểu biết về dạng mẫu không gian.   Chẳng hạn, nếu bạn làm việc về dữ liệu thu nhập, thì bạn nên chọn các giá trị thu nhập thấp và hiển thị chúng trên bản đồ. Liệu vị trí không gian của chúng có nghĩa không? Làm điều tương tự với những giá trị thu nhập cao.  Chẳng hạn, chọn các cấp sử dụng đất khác nhau, và xem kết quả có ý nghĩa về địa lý hay không. Hiển thị tất cả những khu công nghiệp nặng và xem vị trí của chúng. nếu khu công nghiệp nặng nằm ngay giữa khu dân cư giàu có hoặc khu công nghiệp không nằm dọc tuyến đường cao tốc, đường ray, hoặc gần bờ sông (để vận chuyển) thì những giá trị này có thể không chính xác. Có thể cần thêm thông tin; bạn hãy thử xem các ảnh vệ tinh trên mạng hoặc ra thực địa để kiểm tra những nơi có giá trị lạ.

Advertisements

1 Phản hồi

Filed under Commons

One response to “Chương 4: Xử lý dữ liệu

  1. Pingback: GIS Commons: Sách giáo trình nhập môn Hệ thống thông tin địa lý | Blog của Chiến

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s