Trang

Thứ Năm, 2 tháng 8, 2012

Đi xem phim trong rạp

    Đi vô rạp coi phim không còn xa lạ với mọi người nhất là những người sống ở các thành phố lớn. Tôi còn nhớ một lần đi xem phim Kungfu Panda 2 với bạn tôi. Tôi xem tại 1 rạp khá lớn. Trên vé ghi giờ chiếu là 8h. Đúng 8h tôi vào ghế ngồi nhưng thật lạ là trong rạp rất ít người. Có lẽ những người ở đây đã quá hiểu chuyện này rồi nên họ đến muộn. Đúng 8h chiếu phim nhưng không phải phim tôi coi mà là quảng cáo. Nào là nước ngọt, bánh snack,...và quảng cáo phim. Cảm giác giống như mình bỏ tiền vô rạp xem quảng cáo vậy. Vấn đề này không xa lạ với tôi, bởi ở nhà xem truyền hình cáp phải trả tiền nhưng vẫn quảng cáo đầy dẫy đó. Trước phim quảng cáo, giữa phim quảng cáo, kết thúc phim quảng cáo. Có khi cứ chiếu chừng 15 phút là quảng cáo. Nhưng tiền thuê bao truyền hình cáp không nhiều lắm nên thôi kệ nhắm mắt chấp nhận. Nhưng đằng này vô rạp mua một vé gần bằng 1 tháng xem truyền hình cáp ở nhà để xem quảng cáo. Nhưng cũng đành chịu, chẳng biết kêu ai, cắn răng chịu đựng thôi.
   Nói về quảng cáo, nếu như quảng cáo nước ngọt, hay các sản phẩm tiêu dùng thì mặc dù chói mắt thật nhưng còn đỡ hơn khi coi quảng cáo phim. Tôi đi coi Kungfu Panda 2, là một bộ phim hoạt hình được rất nhiều người yêu thích, đặc biệt là trẻ em. Nên cũng dễ hiểu là khi đó trong rạp rất nhiều trẻ em. Thế nhưng không biết những người biên tập đoạn quảng cáo đó nghĩ thế nào mà lại quảng cáo phim Việt Nam. Không phải tôi chê phim Việt Nam, mà phim Việt Nam ra rạp bây giờ toàn là những phim lấy chủ đề da thịt. Khán giả chủ yếu là con nít vậy mà chiếu trailer phim Việt Nam đó toàn những cảnh không phù hợp. Một lần nữa chỉ biết nhìn mấy đứa trẻ hồn nhiên rồi lắc đầu ngán ngẩm.
   Về phim, tôi thấy sự khác một cách đáng ngạc nhiên về cái cách người ta xem phim. Tôi còn nhớ ngày đó, đài truyền hình chiếu phim Những cuộc phiêu lưu của Sinbad, báo chí lúc đó kêu ca trách mắng nhà đài rất nhiều về phim đó. Bởi họ nói trong phim diễn viên ăn mặc quá hở hang. Nếu bạn có xem phim đó thì bạn cũng biết, diễn viên mặc váy, hoặc phần trên mặc như bikini. Trong phim, các diễn viên diễn cảnh nóng lắm cũng là hai diễn viên hôn nhau. Còn bây giờ thì sao, xem một số phim Việt Nam bạn sẽ biết. Mệt (đó cũng là lý do vì sao tôi thích coi phim hoạt hình hơn, vừa vui vừa trong sáng). Tại sao bây giờ người ta không trách mắng như hồi đó, tôi không biết, có thể người ta sống thoáng gì đó. Nhưng tôi chỉ thấy một sự vô trách nhiệm đối với trẻ em.
Người lớn ơi hãy tạo cho trẻ em một tâm hồn trong sáng thơ ngây.
NNS

Thứ Tư, 1 tháng 8, 2012

Geosimulation


Đây là một lĩnh vực rất khó. Tôi tò mò nên đọc qua cho biết. Bên công nghệ thông tin thì tôi không biết sao, chứ bên lĩnh vực thông tin địa lý thì tôi chưa thấy có nghiên cứu nào về lĩnh vực này ở Việt Nam (ở trường tôi học cũng không thấy và các bài báo trong hội nghị GIS toàn quốc năm rồi (2011) tôi cũng không thấy). Tình cờ trong lúc tìm kiếm tài liệu làm luận văn tôi phát hiện lĩnh vực này. Bây giờ rãnh rỗi tìm hiểu cho vui. Phần này chủ yếu là tổng hợp những gì tôi đọc được (thường tôi đọc tài liệu, sau đó tôi sẽ tóm lược lại để dễ nhớ). Paul M. Torrens là cái tên tôi thấy xuất hiện nhiều trong lĩnh vực này.
Nhìn vào thuật ngữ chúng ta cũng có thể thấy đó là sự kết hợp của 2 lĩnh vực khoa học thông tin địa lý (geo) và khoa học máy tính (simulation). Geosimulation nhìn các vấn đề như là kết quả của một tập hợp các sự vận động của những đối tượng tương tác nhau, trong vấn đề về đô thị thì các đối tượng này thường là cá nhân hộ gia đình, con người, và đơn vị bất động sản hay theo thời gian bằng cách tiếp cận thời gian thực. Geosimulation giống với phương pháp truyền thống là microsimulation, nhưng có một vài điểm giúp chúng ta phân biệt hai loại này :
+ Thứ nhất là đơn vị không gian
+ Thứ hai là liên quan đến những mối quan hệ không gian.
+ Thứ ba là thời gian
+ Thứ tư là mục tiêu của sự mô phỏng.
Nghiên cứu trong geosimulation hầu hết tập trung vào những kỹ thuật cải tiến công nghệ mô phỏng không gian : nguồn gốc của những thuật toán mới phục vụ việc xử lý không gian, phương pháp luận mới về khái niệm những thực thể không gian và những mối quan hệ giữa những thực thể đó, ứng dụng những mô hình mô phỏng trong những vấn đề của thế giới thực, và tạo phần mềm mới cho những thí nghiệm của hệ thống địa lý. Nhiều ý tưởng trong geosimuation được lấy từ các lĩnh vực khác như : khoa học máy tính, vật lý, hóa học, toán học, kinh tế, sinh thái học và sinh học. Trong đó, khoa học máy tính liên quan gần gũi nhất, đặc biệt là trí thông minh nhân tạo (artificial intelligence), cuộc sống nhân tạo (artificial life), và lập trình hướng đối tượng.
Các vấn đề liên quan đến đô thị thường hấp dẫn những người làm mô phỏng đặc biệt là những người làm về geosimulation. Hai dạng mô hình thường được sử dụng trong geosimulation là cellular automata và multi-agent system.
Vài nét về cellular automata trước, còn multi-agent system để sau.
Cellular automata (hay dạng số ít là cellular automaton, viết tắt CA) là một mô hình rời rạc được nghiên cứu trong lý thuyết khả năng tính toán (computability theory hay recursion theory), toán học, vật lý, khoa học phức hợp (complexity science), sinh học lý thuyết (theoretical biology), mô hình vi cấu trúc (microstructure modelling). Trong đó, chúng ta thấy có khoa học phức hợp, đây là lĩnh vực đáng chú ý, chắc phải dành thời gian đọc qua cho vui. CA bao gồm lưới những cell đều nhau, mỗi cell có một số trạng thái xác định, như “on” hay “off”. Lưới có thể có nhiều chiều . Đối với mỗi cell, một tập các cell lân cận, gọi là hàng xóm (thường bao gồm luôn cả bản thân cell đó) được định nghĩa tương đối theo cell đó. Trạng thái của các cell được xác định trong từng vòng lặp dựa trên trạng thái các cell hàng xóm và bảng quy luật. Để hiểu rõ hơn, chúng ta có thể xem xét một dạng cellular automaton đơn giản nhất là elemantary cellular automata (ECA). ECA có lưới dạng 1 chiều (dạng đường) các cell, mỗi cell có giá trị là 0 hoặc 1, và những quy luật chỉ dựa trên giá trị các hàng xóm (cell bên trái, cell bên phải và chính cell đó) để xác định trạng thái cell đó trong vòng lặp tiếp theo. Sự phát triển của ECA có thể được mô tả bởi 1 bảng trạng thái của 1 cell được chọn sẽ có trong vòng lặp kế tiếp dựa trên giá trị của chính nó, những cell bên trái và bên phải của nó. Từ đó sẽ có 2x2x2 = 8 trạng thái có thể có của 3 cell (2 cell lân cận và bản thân cell đó) , có tổng cộng 28 = 256 ECA. Hình bên dưới thể hiện bảng luật 30 của ECA.
ElementaryCA30Rules
 Vậy thì từ đâu có luật đó ? Dựa vào các số nhị phân. Cụ thể, như chúng ta thấy ở trên, số 30 biểu diễn ở dạng nhị phân là 0001110. Như vậy, trong automaton thứ nhất tính từ trái sang, nếu hai cell hàng xóm là đen, bản thân cell đó là đen, thì ứng với số 0 đầu tiên bên trái trong số 30 ở dạng nhị phân. Nghĩa là cell đó ở vòng lặp tiếp theo sẽ là trắng (giá trị là 0). Từ đó, chúng ta có thể dễ dàng hiểu các luật còn lại (các luật từ 0 đến 255). Trên cơ sở luật 30, giả sử chúng ta có 1 cell có trạng thái là 1 (màu đen) ban đầu, trong 20 vòng lặp, chúng ta sẽ có kết quả sau :
ElementaryCA30
Trong ví dụ trên, 2 vấn đề cần làm rõ hơn là loại lưới và hàng xóm. Loại lưới là một trong số những thuộc tính cơ bản của cellular automata. Đơn giản nhất là lưới 1 chiều như ví dụ trên. Bên cạnh đó, còn có các lưới 2 chiều có các dạng như : tam giác, hình vuông và lục giác. Đối với các lưới nhiều chiều hơn thí chúng ta chưa đề cập đến. Hình bên dưới thể hiện các dạng lưới :
Grids
Vấn đề thứ 2 là hàng xóm. 2 loại hàng xóm thường gặp là hàng xóm Moore (hàng xóm dạng vuông) và hàng xóm von Neumann (hàng xóm dạng kim cương). Hàng xóm Moore là loại hàng xóm có dạng hình vuông bao quanh cell cho sẵn. Hàng xóm Moore trong phạm vi r có thể được định nghĩa như sau :
 N_((x_0,y_0))^M={(x,y):|x-x_0|<=r,|y-y_0|<=r}.
Số cell trong hàng xóm Moore là (2r+1)2.
MooreNeighborhood
Hàng xóm von Neumann tập hợp những cell các cạnh tiếp xúc với cell cho sẵn. Hàng xóm von Neumann được định nghĩa như sau :
 N_((x_0,y_0))^v={(x,y):|x-x_0|+|y-y_0|<=r}.
Số cell trong hàng xóm von Neumann là 2r(r+1)+1
vonNeumannNeighborhood
Một dạng CA 2 chiều rất nổi tiếng là Game of Life của Convay. Một ví dụ của Game of Life được thể hiện bên dưới.
Chúng ta thấy Game of Life rất đơn giản trong hình bên trên, nhưng thực tế nó ứng dụng rất lớn trong nhiều lĩnh vực. Có thể download phần mềm golly về để xem cho vui. Download tại đây : http://golly.sourceforge.net/
Về Cellular Automata nên biết qua một nhân vật là Stephen Wolfram.
NNS

Thứ Sáu, 20 tháng 7, 2012

Bài học từ anh xe ôm

Một câu chuyện chạm mạnh vào lòng tự ái của tôi. Nhưng với khía cạnh tích cực, tôi thầm cảm ơn anh xe ôm đã làm cho sự ham học hỏi của tôi trỗi dậy. Sau này, mỗi lần tôi gặp khó khăn trong việc gì đó, câu chuyện như một liều thuốc an thần giúp tôi cố gắng tìm cách giải quyết công việc.
 Câu chuyện xảy ra vào năm cuối đại học, khi đó, tôi đang đi thực tập tốt nghiệp tại một trung tâm gần Thảo Cầm Viên. Cũng như mọi ngày,sáng hôm đó, tôi và thằng bạn cùng đến trung tâm để thực tập. Chúng tôi gửi xe tại nhà xe của trung tâm. Bình thường, hai chúng tôi thường đi về chung, nhưng hôm ấy thằng bạn tôi có việc nên xin về sớm. Đến chiều,như mọi ngày, khi mọi người trong trung tâm ra về, tôi cũng ra về. Khi ra nhà xe lấy xe, tôi mới phát hiện ra chìa khóa xe bị mất. Tôi chạy kiếm khắp nơi nhưng vẫn không thấy nó ở đâu. Những giọt mồ hôi bắt đầu chảy xuống khuôn mặt lo lắng của tôi. Thứ nhất, chỗ thực tập khá xa chỗ tôi ở trọ. Thứ hai, tôi tuy ở thành phố mấy năm trời nhưng tôi lại ít đi chơi nên không có nhiều bạn và cũng không rành đường sá. Và điều quan trọng nhất là tôi không biết gì về xe máy. Lúc trước tôi toàn đi xe đạp và đi bộ tới trường. Mấy cài chuyện về xe máy nghe thằng bạn cùng phòng tôi nói nhiều lắm nhưng tôi chẳng quan tâm. Tôi đành dắt bộ xe ra đường để tìm chỗ sửa nhưng đoạn đường này là đường lớn trong thành phố nên không thấy có tiệm sửa xe nào. Tôi bắt đầu lo lắng và hầu như không nghĩ được cách gì khác ngoài việc cứ dắt bộ về, nhưng đường về tới nhà lại khá xa. Trời cũng đã bắt đầu mưa và màn đêm cũng dần buông xuống làm tôi càng cảm thấy lo lắng hơn bởi buổi tối rất khó phân biệt đường ở thành phố. Bỗng một anh xe ôm chạy lại gần tôi và hỏi: "Xe bị sao vậy, có cần sửa không?". Tôi vui mừng trả lời : "Tôi bị mất chìa khóa rồi. Không chạy được." Anh xe ôm bảo tôi đưa xe lên vỉa hè. Chỉ một thao tác đơn giản là mở hộp đèn ra và rút dây ngay ổ khóa, chiếc xe đã khởi động lại được. Tôi vui mừng hỏi anh xe ôm bao nhiêu tiền. Anh trả lời " Mười ngàn". Mười ngàn là một món tiền lớn lúc đó, bởi sáng tôi ăn bò kho có 3000, trưa và chiều ăn cơm sườn mỗi dĩa cũng có 5 ngàn thôi. Tôi đưa tiền và không quên cảm ơn anh. Trước khi đi anh xe ôm quay lại nhìn tôi, cười mỉa mai và nói: " Mất mười ngàn mà học được điều mới, đúng không ?". Tôi như bị một nhát chí mạng vào đầu. Gương mặt đó, nụ cười đó còn sắc bén hơn bất cứ con dao nào trên thế giới này. Trên đường về nhà, càng nghĩ tôi càng thấy đau thật. Không phải đau vì mất mười ngàn, mà đau vì tôi vẫn luôn cho mình là thông minh, là giỏi mà chỉ có mỗi một việc nhỏ như thế mà không biết làm, để cho người ta cười vào mặt mình.
Sau này khi làm bất cứ việc gì thường thì tôi chỉ làm 1 mình, ít có nhờ cậy ai lắm. Như hồi làm luận văn cũng vậy, thầy hướng dẫn đâu có hướng dẫn tôi gì đâu, tất cả từ ý tưởng đến nội dung, tôi tự làm hết, cái nào không biết tôi lên mạng tìm hiểu. Một điều tôi luôn tự nhủ là mình hãy tự cố gắng, trước khi nghĩ đến việc nhờ người khác.
NNS

Thứ Năm, 28 tháng 6, 2012

Ý tưởng kinh doanh mới

Sau những ngày rong ruổi trên các nẻo đường thành phố, tôi nhận thấy một ý tưởng kinh doanh mới đó là kinh doanh các sản phẩm làm từ da... chuột. Một điều dễ nhận thấy là nguồn nguyên liệu của mặt hàng này rất phong phú. Chỉ cần đi lòng vòng trên các nẻo đường là bạn có thể có một số lượng lớn nguyên liệu. Da chuột còn tươi do người dân ném ra đường cũng có, da phơi khô đã được ép bởi các xe qua đường cũng có,...Nếu bạn muốn trực lấy da từ chuột sống, bạn có thể tổ chức một đội ngũ chuyên bắt chuột ở các công viên, những nơi công cộng hoặc đến từng nhà người dân. Sau đó, chuột sẽ được lấy phần da cho việc chế biến sản phẩm để kinh doanh, còn phần thịt có thể bán cho các quán nhậu bởi tại đây thì chuột gì cũng tên là chuột đồng trên menu. Một điều bạn có thể yên tâm là nguồn nguyên liệu chuột không bao giờ cạn kiệt.
Tôi hy vọng sẽ giúp ích cho những người đang tìm kiếm ý tưởng kinh doanh.
NNS

Lịch sử GIS

Trong năm 1854, John Snow đã thể hiện sự bùng phát bệnh dịch tả ở Luân Đôn bằng việc sử dụng các điểm (points), các điểm này thể hiện vị trí của từng trường hợp cụ thể. Đây có thể xem là việc sử dụng phương pháp địa lí sớm nhất. Nghiên cứu của Snow về sự phân bố bệnh dịch tả dẫn ông đến nguồn gây bệnh, một máy bơm nước bị ô nhiễm nằm tại vị trí trung tâm của đợt bùng phát dịch tả này.
Trong khi những thành phần cơ bản liên quan đến địa hình (topography) và những chủ đề đã có sẵn trước đó trong ngành bản đồ, thì bản đồ của Snow là duy nhất bởi lần đầu tiên sử dụng những phương pháp bản đồ không chỉ để thể hiện mà còn để phân tích nhóm (cluster) những vấn đề liên quan đến địa lý.
Những năm đầu thế kỷ 20 đã chứng kiến sự phát triển của ngành thuật in ảnh bằng bản kẽm (photozincography), kỹ thuật này cho phép những bản đồ được chia thành các layer, chẳng hạn 1 layer về thực phủ, một layer về sông ngòi,... Kỹ thuật này đặc biệt được sử dụng cho việc in những đường đồng mức (contours) (bởi việc vẽ những đường này rất khó khăn và việc chia thành layer riêng giúp tránh được sự nhầm lẫn của người vẽ). Công việc này trước kia được vẽ trên những tấm kính nhưng sau đó, film nhựa (plastic film) được sử dụng do ưu điểm là nhẹ hơn, chiếm ít không gian lưu trữ và ít giòn hơn. Khi tất cả các layer được hoàn thành, chúng sẽ được kết hợp vào trong 1 ảnh sử dụng một camera chuyên dụng lớn (gọi là process camera). Khi màu được đưa vào, ý tưởng về việc chia thành từng lớp cũng được sử dụng để tạo ra các màu in riêng biệt. Khi mà việc sử dụng layer trở thành trở thành một trong những đặc trưng điển hình của GIS hiện đại, thì quá trình chụp ảnh được mô tả ở trên không được xem xét trong GIS.
Sự phát triển của phần cứng máy tính được thúc đẩy bởi nghiên cứu vũ khí hạt nhân dẫn đến những ứng dụng của việc thành lập bản đồ trên nền máy tính trong đầu những năm 1960.
Năm 1960 cũng chứng kiến sự phát triển của việc vận hành GIS thực sự ở Ottawa, Ontario, Canada của Cục Lâm Nghiệp và Phát triển Nông thôn Liên bang. Được phát triển bởi tiến sĩ Tomlinson, khi đó nó được gọi là Hệ thống thông tin địa lý Canada (CGIS) và được sử dụng để lưu trữ, phân tích, và thao tác trên dữ liệu được thu thập cho Canada Land Inventory (một nỗ lực xác định khả năng sử dụng đất cho vùng nông thôn Canada bằng việc thành lập bản đồ thông tin về thổ nhưỡng, nông nghiệp, giải trí, cuộc sống hoang dã, lâm nghiệp, và sử dụng đất ở tỷ lệ 1:50.000. Một nhân tố đánh giá sự phân loại cũng được đưa vào trong phân tích.
CGIS là một sự cải tiến những ứng dụng vẽ bản đồ trên nền máy tính khi nó cung cấp khả năng chồng lớp (overlay), đo lường và quét/số hóa. Nó hỗ trợ một hệ thống tọa độ quốc gia mà bao phủ toàn bộ lục địa, những đường được mã hóa gọi là arc có quan hệ (topology) với nhau và nó lưu trữ thông tin vị trí và thuộc tính trong những file khác nhau. Và do đó, Tomlinson được coi là cha đẻ của GIS, đặc biệt là việc ông sử dụng chồng lớp trong việc thúc đẩy phân tích không gian của dữ liệu địa lý.
CGIS tồn tại đến những năm 1990 và đã xây dựng một CSDL về tài nguyên đất ở dạng số rất lớn ở Canada. Nó được phát triển như là một hệ thống khung nền trong việc hỗ trợ tỉnh và liên bang trong việc quy hoạc và quản lý tài nguyên. Sức mạnh của nó được thể hiện ở việc phân tích trên khu vực lục địa rộng lớn với CSDL phức tạp. Và CGIS không bao giờ trở thành hệ thống thương mại được.
Trong năm 1964, Howard T. Fisher lập phòng thí nghiệm Đồ họa máy tính và phân tích không gian ở Harvard Graduate School of Design, nơi mà một số quan trọng những khái niệm trong kiểm soát dữ liệu không gian được phát triển và trong những năm 1970, đã phân phối mã nguồn và hệ thống phần mềm như SYMAP, GRID, và ODYSSEY (được xem là nguồn của các sự phát triển các phần mềm thương mại ngày nay).
Đầu những năm 1980 M&S Computer (mà sau này trở thành Intergraph) cùng với Bentley Systems Incorporated xây dựng nền tảng CAD, (Environmental Systems Research Institute) ESRI, (Computer Aided Resource Information System) CARIS, (Earth Resource Data Analysis System) ERDAS nổi lên như những phần mềm thương mại GIS, đã thành công trong việc kết hợp nhiều đặc trưng của CGIS, kết hợp phương pháp thời kỳ đầu là tách thông tin không gian và thuộc tính với phương pháp thời kỳ thứ hai là sắp xếp thuộc tính vào trong những cấu trúc CSDL. Song song đó, sự phát triển của hai hệ thống công cộng (MOSS và GRASS GIS) bắt đầu từ những năm 1970 đến đầu những năm 1980.
Cuối thế kỷ 20, sự phát triển nhanh chóng của những hệ thống khác nhau đã được hợp nhất và chuẩn hóa trên một vài nền tảng và người sử dụng bắt đầu khám phá khái niệm dữ liệu GIS thông qua Internet, đòi hỏi chuẩn dữ liệu và cách thức truyền dữ liệu. Gần đây, sự phát triển của các gói phần mềm mã nguồn mở chạy trên nhiều hệ điều hành và có thể tùy biến để thực thi những nhiệm vụ cụ thể.
Dịch từ : http://en.wikipedia.org/wiki/Geographic_information_system
Bài viết tuy hơi lộn xộn nhưng phần nào thể hiện được lịch sử GIS, hiện nay thì WebGIS đã trỏ nên rất quen thuộc với mọi người. Và tôi thấy người ta cũng bắt đầu đề cập đế Cloud GIS. Lâu rồi không có thông tin, ây da tụt hậu rồi.
NNS

Thứ Ba, 26 tháng 6, 2012

Học thêm của học sinh trung học


Thời học sinh trung học, hầu như ai cũng đã trải qua giai đoạn học thêm. Thật ra học thêm không có gì xấu, ở trường thầy cô chỉ dạy những gì cơ bản nhất, dạy ngắn gọn nhất nên những kiến thức bạn học được không nhiều và khả năng áp dụng của bạn sẽ gặp nhiều khó khăn. Cụ thể, đối với môn toán, trong trường học sinh sẽ học về định lý, nhưng nếu muốn áp dụng định lý đó trong 1 bài tập cụ thể thì không phải dễ. Thường thầy cô chỉ cho được chừng 1 ví dụ để áp dụng, nhưng nhiêu đó chưa đủ để học sinh có thể hiểu hết định lý hay áp dụng vào bài toán bất kỳ là rất khó. Bên cạnh đó, hầu hết học sinh đều thụ động, giáo viên dạy gì thì học đó, không dạy thì không học, sách vở có sẵn cũng ít khi nào dở ra xem nên việc tự tìm hiểu là hầu như không có. Do đó, học thêm trở thành một nhu cầu thiết yếu để học sinh có cơ hội hiểu rõ hơn về cái mình học, áp dụng được và mở rộng được vấn đề. Đây là cái lợi có thể dễ dàng nhận thấy. Tuy nhiên, còn nhiều vấn đề phức tạp nằm bên trong cái vẻ ngoài đơn giản đó.
Nhiều khi đi học thêm như đi chơi vậy. Thầy cô không thể kiểm soát nổi học sinh, vào học chúng chỉ nói chuyện, sau khi về không về nhà mà đi chơi. Hoặc lấy cớ đi học thêm nhưng không đi mà đi chơi. Cái này là do học sinh, tôi không đề cập đến.
Điều tôi cần nói là giáo viên. Không nói tới chuyện trình độ giáo viên. Một thực trạng ngày nay là giáo viên đang cạnh tranh dạy thêm. Những giáo viên có tiếng dạy giỏi thì học sinh học đông, trong khi những giáo viên ít tiếng tăm thì ít hoặc thậm chí không ai học. Điều này dẫn đến lòng đố kỵ, và học sinh sẽ lãnh hậu quả. Giáo viên đó sẽ giảng dạy sơ sài trên lớp và tìm kiếm những vấn đề khó để cho học sinh làm kiểm tra. Kết quả học sinh bị điểm thấp và ảnh hưởng đến thành tích học tập cả năm. Muốn giải quyết thì chỉ có nước đi học thêm ở giáo viên đó thôi, mặc dù học sinh chán nản không muốn đi, nhưng không đi không được. Trường hợp của em tôi là một ví dụ, môn toán đi học thêm ở 1 cô có tiếng nhất trường, nhưng vô lớp học toàn đạt điểm thấp, và cô giáo dạy trong lớp còn nói là “cô biết em đi học cô khác”. Thế là em tôi phải về xin tiền đi học cô đó, về sau điểm số luôn đứng hàng top trong lớp. Mà nói chi xa, bản thân tôi cũng bị rồi. Hồi tôi còn học cấp 3, môn Vật lý đối với tôi là một thảm họa, vô lớp ông thầy chẳng dạy gì cả, cứ cho bài tập, rồi hỏi đứa nào biết lên bảng làm. Thử hỏi không dạy lý thuyết, cứ cho bài tập, biết gì mà làm. Vậy mà mấy đứa kia chen nhau lên làm mới hay chứ. Còn kiểm tra, mới đọc đề xong, chừng 5 phút sau là đã có một nhóm đứa tranh nhau nộp. Còn tôi ngồi hoài chẳng biết làm sao. Mà ông thầy đó chơi trò, 10 đứa nộp đầu tiên điểm cao nhất là 10, 10 đứa kế tiếp là 9,…Tôi thì nhờ nhỏ bạn kế bên chỉ là chủ yếu, mà nó làm xong mới chỉ, nên điểm cao nhất chỉ là 7 thôi. Sau này, tôi thắc mắc hỏi sao mấy đứa đó giỏi thế, nhỏ bạn tôi mới nói là vì trong lớp học thêm thầy đã cho công thức rồi, cứ vậy thế số vô tính thôi. Hay thật. Nhờ ông thầy đó dạy mà mấy đứa luôn đạt điểm cao đó rớt đại học hết. Lớp tôi chỉ đậu vài đứa, trong đó có tôi, giờ nghĩ lại cũng cám ơn ông thầy đó, nhờ ổng mà tôi biết thế nào là tự học.
Mà nếu như đi học thêm các môn chính có khả năng thi tuyển thì cũng không nói gì, còn đằng này, đi học thêm vẽ, học thêm giáo dục công dân, mới chán chứ. Bởi nếu không học thêm, điểm số mấy môn này luôn thấp, ảnh hưởng đến thành tích cuối năm. Em tôi ngày đó về xin tiền mẹ đi học thêm vẽ, tôi hỏi bộ em thích vẽ hả. Nó nói nếu không học thì điểm luôn dưới trung bình, khống chế kết quả học tập. Tôi lấy mấy cái hình nó vẽ ra coi, không đẹp nhưng không đến nỗi xấu để đạt điểm 3, điểm 4. Từ ngày đi học vẽ điểm 10 luôn xuất hiện. Tôi hỏi đi học thêm vậy thầy dạy gì. Nó nói vô thầy cho ngồi can cái hình mà sắp kiểm tra, vậy thôi. ^_^.
Một chuyện tôi nghe em tôi kể lại mà thấy rất buồn. Nhỏ bạn của nó nhà nghèo, không có tiền đi học thêm. Nhưng nó rất siêng năng, chăm chỉ, năm nào cũng là học sinh giỏi. Năm nó học lớp 9, vô học môn có khả năng thi tuyển, cô không dạy gì hết, chỉ đưa bài tập rồi cho kết quả. Bà cô còn nói muốn biết thì đi học thêm đi. Mà tiền học thêm bà ta lấy rẻ thôi, 1.5 triệu 1 em, bả nói ở trường em tôi học (là 1 trường lớn trong huyện) thầy cô ở đó lấy mắc hơn nhiều. Em tôi nói, nó học thêm cô chủ nhiệm nó cũng dạy môn đó, có 500 ngàn, bằng 1/3.
Tôi không biết nói gì hơn, trong thời buổi kinh tế khó khăn này, đúng là kiếm tiền rất khó khăn, nhưng không phải vì thế mà bất chấp tất cả. Một đứa học sinh học giỏi, chăm chỉ như vậy, mà nỡ lòng nào đối xử với nó vậy. Nó không có tiền đi học thêm thì nó sẽ không thể có điều kiện học sao ? Thật không công bằng.
Còn chuyện mấy chuyện gian lận thi cử báo chí đưa tin ở một trường nào đó. Tôi không thấy bất ngờ, bởi nếu bạn có quen với giáo viên thì bạn sẽ hiểu. Áp lực thành tích, áp lực phổ cập. Thành tích thì ai cũng biết rồi, còn áp lực phổ cập là gì ? Tôi lấy ví dụ, nếu một học sinh bỏ học trung học cơ sở, thì giáo viên phải đến nhà năn nỉ nó đi học, nếu năn nỉ không được thì giáo viên sẽ bị khiển trách bởi chỉ tiêu phổ cập không đáp ứng. Còn nếu năn nỉ được thì khi nó vô học phải ráng nâng niu nó, bởi không nó nghỉ nữa thì phải đi năn nỉ. Nó thi thì phải tìm cách cho nó đậu. Đại khái là vậy. Bởi vậy vì sao mà ngày nay ít thất giáo viên đánh học sinh học dở. Tôi nhớ hồi tôi còn học cấp 2, năm lớp 9, đứa nào mà không làm được bài, không thuộc bài, bất kể trai hay gái đều cuối xuống cho cô đánh. Nhờ vậy mà năm đó lớp tôi ai cũng đậu tốt nghiệp. Còn bây giờ ai cũng đậu tốt nghiệp nhưng vì cái khác.
Đó là những gì tôi thấy, tôi nghe người ta kể. Có lẽ khiến tôi bi quan nhưng tôi vẫn hi vọng đó chỉ là những “con sâu” nhỏ nhoi mà thôi.
 NNS

Thứ Tư, 6 tháng 6, 2012

Sử dụng ký hiệu trong Pmapper 2 - Ký hiệu dạng đường


Đối với ký hiệu cho các đối tượng dạng đường thì việc khai báo ký hiệu có khác chút ít. Ba thông số cần khai báo khi định nghĩa ký hiệu đường là LINECAP, LINEJOIN và LINEJOINMAXSIZE. Trong đó, LINECAP là việc xác định đầu cuối của đường, ví dụ đầu cuối của đường có thể đầu giống như đầu cây cơ trong bida (butt), các thông số có thể khai báo là : butt, round, square hay triangle. Hình bên dưới thể hiện LINECAP square và round
LINEJOIN định nghĩa hình dạng chỗ thay đổi hướng của đường. Một số thông số có thể được khai báo là round, miter, hay bevel. Hình bên dưới giúp chúng ta hiểu rõ hơn :
Thông số LINEJOINMAXSIZE chỉ được khai báo khi loại miter được sử dụng trong LINEJOIN. Hình bên dưới thể hiện giá trị m sẽ được khai báo (mặc định là 3).

Trong phiên bản này loại cartoline của ký hiệu đường không còn đường sử dụng nữa, nên nếu chúng ta lấy máy file khai báo symbol có khai báo loại cartoline thì nó sẽ báo lỗi.
Ký hiệu đường trong Mapserver là sự kết hợp của các ký hiệu đơn giản, ví dụ chúng ta muốn thiết kế 1 ký hiệu nét đứt cho đường, chúng ta chỉ cần sử dụng ký hiệu 1 đường gạch ngang và khai báo các khoảng đứt. Cụ thể, để khai báo đường gạch ngang, chúng ta khai báo như trong phần ký hiệu điểm như sau :
SYMBOL
  NAME 'duong_ngang'
  TYPE vector
  POINTS
    0 0.5
    1 0.5
  END
END
Để khai báo các khoảng đứt, chúng ta sử dụng từ khóa PATTERN (trong các phiên bản trước là STYLE). Giả sử chúng ta muốn tạo ra nét đứt bao gồm [nét dài – khoảng cách – nét ngắn – khoảng cách] – nét dài …Chỉ cần khai báo phần trong ngoặc vuông, bởi các phần tiếp theo chỉ là phần lặp lại. Phần này sẽ được khai báo trong phần STYLE trong CLASS của LAYER cần thể hiện ký hiệu :
 CLASS
  STYLE
   COLOR 51 51 51
   LINECAP butt
   PATTERN
    4 2 1 2
   END
   WIDTH 5
  END #Style
 END#Class
Tôi để WIDTH lớn để dễ quan sát, kết quả thể hiện trên Pmapper như sau :
Một ví dụ khác, tôi muốn tạo ra ký hiệu bao gồm đường hai nét bên ngoài và đường nhỏ 1 nét bên trong làm tim. Ngoài việc sử dụng ký hiệu đường ngang đã định nghĩa trong file chứa ký hiệu, ở đây chúng ta có thể sử dụng từ khóa OFFSET để tạo đường 2 nét. Trong từ khóa OFFSET 2 thông số cần khai báo tương ứng với sự thay đổi theo trục x và y. Nếu giá trị x dương thì đường tạo ra sẽ nằm bên phải và ngược lại sẽ nằm bên trái. Còn nếu giá trị y âm thì sẽ nằm dưới đường gốc và ngược lại sẽ nằm trên. Nếu giá trị y bằng -99 thì nó sẽ tạo ra các đường cách đường gốc 1 khoảng cách khai báo trong giá trị x.
Như trong hình trên, đường gốc là đường màu đen, hai đường màu green và màu blue sử dụng giá trị -99 và đường màu đỏ không sử dụng giá trị -99.
Trở lại ví dụ, chúng ta sẽ khai báo như sau trong mapfile :
CLASS
 STYLE
  SYMBOL 'duong_ngang'
  COLOR 0 0 255
  WIDTH 20
 END #Style
 STYLE
  SYMBOL 'duong_ngang'
  WIDTH 50
  COLOR 255 0 0
  LINECAP round
  LINEJOIN miter
  OFFSET -16 -99
 END #Style
STYLE
  SYMBOL 'duong_ngang'
  WIDTH 50
  COLOR 0 255 0
  LINECAP round
  LINEJOIN miter
  OFFSET 16 -99
 END #Style
END #Class
Kết quả thể hiện trên pmapper :
Tuy nhiên, nếu muốn sử dụng cách này để thể hiện ký hiệu đường giao thông thì có lẽ không được tốt lắm. Có cách khác để chúng ta có thể tạo ra đường 2 nét bên ngoài, 1 nét bên trong và những khoảng trống chính giữa được tô màu. Cách này sử dụng các đường vẽ chồng lên nhau với các kích thước và màu sắc khác nhau. Chẳng hạn, trong mapfile khai báo như sau :
CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 17.0
    END # STYLE
    STYLE
      COLOR 209 66 0
      WIDTH 11.0
    END # STYLE
    STYLE
      COLOR 0 0 0
      WIDTH 1.0
    END # STYLE
  END # CLASS
Khi thể hiện trên Pmapper sẽ giống như vầy :
Hai nét màu đen bên ngoài thực chất là đường màu đen có bề rộng lớn bị đường màu cam có bề rộng nhỏ hơn một ít che khuất phần ở giữa, rồi sau đó có 1 đường màu đen nhỏ nữa được vẽ chồng lên. Nhìn cũng đẹp nhỉ. ^_^. Trong phần trên chúng ta không khai báo ký hiệu, pmapper sẽ lấy ký hiệu mặc định vẽ đường của nó.
Ngoài ra, chúng ta có thể kết hợp với các ký hiệu khai báo trong file ký hiệu, vẽ chồng lên đường để tạp ra các loại ký hiệu khác nhau phục vụ nhu cầu của mình. Ví dụ,
CLASS
    STYLE
      COLOR 0 0 0
      WIDTH 6
    END # STYLE
    STYLE
      COLOR 102 0 0
      SYMBOL "ngoisao"
      SIZE 20
      GAP 20
      OFFSET -10 -99
    END # STYLE
 END#Class
Ở đây có thêm từ khóa GAP, dùng để khai báo khoảng hở giữa 2 ký hiệu. Vì chúng ta sử dụng ký hiệu ngôi sao để thể hiện đường nên cần khai báo thông số GAP này. Kết quả thể hiện trên pmapper
Một điều dễ nhận thấy là các ngôi sao được rải không đều mặc dù chúng ta đã khai báo một giá trị GAP cố định. Điều này là do dữ liệu đường thường được tạo thành từ nhiều đường (mỗi đường được giới hạn bằng 2 cú click chuột). Mỗi đường này sẽ dựa vào giá trị GAP để xác định xem có bao nhiêu ngôi sao được rải lên. Có đường ngắn, đường dài, nên số lượng ngôi sao không đều là điều dễ hiểu.
Ok, vậy là chúng ta có thể có khả năng thiết kế được một số ký hiệu dạng đường trên Pmapper.
Còn một điều cần lưu ý về phiên bản của Mapserver. Khi chúng ta tải Mapserver từ trang web chính thức, khi cài đặt xong, mở trình duyệt web lê thấy để MS4W version 3.0.4 nghĩa là phiên bản cho Window là 3.0.4 còn phiên bản của Mapserver thì khác, hiện nay là phiên bản 6 (2012). Nhiều khi nhằm lẫn phiên bản sẽ gây khó khăn cho việc tìm kiếm thông tin về hướng dẫn sử dụng.
Trong bài viết có sử dụng các hình trong phần hướng dẫn trên web của MAPSERVER.
NNS

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 "&#65;"
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à &#65;. 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