Trang

Thứ Năm, 31 tháng 5, 2012

Cơ bản công cụ trong ArcToolbox 3

Nhóm công cụ Overlay, overlay nghĩa là chồng các lớp lại với nhau phục vụ cho bài toán phân tích không gian. Như vậy, tất cả các công cụ trong nhóm này đều mang ý nghĩa là lấy 1 (hay nhiều) lớp chồng lên 1 (hay nhiều) lớp theo 1 cách nào đó để tạo ra 1 lớp đáp ứng mục tiêu cần phân tích. Các công cụ bao gồm : Erase, Identity, Intersect, Spatial Join, Symmetrical Difference, Union, Update. Chúng ta sẽ tìm hiểu từng công cụ.
+ Erase : tạo ra một đối tượng mới bằng cách xóa đối tượng nhập bằng những polygon được khai báo trong lớp Erase. Ví dụ, chúng ta có lớp dữ liệu bản đồ có sẵn của một phường có quá nhiều sai số. Nên chúng ta muốn xóa phường đó ra khỏi lớp dữ liệu đó. Chúng ta có thể sử dụng Erase. Khởi chạy công cụ Erase, giao diện của nó sẽ xuất hiện.
Input Features khai báo lớp cần xóa, trong trường hợp ví dụ này là lớp hành chính.
Erase Features khai báo lớp chứa các polygons làm cơ sở để xóa dữ liệu trong lớp Input. Trong ví dụ này là lớp chứa ranh giới phường cần xóa.
Output Feature Class khai báo nơi lưu và tên lớp tạo thành.
XY Tolerance cũng giống như những công cụ trước.
Kết quả, phường cần xóa sẽ bị xóa.
Hình bên phải là hình sau khi thực hiện Erase.
Một ví dụ khác, nếu bây giờ polygon trong lớp Erase không trùng với ranh giới 1 phường, vậy kết quả sẽ như thế nào ?
Như hình trên, chúng ta muốn xóa phần phía trong tứ giác. Chạy công cụ Erase. Kết quả như sau :
+ Identity : tính phần giao giữa lớp Input và lớp Identity rồi sau đó giữ lại lớp Input kết hợp với phần giao với lớp Identity. Lớp Input có thể là Point, Line hay Polygon nhưng lớp Identity phải là Polygon. Giả sử chúng ta cần thực hiện Identity trên dữ liệu bên dưới :
Khởi chạy công cụ, giao diện của nó sẽ xuất hiện :
Ngoài những khai báo thông thường như những công cụ trên, trong Identity còn một số khai báo khác như :
JoinAttributes là một tùy chọn, có 3 giá trị để lựa chọn : ALL, NO_FID và ONLY_FID. Tùy chọn này giúp xác định những thuộc tính nào sẽ được giữ lại trong lớp xuất.
ALL : Tất cả các thuộc tính trong lớp Input cũng như lớp Identity được giữ lại trong lớp xuất.
NO_FID : Ngoại trừ FID bị xóa, còn các thuộc tính khác của lớp Input và Identity đều được giữ lại.
ONLY_FID : Chỉ giữ lại FID, tất cả các thuộc tính còn lại sẽ bị xóa.
Giá trị mặc định của tùy chọn này là ALL.
Một khai báo khác là tùy chọn checkbox Keep relationships. Nếu chọn, kết quả sẽ giữ lại mối quan hệ không gian những đối tượng trong lớp Input và đối tượng Identity. Điều này chỉ áp dụng khi lớp Input là Line và lớp Identity là Polygon. Ví dụ, đối với một đường khi bạn chọn checkbox đó thì thông tin về Polygon bên trái hay bên phải nó sẽ được ghi vào trong bảng thuộc tính của lớp xuất.  Kết quả như sau :
+ Intersect : giữ lại phần giao của các lớp Input. Cái khác của công cụ này so với các công cụ trước là chúng ta khai báo tất cả các lớp trong phần Input, công cụ sẽ lấy ra phần giao của các lớp đó. Dữ liệu thực hiện cũng như trong công cụ Identity.
Phần khai báo cũng giống như trên, chỉ khác ở chỗ tùy chọn Output Type. Phần này khai báo loại giao mà chúng ta muốn công cụ thực hiện. Có 3 giá trị có thể lựa chọn :
INPUT : Kết quả sẽ trả lại loại hình học giống như trong các lớp Input nhưng với chiều thấp nhất. Ví dụ nếu trong Input có Polygon và Line thì kết quả sẽ trả về Line vì Line có chiều thấp hơn Polygon.
LINE : kết quả sẽ trả về Line, giá trị này chỉ có hiệu lực khi trong Input không có Point.
POINT : kết quả trả về Point, nếu trong Input chỉ có Polygon hoặc Line thì kết quả sẽ trả về Multipoint.
Khởi chạy công cụ :
Hai lớp nhập là Polygon và Output Type là INPUT nên kết quả sẽ là Polygon như hình bên dưới :
NNS

Thứ Ba, 29 tháng 5, 2012

Vài điều thú vị về Kinh Dịch và khoa học.

Một vài sự trùng hợp giữa Kinh Dịch và khoa học mà tình cờ đọc được khiến tôi hết sức kinh ngạc. Như chúng ta đã biết, trong Kinh Dịch, để giải thích tất cả các quy luật vận hành trong trời đất này đều dựa trên nền tảng thuyết âm dương. Thuyết âm dương bao gồm âm thể hiện bằng một vạch đứt và dương thể hiện bằng một vạch liền. Hai vạch này chồng lên nhau, thay đổi thứ tự với nhau tạo thành tứ tượng (4 hình) rồi bát quái (8 hình). Rồi cho tám hình này chồng lẫn lên nhau sẽ có 64 hình nữa gọi là lục thập tứ quái. 64 hình này có thể giải thích tất cả các quan niệm về vũ trụ, về nhân sinh, từ những hiện tượng trên trời dưới đất những luật thiên nhiên tới những đồ dùng, những công việc thường ngày như trị nước, ra quân, trị nhà, cưới hỏi, ăn uống , xử thế...
Bạn có để ý không, điểm khởi đầu của Kinh Dịch rất giống với điểm khởi đầu của công nghệ thông tin. Người ta sử dụng hệ nhị phân (0 và 1) để xây dựng nên cả một hệ thống công nghệ thông tin ngày nay. Một sự thật là người ta chỉ sử dụng 2 số 0 và 1 thì có thể diễn tả hầu hết tất cả các hiện tượng sự việc trên máy tính, vậy thì nếu dùng thuyết âm dương chúng ta cũng có thể giải thích được thế giới thật của chúng ta chăng ?
Trong Kinh Dịch có 64 quẻ, nếu coi số 0 tương ứng với vạch Âm, 1 tương ứng với vạch dương thì 64 quẻ này đúng là 64 con số từ 0 đến 63 trong phép nhị phân. Ví dụ, muốn biết quẻ thứ 50 là quẻ gì, chúng ta lấy 50 chia cho 2 được 25 dư 0, đó là vạch âm, lấy 25 chia 2 được 12 dư 1, đó là vạch dương, lấy 12 chia 2 được 6 dư 0, đó là vạch âm, lấy 6 chia 2 được 3 dư 0, đó là vạch âm, lấy 3 chia 2 được 1 dư 1 là vạch dương, số 1 còn lại là vạch dương. Như vậy chúng ta có theo thứ tự âm-dương-âm-âm-dương-dương đây đúng là quẻ thứ 50 (Thủy Trạch Tiết) trong Kinh Dịch.
Một ví dụ khác, nếu coi vạch âm là A và vạch dương là B. Chúng ta xét bát quái. Đối với Càn (3 vạch dương) nghĩa là AAA hay A3. Khôn (3 vạch âm) BBB hay B3. Đối với 3 quẻ có 2 vạch dương 1 vạch âm là Đoài (âm-dương-dương) ABB hay AB2, Ly (dương-âm-dương) BAB hay AB2,và Tốn (dương-dương-âm) BBA hay B2A. Cộng lai, chúng ta có 3AB2. Tương tự, đối với 3 quẻ có 2 vạch âm 1 vạch dương, sẽ có 3A2B. Cộng lại, chúng ta có: A3 + 3A2B +  AB2 + B3 = (A+B)3. ^_^
Một ví dụ khác, nếu chúng ta có một hình lập phương.
Nếu chúng ta để ý mấy vị trí đánh dấu tròn màu đỏ trên hình là các đĩnh của hình lập phương. Chúng được hình thành từ 3 hình vuông, nếu coi hình vuông nhìn thấy tương ứng với vạch liền (vạch dương), hình vuông khuất tương ứng với vạch đứt (vạch âm). Khi đó, bát quái sẽ hiện ra trên hình này. Chẳng hạn, ở vị trí số 1 là âm-âm-âm chính là quẻ Khôn.
Và còn nhiều điều thú vị khác, mọi người có thể tham khảo thêm.
NNS
Nội dung chủ yếu được lấy từ :
1)    Nguyễn Hiến Lê. Kinh Dịch đạo của người quân tử
2) Z.D.Sung. The Symbols of Yiking

Sử dụng ký hiệu trong Pmapper


Nhắc đến bản đồ là phải nói đến ký hiệu, bởi nó là ngôn ngữ của bản đồ. Do đó, khi chúng ta muốn xây dựng bản đồ trong Pmapper thì đòi hỏi phải có hệ thống ký hiệu đủ để thể hiện chủ đề mà chúng ta muốn thể hiện. Trong pmapper nói riêng hay trong Mapserver nói chung, việc định nghĩa một ký hiệu có thể thực hiện trong mapfile hoặc trong file chứa ký hiệu riêng. Trong mapfile, chúng ta có thể trực tiếp định nghĩa ký hiệu trên đó bằng các câu lệnh, còn trong file riêng chúng ta định nghĩa sẵn các câu lệnh và khai báo file đó trong mapfile.
Như chúng ta đã biết, trong mỗi LAYER đều phải khai báo loại ký hiệu là điểm, đường hay vùng. Dựa trên loại đó, pmapper sẽ lấy ra loại ký hiệu phù hợp để hiển thị cho từng LAYER. Tuy nhiên, trong từng loại đòi hỏi phải có những hình dạng ký hiệu khác nhau. Chẳng hạn, đối với điểm chúng ta có thể sử dụng điểm hình vuông, điểm hình tròn, hình tượng trưng,…Do đó đòi hỏi phải định nghĩa ký hiệu được sử dụng trong từng loại. Định nghĩa này được thực hiện trong phần SYMBOL của mapfile. Một ví dụ đơn giản, có thể tìm thấy trong file demo của pmapper là sử dụng điểm hình tròn để thể hiện điểm. Chúng ta khai báo như sau trong mapfile :
Symbol
  Name 'circle'
  Type ELLIPSE
  Filled TRUE
  Points
    1 1
  END
END
Và trong phần CLASS trong lớp điểm, khai báo ký hiệu là ký hiệu vừa định nghĩa, như sau :
SYMBOL ‘circle’
Và kết quả, chúng ta sẽ có các điểm thể hiện bằng các hình tròn.
Chúng ta có thể dễ dàng thay đổi kích thước, màu sắc của ký hiệu bằng cách khai báo bằng cách từ khóa : SIZE, COLOR, OUTLINECOLOR hay WIDTH. Việc này giúp chúng ta có được nhiều thuận lợi khi biên tập bản đồ, chẳng hạn thể hiện chợ có quy mô nhỏ bằng điểm có kích thước nhỏ hơn chợ có quy mô lớn.
Nói sơ qua về phần định nghĩa ký hiệu trong SYMBOL trong ví dụ ở trên. Phần NAME thì dễ rồi, đó là tên của ký hiệu, nó sẽ được sử dụng để gọi ký hiệu ra khi cần. Phần TYPE khai báo loại ký hiệu, trong ví dụ trên nó có loại là ellipse. Phần POINTS khai báo các điểm để tạo thành ký hiệu, trong ví dụ chúng ta khai báo loại lả ellipse nên trong POINTS này chỉ cần khai báo (1,1) lả đủ. Đó là bán kính theo trục x và trục y trên hệ trục tọa độ phẳng. Khi 2 bán kính đó bằng nhau thì đó là vòng tròn. Phần FILLED khai báo nó là vòng tròn hay hình tròn, nếu TRUE là hình tròn.
Tương tự, chúng ta có thể định nghĩa ký hiệu là hình vuông như sau :
Symbol
  Name 'square'
  Type VECTOR
  Filled TRUE
  Points
    0 1
    0 0
    1 0
    1 1
    0 1
  END
END
Để dễ hình dung phần khai báo trong POINTS, chúng ta có thể vẽ ra hệ trục tọa độ phẳng và vẽ các điểm đó lên. Một số loại có thể khai báo trong phần TYPE là : ellipse, hatch, pixmap, simple, truetype, vector.
Ví dụ, bây giờ tôi muốn thể hiện các điểm bằng các hình ngôi sao màu đỏ. Khi đó, trong mapfile hoặc file chứa ký hiệu sẽ khai báo là :
SYMBOL
  NAME 'ngoisao'
  TYPE VECTOR
  POINTS
    0 0.375
    0.35 0.375
    0.5 0
    0.65 0.375
    1 0.375
    0.75 0.625
    0.875 1
    0.5 0.75
    0.125 1
    0.25 0.625
    0 0.375
  END
  FILLED TRUE
END
Và khai báo trong lớp điểm là :
SYMBOL ‘ngoisao’
COLOR 255 0 0
Kết quả khi hiển thị lên Pmapper như sau :
Một loại khác của ký hiệu là sử dụng truetype font. Khi khai báo loại ký hiệu này, chúng ta sẽ khai báo như sau
SYMBOL
  NAME "Font1"
  TYPE TRUETYPE
  FONT "FreeSerif"
  CHARACTER "A"
END
Trong đó, NAME là tên chúng ta tự đặt để tiện cho việc gọi font sau này. TYPE là loại ký hiệu, ở đây loại Truetype. FONT là khai báo kiểu chữ dùng để viết chữ chúng ta cần viết. CHARACTER khai báo chữ mà chúng ta muốn dùng làm ký hiệu, ở đây khai báo bằng mã lấy trong ASCII Table. Ví dụ muốn ký hiệu bằng chữ A chúng ta khai báo mã của chữ A là A. Khi thể hiện trên Pmapper, chúng ta có kết quả sau :
Chúng ta có thể lấy mã của các chữ trong ASCII Table sau :
Loại cuối cùng được đề cập đến là ký hiệu loại pixmap. Loại này sử dụng ảnh raster nhỏ để làm ký hiệu. Khai báo ký hiệu dạng pixmap như sau :
SYMBOL
  NAME ‘star’
  TYPE PIXMAP
  IMAGE ‘stern.png’
END
Ở ví dụ trên chúng ta sử dụng một ảnh ngôi sao để làm ký hiệu cho điểm. Khai báo rất đơn giản như bên trên, kết quả dễ dàng trên Pmapper như sau :
Loại này giúp cho việc thể hiện ký hiệu trở nên linh hoạt hơn bởi một số ký hiệu phức tạp chúng ta có thể sử dụng ảnh. Để tạo ra các ký hiệu này chúng ta có thể sử dụng Paint hoặc các phần mềm tạo icon. Đối với Paint, để định nghĩa kích thước của ký hiệu, vào Image\Attributes…Tại đây chúng ta có thể định nghĩa kích thước ký hiệu trong ô width và height. Sau đó, chúng ta có thể tự do vẽ ký hiệu vào.
Một số trường hợp, chúng ta phải kết hợp các ký hiệu thành 1 ký hiệu. Để khai báo loại ký hiệu kết hợp này chúng ta khai báo các ký hiệu đơn trong file ký hiệu giống như ở phần trên. Sau đó, trong phần LAYER cần thể hiện ký hiệu, chúng ta khai báo thêm phần STYLE trong CLASS như sau :
 CLASS
   NAME "Diem"
   STYLE
    SYMBOL 'square'
    COLOR 0 0 255
    SIZE 20
   END #Style
   STYLE
    SYMBOL 'ngoisao'
    COLOR 125 125 125
    SIZE 18
   END #Style
  END # Class
Vậy là bây giờ chúng ta có thể tùy ý thiết kế ký hiệu cho web bản đồ của mình. Vấn đề ở đây có thể hơi mất thời gian 1 chút. ^_^
NNS

Thứ Sáu, 25 tháng 5, 2012

Cơ bản công cụ trong ArcToolbox 2


Tiếp tục, chúng ta sẽ tìm hiểu công cụ Split.
+ Split là công cụ thực hiện một loạt các thao tác Clip. Để hiểu công cụ này thế nào, chúng ta thực hiện ví dụ sau. Tôi có bản đồ các phường như sau :
Bây giờ tôi muốn lấy ra dữ liệu sông suối của từng phường. Tôi thực hiện Split. Khởi động công cụ Split. Chúng ta có giao diện sau :
Input Feature khai báo tên layer muốn thực hiện Split, ở đây chúng ta muốn lấy ra dữ liệu sông suối thì sẽ khai báo lớp sông suối.
Split Features khai báo lớp sử dụng để cắt lớp Input. Ở đây là lớp ranh giới phường.
Split Field khai báo field dùng làm căn cứ để phân chia các lớp xuất. Nghĩa là field được khai báo phải là field có giá trị duy nhất đối với từng đối tượng (mà cụ thể là duy nhất với từng phường). Tôi chọn field tên phường bởi mấy phường này không có tên trùng nhau và kết quả sẽ tạo thành 3 layer với tên là tên của 3 phường.
Target Workspace khai báo thư mục nơi bạn muốn lưu trữ kết quả. Như trong Clip chúng ta phải khai báo tên layer xuất, nhưng trong Split này, tên của lớp xuất đã được xác định trong Split Field nên chúng ta chỉ cần khai báo nơi lưu trữ.
XY Tolerance là tùy chọn và cũng giống như mấy công cụ trước. Click OK. Chúng ta sẽ có 3 layer khác nhau chứa dữ liệu sông suối tương ứng với 3 phường.
Vậy khi tôi khai báo field tên phường trong Split field, nhưng lại có nhiều phường trùng tên (nghĩa là không duy nhất) vậy chuyện gì xảy ra ?
Như bạn thấy trong thông báo đó, khi 2 phường trùng tên, ArcGIS sẽ tạo ra 2 layer trùng tên, và nó sẽ giữ lại cái có trước, cái sau nó sẽ không thực hiện.
+ Table Select dùng để rút những records (hàng) hoặc những features trong input table và lưu chúng trong 1 table mới. Ví dụ, chúng ta muốn lấy ra dữ liệu những phường xã có diện tích lớn hơn hoặc bằng 20.000.000m2 .Khởi chạy công cụ Table Select.
Input Table khai báo layer chứa table cần lấy dữ liệu.
Output Table khai báo nơi lưu trữ và tên Table kết quả.
Expression khai báo biểu thức SQL làm cơ sở để lấy dữ liệu. Nếu không khai báo nó sẽ lấy nguyên Table của layer nhập.
Kết quả thể hiện bên dưới
Vậy là đã hoàn thành nhóm công cụ Extract.
NNS

Thứ Tư, 23 tháng 5, 2012

Cơ bản công cụ trong ArcToolbox


Thay vì ngồi tìm hiểu mớ lý thuyết khô cứng, đau đầu, tôi sẽ tiến hành tìm hiểu từng công cụ trong ArcGIS về khía cạnh thực hiện. Nghĩa là sẽ thực hiện trên dữ liệu cụ thể, ra kết quả cụ thể. Rồi sau đó sẽ tìm hiểu cơ bản lý thuyết bên trong của nó. Như vậy sẽ thú vị và bớt nhàm chán hơn. Về lý thuyết, cũng chỉ tìm hiểu ý tưởng và cách thức nó thực hiện, chứ không đi sâu vào thuật toán (có chăng cũng chỉ là những thuật toán đơn giản, mấy cái phức tạp quá cần có thời gian để tìm hiểu, mà nhiều khi ngồi cả tuần, cả tháng mà cũng không hiểu, ^_^).
Công cụ đầu tiên được đề cập đến là Analysis Tool (công cụ phân tích).
1. Analysis Tool : Trong bộ công cụ này, chúng ta có thể thấy có các công cụ như : Extract, Overlay, Priximity và Statistics. Đầu tiên, tôi sẽ đề cập đến công cụ Extract. Nếu bạn tra từ điển từ chữ Extract nghĩa đại khái là lấy ra, rút ra. Ý nghĩa của các công cụ trong Extract cũng giống vậy. Chúng bao gồm : Clip, Select, Split và Table Select.
+ Clip : để dễ hiểu chúng ta xét ví dụ bên dưới. Giả sử tôi có 2 layer, layer ranh giới hành chính và layer đường giao thông. Bây giờ tôi muốn lấy ra các đường giao thông trong 1 đơn vị hành chính nhất định. Như hình bên dưới tôi muốn lấy ra tất cả các đường giao thông trong khu vực được chọn.
Chạy công cụ Clip, hộp thoại sau sẽ xuất hiện
Chỗ Input Features sẽ khai báo layer mà chúng ta muốn lấy dữ liệu ra (trong trường hợp này là lớp giao thông). Clip Features khai báo lớp sử dụng làm cái khuôn để lấy ra đối tượng khai báo trong Input Features. Output Feature Class khai báo nơi lưu và tên layer mới tạo thành. XY Tolerance là tùy chọn, khai báo cũng được mà không khai báo cũng được. XY Tolerance có đơn vị được khai báo ở phía sau (thường là theo đơn vị của bản đồ). Giả sử nếu bạn khai báo là 0.01 thì nó có ý nghĩa gì ? XY có thể hiểu là tọa độ x,y của 1 đối tượng. 0.01 ở đây thể hiện một phạm vi trên trục x cũng như trên trục y. Khi đó, nếu bạn có 2 điểm có tọa độ x là 1.22 và 1.23 thì hai điểm đó là khác nhau. Còn nếu bạn có 2 điểm có tọa độ x là 1.222 và 1.223 thì 2 điểm đó có tọa độ x như nhau. Bởi sự khác biệt của 2 điểm này là 1.223 - 1.222 = 0.001 <0.01.
Khi đã khai báo xong, click OK, kết quả sẽ tạo thành 1 layer chứa dữ liệu giao thông được rút ra.
Thuộc tính của các đối tượng sẽ được giữ lại. Một điều lưu ý là Input layer có thể là point, line hay polygon, còn clip layer thì bắt buộc phải là polygon.
+ Select : công cụ này giúp lấy ra những đối tượng theo yêu cầu từ đối tượng input. Ví dụ, chúng ta muốn lấy ra một phường từ dữ liệu hành chính của TPHCM. Chúng ta chỉ việc truy vấn SQL để tìm ra phường đó, rồi sử dụng công cụ Select để lấy đối tượng đó ra thành 1 layer mới.
Chẳng hạn chúng ta muốn lấy ra những phường xã có diện tích lớn hơn hoặc bằng 20.000.000m2, chúng ta tiến hành như sau :
Chạy công cụ Select, giao diện xuất hiện
Input Features là dữ liệu gốc cần thực hiện chức năng Select. Output Feature Class khai báo tên layer mới và nơi lưu trữ nó. Phần Expression là tùy chọn, nếu chúng ta không ghi gì vào trong này thì kết quả nó sẽ tạo ra lớp mới giống hệt lớp gốc (cái này giống như copy và paste lớp cũ trên TOC (Table of content) vậy. Với yêu cầu chúng ta đưa ra ban đầu, thì biểu thức nên viết là “AREA”>=20000000. AREA để trong dấu ngoặc kép “” là tên field (trường) trong bảng thuộc tính sử dụng để truy vấn SQL.
Một số hàm SQL có thể gặp ở đây là :
Hàm
Mô tả
=
>=
<=
<> 
LIKE


AND


OR


NOT
Tìm giá trị trong field bằng với giá trị cho trước.
Tìm giá trị trong field nhỏ hơn giá trị cho trước.
Tìm giá trị trong field lớn hơn giá trị cho trước.
Tìm giá trị trong field lớn hơn hoặc bằng với giá trị cho trước.
Tìm giá trị trong field nhỏ hơn hoặc bằng với giá trị cho trước.
Tìm giá trị trong field khác với giá trị cho trước.
Về mặt ý nghĩa nó cũng giống như “=”. Nhưng nó rộng hơn, nó có thể tìm gần đúng. Ví dụ, kết quả của phép truy vấn này có thể là ArcGIS hay ArcView : “Ten” Like ‘Arc%’.
Dùng để kết hợp 2 điều kiện. Ví dụ, “Tuổi”>10 AND “Cao” >1.30. Một đối tượng thõa mãn điều kiện đó khi nó thõa mãn cả 2 điều kiện còn thõa mãn 1 điều kiện trở xuống thì nó không phải là đối tượng cần tìm.
Cũng dùng để kết hợp 2 điều kiện. Ví dụ, “Tuổi”>10 OR “Cao” >1.30. Một đối tượng thõa mãn điều kiện đó khi nó chỉ cần thõa mãn 1 trong 2 điều kiện. Nghĩa là kết quả của phép toán AND cũng nằm trong này.
Có nghĩa là phủ định lại cái cần tìm. Ví dụ, chúng ta muốn tìm tất cả các phường, trừ phường Đa Kao, thì biểu thức sẽ là : NOT “Phuong” = “Đa Kao”.
Sau khi click OK thực thi công cụ Select, chúng ta có kết quả bên dưới :
Phần màu đỏ (rose) là kết quả cần tìm.
NNS

Thứ Ba, 15 tháng 5, 2012

Vẽ thử đường đồng mức từ raster


Như đã trình bày ở phần nội suy đường đồng mức, trước khi vẽ đường đồng mức ArcGIS tiến hành nội suy raster. Kết quả là khu vực cần vẽ đường đồng mức sẽ tạo thành các một lưới các ô vuông, mỗi ô có một giá trị. Muốn vẽ đường đồng mức đòi hỏi phần mềm phải chuyển raster đó thành đường. Một điều luôn nhớ rằng giá trị của các ô là giá trị độ cao. Vì vậy, chúng ta có thể coi tâm của ô có độ cao là giá trị của ô. Từ đó, chúng ta có thể sử dụng phương pháp nội suy giải tích để có thể vẽ được đường đồng mức. Có thể xem xét ví dụ sau để hiểu phương pháp giải tích.
Ví dụ, cho 2 điểm A và B có độ cao lần lượt là 15.6m và 20.7m. Đoạn SAB là 10cm, khoảng cao đều là 2m. Dễ dàng suy ra 3 đường bình độ chẵn là 16m, 18m và 20m. Chênh cao giữa A và B là hAB = 20.7-15.6=5.1m. Gọi ΔE1, ΔE2, S1, S2 là chênh cao và khoảng cách ngang của điểm giao đường bình độ 16m, 20m với đoạn AB. Theo định lý Thales, chúng ta có


Thay số vào, chúng ta có S1=0.8cm, S2=1.4cm. Xác định vị trí  điểm này trên đoạn AB, sau khi đã xác định 2 điểm này, xác định trung điểm của đoạn tạo bởi 2 điểm vừa xác định, chúng ta tìm được vị trí của đường bình độ 18m.
Nội suy raster là để cho việc vẽ đường đồng mức được đơn giản hơn và để đường đồng mức gãy khúc ít hơn. Tuy nhiên, để đường mức trơn hơn thì có thể được thực hiện bằng 1 trong 3 cách sau : làm trơn bề mặt raster sử dụng để nội suy đường đồng mức, hiệu chỉnh đường đồng mức cái, hoặc cả hai.
Phương pháp làm nhẵn bề mặt sẽ thực hiện 1 cái gọi là FocalStatistics trên bề mặt raster với giá trị trung bình thống kê.
Hiệu chỉnh đường đồng mức cái liên quan đến việc offset đường đồng mức đó khi nó không qua chính xác điểm trong lưới.
Kết hợp 2 phương pháp trên sẽ làm cho đường đồng mức trơn mịn hơn.
Vậy FocalStatistics (FS) là gì ? FS kiểm soát loại lân cận và tính thống kê.
Hình dạng lân cận là annulus, circle, rectangle, wedge, irregular và weight. Chúng ta sẽ đi tìm hiểu vài cái đơn giản thôi.
- Annulus : bao gồm một hình tròn nhỏ bên trong và một hình tròn lớn bên ngoài. Những ô của raster mà nằm trong phần giữa của 2 bán kính sẽ được coi là lân cận. Khi đó chúng sẽ được sử dụng để tính.
- Circle : bất cứ ô nào nằm trong đường tròn bao quanh ô cần tính thì được xem là lân cận của nó.
- Rectangle : tọa độ x,y của ô cần tính trong khu vực lân cận xác định bởi góc trên bên trái được xác định theo phương trình :
X= (độ rộng của lân cận + 1)/2
Y=(độ cao của khu vực lân cận + 1)/2
Nếu x,y lẻ thì được làm tròn, ví dụ, nếu hình chữ nhật lân cận kích thước 5x5 thì x,y=3,3. Còn nếu hình chữ nhật là 4x4 thì x,y=2,2.
- Irregular : cho phép khai báo hình dạng vùng lân cận bất kỳ. Giá trị x,y của ô cần tính nằm trong vùng lân cận có giá trị x,y là :
X= (rộng +1)/2
Y=(cao + 1)/2
Sau khi đã chọn được loại lân cận, chúng ta sẽ tiếp tục chọn loại thống kê. Các loại thông kê bao gồm : Max, Min, Mean, Median,…Thường là chọn trung bình thống kê cho gần gũi.
Thử tính toán ví dụ sau, chúng ta có 1 ảnh raster như bên dưới
13
14
16
20
23
14
14
16
19
24
18
16
16
18
22
24
22
19
19
21
30
27
23
20
20
Sử dụng rectangle 3x3, chúng ta có kết quả sau
14
15
18
22
23
14
15
18
22
24
16
16
17
21
23
20
18
18
20
22
26
23
20
20
21
Sử dụng phương pháp giải tích ở trên vẽ thử đường đồng mức. Nhắm nhắm thôi, chứ chia khoảng chưa chính xác lắm.
NNS
Tham khảo : http://edndoc.esri.com/arcobjects/9.2/net/shared/geoprocessing/spatial_analyst_tools/how_focal_statistics_works.htm