1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

ỨNG DỤNG ARC ENGINE XÂY DỰNG PHẦN MỀM HỖ TRỢ PHÂN TÍCH DÒNG CHẢY MẶT TẠI TRƢỜNG ĐẠI HỌC NÔNG LÂM

54 228 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 1,56 MB

Nội dung

Header Page of 161 TRƢỜNG ĐẠI HỌC NÔNG LÂM TP.HỒ CHÍ MINH KHOA MƠI TRƢỜNG VÀ TÀI NGUN TIỂU LUẬN TỐT NGHIỆP ỨNG DỤNG ARC ENGINE XÂY DỰNG PHẦN MỀM HỖ TRỢ PHÂN TÍCH DỊNG CHẢY MẶT TẠI TRƢỜNG ĐẠI HỌC NÔNG LÂM Họ tên sinh viên: NGUYỄN VĂN ANH TUẤN Ngành: Hệ thống thông tin môi trƣờng Niên khóa: 2010 – 2014 Tp Hồ Chí Minh, tháng năm 2014 Footer Page of 161 Header Page of 161 ỨNG DỤNG ARC ENGINE XÂY DỰNG PHẦN MỀM HỖ TRỢ PHÂN TÍCH DỊNG CHẢY MẶT TẠI TRƢỜNG ĐẠI HỌC NÔNG LÂM Tác giả NGUYỄN VĂN ANH TUẤN Giáo viên hƣớng dẫn ThS KHƢU MINH CẢNH Tp Hồ Chí Minh, 6/ 2014 i Footer Page of 161 Header Page of 161 LỜI CẢM ƠN Trƣớc tiên, xin chân thành cảm ơn thầy ThS Khƣu Minh Cảnh ngƣời hƣớng dẫn, bảo tận tình động viên tơi suốt thời gian qua, giúp tơi hồn thành báo cáo tốt nghiệp Trân trọng cảm ơn Ban lãnh đạo Sở Khoa Học Cơng Nghệ Tp Hồ Chí Minh tạo điều kiện cho đƣợc thực tập quan Tôi xin gửi lời tri ân sâu sắc đến quý thầy cô KS Nguyễn Duy Liêm KS Lê Hồng Tú, trƣờng Đại học Nơng Lâm Tp Hồ Chí Minh tận tình giảng dạy, truyền đạt kiến thức quý giá dành cho bốn năm học tập trƣờng Tôi cảm ơn ngƣời bạn đồng hành quãng đời sinh viên, ngƣời giúp đỡ tôi gặp khó khăn, sẵn sàng chia sẻ cho tơi điều hay, lẽ phải nguồn động lực để tơi phấn đấu vƣơn lên Cuối cùng, để có đƣợc thành nhƣ ngày hơm nay, xin nói lời biết ơn chân thành cha mẹ, ngƣời sinh thành nên con, chăm sóc, ni dạy thành ngƣời tạo điều kiện cho đƣợc học tập Sinh viên thực Nguyễn Văn Anh Tuấn Bộ môn Tài nguyên GIS Khoa Môi trƣờng Tài ngun Trƣờng Đại học Nơng Lâm Tp Hồ Chí Minh Footer Page of 161 ii Header Page of 161 MỤC LỤC TRANG TỰA i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC VIẾT TẮT iv DANH MỤC HÌNH ẢNH v CHƢƠNG MỞ ĐẦU 1.1 Tính cấp thiết đề tài 1.2 Mục tiêu nghiên cứu 1.3 Phạm vi nghiên cứu CHƢƠNG TỔNG QUAN 2.1 Thông tin địa bàn nghiên cứu 2.2 Tổng quan thuật tốn dịng chảy giới quy trình chung cho thuật tốn định dịng 2.2.1 Thuật toán D8 2.2.2 Thông tin số cơng cụ phân tích dịng chảy 2.3 Tổng quan thuật toán tìm đƣờng ngắn (Floyd) 2.4 Đệ quy tính tốn đệ quy 11 2.5 Giới thiệu ngơn ngữ lập trình Visual Basic 14 2.6 Giới thiệu ngơn ngữ lập trình Python 16 2.7 Mơ hình địa hình cấu trúc sở liệu 19 CHƢƠNG PHƢƠNG PHÁP THỰC HIỆN 22 3.1 Lƣợc đồ phƣơng pháp thực 22 CHƢƠNG KẾT QUẢ NGHIÊN CỨU 24 4.1 Kết thực thi chƣơng trình 24 4.1.1 Các module phần mềm 24 4.1.2 Cài đặt thuật toán D8 27 4.1.3 Thuật tốn xác định dịng chảy tích lũy 28 4.1.4 Ứng dụng Arc Engine để thể đồ dòng chảy 30 CHƢƠNG KẾT LUẬN VÀ KIẾN NGHỊ 35 5.1 Kết luận 35 5.2 Đề xuất hƣớng phát triển 35 TÀI LIỆU THAM KHẢO 36 PHỤ LỤC 38 iii Footer Page of 161 Header Page of 161 DANH MỤC VIẾT TẮT DEM Mơ hình độ cao số (Digital Elevation Model) GIS Hệ thống thông tin địa lý (Geographic Information System) VB Ngôn ngữ lập trinh (Visual Basic) TauDEM Terrain Analysis Using Digital Elevation Models DTM Mơ hình địa hình số (Digital Terrain Model) TIN Mơ hình lƣới tam giác (Triangulated Irregular Network) HĐH Hệ điều hành PEP Python Enhancement Proposal GPL Giấy phép công cộng (General Public License) iv Footer Page of 161 Header Page of 161 DANH MỤC HÌNH ẢNH Hình 2-1 Phƣơng pháp xác định bậc Straler Hình 2-2 Mơ tả hƣớng dịng chảy D8 Hình 2-3 Cơng cụ Hydrology Arcmap Hình 2-4 Các cơng cụ có TauDEM Hình 2-5 Hình minh họa toán tháp Hà Nội 13 Hình 2-6 DEM cấu trúc dạng phần tử lƣới Grid 19 Hình 2-7 DEM cấu trúc dạng TIN 20 Hình 2-8 Những đƣờng đồng mức độc cao 20 Hình 2-9 DEM thể hiển dạng Grid 21 Hình 2-10 DEM thể dạng XYZ 21 Hình 3-1 Sơ đồ thực phần mềm 23 Hình 4-1 Giao diện ngƣời dùng 24 Hình 4-2 Dữ liệu DEM file Text 25 Hình 4-3 Dữ liệu hƣớng dòng dòng chảy đƣợc lƣu dạng Text 27 Hình 4-4 Dữ liệu dịng chảy tích lũy đƣợc tính tốn phần mềm lƣu dạng Text 29 Hình 4-5 Bộ thƣ viện Arc Engine ESRI 30 Hình 4-6 Sử dụng ArcGis Windown Form Toolbox lên form hiển thị 31 Hình 4-7 Hiển thị liệu DEM khu vực Nông Lâm form 33 Hình 4-8 Dữ liệu dịng chảy khu vực nghiên cứu sau thực tính toán phần mềm 34 v Footer Page of 161 Header Page of 161 CHƢƠNG MỞ ĐẦU 1.1 Tính cấp thiết đề tài Trƣờng Đại học Nông Lâm với diện tích rộng khoảng 137 với khn viên nhiều xanh nơi lý tƣởng cho việc học tập nghiên cứu sinh viên Do đó, điều kiện cần để trƣờng nâng cao chất lƣợng đào tạo sở hạ tầng nói chung hệ thống nƣớc nói riêng phải tiên tiến, đặc biệt điều kiện biến đổi khí hậu với mƣa lớn thất thƣờng Bên cạnh đó, với địa hình có độ cao tƣơng đối nhƣ khu vực Thủ Đức tạo nên dịng nƣớc lớn gây sói mịn đất gây nhiều nguy hiểm nhiều sinh viên Theo thông tin website vnexpress.net (An Nhơn, 2013), vào đầu tháng 7/2013, sinh viên trƣờng Đại học Kinh Tế Luật TP Hồ Chí Minh bị nƣớc trôi trận mƣa lớn Từ đây, phải nhìn nhận nên xem xét lại hệ thống thoát nƣớc trƣờng Bƣớc đầu cơng tác xác định dịng chảy bề mặt để địa hình khả nƣớc hệ thống nƣớc từ làm tảng tham khảo trƣờng có đầu tƣ mở rộng sửa chữa nâng cấp Phân tích dịng chảy mặt xác định đặc trƣng địa hình nhƣ hƣớng dịng chảy, dịng chảy tích lũy, độ dốc, xác định lƣu vực,… liệu đầu vào mơ hình số độ cao (DTM, DEM) Phân tích dịng chảy mặt đƣợc sử đƣợc sử dụng nhiều ứng dụng, nghiên cứu lƣu vực, phân tích địa hình để xây dựng hệ thống cấp thoát nƣớc, xây dựng hệ thống đƣờng giao thơng, cơng trình nhà phù hợp với điều kiện khí hậu địa hình khu vực Để thực phân tích dịng chảy mặt cần ứng dụng nhiều thuật tốn xác định hƣớng dịng chảy nhƣ D8, D16,… xác định đƣợc hƣớng dịng chảy điểm bề mặt địa hình xác định đƣợc dịng chảy bề mặt (dịng chảy sơng, suối,…) Qua đó, xác định đƣợc khu vực chịu tác động dịng chảy khu vực địa hình Hiện nay, GIS phát triển nhanh chóng giới du nhập vào Việt Nam nhiều năm qua tạo điều kiện cho nghiên cứu nhƣ ứng dụng GIS đƣợc vào thực tiển sống thƣờng ngày Việc tích hợp GIS phân tích Footer Page of 161 Header Page of 161 dịng chảy mặt góp phần xây dựng ứng dụng nhƣ phân tích lƣu vực, hổ trợ định xây dựng hệ thống đƣờng giao thông, hệ thống cấp nƣớc… Do tiểu luận “ Ứng dụng Acr Engine xây dựng phần mềm hổ trợ phân tích dịng chảy bề mặt trường Đại Học Nơng Lâm” đƣợc thực nhằm xây dựng, thiết kết phần mềm để hổ trợ việc thành lập đồ dòng chảy từ xác định đƣợc khu vực chịu tác động dòng chảy làm sở đƣa định nâng cấp sở hạ tầng trƣờng 1.2 Mục tiêu nghiên cứu Xây dựng phần mềm hổ trợ phân tích dịng chảy mặt với thuật tốn D8 Cài đặt tính tốn để phân tích dịng chảy theo địa hình khu vực trƣờng Đại học Nơng Lâm Từ đó, làm sở cho việc cải tạo, bổ sung, sửa chữa hệ thống thoát nƣớc trƣờng Các mục tiêu cụ thể đề tài: - Xây dựng giao diện ngƣời dùng cho phần mềm - Cài dặt thuật tốn D8 ngơn ngữ lập trình Visual Basic - Ứng dụng Arc Engine để thể đồ dòng chảy mặt - Xác định khu vực ảnh hƣởng dòng chảy 1.3 Phạm vi nghiên cứu - Về khu vực địa lý: Đƣợc thực giới hạn ranh giới trƣờng Đại học Nông Lâm - Thuật toán: Giới hạn sử dụng thuật toán phân tích dịng chảy đơn (D8), cơng cụ thao tác với liệu DEM Footer Page of 161 Header Page of 161 CHƢƠNG TỔNG QUAN 2.1 Thông tin địa bàn nghiên cứu Trƣờng Đại học Nơng Lâm TP Hồ Chí Minh trƣờng đại học cơng lập đa ngành, đa lĩnh vực có nhiệm vụ đào tạo bậc đại học sau đại học, nghiên cứu khoa học chuyển giao công nghệ lĩnh vực Nông Lâm Ngƣ Nghiệp lĩnh vực liên quan Từ năm 2000 trƣờng mở rộng đào tạo sang lĩnh vực khác nhƣ: Công nghệ thông tin, Công nghệ môi trƣờng, Công nghệ sinh học, Ngoại ngữ Sƣ phạm Kỹ thuật nông nghiệp, Công nghệ ôtô, Công nghệ nhiệt lạnh, Cơ điện tử, Điều khiển tự động, Cơng nghệ địa chính, Kế tốn, Quản trị kinh doanh, Quản lý thị trƣờng bất động sản, Hệ thông tin địa lý Từ thành lập vào năm 1955 nay, Trƣờng Đại học Nông Lâm TP Hồ Chí Minh q trình phát triển nhiều lần thay đổi cấu tổ chức, mục tiêu đào tạo, chƣơng trình đào tạo, nội dung đào tạo cho phù hợp với yêu cầu qua thời kỳ phát triển kinh tế xã hội đất nƣớc Hiện Trƣờng Đại học Nơng Lâm TP Hồ Chí Minh có 12 khoa, 03 mơn trực thuộc trƣờng, 01 viện nghiên cứu Công nghệ sinh học môi trƣờng, 13 trung tâm, 12 phòng ban chức năng, 01 Phân hiệu tỉnh Gia Lai 01 Phân hiệu tỉnh Ninh Thuận Đại Học Nông Lâm Thành Phố Hồ Chí Minh trƣờng đại học đa ngành, trực thuộc Bộ Giáo dục Đào tạo, tọa lạc khu đất rộng 118 ha, thuộc khu phố phƣờng Linh Trung, Quận Thủ Đức, Thành phố Hồ Chí Minh Huyện Dĩ An (Tỉnh Bình Dƣơng) Hiện nay, tổng diện tích đất nhà trƣờng quản lý sử dụng 137.0156 ha, với khu đất có: nhà học (nhà Phƣợng Vỹ, nhà Cẩm Tú, Nhà Hƣớng Dƣơng, nhà Rạn Đông nhà Tƣờng Vy), 127 nhà nhà thí nghiệm, thực hành, nhà tập thi đấu thể dục thể thao, khu kí túc xá cho 3750 sinh viên, thƣ viện Trƣờng thuộc khu vực có địa hình tƣơng đối cao TP Hồ Chí Minh, dựa liệu DEM thu thập đƣợc độ cao địa hình trƣờng cao 44m, thấp 7m độ cao trung bình 20.9m (Phịng quản trị vật tƣ, 2014) Footer Page of 161 Header Page 10 of 161 2.2 Tổng quan thuật tốn dịng chảy giới quy trình chung cho thuật tốn định dịng Các lƣu vực sơng có liên quan mật thiết đến đời sống ngƣời Chính thế, hoạt động nghiên cứu lƣu vực sông đƣợc ngƣời thực từ sớm với nhiều hƣớng tiếp cận khác Ngày với phát triển công nghệ thông tin mở hƣớng nghiên cứu lƣu vực: nghiên cứu lƣu vực sông với hổ trợ Hệ Thống Thông Tin Địa Lý (GIS) Năm 1957, đời khái niệm Strahler định luật Horton – Strahler tạo sở cho việc hình thành thuật tốn xác định dịng chảy phân chia ranh giới lƣu vực sơng Cấp Strahler thuộc tính đƣợc gán cho đoạn sông mạng lƣới dịng chảy Một chuỗi đoạn sơng có cấp Strahler tạo thành dòng Strahler Cấp dòng Strahler đƣợc xem nhƣ thƣớc đo để đánh giá kích cỡ phức tạp cấu trúc mạng lƣới dòng chảy Theo định luật Horton – Strahler, giá trị sở cấp Strahler cấp 1, dòng Strahler cấp gặp tạo dòng Strahler với cấp lớn (Strahler, A N, 1957) Hình 2-1 Phƣơng pháp xác định bậc Straler Từ khái niệm sở đầu tác giả khác phát triển nhiều thuật toán xác định dòng chảy khác mà thuật toán D8 Các thuật toán đời sau đƣợc đề xuất để bổ sung, bù đắp thiếu sót thuật tốn Footer Page 10 of 161 Header Page 40 of 161 Hình 4-8 Dữ liệu dòng chảy khu vực nghiên cứu sau thực tính tốn phần mềm 34 Footer Page 40 of 161 Header Page 41 of 161 CHƢƠNG KẾT LUẬN VÀ KIẾN NGHỊ 5.1 Kết luận Các kết mà đề tài đạt đƣợc: - Xây dụng thành công giao diện ngƣời dùng modun khác phần mềm - Cài đặt đƣợc thuật tốn tính hƣớng dịng chảy D8 tính tích lũy dịng chảy Visual Studio ngơn ngữ lập trình Visual Basic - Tích hợp Arc Engine vào phần mềm để hiển thị kết sau tính tốn - Xây dụng modun xử lý liệu Python tích hợp đƣợc vào phần mềm - Hiển thị đƣợc kết form Hạn chế đề tài: - Thời gian tính tốn dịng chảy tích lũy lâu khoảng 20 phút - Tích hợp modun xử lý liệu thơng qua trình biên dịch Python nên khả liên kết với phần mềm chƣa cao - Form thị kết cung cấp vài Tool để thao tác với liệu nhƣ phóng to thu nhỏ, thêm lớp liệu,… - Phần mềm sử dụng thuật toán D8, chƣa cài đặt đƣợc thuật tốn khác - Chƣa cung cấp cơng cụ nhằm phân tích hỗ trợ định dựa kết thu đƣợc 5.2 Đề xuất hƣớng phát triển Dựa hạn chế đề tài thực tế khu vực, có số đề xuất hƣớng phát triển cải tiến phần mềm sau: - Sử dụng thuật toán song song để tăng tốc độ xử lý liệu - Phát triển thêm tool nhằm hỗ trợ việc quản lý, khai thác, phân tích liệu tốt để đƣa kết xác góp phần hỗ trợ định xây dựng, nâng cấp sở hạn tầng - Tích hợp thêm nhiều thuật tốn tính hƣớng dịng chảy để lựa chọn thuật toán phù hợp với yêu cầu đặc trƣng liệu 35 Footer Page 41 of 161 Header Page 42 of 161 TÀI LIỆU THAM KHẢO Tiếng việt Nguyễn Kim Lợi, Lê Cảnh Đinh Trần Thống Nhất, 2009 Hệ thống thông tin địa lý nâng cao NXB Nơng Nghiệp, Tp Hồ Chí Minh Nguyễn Kim Lợi Trần Thống Nhất, 2007 Hệ thống thông tin địa lý NXB Nơng Nghiệp, Tp Hồ Chí Minh Lê Minh Hồng, 2003 Giải thuật lập trình Đại học Sƣ Phạm Hà Nội Nguyễn Sơn Hải, 2006 Giáo trình tin học: Lập trình với Microsoft Visual Basic 6.0 Hà Nội An Nhơn, 2013 Hai sinh viên bị nước trơi mưa lớn Sài Gịn Địa chỉ: [Truy cập ngày: 13/5/2014] Phòng quản trị vật tƣ, 2014 Cơ sở vật chất trường Đại học Nông Lâm Địa chỉ: [Truy cập ngày: 15/5/2014] Trƣờng Đại học Nông Lâm, 2011 Dự thảo: Chiến lược phát triển trường Đại học Nông Lâm TP HCM 2011 – 2020, Tp Hồ Chí Minh Tiếng anh Dave Kuhlman, 2009 A Python Book: Beginning Python, Advanced Python, and Python Exercises Bradley Miller, 2010 Comparison of Surface Hydrologic Algorithms in GIS Michigan state university Chase Wallis, Dan Watson, David Tarboton, Robert Wallace, 2009 Parallel FlowDirection and Contributing Area Calculation for Hydrology Analysis in Digitalb Elevation Models Wan MuhdHairi bin Wan AbKarim, 2012 New D16 Algorithm for surface water flow direction University Teknologi Malaysia (UTM) Skudai, Johor Arcgis Resource Center, 2011 Hydrologic analysis sample applications 36 Footer Page 42 of 161 Header Page 43 of 161 Available at: [Accessed May 5, 2014] Hydrology Resource Group, 2014 Terain Analysis using digital elevation models (TauDEM) Available at: [Accessed May 15, 2014] USGS science for a changing world, 2013 Golbal Data Explorer Available at: [Accessed May 8, 2014] Strahler, A.N, 1957 Quantitative analysis of watershed geomorphology, Transactions of the American Geophysical Union 38: 913 – 920 37 Footer Page 43 of 161 Header Page 44 of 161 PHỤ LỤC Phụ lục 1: Code cho Fill DEM import Tkinter,tkFileDialog import arcpy from arcpy import env from arcpy.sa import * root = Tkinter.Tk() root.withdraw() myFormats_DEM = [('Chon File','*.tif') ] myFormats_TXT = [ ('Chon noi luu du lieu',"*.*")] file=tkFileDialog.askopenfile(parent=root, mode='rb',filetypes=myFormats_DEM,title='Choose file DEM') if file != None: duongdan_input=file.name inSurfaceRaster = duongdan_input print(inSurfaceRaster) arcpy.CheckOutExtension("Spatial") save=tkFileDialog.asksaveasfilename(parent=root,filetypes=myFormats_TXT ,title="Save file as ") if save!=None: duongdan_output=save print(duongdan_output) # arcpy.CheckOutExtension("Spatial") outFill= Fill(inSurfaceRaster) outFill.save(duongdan_output) else: file.close() 38 Footer Page 44 of 161 Header Page 45 of 161 Phụ lục 2: Code chuyển từ dạng Raster sang dạng Text import Tkinter,tkFileDialog import arcpy from arcpy import env root = Tkinter.Tk() root.withdraw() myFormats_TXT = [ ('Chon File','*.txt'),] file = tkFileDialog.askdirectory(parent=root,initialdir="",title='Chon duong dan den du lieu DEM') if file !=None: duongdan_input=file inRaster = duongdan_input print(duongdan_input) save=tkFileDialog.asksaveasfilename(parent=root,filetypes=myFormats_TXT, title="Save file as ") if save!= None: duongdan_output=save outASCII = duongdan_output print(duongdan_output) arcpy.RasterToASCII_conversion(inRaster, outASCII) else: file.close() Phụ lục 3: Code cho Đọc liệu 'Đọc file txt matrix lấy giá trị để thực tính Dim duongdan As String OpenFileDialog1.Title = "Chọn tập tin: " OpenFileDialog1.Filter = "Dạng tập tin (*.txt)|*.txt" If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then duongdan = OpenFileDialog1.FileName txbnoiluutxt.Text = duongdan 39 Footer Page 45 of 161 Header Page 46 of 161 Dim h, c As String Dim ha, n As Integer Dim na As String Dim reco() As String = IO.File.ReadAllLines(duongdan) 'đọc tất hàng c = reco(0) cot = CInt(Mid(c, 14)) 'lấy số cột h = reco(1) hang = CInt(Mid(h, 14)) 'lấy số hàng size = hang * cot For n = To 'LẤY RA CÁC DÒNG ĐẦU TIÊN chuoi = chuoi + reco(n) + vbNewLine Next If hang > And cot > Then 'redim lại kích thƣớc ma trận ReDim docao(hang, cot) ReDim huong(hang, cot) ReDim tichluy(hang, cot) ReDim ketqua(hang, cot) ReDim matran1(size, size) ReDim matran2(size, size) ReDim matranmoi(size, size) End If 'Lấy ma trận file text For = To hang + matran = matran + reco(ha) + vbNewLine Next Dim path As String = "D:\\Matrix_dem.txt" 'xuất ma trận text file If File.Exists(path) = True Then Kill(path) 'Xóa file Dim sw As StreamWriter = File.CreateText(path) sw.WriteLine(matran) 40 Footer Page 46 of 161 Header Page 47 of 161 sw.Flush() sw.Close() Else Dim sw As StreamWriter = File.CreateText(path) sw.WriteLine(matran) sw.Flush() sw.Close() End If Dim giatri() As String = IO.File.ReadAllLines("D:\\Matrix_dem.txt") For i = To hang - For j = To cot - na = giatri(i) Dim pt() As String = na.Split(" ") docao(i, j) = pt(j) Next Next For i = To hang - For j = To cot - hienthi = hienthi & docao(i, j) & " " Next hienthi = hienthi + vbNewLine Next txbhienthi.Text = chuoi & hienthi txbsohang.Text = hang txbsocot.Text = cot FileClose() End If 41 Footer Page 47 of 161 Header Page 48 of 161 Phụ lục 4: Code cho Lƣu liệu Dim path2 As String = txbhienthi.Text If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then SaveFileDialog1.Title = "Chọn nơi lƣu tập tin kết quả" System.IO.File.WriteAllText(SaveFileDialog1.FileName, path2) End If Phụ lục 5: Code chuyển Text sang DEM import Tkinter,tkFileDialog import arcpy root = Tkinter.Tk() root.withdraw() myFormats_TXT = [('Chon File','*.txt'),] myFormats_DEM = [('Chon noi luu du lieu',"*.tif"), ] file = tkFileDialog.askopenfile(parent=root, mode='rb',filetypes=myFormats_TXT ,title='Choose file DEM') if file != None: duongdan_input=file.name inASCII = duongdan_input print(inASCII) save=tkFileDialog.asksaveasfilename(parent=root,filetypes=myFormats_DEM ,title="Save file as ") if save!=None: outRaster=save print(outRaster) arcpy.ASCIIToRaster_conversion(inASCII, outRaster, rasterType) else: file.close() 42 Footer Page 48 of 161 Header Page 49 of 161 Phụ lục 6: Code cho Hƣớng dòng chảy 'Đọc file txt matrix lấy giá trị để thực tính 'TÍNH D8: For i = To hang - For j = To cot - Dim max As Double = Dim direct As Integer = 'XÉT TRƢỜNG HỢP: If j + < cot Then ' max = Math.Max(max, (docao(i, j) - docao(i, j + 1))) If max = (docao(i, j) - docao(i, j + 1)) Then direct = End If End If If i + < hang And j + < cot Then '2 max = Math.Max(max, (docao(i, j) - docao(i + 1, j + 1)) / Math.Sqrt(2)) If max = (docao(i, j) - docao(i + 1, j + 1)) / Math.Sqrt(2) Then direct = End If End If If i + < hang Then '4 max = Math.Max(max, (docao(i, j) - docao(i + 1, j))) If max = (docao(i, j) - docao(i + 1, j)) Then direct = End If End If If i + < hang And j - >= Then '8 max = Math.Max(max, (docao(i, j) - docao(i + 1, j - 1)) / Math.Sqrt(2)) If max = (docao(i, j) - docao(i + 1, j - 1)) / Math.Sqrt(2) Then direct = End If 43 Footer Page 49 of 161 Header Page 50 of 161 End If If j - >= Then '16 max = Math.Max(max, (docao(i, j) - docao(i, j - 1))) If max = (docao(i, j) - docao(i, j - 1)) Then direct = 16 End If End If If i - >= And j - >= Then '32 max = Math.Max(max, (docao(i, j) - docao(i - 1, j - 1)) / Math.Sqrt(2)) If max = (docao(i, j) - docao(i - 1, j - 1)) / Math.Sqrt(2) Then direct = 32 End If End If If i - >= Then '64 max = Math.Max(max, (docao(i, j) - docao(i - 1, j))) If max = (docao(i, j) - docao(i - 1, j)) Then direct = 64 End If End If If i - >= And j + < cot Then '128 max = Math.Max(max, (docao(i, j) - docao(i - 1, j + 1)) / Math.Sqrt(2)) If max = (docao(i, j) - docao(i - 1, j + 1)) / Math.Sqrt(2) Then direct = 128 End If End If huong(i, j) = direct Next Next Dim hienthi1 As String For i = To hang - For j = To cot - 44 Footer Page 50 of 161 Header Page 51 of 161 hienthi1 = hienthi1 & huong(i, j) & " " Next hienthi1 = hienthi1 + vbNewLine Next txbhienthi.Text = chuoi & hienthi1 Phụ lục 7: Code lập ma trận Dim size1 As Integer = hang * cot For i = To size1 - For j = To size1 - If i = j Then matran1(i, j) = Else matran1(i, j) = Integer.MaxValue End If Next j Next i For i = To hang - For j = To cot - k = (i) * cot + j If (huong(i, j) = 1) Then l=k+1 End If If (huong(i, j) = 2) Then l = k + cot + End If If (huong(i, j) = 4) Then l = k + cot End If If (huong(i, j) = 8) Then l = k + cot - 45 Footer Page 51 of 161 Header Page 52 of 161 End If If (huong(i, j) = 16) Then l=k-1 End If If (huong(i, j) = 32) Then l = k - cot - End If If (huong(i, j) = 64) Then l = k - cot End If If (huong(i, j) = 128) Then l = k - cot + End If matran1(l, k) = matran1(k, l) = -1 Next j Next i 'Gán thêm ma trận Dim q, p, r, s As Integer For i = To size1 - For j = To size1 - If i i Then p = i \ cot q = i Mod cot r = j \ cot s = j Mod cot If ((docao(p, q) > docao(r, s)) Or (docao(p, q) = -9999)) Then matran1(i, j) = -1 End If End If 46 Footer Page 52 of 161 Header Page 53 of 161 matran2(i, j) = matran1(i, j) matranmoi(i, j) = matran1(i, j) Next j Next i Phụ lục 8: Code cộng hai ma trận Dim giatri As Integer = Integer.MaxValue Dim cothaydoi As Boolean = False Do cothaydoi = False 'Nhân hai ma trận For i = To size1 - For j = To size1 - If matranmoi(i, j) > Then For k = To size1 - If (matran1(i, k) >= 0) And (matran2(k, j) >= 0) Then If (matran1(i, k) Integer.MaxValue) And (matran2(k, j) Integer.MaxValue) Then giatri = matran1(i, k) + matran2(k, j) If (matranmoi(i, j) > giatri) Then matranmoi(i, j) = giatri cothaydoi = True End If End If End If Next k End If Next j Next i 'copy lại ma trận củ ma trận For i = To size1 - 47 Footer Page 53 of 161 Header Page 54 of 161 For j = To size1 - matran1(i, j) = matranmoi(i, j) matran2(i, j) = matranmoi(i, j) Next j Next i Loop While cothaydoi = True Phụ lục 9: Code xác định dịng chảy tích lũy For i = To size1 - Dim tl As Integer = For j = To size1 - If (i j) And (matran1(i, j) < Integer.MaxValue) And (matran1(i, j) >= 0) Then tl += End If Next tichluy(i \ cot, i Mod cot) = CStr(tl) Next Dim hienthi2 As String For i = To hang - For j = To cot - hienthi2 = hienthi2 & tichluy(i, j) & " " Next hienthi2 = hienthi2 + vbNewLine Next txbhienthi.Text = chuoi & hienthi2 48 Footer Page 54 of 161 ... tiểu luận “ Ứng dụng Acr Engine xây dựng phần mềm hổ trợ phân tích dịng chảy bề mặt trường Đại Học Nông Lâm? ?? đƣợc thực nhằm xây dựng, thiết kết phần mềm để hổ trợ việc thành lập đồ dịng chảy từ xác...Header Page of 161 ỨNG DỤNG ARC ENGINE XÂY DỰNG PHẦN MỀM HỖ TRỢ PHÂN TÍCH DỊNG CHẢY MẶT TẠI TRƢỜNG ĐẠI HỌC NÔNG LÂM Tác giả NGUYỄN VĂN ANH TUẤN Giáo viên hƣớng dẫn... tiển sống thƣờng ngày Việc tích hợp GIS phân tích Footer Page of 161 Header Page of 161 dòng chảy mặt góp phần xây dựng ứng dụng nhƣ phân tích lƣu vực, hổ trợ định xây dựng hệ thống đƣờng giao

Ngày đăng: 07/04/2017, 13:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w