Đề tài sau khi thực hiện đã đạt đƣợc những kết quả nhƣ sau:
- Tìm hiểu đƣợc phƣơng pháp xây dựng các ứng dụng quản lý dữ liệu trên cơ sở
tích hợp dữ liệu không gian và dữ liệu thuộc tính vào CSDL.
- Tìm hiểu đƣợc phƣơng pháp thành lập và phân tích bản đồ.
- Xây dựng CSDL không gian cây xanh.
- Xây dựng các công cụ hỗ trợ hiển thị, cập nhật và phân tích dữ liệu cây xanh.
Hệ thống cơ sở dữ liệu này có thể cập nhật đƣợc những thông tin mới nhất của
từng cây xanh. Đây là một việc rất quan trọng vì các thông tin về cây xanh luôn luôn
cập nhật để nhà quản lý có thể nắm bắt đƣợc những thông tin mới nhất đồng thời bằng
các phép phân tích không gian của công nghệ GIS ngƣời quản lý có thể giải đƣợc các
bài toán về quy hoạch và bố trí không gian cây xanh một các tối ƣu mà cần rất ích chi
phí cũng nhƣ nhân công.
Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng gis hỗ trợ quản lý cây xanh tại trường đại học nông lâm thành phố Hồ Chí Minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
có thể chấp nhận kiểu dữ liệu
đƣợc yêu cầu bởi cột không gian. Kiểu hình học đƣợc dùng trong cột không gian của
bảngkhôn gian là Point, Multipoint, Linestring, MultiLinestring,
Polygon,Multipolygon.
Giá trị tham chiếu không gian, viết tắt là SRID, là giá trị rất quan trọng, nó
xácđịnh tính duy nhất của hệ thống không gian trong phạm vi CSDL. Nó đƣợc yêu cầu
chỉ ra khi tạo đối tƣợng không gian cho việc chèn vào CSDL. Thông tin của giá trị
SRID đƣợc lƣu trữ trong bảng SPATIAL_REF_SYS đƣợc tạo mặc định khi cài đặt
PostGIS. SRID của hệ thống tham chiếu không gian của hình học đƣợc lƣu trữ với
kiểu hình học của chính nó.
3.2.1.6 . Tạo bảng không gian trên Postgis
Tạo bảng với câu lệnh CREATE TABLE, và một thuộc tính của bảng sẽ có kiểu
dữ liệu dạng “geometry”. Ví dụ, tạo bảng points ( name varchar, point geometry); Chú
ý : khi chèn dữ liệu vào bảng không gian cần chú ý đến trƣờng có kiểu dữ liệu dạng
“geometry”, dữ liệu sẽ gồm các đối tƣợng không gian nhƣ POINT, LINE, POLYGON,
MULTIPOINT, MULTILINE, MULTIPOLYGON.
- Dùng hàm AddGeometryColumn()
Để tạo một bảng dữ liệu không gian việc đầu tiên là tạo ra bảng dữ liệu, tuy
nhiên,trong bảng dữ liệu này sẽ không chứa cột dữ liệu không gian. Sau đó, để có
đƣợc bảng dữ liệu không gian, chúng ta cần thêm cột dữ liệu không gian bằng cách sử
dụng hàm AddGeometryColumn(). Bảng dữ liệu không gian đã đƣợc tạo ra, công việc
chèn dữ liệu vào bảng cũng tƣơng tự nhƣ cách thông thƣờng.
Bƣớc 1 : Tạo bảng thông thƣờng (không phải bảng dữ liệu không gian)
CREATE TABLE ROADS_GEOM (ID int4, NAME varchar(25))
26
Bƣớc 2 : Thêm cột không gian vào bảng sử dụng hàm “AddGeometryColumn”
AddGeometryColumn
(,,,,, )
- Giải thích các tham số của hàm :
Hàm AddGeometryColumn : thêm cột hình học vào bảng đã tồn tại.
: tên của bảng sơ đồ bảng.
: tên của bảng cần thêm cột không gian
: tên cột cần thêm theo kiểu không gian
: srid là một giá trị nguyên, xác định tính duy nhất của hệ
thốngtham chiếu không gian trong phạm vi của CSDL. Nghĩa là SRID của các bảng
khác nhau trong CSDL không gian phải hoàn toàn khác nhau.
: xác định kiểu hình học cho cột.
: thuộc chiều nào (0, 1, 2 hoặc 3)
3.2.1.7 . Hàm sử dụng trong Postgis
PostGIS là một module đƣợc kết hợp trong PostgreSQL cho phép ngƣời dùng lƣu
trữ các lớp dữ liệu không gian. Không những thế, nó còn cho phép ngƣời dùng truy
vấn, xử lý dữ liệu không gian. Các hàm thao tác, và các phép truy vấn trong PostGIS
bao gồm nhiều nhóm hàm khác nhau nhƣ: nhóm hàm điều khiển nhóm, hàm khởi tạo
hình học, hàm trả về kiểu hình học ở đầu ra, hàm xác định mối quan hệ không gian,
nhóm hàm đƣa ra đối tƣợng hình mới, nhóm hàm thay đổi hình học,Tuy nhiên trong
giới hạn của đề tài chỉ sử dụng và đề cập một số hàm đề thao tác với CSDL cây xanh
nhƣ:
ST_GeometryFromText()
Chức năng của hàm ST_GeometryFromText là trả về giá trị đƣợc chỉ định
ST_Geometry từ bảng không gian.
- Cú pháp: geometry ST_GeometryFromText(text WKT);
- Ví dụ: SELECT ST_GeometryFromText(„POINT(1 0)‟);
- Kết quả:
st_geomfromtext
----------------------------------------
27
0101000000000000000000F03F0000000000000000
* Chú ý: Hàm ST_GeometryFromText() cũng có thể đƣợc viết là
ST_GeomFromText()
Cụ thể đối với bảng dữ liệu cây xanh hàm ST_GeomFromText() đƣợc sử dụng để
trả về giá trị cho cột tọa độ của mỗi cây, giá trị tọa độ này đƣợc tính bắng cặp giá trị
Lattitude và Longtitude đƣợc nhập vào CSDL.
ST_AsText()
- Chức năng của hàm ST_AsText là trả về hiển thị dạng Point của cột Geometry.
- Cú pháp: text ST_AsText(geometry);
SELECT ST_AsText(„0101000000000000000000F03F0000000000000000 ‟);
- Giá trị trả về: POINT(1 0);
Hàm ST_AsText đƣợc dùng để trả về giá trị Lattitude và Longtitude ban đầu từ
cột dữ liệu Geometry hàm này đƣợc dùng vào thao tác chỉnh sửa dữ liệu.
ST_Distance()
- Chức năng:
Hàm ST_Distance trả về khoảng cách giữa 2 điểm, giữa điểm và đƣờng trong
không gian 2D. Đơn vị mặc định là “meter”.
- Cú pháp: float ST_Distance (geometry g1, geometry g2);
- Ví dụ: Khoảng cách của 2 điểm POINT (0 0) và POINT (3 4);
SELECT ST_Distance („POINT(0 0)‟,‟POINT(3 4)‟);
- Kết quả
st_distance= 5;
Hàm ST_Distance() đƣợc dùng để hỗ trợ tính khoảng cách giữa các cây với dạng
điểm trên bản đồ.
ST_Point_Inside_Circle
- Chức năng:
Hàm ST_Point_Inside_Circle trả về số lƣợng điểm nằm trong một hình hiển thị
cho tất cả các điểm mà khoảng cách của chúng từ hình <= khoảng cách.
Đơn vị của bán kính đƣợc đo bằng đơn vị của hệ thống tham chiếu không gian.
Đầu ra hàm có thể là POINT, MULTIPOINT, LINESTRING, MULTILINESTRING,
POLYGON, MULTIPOLYGON và GEOMETRYCOLLECTION.
28
- Cú pháp: ST_Point_Inside_Circle(geometry a_point, float center_x, float
center_y, float R);
- Ví dụ:SELECT ST_Point_Inside_Circle(ST_Point(1,2), 0.5, 2, 3);
- Kết quả: Trả về giá trị số lƣợng Points trong vòng tròn bán kính R
3.2.2 . Quy trình thu thập và chuẩn hóa dữ liệu
3.2.2.1 . Thu thập dữ liệu cây xanh
Quá trình thu thập dữ liệu đƣợc tiến hành tại khuôn viên trƣờng ĐH Nông Lâm
Thành phố Hồ Chí Minh trong giai đoạn từ tháng 2/2014 đến 3/2014, đối tƣợng là tất
cả cây xanh trong khuôn viên trƣờng, các khu thực nghiệm và kí túc xá. Nội dung thu
thập dữ liệu bao gồm:
- Thông tin cây xanh: tên cây, xuất xứ, năm trồng, hiện trạng sinh trƣởng,
- Thông tin về sinh trƣởng của cây xanh: tình trạng sức khỏe, chiều cao, đƣờng
kính thân cây, đƣờng kính tán cây, hƣớng phát triển, sâu bệnh,
Mỗi cây xanh đƣợc thu thập cần phải biết đƣợc họ hoặc chi của cây để biết đƣợc
đặc tính sinh lí và hƣớng chăm sóc cho cây đó, việc có đƣợc thông tin về họ, chi của
mỗi cây sẽ giúp cho việc thống kê cây xanh theo họ, chi đƣợc để dàng.
Xác định vị trí không gian của mỗi cây bằng cách sử dụng máy GPS để lấy tọa độ
Longtitude Latitude của mỗi cây hai giá trị này khi đƣợc nhập vào CSDL sẽ thể hiện
đƣợc vị trí của mỗi cây trên bản đồ đồng thời dữ liệu không gian này sẽ đƣợc sử dụng
đề thực hiện các phép thống kê về mặt không gian nhƣ tính khoảng cách cây, tính mật
độ cây
Bên cạnh đó những thông tin về công tác quản lý và chăm sóc cây xanh, lịch bảo
dƣỡng, cắt tĩa cây, cũng đƣợc khảo sát.
Kết quả thu thập toàn bộ cây xanh trong khuôn viên trƣờng bao gồm cây gỗ lâu
năm, cây cảnh quan và một số cây công nghiệp ở các trại thực nghiệm với số lƣợng
vào khoảng trên 500 cây các loại.
3.2.2.2 . Thu thập dữ liệu vòi tƣới
Dữ liệu vòi tƣới hiện tại ở trƣờng đƣợc thu thập bao gồm các thông tin nhƣ tọa độ
của mỗi vòi, khu vực đặt vòi, tình hình sử dụng của mỗi vòi, bán kính tƣới của vòi.
29
Số lƣợng vòi tƣới đƣợc thu thập và lấy tọa độ là 114 vòi phân bố ở ven các giảng
đƣờng, phần lớn dùng để tƣới các bãi cỏ và cây hoa kiểng, tùy vào vị trí đặt vòi và
không gian cây xanh nên bố trí bán kính 3m và 5m. Trong đó có khoảng 40 vòi bị hƣ
hỏng và không sử dụng để tƣới tự động mà dùng để gắn ống tƣới để kéo dài khoảng
cách do vòi tự động phun không đến những cây ở xa.
Một yếu tố nữa ảnh hƣởng đến chất lƣợng vòi tƣới là do việc bố trí vòi không đều
gây áp lực cho đƣờng ống dẫn nƣớc nghĩa là 1 đƣờng ống có quá nhiều nhánh tƣới nên
áp lực nƣớc không đủ để tƣới.
Hình 3.7. Hiện trạng vòi tưới tại trường
Đề tài sử dụng các phƣơng pháp thống kê, phân tích các thông tin về cây xanh
cần thiết cho CSDL cây xanh của trƣờng, thu thập và xử lý thông tin để xây dựng dữ
liệu bản đồ mang thông tin cả về không gian lẫn thuộc tính, lập trình phần mềm hỗ trợ
quản lý cây xanh. Cụ thể, quá trình nghiên cứu và thực hiện đề tài đƣợc tiến hành theo
sơ đồ hình 3.9.
30
Hình 3.8. Sơ đồ trình tự thiết lập cơ sở dữ liệu trong quản lý cây xanh
Chức năng của phần mềm và các luồng xử lý dữ liệu khi ngƣời dùng tƣơng tác
với phần mềm đƣợc thiết kế nhƣ hình 3.10.
Bản đồ nền
Bản đồ cây
xanh
Thiết lập bản
đồ
Chuẩn hóa cơ sở
dữ liệu
Xây dựng cơ sở dữ
liệu, các mối quan hệ
Cơ sở dữ liệu
hoàn chỉnh
Các dữ liệu
liên quan
Thông tin cây xanh
Cập nhật
Truy vấn
Phần mềm
hỗ trợ quản
lý cây xanh
Báo cáo, thống
kê số liệu
Xuất dữ liệu,
in ấn kết quả
31
Bản đồ Thông tin cây Chăm sóc
Đăng nhập
Phần mềm
Thống kê
Xem thông tin
Chỉnh sửa
Nhập dữ liệu cây
Thống kê mật độ cây
Nhập thêm
Tìm kiếm
Cập nhật
Xóa
Theo dỏi cây
Đặt lịch chăm sóc
Sức khỏe cây
Dữ liệu cây
Mật độ cây
CSDL
Kết thúc
Bắt đầu
Luồng dữ liệu
Chức năng
Chi (Họ) cây
Hình 3.9. Sơ đồ thiết kế chức năng của phần mềm
32
CHƢƠNG 4 . KẾT QUẢ NGHIÊN CỨU
4.1 . Xây dựng cơ sở dữ liệu không gian cây xanh
4.1.1 . Mô tả dữ liệu
- Dữ liệu không gian của cây xanh thể hiện bởi cặp tọa độ Lattitude, Longtitude
dùng để hiển thị vị trí của cây trên bản đồ.
- Dữ liệu thuộc tính của cây nhƣ chiều cao, độ rộng tán cây, hình ảnh cây, đặc
tính rụng lá của cây (theo loài, chi).
4.1.2 . Thiết kế cơ sở dữ liệu cây xanh
Đề tài tiến hành phân tích, thiết kế CSDL với sự hỗ trợ của phần mềm
PostgreSQL Database Modeler, CSDL đƣợc thiết kế với 6 thực thể cần quan tâm là:
Thongtincay, theodoicay, chamsoc, congviec, nhanvien, vitrituoi.
- Mô hình cơ sở dữ liệu.
Hình 4.1. Mô hình cơ sở dữ liệu
Các bảng dữ liệu:
33
Bảng 4.1. Mô tả bảng thông tin cây
thongtincay Thông tin cây
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idcay Mã cây xanh (khóa
chính)
Serial
2 tencay Tên cây xanh Text
3 xuatxu Xuất xứ Text
4 vitri Vị trí Geometry(POINT,
4326)
5 chatluong Chất lƣợng cây Text
6 idloai Mã loại cây Text
7 ngaytrong Ngày trồng Date
- Mô tả:
Mỗi cây xanh sẽ đƣợc quản lý bởi một idcay (mã cây xanh) để đáp ứng cho việc
có nhiều ngƣời dùng nhập dữ liệu vào cùng lúc nên mã cây sẽ có kiểu dữ liệu là serial
để tránh bị trùng lặp, mỗi mã cây sẽ đƣợc sử dụng cho các công việc nhƣ theo dõi, lịch
chăm sócThuộc tính của mỗi cây xanh sẽ gồm tên cây là tên thông thƣờng hoặc tên
khoa học, xuất xứ cây sẽ là nguồn gốc xuất xứ ở trong nƣớc hay là cây ngoại lai du
nhập vào, vị trí cây đƣợc thể hiện bằng cặp tọa độ longtitude và latitude dùng để xác
định vị trí của cây trên bảng đồ, mã loại cây sẽ có mối quan hệ với bảng loại cây để
xác định nhóm loài của mỗi cây.
Bảng 4.2. Mô tả bảng loại cây
Loaicay Loại cây
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idloai Mã loại cây Text
2 tenloai Tên loại Text
- Mô tả:
Loại cây đƣợc thể hiện là họ, chi của cây xanh, mỗi họ, chi sẽ bao gồm nhiều cây
thuộc vào nhóm đó, việc định danh bảng loại cây sẽ giúp cho việc thống kê theo họ,
chi của toàn bộ cây xanh đƣợc dễ dàng, khi biết đƣợc mỗi cây xanh thuộc họ nào
34
ngƣời quản lý sẽ biết đƣợc những đặt điểm sinh thái cũng nhƣ chế độ chăm sóc của
cây đó vì thế việc nhập thông tin cây cần phải có thông tin về loại cây.
Bảng 4.3. Mô tả bảng theo dõi cây
Theodoicay Theo dõi cây
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idtheodoi Mã theo dõi Integer
2 idcay Mã cây Text
3 ngaytheodoi Ngày theo dõi Date
4 suckhoe Sức khỏe Text
5 duongkinhtan Đƣờng kính tán cây Integer
6 duongkinh_1m3 Đƣờng kính thân cây Double precision
7 chieucao Chiều cao cây Integer
- Mô tả:
Thông tin khi tiến hành thu thập của mỗi cây bao gồm sức khỏe hiện tại của cây,
chiều cao, đƣờng kính tán cây và đƣờng kính thân cây tính từ mặt đất lên 1.3m, mỗi
mã theo dõi sẽ thể hiện cho mỗi lần tiến hành theo dõi trên một cây nhất định, mỗi cây
sẽ có 1 hay nhiều ngày theo dõi.
Bảng 4.4. Mô tả bảng nhân viên
nhanvien Nhân viên
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idnhanvien Mã nhân viên (khóa chính) Text
2 tennhanvien Tên nhân viên Text
3 chuyenmon Chuyên môn nhân viên Text
4 diachi Địa chỉ nhân viên character(50)
- Mô tả:
Bảng nhân viên dùng để lƣu trữ thông tin của nhân viên , mỗi nhân viên sẽ đƣợc
quản lý bởi một mã nhân viên , thông tin nhân viên bao gồm tên, chuyên môn,và địa
chỉ.
Bảng 4.5. Mô tả bảng công việc
35
congviec Công việc
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idcongviec Mã công việc (khóa chính) Text
2 tencongviec Tên công việc Text
3 yeucaucongviec Yêu cầu công việc Text
- Mô tả:
Bảng công việc dùng để lƣu trữ thông tin về các công việc sẽ đƣợc thực hiện
trong quá trình chăm sóc cây, mỗi công việc sẽ đƣợc liên kết với bảng chăm sóc để dễ
dàng bố trí lịch chăm sóc cây.
Bảng 4.6. Mô tả bảng chăm sóc cây
chamsoc Chăm sóc
STT Tên thuộc tính Mô tả chi tiết Kiểu dữ liệu
1 idchamsoc Mã chăm sóc (khóa chính) Text
2 ngaychamsoc Ngày chăm sóc Date
3 idnhanvien Mã nhân viên chăm sóc Text
4 idcongviec Mã công việc Text
5 idcay Mã cây Text
6 baocao Báo cáo Text
- Mô tả:
Mỗi cây sẽ đƣợc lên một lịch chăm sóc với mã cây cần chăm sóc, công việc chăm
sóc đƣợc định danh trong bảng công việc, sẽ có nhân viên đảm nhận công việc định
danh trong bảng nhân viên.
Từ mô hình dữ liệu đã xây dựng công cụ Model Export của phần mềm
PostgreSQL Database Modeler đƣợc sử dụng để tạo script file sẵn dùng cho việc ánh
xạ mô hình dữ liệu xuống hệ quản trị CSDL PostgreSQL/PostGIS.
Vào Export sau đó chọn script với định dạng SQL file tƣơng ứng với phiên bản
PostgrestSQL sử dụng cho việc ánh xạ mô hình dữ liệu xuống.
36
Hình 4.2. Tạo file script dùng cho việc ánh xạ mô hình dữ liệu xuống hệ quản trị
CSDL PostgreSQL/PostGIS
Tiếp theo ta chọn đƣờng dẫn, đặt tên file (cayxanh.sql) và chọn Export.
Tạo database trên PostgreSQL: Khởi động PostgreSQL, chọn CSDL “cayxanh”,
vào menu Tools Query tool
Hình 4.3. Chọn công cụ Query tool trên menu Tools trong pgAdmin III
Hoặc chọn Execute arbitrary SQL queries trên Tool bar.
37
Hình 4.4. Nút lệnh Execute arbitrary SQL trên Tool bar trong pgAdmin III
Tiếp theo, cửa sổ Query xuất hiện, vào menu File Open, chọn đƣờng dẫn đến
file cayxanh.sql
Hình 4.5. Mở file cayxanh.sql trong cửa sổ Query
Tiếp theo, thực thi truy vấn bằng cách chọn Execute Query trên tool bar
Hình 4.6. Thực thi file cayxanh.sql bằng lệnh Execute query
Sau khi thực thi lệnh Execute query, các bảng dữ liệu đƣợc mô tả sẽ đƣợc cài đặt
trên hệ quản trị CSDLPostgreSQL/PostGIS.
38
Hình 4.7. Cấu trúc bảng CSDL sau khi dữ liệu được mô tả được cài đặt trên hệ
quản trị CSDLPostgreSQL/PostGIS
4.1.3 . Tạo CSDL trên PostgreSQL/PostGIS
4.1.3.1 . Tạo CSDL mới
Tạo một CSDL mới sẽ hổ trợ việc lƣu trữ dữ liệu không gian và dữ liệu thuộc
tính, việc thao tác với dữ liệu đƣợc thực hiện bằng các câu lệnh SQL, database đƣợc
tạo ra sẽ hỗ trợ việc lƣu trữ và hiển thị các lớp dữ liệu.
Login vào PostgreSQL bằng pdAdmin III, click phải vào Databases chọn “New
database” để tạo một database hoàn toàn mới, hỗ trợ dữ liệu không gian, đặt tên là
cayxanh. Mục Owner chọn mặc định là Postgres, mục Template chọn
template_postgis_21, việc chọn Template đến database template_postgis_21 sẽ hỗ trợ
các kiểu dữ liệu không gian, các hàm tính toán liên quan đến tọa độ địa lí và không
gian.
4.1.3.2 . Import dữ liệu vào PostgreSQL/PostGIS
Chọn CSDL “cayxanh” vừa mới tạo, vào menu Plugins chọn PostGIS Shapefile
and DBF loader 2.0 để Import shapefile vào CSDL .
39
Hình 4.8.Menu Plugins trong PostgreSQL
Hoặc click chọn Execute the last used plugin trên Tool bar.
Hình 4.9. Nút lệnh Execute the last used plugin trên Tool bar
Xuất hiện cửa sổ PostGIS Shapefile Import/Export Manager.
Hình 4.10. Cửa sổ PostGIS Shapefile Import/Export Manager
40
Chọn host kết nối sau đó chọn shapefile và Import vào CSDL, các lớp dữ liệu nền
import vào CSDL gồm có:
- Lớp dữ liệu nền ranh giới hành chính của trƣờng ĐH Nông Lâm Tp Hồ Chí
Minh.
- Lớp dữ liệu các giảng đƣờng của trƣờng ĐH Nông Lâm Tp Hồ Chí Minh.
- Lớp dữ liệu các khu kí túc xá sinh viên của trƣờng ĐH Nông Lâm Tp Hồ Chí
Minh.
- Lớp dữ liệu đƣờng giao thông tại trƣờng ĐH Nông Lâm Tp Hồ Chí Minh.
Sau khi import shapefile vào CSDL thì các record xuất hiện đầy đủ dữ liệu thuộc
tính và dữ liệu không gian.
Hình 4.11. Dữ liệu bảng giảng đường trong database cayxanh
4.2 . Xây dựng các module quản lý cây xanh
4.2.1 . Bản đồ hiển thị vị trí cây xanh
Bản đồ (Map document) trên ArcMap đƣợc chọn đƣờng dẫn để hiển thị khi thực
thi sự kiện Load Form. Mỗi một bản đồ trong Arcmap có thể có một hay nhiều data
41
frames. Data Frame là một nhóm các lớp (Data layer) cùng đƣợc hiển thị trong một hệ
quy chiếu. Mỗi Data Frame có thể có một hệ quy chiếu riêng. Các Data Frame đƣợc
hiển thị riêng biệt trong chế độ Data View và có thể hiển thị trong cùng một Layout
View. Thông thƣờng, một bản đồ đơn giản chỉ có một Data Frame và cần sử dụng
nhiều Data Frame khi cần in thêm một số bản đồ phụ trên 1 mảnh bản đồ chính.
Bản đồ này đƣợc kết nối với Database đề hiển thị các lớp dữ liệu đã lƣu trữ trên
Database, bên cạnh đó việc cập nhật dữ liệu trực tiếp trên bản đồ cũng sẽ đƣợc lƣu trữ
ngƣợc lại Database.
Quy trình tạo một (Map document) liên kết với CSDL PostgreSQL đƣợc thực
hiện nhƣ sau:
Chọn công cụ (Add Query Layer) theo đƣờng dẫn File->
Add Data-> Add Query Layer
Trong hộp thoại New Query Layer ta chọn Connections để tạo kết nối mới đến
CSDL sau đó chọn New đề tạo mới một kết nối.
Hình 4.12. Hộp thoại New Query Layer
Trên hộp thoại Database Connection ta bắt đầu khởi tạo một kết nối đến CSDL
cụ thể trong đề tài là đến CSDL PostgreSQL.
- Mục DBMS Client: Chọn hệ quản trị CSDL mà ta muốn kết nối.
- Mục Data Source: Chọn nguồn kết nối dữ liệu.
- Mục Database: Chọn tên CSDL cần kết nối.
42
- Nhập Username và Password đề kết nối với CSDL sau đó chọn Test
Connection đề kiểm tra lại kết nối.
Hình 4.13. Hộp thoại Database Connection
Sau khi thực hiện xong việc tạo kết nối thì toàn bộ dữ liệu trên Database sẽ hiển
thị trên hộp thoại New Query Layer, dữ liệu muốn hiển thị lên bản đồ bằng cách Click
chọn các bảng dữ liệu trong khung List of Tables khi đó các cột thuộc tính của bảng sẽ
hiển thị trong khung Columns hoặc sử dụng các câu SQL đơn giản đề truy xuất dữ liệu
trong khung Query.
43
Hình 4.14. Chọn dữ liệu trong hộp thoại New Query Layer
Bản đồ sau khi đƣợc kết nối với CSDL thì toàn bộ dữ liệu thuộc tính và không
gian sẽ đƣợc cập nhật song song nghĩa là khi bản đồ đƣợc Load lên Form thì việc cập
nhật dữ liệu trên Form sẽ đồng nghĩa với việc nhập dữ liệu trực tiếp trên giao diện làm
việc của CSDL.
Hình 4.15. Bản đồ được load từ CSDL PostgreSQL
Để hiển thị dữ liệu trên ArcGIS vào Form trên giao diện visual studio thì ngƣời
dùng chỉ việc khai báo và truy xuất các công cụ có sẳn. Ví dụ sau đây mô tả quy trình
hiển thị một bản đồ dạng Shapefile vào form bằng ngôn ngữ C#.
Bƣớc 1: Tạo Project mới gồm form hiển thì dùng để hiển thị bản đồ, form này sẽ
chứa toàn bộ các khung nhìn của Arcmap bao gồm Map Control, Layer Control,
Toolbar Control,
Bƣớc 2: Chọn các công cụ hiển thị trong thanh công cụ ArcGIS Windows Form
Các chức năng đƣợc chọn bao gồm:
1. ArcGIS Engine TOCCOntrol là cửa sổ hiển thị các lớp bản đồ mà chƣơng trình
Add vào.
2. ArcGIS Engine MapControl là cửa sổ thể hiện nộp dung của các lớp bản đồ mà
chƣơng trình Add vào.
3. ArcGIS Engine Toolbar Control là thanh công cụ để Add các tool của ArcGIS
Engine vào nhƣ: Add, Save, Zoom, Pan, Full Extent,
44
4. ArcGIS Engine PageLayoutControl là khung nhìn bản đồ.
5. Licence Control dùng để kích hoạt các gói công cụ của ArcGIS Windows
Form.
Bên cạnh đó bộ công cụ của ArcGIS Windows Form còn có nhiều cửa sổ hiển thị
và phân tích khác nhƣng do đề tài không sử dụng nên không cần hiển thị các công cụ
này.
Bƣớc 3: Kích hoạt các bộ thƣ viện của ArcGIS Engine trên Visual Studio bằng
cách nạp các bộ thƣ viện vào Class kết nối.
Các bộ thƣ viện bao gồm:
ESRI.ArcGIS.Carto
ESRI.ArcGIS.Controls
ESRI.ArcGIS.Display
ESRI.ArcGIS.Geometry
ESRI.ArcGIS.SystemUI
ESRI.ArcGIS.esriSystem
Bƣớc 4: Chọn bản đồ để hiển thị trên From.
Chọn đƣờng dẫn của bản đồ đến các khung nhìn MapControl, PageLayoutControl
sau đó chọn các Tool hổ trợ trong thanh Toolbar Control.
Hình 4.16. Bản đồ được hiển thị lên Form bằng ArcGIS Engine
45
4.2.2 . Thêm dữliệu cây xanh
- Chức năng:
Form thêm cây đƣợc sử dụng khi cần thêm mới thông tin cây xanh.
- Thao tác thực hiện:
Sau khi đăng nhập vào ứng dụng thành công ta tiến hành thêm mới một dữ liệu
cây xanh bằng 2 cách:
Cách 1: Double Click vào bản đồ tại vị trí cần thêm cây nếu đã định vị chính xác
vị trí cây trên bản đồ, thao tác này đƣợc thực hiện thì Form nhập cây sẽ lấy hay giá trị
x,y tƣơng ứng với cặp tọa độ tại vị trí đó và truyền vào Textbox, việc còn lại là nhập
các thông tin về thuộc tính cây để hoàn tất công việc.
Cách 2: Nhập mới thông tin cây xanh bằng cách Click vào nút (thêm)
để thêm các thông tin của cây xanh cần nhập thêm.
Hình 4.17. Form thêm mới cây xanh
- Mô tả:
Trên form Nhập thêm cây thì mỗi đơn vị cây xanh cần nhập sẽ gồm:
Tên Chi(Họ): Là tên chi hoặc họ của cây, ngƣời dùng chỉ cần thao tác chọn tên
chị hoặc họ từ ComboBox do dữ liệu về chi, họ cây đã đƣợc lƣu trữ trên bảng Loại
Cây trên CSDL mỗi đơn vị Chi(Họ) sẽ tƣơng ứng với hình đại diện, nếu có một đơn vị
cây thuộc một loài mới thì ta tiến hành thêm mới dữ liệu loại cây trên Tab danh sách
cây.
46
Vị trí: Vị trí của cây là cặp tọa độ Lattitude và Longtitude cặp tọa độ này khi
nhập vào CSDL sẽ đƣợc chuyển đổi vào cột tọa độ theo kiếu dữ liệu là Geometry,
việc chuyển đổi này sẽ giúp cho việc hiển thị đƣợc vị trí không gian của cây lên bản
đồ.
Các thông tin nhƣ Tên cây, Xuất xứ, Ngày trồng, Chất lƣợng cần đƣợc nhập vào
Textbox hoặc chọn từ ComboBox để thêm các thông tin cần thiết của cây sau đó hoàn
tất bằng cách Click vào nút (nhập) trên form.
Thao tác nhập kết thúc bằng thông báo nhập thành công với tên cây vừa nhập.
Hình 4.18. Thông báo nhập thành công cây mới
4.2.3 . Cập nhật thuộc tính cây xanh
- Chức năng:
Form chỉnh sửa thông tin cây xanh đƣợc dùng khi ngƣời dung muốn cập nhật
thông tin cây xanh.
- Thao tác thực hiện:
Để chỉnh sửa thông tin của một cây xanh ta Click chọn vào nút (sửa)
trên Tab danh sách cây.
47
Hình 4.19. Form chỉnh sửa thông tin cây xanh
- Mô tả:
Trên form chỉnh sửa cây ta chọn ID cây cần chỉnh sửa từ ComboBox “ID Cây”
sau khi chọn Id cây thì toàn bộ thông tin của cây đƣợc chọn sẽ đƣợc đỗ vào các
textbox tƣơng ứng, hoặc click vào nút (refresh) để load tất cả các cây lên datagrid sau
đó click vào dòng thuộc tính của cây cần chỉnh sửa.
Để tiến hành chỉnh sửa ngƣời dùng sẽ thay đổi thông tin tƣơng ứng trên các
textbox sau đó hoàn tất bằng cách click vào nút (sửa) trên form.
Công việc chỉnh sửa hoàn tất bằng thông báo sửa thành công và Id cây vừa đƣợc
chỉnh sửa.
Hình 4.20. Thông báo chỉnh sửa thành công cây xanh
48
4.2.4 . Tìm kiếmdữ liệu cây xanh
- Chức năng:
Form tìm kiếm thực hiện công việc tìm kiếm thông tin của cây xanh trên CSDL.
- Thao tác thực hiện:
Để tìm kiếm thông tin của một cây xanh ta Click chọn vào nút (tìm)
trên Tab danh sách cây.
Hình 4.21. Form tìm kiếm thông tin cây xanh
- Mô tả:
Để tiến hành tìm thông tin của cây xanh ta có thể nhập trực tiếp id cây vào
ComboBox ID Cây hoặc chọn các ID cây đã đƣợc lƣu trên CSDL tại Combobox ID
Cây sau đó chọn nút (tìm) trên form.
Kết quả là thông tin của cây xanh cần tìm sẽ hiển thị trên datagrid. Quá trình tìm
kiềm kết thúc ta chọn nút (thoát) trên form.
Hình 4.22. Thông báo thoát khỏi form
49
4.2.5 . Xóadữ liệu cây xanh
- Chức năng:
Form xóa cây thực hiện công việc xóa thông tin của cây xanh trên CSDL.
- Thao tác thực hiện:
Để xóa thông tin của một cây xanh ta Click chọn vào nút (xóa) trên
Tab danh sách cây.
Hình 4.23. Form xóa thông tin cây xanh
- Mô tả:
Để tiến hành xóa thông tin của cây xanh ta có thể nhập trực tiếp id cây vào
ComboBox ID Cây hoặc chọn các ID cây đã đƣợc lƣu trên CSDL tại Combobox ID
Cây sau đó chọn nút (xóa) trên form.
Hoặc ngƣời dùng có thể tìm kiểm thông tin cây xanh trƣớc khi xóa bằng cách
click vào nút (tìm) trên form đề xác định thông tin cây xanh sẽ xóa sau đó
mới tiến hành thao tác xóa.
Kết quả là thông tin của cây xanh cần tìm sẽ bị xóa trên CSDL. Quá trình xóa cây
xanh kết thúc ta chọn nút (thoát) trên form.
Hình 4.24. Thông báo thoát khỏi form
50
4.2.6 . Thêm thông tin theo dõi cây xanh
- Chức năng:
Form thêm thông tin theo dõi cây đƣợc dùng để nhập thông tin theo dõi về sức
khỏe và các thông số của cây theo thời gian.
- Thao tác thực hiện:
Khi cần thêm thông số về sức khỏe thu thập đƣợc của một cây xanh ta chọn vào
nút (thêm) trên Tab “Theo Dõi Cây” để thêm dữ liệu theo dõi cây xanh.
Hình 4.25. Form thêm mới thông tin theo dõi cây
- Mô tả:
Trên form nhập thêm thông tin theo dõi cây ta chọn id cây cần nhập thông số theo
dõi từ ComboBox “Mã Cây” sau đó nhập các thông số nhƣ: Ngày theo dõi, tình trạng
sức khỏe, đƣờng kình tán, đƣờng kình thân và chiều cao vào các textbox tƣơng ứng.
Thao tác thêm thông tin theo dõi cây hoàn tất bằng cách chọn nút
(thêm) trên form.
Thông báo hoàn tất công việc thêm xuất hiện cùng với id cây vừa đƣợc nhập
thông tin.
Hình 4.26. Thông báo hoàn tất thêm thông tin theo dõi cây
51
Mỗi đơn vị cây xanh khi đƣợc theo dõi sẽ đƣợc theo dõi theo một khoảng thời
gian và với nhiều lần theo dõi và lấy thông số nên khi tìm kiềm thông tin theo dõi cây
ngƣời dùng chỉ cần nhập id cây thì toàn bộ các thông số của cây sẽ đƣợc sắp xếp theo
một quá trình giúp cho ngƣời quản lý nắm đƣợc tình hình phát triển của cây.
Hình 4.27. Dữ liệu theo dõi cây
4.2.7 . Thống kê không gian cây xanh
- Chức năng:
Khi cây xanh đƣợc quản lý bằng dữ liệu không gian thì công việc tính toán mật
độ và khoảng cách cây đƣợc thực hiện dể dàng hơn bằng các phép phân tích không
gian dựa vào tọa độ của cây, bằng các công cụ này sẽ giúp cho việc quy hoạch trồng
mới, tỉa thƣa cây đƣợc thực hiện dể dàng hơn.
- Thao tác thực hiện:
Để tính toán mật độ cây xanh trên một vùng ta thực hiện bằng cách Right Click
trên bản đồ hiển thị để kích hoạt form thống kê theo không gian.
52
Hình 4.28. Form thống kê cây theo không gian
- Mô tả:
Khi chọn một vị trí trên bản đồ thì form sẽ lấy cặp tọa độ x,y tại vị trí đó để làm
tâm. Sau đó ngƣời dùng chỉ cần nhập bán kính của vùng cần tính mật độ cây, độ dài
bán kính nhập vào sẽ là độ dài của đƣờng tròn đƣợc vẽ trên bản đồ với tâm đƣơng tròn
là vị trí click chọn.Toàn bộ các điểm cây nằm trong đƣờng tròn này sẽ đƣợc hiển thị
lên Datagrid đồng thời số lƣợng cây cũng đƣợc hiện thị trên form.
Sau khi nhập bán kính ta chọn nút (lọc) trên form để lọc ra những
cây nằm trong vùng quy định.
Hình 4.29. Kết quả form thống kê không gian cây
53
4.3 . Quy trình xây dựng hệ thống tƣới tiêu
4.3.1 . Hiện trạng vòi tƣới của trƣờng
Dữ liệu vòi tƣới thu thập đƣợc đã cho thấy số lƣợng vòi tƣới hiện tại của trƣờng
chƣa đáp ứng đủ yêu cầu của việc tƣới tiêu cho cây xanh, số lƣợng vòi hƣ hỏng
nhiều.Một yếu tố nữa ảnh hƣởng đến chất lƣợng vòi tƣới là do việc bố trí vòi không
đều gây áp lực cho đƣờng ống dẫn nƣớc nghĩa là một đƣờng ống có quá nhiều nhánh
tƣới nên áp lực nƣớc không đủ để tƣới.
Hiện trạng sử dụng vòi tƣới sau khi tiến hành khảo sát đƣợc mô tả ở bảng 4.7
Bảng 4.7. Bảng thống kê hiện trạng sử dụng vòi tưới
Hiện trạng vòi Số lƣợng
Tổng lƣợng vòi 114
Vòi đang sử dụng 70
Vòi hƣ hỏng 28
Vòi bị thay thế 16
Vòi tƣới đƣợc cây 31
Vòi không tƣới đƣợc cây 39
Từ dữ liệu vòi thu thập tại trƣờng ta có thể tính toán đƣợc số lƣợng cây đƣợc tƣới
với hệ thống vòi hiện tại bằng cách lấy tọa độ của từng vòi cùng với tình hình sử dụng
ta có thể biết đƣợc số lƣợng cây đƣợc tƣới ở mỗi vòi và suy ra số lƣợng cây đƣợc tƣới
bằng vòi phun tự động của toàn trƣờng với mỗi vòi có bán kính tƣới là 5m.
Hình 4.30.Bản đồ vị trí cây xanh được chồng lên lớp bản đồ vị trí vòi tưới
54
Để đếm đƣợc số lƣợng cây đƣợc tƣới của mỗi vòi nghĩa là đếm những điểm cây
nằm trên vùng đệm 5m của mỗi vị trí vòi ta phải tiến hành lập thêm cột tính số lƣợng
trên bảng thuộc tính của lớp cây xanh sau đó liên kết với bảng thuộc tính của lớp vòi
tƣới để biết số lƣợng cây thuộc mỗi vòi.
Tiến trình tính toán số lƣợng cây đƣợc tƣới thực hiện nhƣ sau:
- Tạo thêm Field Count trên bảng thuộc tính của lớp cây xanh.
Hình 4.31. Tạo Field Count trong bảng thuộc tính cây xanh
- Chọn chức năng Join với bảng thuộc tính của lớp vị tri vòi tƣới
Hình 4.32. Chức năng Join.. trên layer vòi tưới
55
- Chọn phƣơng thức tính tổng (Sum) trong cửa sổ Join Data
Hình 4.33. Cửa sổ Join Data
Kết quả ta có đƣợc số lƣợng điểm chứa trong mỗi vùng đệm của vòi tƣới ở cột
Count_
Hình 4.34. Bảng thuộc tính của layer vòi tưới
56
Cột Count_ của bảng thuộc tính sau khi liên kết cho ta kết quả số lƣợng cây nằm
trong vùng đệm của mỗi vòi tƣới. Những hàng có giá trị bằng 0 chứng tỏ không có
cây nằm trong vùng bán kính 5m, lí do các vòi không tƣới đƣợc cây nào là có thể do
vòi dùng để tƣới thảm cỏ hoặc là dùng tƣới các loại cây hoa kiểng nhỏ thời gian sinh
sống ngắn mà để tài không thu thập dể quản lý. Nhƣ vậy với hệ thống vòi tƣới hiện tại
sẽ tƣới đƣợc cho 61 cây trong tổng số hơn 500 cây trong khuôn viên trƣờng.
4.3.2 . Quy trình phân bổ vòi tƣới
Trên cơ sở phân chia khu vực phân bố cây và do hệ thống vòi tƣới hiện tại của
trƣờng chƣa đáp ứng đƣợc yêu cầu tƣới cho toàn bộ cây xanh trong khuôn viên trƣờng,
việc tƣới bằng xe hiện nay tốn nhiều chi phí và cũng không tƣới đƣợc những cây ở
cách xa đƣờng giao thông nên một quy trình phân bố vòi tƣới đƣợc đề xuất theo thuật
toán với xu hƣớng giảm dần diện tích chƣa tƣới nhƣ sau:
Đầu vào: Cho một đa giác (một polygon) đƣợc cho là khu vực trồng cây và bán kính
tƣới mỗi vòi là r mét.
Đầu ra: Tập các điểm (vòi tƣới) sao cho các vùng tƣới tròn phủ gần kín đa giác.
Lƣu ý: do vùng trồng cây tại trƣờng là vùng đất trồng nên khoảng hở giữa các vùng
tƣới tròn không quá lớn đƣợc xem là chấp nhận đƣợc nghĩa là các khoảng hở sẽ đƣợc
cung cấp nƣớc.
Quy trình thuật toán đề xuất:
- Bƣớc 1: Làm trơn đa giác, loại bỏ những góc cạnh quá nhọn.
- Bƣớc 2: Lấy vùng đệm với bán kính –r mét cho đa giác, vùng đệm mới sẽ nằm
hoàn toàn phía trong đa giác. Công cụ thực hiện là Buffer Tool. Sau đó chuyển
sang bƣớc 3.
- Bƣớc 3: Kiểm tra nếu vùng đệm mới tạo có diện tích lớn hơn diện tích vùng
phủ bởi một vòi tƣới (nghĩa là: diện tích vùng đệm lớn hơn r2). Khi đó, sử
dụng công cụ phân rã biên vùng đệm thành các điểm cách nhau một khoảng 2r.
Khi đó, các điểm sẽ là vị trí các vòi tƣới và tiếp sang bƣớc 4. Công cụ thực hiện
là Construct Points (ArcToolBox). Ngƣợc lại, sang bƣớc 5
- Bƣớc 4: Lặp lại bƣớc 2 với bán kính lần lƣợt là -2r, -3r,...
57
- Bƣớc 5: Nếu diện vùng đệm nhỏ hơn r2 thì ngƣng thuật toán và vòi tƣới cuối
cùng cho đa giác sẽ là điểm trung tâm của vùng đệm nhỏ này.
Quy trình bố trí vòi tƣới đƣợc thực hiện theo sơ đồhình 4.36:
Smooth Polygon
Construct points
Buffer (D = -r)
Buffer (D = -2r)
P1
P2
P3
P4
Pn
Buffer (D = -2r)
Buffer (D = -2r)
Construct points
Construct points
Construct points
Hình 4.35. Quy trình phân bố vị trí vòi
Trong thực tế, cũng nhƣ đƣợc trình bày ở bƣớc 1 của quy trình thuật toán bên
trên, việc hình thành các đa giác là phân bố của các cây sẽ dẫn đến vấn đề đa giác tạo
thành có xác suất cao mang hình dạng bất thƣờng (lồi hoặc lõm), tạo nên những vùng
góc nhọn gây khó khăn trong việc phân bố vòi. Do đó, chúng ta cần thực hiện bƣớc 1
trong quy trình thuật toán trên là cần sự làm tròn hoặc mịn đa giác trƣớc khi thực hiện
thuật toán phân bố vòi tƣới. Đề xuất thực hiện nhƣ sau: Các polygon sau khi tạo ra sẽ
đƣợc dùng công cụ Smooths (ArcToolbox) để làm mịn, công cụ smooths sẽ cho phép
tạo thêm độ cong qua một đỉnh của polygon, làm mềm góc độ sắc nét trong đa giác để
nâng cao chất lƣợng thẩm mỹ hoặc bản đồ. Tuy nhiên, công cụ trên cung cấp 2 phƣơng
pháp làm mịn:
58
- Phƣơng pháp PAEK: làm mềm đa giác dựa trên một bán kính làm mịn
(Smoothing Tolerance). Tham số Smoothing Tolerance kiểm soát chiều dài của đƣờng
di chuyển giữa 2 đỉnh đƣợc sử dụng trong việc tính toán các đỉnh mới.
- Phƣơng pháp BEZIER_INTERPOLATION đa giác mà không cần sử dụng bán
kính làm mịn bằng cách tạo ra các đƣờng cong Bezier để phù hợp với đa giác đầu vào.
Nói một cách đơn giản phƣơng pháp Paek là phƣơng pháp làm mịn vòng trong còn
phƣơng pháp BEZIER_INTERPOLATION là phƣơng pháp làm mịn vòng ngoài.
Do đặt tính của các polygon đƣợc tạo từ các vị trí cây tức là các đỉnh của đa giác
là các vị trí cây nên ta chọn phƣơng pháp làm mịn vòng ngoài để đảm bảo tính toàn
vẹn của dữ liệu.
Hình 4.36. So sánh hai phương pháp làm mịn
Bằng cách chồng lớp 2 phƣơng pháp làm mịn ta có thể thấy rõ polygon đầu ra có
sự khác biệt. Tuy nhiên do đặc tính của dữ liệu nên ta chọn phƣơng pháp
BEZIER_INTERPOLATION để đảm bảo polygon sau khi làm mịn không bị mất các
vị trí cây.
Bố trí điểm vòi tƣới trên các Polygon:
Dùng công cụ Construct points để bố trí các điểm trên một Polygon với khoảng
cách nhất định. Để bố trí ta cần có một layer điểm mẫu trên Polygon đó, điểm nằm trên
Polygon có thể chọn là điểm bắt đầu hay kết thúc của Polygon.
59
Hình 4.37. Chọn một điểm mẫu trên Polygon
Hình 4.38. Chọn layer điểm mẫu để bố trí các điểm còn lại
Hình 4.39. Dùng công cụ Construct points để bố trí điểm với khoảng cách 10m
60
Hình 4.40. Các điểm sau khi bố trí xong được lưu lên layer điểm ban đầu
Hình 4.41. Các vị trí vòi sau khi được lấy vùng đệm 5m
Với mỗi vòi tƣới ta sẽ tính đƣợc số cây đƣợc tƣới ở mỗi vòi đó bằng cách tính số
cây nằm trong vùng đệm 5m (vùng tƣới) của vòi đó sau đó ta sẽ suy ra đƣợc số lƣợng
cây đƣợc tƣới bằng hệ thống vòi vừa phân bổ.
61
Hình 4.42. Kết quả vòi tưới sau khi hoàn thành quy trình phân bổ
4.3.3 . Các kịch bản và kết quả phân bố vòi tƣới
- Kịch bản 1:
Cây xanh ở trƣờng đƣợc tƣới bằng xe tƣới với độ dài của ống là 10m số lƣợng
cây còn lại không đƣợc tƣới bằng xe sẽ đƣợc tƣới bằng vòi theo quy trình phân bố ở
mục 4.3.2.
Với kịch bản này thì khi chồng lớp cây xanh lên vùng đệm 10m (d=10) của
đƣờng giao thông thì ta sẽ tính đƣợc tổng số cây đƣợc tƣới bằng xe.
Hình 4.43. Lớp vị trí cây được chồng lên vùng đệm 10m của đường giao thông
62
Tính tổng số cây đƣợc tƣới bằng xe theo phƣơng pháp tính số điểm cây nằm trên
vùng đệm, giá trị cột Count_ của bảng thuộc tính vùng đệm 10m khi đƣợc liên kết với
bảng thuộc tính của lớp vị trí cây.
Bảng 4.8. Bảng thuộc tính của vùng đệm 10m (đường giao thông)
F
ID Shape OBJECTID Shape_Leng Shape_Area Count_
0 Polygon 1 0.11855 0.000012 163
Kết quả bảng cho thấy số cây đƣợc nằm trên vùng đềm của đƣờng giao thông là
163 tƣơng ứng với 163 cây đƣợc tƣới nếu sử dụng xe tƣới với bán kình ống tƣới là
10m.
Hình 4.44. Số cây được tưới bằng xe tưới với bán kính 10m
Số lƣợng cây còn lại không đƣợc tƣới bằng xe thì tiếp tục sử dụng quy trình ở
mục 4.3.2 để bố trí thì số vòi cần dùng là 54 và số cây đƣợc tƣới là289 cây.
Nhƣ vậy với kịch bản này thì tổng số vòi cần sử dụng là 54 vòi kết hợp với xe
tƣới thì sẽ tƣới đƣợc cho 452 cây.
- Kịch bản 2:
Vòi tƣới đƣợc bố trí theo quy trình ở mục 4.3.2 đáp ứng đƣợc bài toán tƣới đầy
cho vùng có cây.
Kết quả sau khi bố trí thì số lƣợng vòi sử dụng là 70, số lƣợng cây đƣợc tƣới là
457 cây.
Bảng mô tả số lƣợng vòi và số cây đƣợc tƣới bởi hệ thống vòi hiện tại và hệ
thống vòi đƣợc đề xuất trong các kịch bản.
63
Bảng 4.9. So sánh hệ thống tưới hiện tại với các kịch bản
Hệ thống tƣới
hiện tại Kịch bản 1 Kịch bản 2
Số vòi 114 54 70
Cây đƣợc tƣới bằng vòi 61 289 457
Cây đƣợc tƣới bằng xe 0 163 0
Tổng cây đƣợc tƣới 61 452 457
4.3.4 . Kịch bản phân bổ vòi tƣới số lƣợng cây tối đa
Kết quả số lƣợng vòi đã bố trí đã đáp ứng đƣợc yêu cầu bài toán tƣới đầy cho
những vùng có cây. Từ kết quả của các kịch bản trên nên đề tài đề xuất mở rộng
nghiên cứu bài toán tối ƣu cho việc tƣới cụ thể là bài toán tìm số lƣợng vòi tối ƣu nhất.
Giải quyết đƣợc bài toán này sẽ giúp cho việc bố trí vòi với một số lƣợng cụ thể
giúp tiết kiệm đƣợc không gian cũng nhƣ chi phí.
Các nghiệm đƣợc chọn sẽ tối ƣu theo thứ tự các yêu cầu:
- Ƣu tiên các vị trí vòi tập trung: các vòi đƣợc chọn phải có vị trí gần nhau trong
một vùng hoặc giữa các vùng vòi nhau để tiết kiệm đƣợc chi phí về đƣờng ống và áp
lực nƣớc.
- Tổng số cây đƣợc tƣới là nhiều nhất: ƣu tiên chọn những vòi tƣới đƣợc nhiều
cây nhất.
- Nếu có nhiều vùng thỏa hai yêu cầu trên thì xét đến yêu cầu vùng gần nguồn
nhất để tiết kiệm chi phí xây dựng, bảo trì đƣờng ống dẫn nƣớc.
- Địa hình đặt vòi cao.
64
CHƢƠNG 5 . KẾT LUẬN VÀ KIẾN NGHỊ
5.1 . Kết luận
Đề tài sau khi thực hiện đã đạt đƣợc những kết quả nhƣ sau:
- Tìm hiểu đƣợc phƣơng pháp xây dựng các ứng dụng quản lý dữ liệu trên cơ sở
tích hợp dữ liệu không gian và dữ liệu thuộc tính vào CSDL.
- Tìm hiểu đƣợc phƣơng pháp thành lập và phân tích bản đồ.
- Xây dựng CSDL không gian cây xanh.
- Xây dựng các công cụ hỗ trợ hiển thị, cập nhật và phân tích dữ liệu cây xanh.
Hệ thống cơ sở dữ liệu này có thể cập nhật đƣợc những thông tin mới nhất của
từng cây xanh. Đây là một việc rất quan trọng vì các thông tin về cây xanh luôn luôn
cập nhật để nhà quản lý có thể nắm bắt đƣợc những thông tin mới nhất đồng thời bằng
các phép phân tích không gian của công nghệ GIS ngƣời quản lý có thể giải đƣợc các
bài toán về quy hoạch và bố trí không gian cây xanh một các tối ƣu mà cần rất ích chi
phí cũng nhƣ nhân công.
5.2 . Kiến nghị
Do hạn chế về thời gian, kiến thức cũng nhƣ nguồn dữ liệu nên đề tài vẫn còn tồn
tại những mặt hạn chế sau:
- Chƣa hoàn thiện về dữ liệu thuộc tính của cây xanh, dữ liệu thu thập chƣa
có độ chính xác cao do dụng cụ thu thập còn hạn chế.
- Phần mềm ứng dụng còn nhiều hạn chế với ngƣời dùng do phải cài đặt
nhiều phần mềm hỗ trợ khác.
Để đề tài hoàn thiện và ứng dụng hiệu quả hơn vào thực tế, cần nghiên cứu và
phát triển thêm các nội dung sau:
- Hoàn thiện hơn về dữ liệu cây xanh nhƣ các thông tin về sinh lý của cây để có
biện pháp chăm sóc cho từng nhóm cây khác nhau.
- Có hệ thống định vị và theo dõi cây trên các thiết bị di động để công tác chăm
sóc dễ dàng hơn.
- Tính toán đƣợc lƣợng nƣớc tƣới cho từng nhóm cây để bố trívòi tƣới hợp lí
tránh thất thoát nƣớc.
65
TÀI LIỆU THAM KHẢO
1. ĐH Nông Lâm TP.HCM. 2011. Dự thảo phát triển Trƣờng ĐH Nông Lâm
Tp.HCM 2011-2020.
2. George F. Luger, William A. Stubblefield – Albuquerque – Artificial
Intelligence – Wesley Publishing Company, Inc – 1997 (Chapter 4).
3. Lynn Beighley, 2007. Head First SQL. O‟Reilly Media, Inc., Sebastopol, CA,
USA.
4. Nguyễn Đức Việt, Nguyễn Thị Diệu. 2012. Ứng dụng công nghệ GIS trong
quản lý cây xanh đô thị tại Thành phố Đà Nẵng. Đề tài nghiên cứu khoa học, Khoa
Địa Lý, Trƣờng ĐH Sƣ Phạm, ĐH Đà Nẵng.
5. Nguyễn Kim Lợi, Trần Thống Nhất, Hệ thống thông tin địa lý Phần mềm
ArcView 3.3. Nhà xuất bản Nông Nghiệp, TP.HCM, 237 trang, 2007.
6. Nguyễn Ngọc Bình Phƣơng - Thái Thanh Phong, 2008. Các giải pháp lập trình
C#. NXB Giao Thông Vận Tải.
7. Nguyễn Quốc Bình. 2007. Đại cương về hệ thông tin địa lý trong Lâm nghiệp.
Trƣờng ĐH Nông lâm Tp.Hồ Chí Minh
8. Nguyễn Quốc Tuấn. 2011. Ứng dụng GIS mã nguồn mở trong quản lý cây xanh
đô thị tại Phường 6, Quận 3 Tp.Hồ Chí Minh. Khóa luận tốt nghiệp, Khoa Môi trƣờng
và tài nguyên, Trƣờng ĐH Nông Lâm Tp.Hồ Chí Minh.
9. Nguyễn Tấn Dƣợc, Lê Đức Toàn, Nguyễn Hiếu Trung, 2003. Xây Dựng Hệ
Thống Thông Tin Địa Lý (GIS) Phuc Vụ Cho Công Tác Quản Lý và Quy Hoạch Đô
Thị Thành phố Cần Thơ. Đề tài nghiên cứu khoa học Khoa Công Nghệ- ĐH Cần Thơ.
10. Nguyễn Thị Hữu Phƣơng. 2011. Xây dựng cơ sở dữ liệu GIS phục vụ công tác
quản lý lớp phủ rừng tỉnh Quảng Ninh. Luận văn thạc sỹ, Khoa Địa lý,Trƣờng ĐH
Khoa học Tự nhiên.
11. Phƣơng Lan và Hoàng Đức Hải, 2002. Lập trình Windows với C#.net. Nhà xuất
Lao động – Xã hội, Hà Nội.
12. Vũ thị Phƣơng Thủy. 2009. Ứng dụng công nghệ viễn thám và GIS trong công
tác điều tra, theo dõi và quản lý thảm cây xanh, cây cổ thụ góp phần bảo vệ cảnh quan
66
môi trường tại Quận Ba Đình - Hà Nội. Luận văn Đồ án ngành Môi Trƣờng, ĐH Kinh
Tế Quốc Dân Hà Nội.
67
PHỤ LỤC
Phụ lục 1: Bảng thông tin thu thập cây xanh.
Tên Cây Xuất xứ
Chất
lƣợng
Đƣờng
kính
tán
(m)
Đƣờng
kính
thân
(Cm)
Chiều
cao
(m)
Tọa độ
Long
Tọa độ
Lat
Hoàng nam Ngoại lai Tốt 1.2 8 9 106.791364 10.873775
Hoàng nam Ngoại lai Tốt 1.3 9 8 106.791395 10.873771
Hoàng nam Ngoại lai Tốt 1.1 9 7 106.791431 10.873771
Phƣợng vĩ Ngoại lai Tốt 6 16 18 106.7915 10.87384
Phƣợng vĩ Ngoại lai Tốt 5 23 25 106.791856 10.873528
Phƣợng vĩ Ngoại lai Tốt 4 25 22 106.792134 10.873529
Thông Ngoại lai Tốt 10 20 30 106.787681 10.868408
Keo lá tràm Ngoại lai Tốt 10 15 20 106.787643 10.868453
Sao Bản địa Tốt 20 30 25 106.787851 10.868221
Sao Bản địa Tốt 25 40 30 106.787857 10.868375
Sao Bản địa Tốt 35 30 30 106.787867 10.86851
Sao Bản địa Tốt 40 60 30 106.787873 10.868629
Sao Bản địa Tốt 25 30 45 106.787882 10.86876
Sao Bản địa Tốt 15 50 25 106.787882 10.868787
Sao Bản địa Tốt 30 30 35 106.787894 10.868918
Sao Bản địa Tốt 20 20 20 106.787909 10.869138
Sao Bản địa Tốt 15 30 40 106.787957 10.869162
Sao Bản địa Tốt 20 40 35 106.787912 10.869221
Phƣợng vĩ Ngoại lai Tốt 10 20 15 106.788129 10.869114
Phƣợng vĩ Ngoại lai Tốt 10 10 10 106.788214 10.868604
Phƣợng vĩ Ngoại lai Tốt 10 15 15 106.788202 10.868399
Bàng đài loan Ngoại lai Tốt 10 5 5 106.788392 10.868919
Bàng đài loan Ngoại lai Tốt 8 5 5 106.788291 10.868782
Bàng đài loan Ngoại lai Tốt 5 3 8 106.788309 10.868553
Me Bản địa Tốt 5 10 10 106.78849 10.868961
Dầu Bản địa Tốt 15 20 20 106.788651 10.869199
Phƣợng vĩ Ngoại lai Tốt 10 15 15 106.789201 10.869178
Lim sẹt Bản địa Tốt 25 25 20 106.789668 10.869133
68
Lim sẹt Bản địa Tốt 10 20 10 106.789621 10.868431
Sao Bản địa Tốt 15 25 35 106.787958 10.869371
Sao Bản địa Tốt 20 25 45 106.787965 10.86948
Sao Bản địa Tốt 15 25 25 106.787977 10.869682
Sao Bản địa Tốt 25 30 30 106.788114 10.870372
Sao Bản địa Tốt 20 35 25 106.788177 10.870574
Sao Bản địa Tốt 40 30 30 106.788206 10.870631
Sao Bản địa Tốt 30 20 45 106.788257 10.870726
Sao Bản địa Tốt 20 40 20 106.788307 10.870815
Lim sẹt Bản địa Tốt 10 25 10 106.788364 10.870937
Lim sẹt Bản địa Tốt 15 25 15 106.788412 10.871038
Lim sẹt Bản địa Tốt 10 15 15 106.788492 10.87113
Lim sẹt Bản địa Tốt 20 20 10 106.788575 10.871306
Lim sẹt Bản địa Tốt 15 15 15 106.788641 10.87141
Viết Bản địa Tốt 5 10 5 106.788382 10.870946
Viết Bản địa Tốt 3 10 7 106.788434 10.871037
Viết Bản địa Tốt 8 7 5 106.788494 10.871144
Viết Bản địa Tốt 3 10 8 106.788583 10.871325
Phụ lục 2: Nội dung một số file trong phần mềm
- Nội dung file ketnoi.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Odbc;
using System.Windows.Forms;
using System.Data;
namespace WindowsForm
{
class ketnoi
{
public static OdbcConnection con = null;
public static void Openconnect(string user ,string pass)
{
69
try
{
String connect =
"Dsn=PostgreSQL35W;database=cayxanh;server=localhost;port=5432;uid='" + user + "';pwd='" +
pass + "'";
con = new OdbcConnection(connect);
con.Open();
MessageBox.Show("Chúc Mừng Bạn.!! Kết nối thành công!","Thông Báo Kết Nối");
fngiaodien fgd = new fngiaodien();
fgd.ShowDialog();
}
catch
{
MessageBox.Show("Thao tác bị lỗi hoặc Kết nối thất bại! Vui lòng xem hƣớng dẫn và
đăng nhập lại!","Thông Báo Kết Nối",MessageBoxButtons.OKCancel);
}
}
public static void closeconnect()
{
try
{
String connect =
"Dsn=PostgreSQL35W2;database=nhom6;server=203.113.148.129;port=5432;uid=nhom6;pwd=nhom
6";
con = new OdbcConnection(connect);
con.Close();
MessageBox.Show("Đã Hủy Kết Nối","Thông Báo");
}
catch
{
}
}
public DataTable taobang(String sql)
{
DataTable dt = new DataTable();
OdbcDataAdapter ds = new OdbcDataAdapter(sql, con);
70
ds.Fill(dt);
return (dt);
}
public static DataSet ex_ds(String sql)
{ OdbcCommand cmd = new OdbcCommand(sql, con);
OdbcDataAdapter da = new OdbcDataAdapter(cmd);
OdbcCommandBuilder cmb = new OdbcCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
}
- Nội dung file fnnhapcay.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Odbc;
using System.Windows.Forms;
using System.Data;
namespace WindowsForm
{
class ketnoi
{
public static OdbcConnection con = null;
public static void Openconnect(string user ,string pass)
{
try
{
String connect =
"Dsn=PostgreSQL35W;database=cayxanh;server=localhost;port=5432;uid='" + user + "';pwd='" +
pass + "'";
con = new OdbcConnection(connect);
con.Open();
71
MessageBox.Show("Chúc Mừng Bạn.!! Kết nối thành công!","Thông Báo Kết Nối");
fngiaodien fgd = new fngiaodien();
fgd.ShowDialog();
}
catch
{
MessageBox.Show("Thao tác bị lỗi hoặc Kết nối thất bại! Vui lòng xem hƣớng dẫn và
đăng nhập lại!","Thông Báo Kết Nối",MessageBoxButtons.OKCancel);
}
}
public static void closeconnect()
{
try
{
String connect =
"Dsn=PostgreSQL35W2;database=nhom6;server=203.113.148.129;port=5432;uid=nhom6;pwd=nhom
6";
con = new OdbcConnection(connect);
con.Close();
MessageBox.Show("Đã Hủy Kết Nối","Thông Báo");
}
catch
{
}
}
public DataTable taobang(String sql)
{
DataTable dt = new DataTable();
OdbcDataAdapter ds = new OdbcDataAdapter(sql, con);
ds.Fill(dt);
return (dt);
}
public static DataSet ex_ds(String sql)
{ OdbcCommand cmd = new OdbcCommand(sql, con);
OdbcDataAdapter da = new OdbcDataAdapter(cmd);
OdbcCommandBuilder cmb = new OdbcCommandBuilder(da);
72
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
}
- Nội dung file fnsuacay.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;
namespace WindowsForm
{
public partial class fnsuacay : Form
{
public fnsuacay()
{
InitializeComponent();
}
ketnoi kn = new ketnoi();
private void fnchinh_Load(object sender, EventArgs e)
{
string sql = "SELECT* FROM thongtincay";
DataSet ds = new DataSet();
ds = ketnoi.ex_ds(sql);
this.comboBox1.ValueMember = "tencay";
this.comboBox1.DisplayMember = "idcay";
this.comboBox1.DataSource = ds.Tables[0];
this.comboBox1.Refresh();
}
private void btsuacay_Click(object sender, EventArgs e)
73
{
string sql = "UPDATE thongtincay SET idcay='" + txtid.Text + "', tencay='" +
txtten.Text + "', xuatxu='" + txtxx.Text + "', ngaytrong='" + txtngaytrong.Text + "',
vitri=ST_POINTFROMTEXT('point(" + txtlong.Text + " " + txtlat.Text + ")',4326), idloai='" +
txtidloai.Text + "'WHERE idcay='" + comboBox1.Text + "'";
dtgsuacay.DataSource = kn.taobang(sql);
MessageBox.Show("Đã Sửa Thành Công Mã Cây: " + txtid.Text + "", "Thông Báo
Sửa");
}
private void btRefresh_Click(object sender, EventArgs e)
{
string sql = "select idcay,tencay,xuatxu,ngaytrong,idloai,chatluong, st_x(vitri) as
long,st_y(vitri) as lat from thongtincay";
dtgsuacay.DataSource = kn.taobang(sql);
}
private void bthuy_Click(object sender, EventArgs e)
{
DialogResult thoat = MessageBox.Show("Bạn có muốn thoát ?", "Thông Báo Thoát",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (thoat == DialogResult.Yes)
{
this.Close();
return;
}
if (thoat == DialogResult.No)
{
return;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void dtgsuacay_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
int chiso = 0;
74
DataTable bang = new DataTable();
bang = (DataTable)dtgsuacay.DataSource;
chiso = dtgsuacay.SelectedCells[0].RowIndex;
DataRow hang = bang.Rows[chiso];
txtid.Text = hang["idcay"].ToString();
comboBox1.Text = hang["idcay"].ToString();
txtten.Text = hang["tencay"].ToString();
txtxx.Text = hang["xuatxu"].ToString();
txtngaytrong.Text = hang["ngaytrong"].ToString();
txtidloai.Text = hang["idloai"].ToString();
txtchluong.Text = hang["chatluong"].ToString();
txtlong.Text = hang["long"].ToString();
txtlat.Text = hang["lat"].ToString();
}
}
}
- Nội dung file fntimcay.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsForm
{
public partial class fntimcay : Form
{
public fntimcay()
{
InitializeComponent();
}
ketnoi kn = new ketnoi();
private void fntimcay1_Load(object sender, EventArgs e)
75
{
string sql = "SELECT idcay FROM thongtincay order by idcay";
DataSet ds = new DataSet();
ds = ketnoi.ex_ds(sql);
this.txtidcay.DisplayMember = "idcay";
this.txtidcay.DataSource = ds.Tables[0];
this.txtidcay.Refresh();
}
private void bttim_Click(object sender, EventArgs e)
{
string sql = "SELECT * FROM thongtincay where idcay='" + txtidcay.Text + "' ";
dtgdscay.DataSource = kn.taobang(sql);
}
private void btthoat_Click(object sender, EventArgs e)
{
DialogResult thoat = MessageBox.Show("Bạn có muốn thoát ?", "Thông Báo Thoát",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (thoat == DialogResult.Yes)
{
this.Close();
return;
}
if (thoat == DialogResult.No)
{
return;
}
}
}
}
Các file đính kèm theo tài liệu này:
- dh10ge_do_minh_canh_7715.pdf