TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU
Mục đích chọn đề tài
Làm chủ công nghệ mới và tạo ra công cụ hỗ trợ sinh viên Đại học Lâm nghiệp tiếp cận, thao tác, nghiên cứu dữ liệu khổng lồ từ Google Earth Engine là mục tiêu quan trọng.
Ý nghĩa thực tiễn của đề tài
Qua đề tài trên, em muốn hiểu rõ, nắm bắt phương thức hoạt động, thành phần ưu, cách thao tác với nền tảng Google Earth Engine.
Giúp sinh viên có thể dễ dàng thu thập, đánh giá các chỉ số tự nhiên thông qua dữ liệu mà nền tảng mang lại.
Ý nghĩa khoa học của đề tài
Trực quan hóa dữ liệu vệ tinh mở ra tiềm năng to lớn trong việc giải quyết các vấn đề cấp bách về môi trường, kinh tế và xã hội, cung cấp cái nhìn sâu sắc và toàn diện để đưa ra các giải pháp hiệu quả.
Mục tiêu chung
Ứng dụng được xây dựng trên nền tảng Google Earth Engine, tạo điều kiện cho sinh viên Lâm Nghiệp tiếp cận và khai thác dữ liệu ảnh vệ tinh một cách hiệu quả.
Mục tiêu cụ thể
Để có thể đi tới mục tiêu chung, những mục tiêu cụ thể sau cần đạt được:
Hiểu về nền tảng công nghệ Google Earth Engine
Thử nghiệm được ứng dụng
Nội dung nghiên cứu Để đạt được mục tiêu trên, đề tìa tiến hành nghiên cứu các nội dung sau:
Nội dung 1: khảo sát thực trạng
Nghiên cứu tại Đại học Lâm Nghiệp cho thấy sản phẩm theo dõi biến đổi diện tích rừng có tính ứng dụng cao và cấp thiết, đáp ứng nhu cầu quan sát và quản lý tài nguyên rừng hiệu quả.
Nội dung 2: nghiên cứu công nghệ:
- Nghiên cứu nền tảng công nghệ Google Earth Engine
- Nghiên cứu công nghệ web phát triển backend: Python, Django, Restfull API…
- Nghiên cứu các công nghệ web phát triển front-end: HTML, CSS, Javascript, Bootstrap Đối tượng và phạm vi nghiên cứu
- Đối tượng về mặt công nghệ: nền tảng Google Earth Engine
- Đối tượng về mặt dữ liệu: Dữ liệu ảnh vệ tinh
- Đối tượng về mặt con người: Sinh viên Trường Đại học Lâm nghiệp
- Phạm vi công nghệ: nghiên cứu các công cụ công nghệ phát triển ứng dụng Web và công nghệ Google Earth Engine
- Phạm vi về không gian và thời gian: Từ ngày 15 tháng 02 năm 2022 đến ngày
- Phạm vi về con người: nghiên cứu khảo sát mong muốn của sinh viên về một trang ứng dụng có thể thu thập dữ liệu từ ảnh vệ tinh
Phương pháp thu thập dữ liệu
- Thu thập dữ liệu nhu cầu của người dùng qua bảng khảo sát câu hỏi và phỏng vấn
Phương pháp xử lý số liệu
- Thông tin số liệu xử lý bằng các công cụ lập trình và phần mềm máy tính
Phương pháp phân tích số liệu:
- Phương pháp so sánh đối chiếu: được sử dụng để kiểm tra độ chính xác thông tin dữ liệu
- Phương pháp chuyên gia: Tham khảo ý kiến của thầy hướng dẫn Trần Xuân
Hòa và các thầy cô ngành Hệ thống thông tin
- Phương pháp kế thừa: Kế thừa kết quả nghiên cứu, các ứng dụng thông tin dữ liệu trên các bài viết về Google Earth Engine
CƠ SỞ LÝ THUYẾT
Khái niệm
Google Earth Engine (GEE) là nền tảng web mạnh mẽ để xử lý dữ liệu viễn thám quy mô lớn dựa trên đám mây Nền tảng này tập hợp hàng nghìn tỷ phép đo khoa học từ gần 40 năm hình ảnh vệ tinh, cung cấp trực tuyến cho các nhà khoa học và nhà nghiên cứu để khai thác dữ liệu, phát hiện thay đổi và định lượng sự khác biệt trên bề mặt Trái Đất GEE có nhiều ứng dụng như phát hiện nạn phá rừng, phân loại đất, giám sát khí hậu và an ninh lương thực Ưu điểm của GEE là tốc độ tính toán nhanh chóng nhờ máy chủ của Google và cung cấp nhiều bộ dữ liệu được cập nhật liên tục, loại bỏ nhu cầu tải xuống hình ảnh chưa qua xử lý.
Công cụ Earth Engine Code Editor của GEE là một môi trường phát triển tích hợp trên web, hỗ trợ xây dựng các quy trình định vị địa lý phức tạp, tạo điều kiện làm việc trực tuyến hiệu quả.
Google Earth Engine hoạt động như thế nào
Với Code Editor, người dùng viết lệnh và gửi đến Google để xử lý song song trên cloud Kết quả từ Earth Engine được trả về trình duyệt dưới dạng bản đồ, biểu đồ hoặc thống kê.
Sử dụng API cho phép người dùng lọc và phân tích các bộ sưu tập hình ảnh lớn theo thời gian và khu vực.\$$\text{Các thuật toán bản đồ hóa và xử lý ảnh được áp dụng để tính toán thống kê trên từng ảnh hoặc bộ sưu tập.}$$
Hình 1: Earth Engine là gì? Figure 1 Hình 1 2 3 Hình 3: Google Earth Engine
8 kê tổng hợp thông qua thời gian và không gian mà không cần tải xuống máy tính của họ
Hình 4: Earth Engine hoạt động như thế nào
Google Earth Engine và viễn thám
Viễn thám là khoa học thu thập thông tin về đối tượng từ xa, thông qua phân tích dữ liệu thu được mà không cần tiếp xúc trực tiếp Thực hiện các công việc này chính là ứng dụng viễn thám.
Viễn thám là lĩnh vực khoa học công nghệ cho phép nghiên cứu, thu nhận thông tin từ xa về các đối tượng và hiện tượng trên bề mặt Trái Đất mà không cần tiếp xúc trực tiếp.
Công nghệ viễn thám dựa trên cơ sở khoa học về sự khác biệt trong khả năng phản xạ hoặc bức xạ sóng điện từ của các vật thể khác nhau, giúp phân biệt và nhận dạng chúng.
Nguồn năng lượng mặt trời
(sóng điện từ) chiếu tới mặt đất, năng lượng của nó sẽ tác động lên bề mặt
Trái Đất nhận năng lượng mặt trời, được chia thành ba phần: hấp thụ, truyền qua rồi phản xạ, và phản xạ trực tiếp từ bề mặt.
Sự khác biệt về tỷ lệ giữa các phần năng lượng bức xạ là cơ sở để phân biệt các đối tượng tự nhiên, do tỷ lệ này thay đổi tùy thuộc vào đối tượng.
Hình 6: Google Earth Engine và viễn thám
Các đối tượng tự nhiên trên bề mặt Trái Đất rất đa dạng, đặc biệt là các đối tượng thuộc lớp phủ bề mặt Đặc trưng phản xạ phổ của các đối tượng này là một yếu tố quan trọng cần xem xét.
Hình 5: Google Earth Engine trong viễn thám
10 tự nhiên phụ thuộc vào nhiều yếu tố như điều kiện chiếu sáng, môi trường, và bề mặt đối tượng cũng như bản chất của đối tượng đó
Các vật thể tương tác với sóng điện từ thông qua phản xạ, hấp thụ, phân tách và bức xạ, tạo nên đặc trưng phổ riêng biệt Phân tích đặc trưng phổ là phương pháp quan trọng để nhận dạng đối tượng trên bề mặt đất Đặc trưng phản xạ phổ, phụ thuộc vào bước sóng, được chia thành ba nhóm đối tượng chính, giúp giải đoán mối quan hệ giữa đặc trưng phổ và sắc, tông màu trên ảnh tổ hợp màu.
Nhóm 1: Lớp phủ thực vật
Nhóm 2: Lớp đối tượng đất
Nhóm 3: Lớp đối tượng nước
Những lợi ích của Google Earth Engine
Google Earth Engine giúp tính toán nhanh chóng trên hàng Petabytes dữ liệu, loại bỏ sự phức tạp của việc chạy song song cloud, mở ra khả năng tiếp cận dữ liệu toàn diện, thúc đẩy quan sát trái đất ở quy mô lớn chưa từng có.
Lý do 1: Tiếp cận khoa học ở quy mô hành tinh
Từ khi GEE được triển khai trực tuyến, nhiều nghiên cứu đột phá đã chứng minh khả năng mạnh mẽ của việc ứng dụng máy tính quy mô lớn để giải quyết các vấn đề môi trường và xã hội, đặc biệt thông qua việc tạo ra các bộ dữ liệu linh động và khám phá dữ liệu dựa trên web.
Global Forest Watch, ra mắt năm 2013, đã cách mạng hóa sự hiểu biết về mất rừng toàn cầu Công cụ giám sát rừng tương tác này cho thấy động thái mất và được rừng trên quy mô lớn Dữ liệu Hansen về nạn phá rừng, sử dụng hàng triệu ảnh Landsat, có sẵn trên Google Earth Engine để lập bản đồ rừng toàn cầu.
Hình 7: Biên độ các dải sóng
Hình 8: Mất rừng ở tỉnh Riau của Sumatra, Indonesia, 2000 – 2012
Lý do 2: Kho lưu trữ dữ liệu mở trực tuyến khổng lồ
Google Earth Engine (GEE) lưu trữ petabyte hình ảnh vệ tinh, bao gồm toàn bộ Landsat, Sentinel 1, Sentinel 2, MODIS và dữ liệu viễn thám khác GEE còn lưu trữ dữ liệu về lượng mưa, mật độ dân số, địa hình, lớp phủ đất và khí hậu, với hơn 6000 cảnh ảnh mới được thêm vào mỗi ngày.
Hình 9: Dữ liệu public trên Earth Engine
Lý do 3: Tải lên dữ liệu cá nhân
Bạn có thể tải dữ liệu raster và vector của riêng mình lên hệ thống Ngoài ra, bạn có thể đề xuất các tập dữ liệu thông qua cửa sổ Trình chỉnh sửa mã API Javascript, bằng cách sử dụng nút "Suggest a dataset" trong phần Trợ giúp.
Hình 10: Tải lên dữ liệu cá nhân
Lý do 4: Truy cập linh hoạt thông qua API
Google Earth Engine có thể được truy cập thông qua một số kênh khác nhau, bao gồm GUI không lập trình, API JavaScript và API Python
Google Earth Engine Explorer là ứng dụng tuyệt vời để giúp những người không phải là chuyên gia trong việc xử lý các tập lệnh và dữ liệu
JavaScript GUI là một nền tảng web hoàn chỉnh cho phép người dùng thực hiện các yêu cầu thông qua API GEE chính Nền tảng này giúp người dùng dễ dàng lưu trữ, chia sẻ, quản lý phiên bản mã, thực thi tác vụ và trực quan hóa kết quả qua biểu đồ và bản đồ trực tiếp trên trình duyệt Xác thực người dùng được thực hiện đơn giản thông qua đăng nhập Gmail.
API Python cho phép người dùng tự xử lý xác thực và hiển thị kết quả, mang lại khả năng tùy chỉnh yêu cầu vượt trội so với thư viện hàm GEE có sẵn Mã được xây dựng hoàn toàn thủ công, dựa trên quy trình làm việc được phát triển riêng, không cần đăng nhập vào trang web nào để phân tích.
Để truy cập Google Earth Engine, người dùng chỉ cần đăng ký bằng tài khoản Google hiện có của mình, tương tự như tài khoản sử dụng cho YouTube, Google Drive và Gmail.
Giới thiệu ảnh vệ tinh Landsat 8
Python
Python, ngôn ngữ lập trình hướng đối tượng cấp cao do Guido van Rossum tạo ra, nổi bật nhờ tính dễ học và phù hợp cho người mới bắt đầu Python sử dụng kiểu động hoàn toàn và cấp phát bộ nhớ tự động, kết hợp cấu trúc dữ liệu mạnh mẽ với cú pháp rõ ràng, giúp nó trở thành lựa chọn lý tưởng cho việc viết script và phát triển ứng dụng đa nền tảng.
Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng
Python dễ đọc và viết hơn so với các ngôn ngữ lập trình khác như C++, Java, C#, giúp lập trình trở nên thú vị và tập trung vào giải pháp thay vì cú pháp.
Python là ngôn ngữ lập trình miễn phí và mã nguồn mở, cho phép người dùng tự do sử dụng, phân phối và sửa đổi mã nguồn cho cả mục đích thương mại Cộng đồng lớn mạnh không ngừng cải thiện Python qua mỗi bản cập nhật.
Khả năng di chuyển của Python cho phép các chương trình chạy liền mạch trên nhiều nền tảng như Windows, macOS và Linux mà không cần thay đổi mã nguồn, làm tăng tính linh hoạt và khả năng thích ứng của nó.
Khả năng mở rộng và nhúng linh hoạt cho phép Python kết hợp code từ C, C++ và các ngôn ngữ khác, tăng cường tính năng và khả năng scripting, điều mà nhiều ngôn ngữ lập trình khác khó đạt được.
Python sở hữu một thư viện tiêu chuẩn lớn, giúp đơn giản hóa công việc lập trình bằng cách cung cấp các công cụ và chức năng được kiểm tra kỹ lưỡng, ví dụ như thư viện MySQLdb để kết nối cơ sở dữ liệu MySQL trên Web server, đảm bảo tính ổn định và độ tin cậy cho code và ứng dụng của bạn.
Trong Python, mọi thứ đều là đối tượng, và lập trình hướng đối tượng (OOP) giúp giải quyết các vấn đề phức tạp một cách trực quan bằng cách chia chúng thành các đối tượng nhỏ hơn.
Django Framework
Django is a free, open-source web framework based on the Model-Template-View (MTV) architectural pattern It is maintained and developed by the Django Software Foundation (DSF).
Framework này được xây dựng bởi các nhà phát triển giàu kinh nghiệm, giúp xử lý các phần phức tạp trong phát triển web, mang lại hiệu quả cao và giảm thiểu thời gian phát triển.
Do đó, bạn có thể tập trung vào việc viết app mà không cần phải dừng lại để kiểm tra Django miễn phí và là open-source
Framework này có một cộng đồng người dùng đông đảo và có nhiều tài liệu hỗ trợ
Django có những lợi ích như:
- Nhanh chóng, đơn giản trong lập trình web và ứng dụng
- Đa dạng về tài liệu
- Sử dụng nguyên tắc không trùng lặp
- Hỗ trợ ỎM, mang lại sự tương thích, khả năng hoạt động với các cơ sở dữ liệu thường gặp như Oracle và SQL
Sở hữu các tính năng và giải pháp độc đáo như GPS và ứng dụng cơ sở dữ liệu, giúp phát triển, quản trị website và chăm sóc khách hàng hiệu quả.
- Mang lại khả năng sử đổi một cách liền mạch nhiều thành phần
ORM (Object-Relational Mapping) là kỹ thuật truy vấn và quản lý dữ liệu từ cơ sở dữ liệu bằng mô hình hướng đối tượng, cho phép thao tác trực tiếp với dữ liệu thông qua đối tượng thay vì câu lệnh SQL.
Mô hình MTV trong Django:
Django sử dụng mô hình MVT (Model – View - Template) thay vì sử dụng mô hình MCV (Model – Controller – View)
Hình 12: mô hình MVT trong Django
Model là nơi thiết kế các bảng cơ sở dữ liệu, và Django ORM cung cấp các phương thức xử lý nghiệp vụ trên cơ sở dữ liệu.
Template: là những giao diện được thiết ra, xử lý và đầu ra mã HTML, CSS cho trang web
Views: Các hàm để xử lý khi có yêu cầu từ người dùng
Cấu trúc thư mục của một chương trình Django
Hình 13: cấu trúc thư mục một chương trình Django
init .py: Nói với trình thông dịch python là thư mục nên được coi là một python package Tập tin này chủ yếu là trống
asgi.py: Cho phép các máy chủ web tương thích ASGI phục vụ dự án của bạn
settings.py: Tập tin cấu hình
urls.py: Bao gồm tất cả khai báo URL đến các views để xử lý request
wsgi.py: Đây là lối vào cho các máy chủ web tương thích WSGI
manage.py: Cho phép bạn quản lý, tương tác với Django bằng dòng lệnh
PostgreSQL, Navicat
PostgreSQL là một hệ quản trị cơ sở dữ liệu (DBMS) mã nguồn mở, mạnh mẽ, hỗ trợ cả SQL và JSON, được xây dựng và duy trì bởi một cộng đồng các nhà phát triển giàu kinh nghiệm, đảm bảo độ tin cậy cao cho hệ thống.
PostgreSQL nổi bật với khả năng hỗ trợ các loại dữ liệu nâng cao và tối ưu hóa hiệu suất vượt trội Các tính năng này thường chỉ thấy ở các cơ sở dữ liệu lớn như Oracle và SQL Server Đây là một ưu điểm lớn của PostgreSQL.
- PostgreSQL có thể chạy các trang web và ứng dụng web động với LAMP
- Ghi nhật ký viết trước của PostgreSQL làm cho nó trở thành một cơ sở dữ liệu có khả năng chịu lỗi cao
Mã nguồn PostgreSQL, được cung cấp miễn phí theo giấy phép nguồn mở, cho phép người dùng tự do sử dụng, sửa đổi và triển khai theo nhu cầu kinh doanh, tạo điều kiện linh hoạt và tiết kiệm chi phí.
PostgreSQL hỗ trợ các đối tượng địa lý, mở ra khả năng ứng dụng trong các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý (GIS).
PostgreSQL hỗ trợ các đối tượng địa lý, biến nó thành một kho lưu trữ dữ liệu không gian địa lý mạnh mẽ, lý tưởng cho các dịch vụ dựa trên vị trí và hệ thống thông tin địa lý (GIS).
- Hạn chế việc bảo trì hệ thống
PostgreSQL, một hệ quản trị cơ sở dữ liệu mạnh mẽ với đầy đủ tính năng, gặp khó khăn trong việc xây dựng nhận diện thương hiệu do không thuộc sở hữu của bất kỳ tổ chức cụ thể nào.
- Những thay đổi được thực hiện để cải thiện tốc độ đòi hỏi nhiều công việc hơn MySQL vì PostgreSQL tập trung vào khả năng tương thích
- Nhiều ứng dụng nguồn mở có hỗ trợ MySQL nhưng có thể không hỗ trợ PostgreSQL
- Về số liệu hiệu suất, nó chậm hơn MySQL
Navicat Premium là công cụ quản trị cơ sở dữ liệu đa kết nối, cho phép kết nối đồng thời với nhiều loại cơ sở dữ liệu như MySQL, MariaDB, Oracle, PostgreSQL, SQLite và SQL Server từ một ứng dụng duy nhất, giúp đơn giản hóa việc quản trị cơ sở dữ liệu với giao diện trực quan và dễ sử dụng.
Giao diện Navicat Premium đơn giản, dễ sử dụng cho cả người mới và chuyên gia Navicat cung cấp đầy đủ tính năng từ cơ bản đến nâng cao, đáp ứng mọi nhu cầu quản lý cơ sở dữ liệu.
- Thiết kế cơ sở dữ liệu và công cụ mô hình hóa nâng cao
- So sánh và đồng bộ hóa cơ sở dữ liệu một cách dễ dàng
- Xuất file với các định dạng thịnh hành Excel, Access…
- Tạo, chỉnh sửa và quản lý tất cả các đối tượng CSDL
- Truyền dữ liệu, sao lưu và đồng bộ hóa.
- Tạo, chỉnh sửa và chạy các câu lệnh của SQL
- Chia sẻ dữ liệu và truy cập thời gian thực.
- Bảo mật với các phương pháp xác thực khác nhau.
RestAPI
API (Application Programming Interface) là tập hợp các quy tắc và cơ chế cho phép các ứng dụng hoặc thành phần tương tác với nhau, thường trả về dữ liệu ở các định dạng phổ biến như JSON hoặc XML.
RESTful (REpresentational State Transfer) là một kiến trúc để xây dựng API, sử dụng các phương thức HTTP đơn giản để giao tiếp giữa các máy RESTful giúp đơn giản hóa việc xử lý thông tin bằng cách sử dụng các URL trực quan và dễ hiểu.
20 tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu
REST API là tiêu chuẩn thiết kế API cho ứng dụng web để quản lý tài nguyên, trong đó RESTful là kiểu thiết kế API phổ biến giúp các ứng dụng khác nhau giao tiếp với nhau.
REST quy định cách sử dụng HTTP method và định dạng URL để quản lý tài nguyên web, không giới hạn ngôn ngữ lập trình, cho phép mọi ngôn ngữ hoặc framework thiết kế RESTful API.
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng
- GET (SELECT): Trả về một Resource hoặc một danh sách Resource
- POST (CREATE): Tạo mới một Resource
- PUT (UPDATE): Cập nhật thông tin cho Resource
- DELETE (DELETE): Xoá một Resource
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa
HTML
HTML (HyperText Markup Language) là ngôn ngữ đánh dấu cơ bản để xây dựng các trang web trên World Wide Web, kết hợp cùng CSS và JavaScript tạo thành nền tảng kỹ thuật cốt lõi HTML, một ứng dụng của SGML, được chuẩn hóa bởi World Wide Web Consortium (W3C) và hiện đang phát triển lên phiên bản HTML5, hứa hẹn mang lại diện mạo mới cho web.
HTML, với khả năng tạo và xử lý động thông qua HTML động hoặc Ajax, cho phép lập trình viên sử dụng đa dạng công cụ, từ trình soạn thảo đơn giản đến phức tạp Hypertext kết nối các trang Web, tạo nên các đường link trên trang HTML là ngôn ngữ đánh dấu, sử dụng thẻ để cấu trúc và hiển thị tài liệu text trên trình duyệt Web.
HTML hoạt động dựa trên các thẻ (elements) trực quan như header, paragraph, image, giúp cấu trúc nội dung trang web một cách rõ ràng và mạch lạc.
CSS
CSS (Cascading Style Sheets) là ngôn ngữ dùng để định dạng các phần tử HTML, mang lại "phong cách" cho trang web như đổi màu sắc, chữ viết và cấu trúc.
Cách hoạt động của CSS
CSS hoạt động bằng cách sử dụng các vùng chọn để xác định các phần tử HTML cần áp dụng kiểu dáng Các vùng chọn này có thể là tên thẻ HTML, ID, class hoặc các kiểu khác Sau khi chọn được phần tử, CSS sẽ áp dụng các thuộc tính đã chỉ định lên phần tử đó để thay đổi giao diện của nó.
Cấu trúc của một đoạn CSS
Tên phần tử HTML bắt đầu của bộ quy tắc Nó chọn (các) phần tử được tạo kiểu
(trong trường hợp này là phần tử p) Để tạo kiểu cho một phần tử khác, chỉ cần thay đổi bộ chọn
Một quy tắc duy nhất như: color: red; xác định thuộc tính của phần tử nào bạn muốn tạo kiểu
Trong CSS, bạn có thể tạo kiểu cho các phần tử HTML bằng cách chọn thuộc tính mong muốn, ví dụ như thuộc tính `color` của phần tử `
`, và áp dụng các quy tắc để thay đổi kiểu dáng của chúng.p>`, và áp dụng các quy tắc để thay đổi kiểu dáng của chúng.
Giá trị thuộc tính nằm ở phía bên phải dấu hai chấm (:), cho phép lựa chọn một trong số nhiều khả năng xuất hiện của thuộc tính, ví dụ như thuộc tính "color" có nhiều giá trị khác ngoài "red".
Hình 15: Cấu trúc một đoạn CSS
JavaScript
JavaScript là một ngôn ngữ lập trình đa năng, được hỗ trợ rộng rãi trên các trình duyệt web phổ biến như Firefox và Chrome, cũng như trên các thiết bị di động JavaScript có khả năng ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm lập trình website, xây dựng ứng dụng cho máy chủ, phát triển ứng dụng di động và trò chơi.
Các framework và thư viện của JavaScript:
- jQuery: Một thư viện rất mạnh về hiểu ứng
- nodeJS: dùng để lập trình cho server
- ReactJS, AngularJS, VueJS phát triển cho front-end
- React Native: phát triển ứng dụng cho di động
JavaScript có rất nhiều ưu điểm vượt trội như:
- JavaScript là ngôn ngữ lập trình dễ học
- Lỗi của JavaScript dễ phát hiện hơn và vì vậy dễ sửa hơn
- JavaScript hoạt động trên nhiều trình duyệt, nền tảng
- JavaScript giúp website tương tác tốt hơn với khách truy cập
- JavaScript nhanh hơn và nhẹ hơn các ngôn ngữ lập trình khác
JavaScript, mặc dù là một ngôn ngữ lập trình phổ biến và được sử dụng rộng rãi trên các website, lại trở thành mục tiêu hấp dẫn của hacker và scammer do những lỗ hổng bảo mật tiềm ẩn.
Một số khuyết điểm của JavaScript có thể kể đến như:
- Có thể được dùng để thực thi mã độc trên máy tính của người dùng
- Có thể bị triển khai khác nhau tùy từng thiết bị dẫn đến việc không đồng nhất
Cách hoạt động của Javacript
Khi trình duyệt web tải một trang, HTML parser bắt đầu phân tích cú pháp mã HTML và tạo DOM Trình phân tích cú pháp sẽ xử lý các chỉ thị CSS khi gặp chúng.
24 hoặc JavaScript (inline hoặc externally loaded), nó sẽ được chuyển giao cho CSS parser hoặc JavaScript engine theo yêu cầu
JavaScript engine tải các tệp JavaScript và inline code, nhưng đợi HTML và CSS phân tích xong trước khi thực thi Sau đó, JavaScript được thực thi theo thứ tự xuất hiện trên trang, bao gồm định nghĩa biến, hàm, và kích hoạt trình xử lý sự kiện.
… Các hoạt động này dẫn đến việc DOM được cập nhật bởi JavaScript và được hiển thị ngay lập tức bởi trình duyệt.
Bootstrap
Bootstrap là một framework miễn phí, mã nguồn mở, dựa trên HTML, CSS và Javascript, được thiết kế để xây dựng giao diện website tương thích với mọi thiết bị.
Giao diện dễ dùng và tùy chỉnh cho phép người dùng có kiến thức cơ bản về HTML, CSS và Javascript dễ dàng thao tác và lựa chọn các thành phần thiết kế phù hợp, tạo nên trải nghiệm cá nhân hóa cao.
Thiết kế tự điều chỉnh (responsive design) của Bootstrap, với CSS tích hợp sẵn, đảm bảo giao diện web hiển thị tối ưu trên mọi thiết bị.
Bootstrap nổi bật với khả năng tương thích đa trình duyệt, đảm bảo website hoạt động mượt mà trên các trình duyệt phổ biến như Chrome, Firefox, Safari, Opera và Internet Explorer (từ phiên bản 9 trở lên), giúp tiếp cận lượng lớn người dùng.
Bootstrap đảm bảo chất lượng thiết kế cao nhờ được phát triển bởi các lập trình viên hàng đầu và trải qua quá trình nghiên cứu, thử nghiệm kỹ lưỡng.
XÂY DỰNG WEBSITE QUẢN LÝ HIỆN TRẠNG RỪNG
Biểu đồ Use Case tổng quát chức năng hệ thống
Hình 16: Biểu đồ Use Case tổng quát chức năng hệ thống
UC Đăng nhập
Tác nhân Người quản trị (admin)
Mô tả UC Giúp người dùng đăng nhập vào hệ thống
Tiền điều kiện Đăng nhập thành công bằng tài khoản quản trị
Luồng sự kiện chính 1 Người dùng chọn nút “đăng nhập”
2 Hệ thống yêu cầu người dùng cung cấp thông tin đăng nhập gồm username, password
3 Người dùng nhập thông tin đăng nhập và nhấn nút “đăng nhập”
4 Hệ thống kiểm tra đăng nhập
5 Đăng nhập thành công hệ thống tự động vào trang quản trị hệ thống Hậu điều kiện Đăng nhập thành công Hiển thị trang quản trị hệ thống
Khi hệ thống kiểm tra và phát hiện tài khoản hoặc mật khẩu không tồn tại trong cơ sở dữ liệu, một thông báo lỗi sẽ được hiển thị để thông báo rằng thông tin đăng nhập không chính xác.
UC quản lí dữ liệu ranh giới cấp Tỉnh/Huyện/Xã
UC UC phân tích ảnh vệ tinh
Mô tả UC Cho phép người dùng có thể tìm kiếm địa điểm thông qua tên
Tỉnh/Huyện/xã bằng cách tìm kiếm hoặc chọn theo danh sách cung cấp sẵn
Để thực hiện phân tích ảnh, người dùng cần đăng nhập thành công với quyền quản trị viên và sau đó truy cập vào trang chủ, nơi có mục "phân tích ảnh" để bắt đầu quy trình.
2 người dùng nhập vào tên của Tỉnh, huyện, hoặc xã người dùng muốn tìm kiếm Hoặc người dùng cũng có thể chọn khu vực mình muốn tìm kiếm ở danh sách được cung cấp sẵn ở mục
Hậu điều kiện Hệ thống xử lí và trả về khu vực đã chọn ở phần bản đồ
UC phân tích ảnh vệ tinh
UC UC phân tích ảnh vệ tinh
Tác nhân Người dùng, người quản trị
Phân tích ảnh vệ tinh theo thời gian là một công cụ mạnh mẽ cho phép người dùng và nhà quản lý theo dõi sự thay đổi diện tích rừng qua các năm, hỗ trợ đắc lực trong công tác quản lý và bảo tồn rừng.
Tiền điều kiện Người quản trị đăng nhập thành công, người dùng vào trang Luồng sự kiện chính 1 Người dùng chọn vào mục phân tích ảnh ở trang chủ
2 người dùng nhập vào tên của Tỉnh, huyện, hoặc xã người dùng muốn tìm kiếm Hoặc người dùng cũng có thể chọn khu vực mình muốn tìm kiếm ở danh sách được cung cấp sẵn ở mục
3 sau khi map đã hiển thị vùng mà người dùng muốn phân tích ảnh, người dùng sẽ chọn vào mục phân tích ảnh vệ tinh
4 Người dùng nhập thời điểm đầu và thời điểm sau của thời điểm mà người dùng muốn so sánh sự thay đổi
5 Người dùng bấm vào nút “ phân tích ảnh vệ tinh ”
Hệ thống xác định và đánh dấu các khu vực mất rừng giữa hai thời điểm khác nhau, hiển thị thông tin này dưới dạng các điểm đánh dấu đỏ, đồng thời cho phép người dùng xem ảnh vệ tinh của cả hai thời điểm và vị trí thay đổi rừng để so sánh và phân tích chi tiết.
UC Gửi nhận Email
UC UC gửi nhận Email
Tác nhân Người dùng, người quản trị
Mô tả UC Cho phép người dùng, người quản lí nhận về kết quả ảnh đã phân tích qua email của người dùng
Để chia sẻ thông tin, người dùng cần đăng nhập với quyền quản trị và hoàn thành việc phân tích, ánh xạ dữ liệu để có kết quả ảnh "trước" và "sau" Sau khi đáp ứng các điều kiện này, người dùng có thể chọn mục chia sẻ thông tin.
2 người dùng nhập email vào mục “ Email ”
3 người dùng chọn nút gửi thư điện tử Hậu điều kiện Hệ thống sẽ gửi ảnh thời điểm đầu, thời điểm cuối, và vị trí mất rừng vào Email của người dùng Luồng sự kiện phụ
UC phân tích độ cao, hướng dốc
UC UC phân tích độ cao hướng dốc
Tác nhân Người dùng, người quản trị
Mô tả UC Cho phép người dùng, người quản lí nhận thông tin về độ cao, hướng dốc, độ dốc của vị trí mà người dùng muốn
Để sử dụng công cụ xác định độ dốc, độ cao và hướng dốc, người quản trị cần đăng nhập thành công, sau đó người dùng truy cập trang và chọn mục "công cụ tiện ích", rồi chọn "xác định độ dốc – độ cao – hướng dốc".
2 người dùng nhấp chuột vào bản đồ tại vị trí mà người dùng muốn xác định độ cao, độ dốc, hướng dốc
Hậu điều kiện Hệ thống xử lí và trả về thông tin độ dốc, đọ cao, hướng dốc và tọa độ mà người dùng nhấp vào bản đồ
Hình 17: Mô hình hoạt động hệ thống
Xây dựng biểu đồ hoạt động
Đăng nhập
Hình 18: Biểu đồ hoạt động đăng nhập
Quản lí dữ liệu ranh giới cấp Tỉnh/Huyện/xã
Hình 19: biểu đồ hoạt động quản lí ranh giới ấp Tỉnh/Huyện/Xã
Phân tích ảnh vệ tinh
Hình 20: biểu đồ hoạt động phân tích ảnh vệ tinh
Gửi nhận Email
Hình 21: biểu đồ hoạt động nhận gửi Email
Phân tích độ cao hướng dốc
Hình 22: biểu đồ hoạt động phân tích độ cao hướng dốc
Xây dựng biểu đồ trình tự
Đăng nhập
Hình 23: biểu đồ trình tự đăng
Biểu đồ trình tự quản lí dữ liệu ranh giới cấp Tỉnh/Huyện/xã
Hình 24: biểu đồ trình tự quản lí dữ liệu ranh giới cấp Tỉnh/Huyện/xã
Biểu đồ trình tự phân tích ảnh vệ tinh
Hình 25: Biểu đồ trình tự phân tích ảnh vệ tinh
Biểu đồ trình tự xác định độ dốc – độ cao - hướng dốc
Hình 26: Biểu đồ trình tự xác định độ dốc – độ cao - hướng dốc
Thiết kế cơ sở dữ liệu
Xác định thực thể, thuộc tính
Dữ liệu địa lý hành chính bao gồm các trường thông tin quan trọng như mã tỉnh (matinh) là khóa chính dạng số nguyên, tên tỉnh (tinh) dạng số nguyên, tên tỉnh viết tắt (tinhvt) dạng số nguyên, diện tích (dtich) dạng số thực, và bản đồ (geom) dạng Multipolygon, tất cả đều tuân theo các ràng buộc nhất định để đảm bảo tính chính xác và nhất quán của dữ liệu.
The `mahuyen` field, representing the district code, is the primary integer key in the dataset It is related to other fields such as `huyen` (district name), `huyenvt` (abbreviated district name), and `matinh_id` (province code, a foreign key) The dataset also includes `dtich` (area as a float) and `geom` (a multipolygon representing the map).
Dữ liệu về xã được tổ chức với `maxa` là mã xã (Integer, khóa chính), `xa` là tên xã (Integer), và `xavt` là tên viết tắt của xã (Integer) Thông tin địa lý bao gồm `mahuyen_id` (mã huyện, Integer, khóa ngoại) và `matinh_id` (mã tỉnh, Integer, khóa ngoại), cùng với `dtich` là diện tích (Float) và `geom` là bản đồ (Multipolygon).
Mô hình dữ liệu quan hệ
Hình 27: mô hình dữ liệu quan hệ
Mô hình dịch vụ bao gồm các ứng dụng (app_\*) cung cấp dịch vụ API chuẩn REST, tạo nên thành phần cấu trúc ứng dụng.
Thông tin các ứng dụng thành phần cụ thể như sau:
TT Ứng dụng thành phần Mô tả
1 app_quanlyranhgioi Cung cấp chức năng quản lý dữ liệu ranh giới cấp Tỉnh/Huyện/Xã
2 app_email Cung cấp chức năng xử lý gửi/nhận email
3 app_bando Cung cấp chức năng hiển thị và tương tác bản đồ
4 app_phantichanh Cung cấp chức năng lõi phân tích xử lý ảnh vệ tinh
5 app_docaohuongdoc Cung cấp chức năng phân tính mô hình số độ cao DEM xác định độ cao, hướng dốc
6 app_sms Cung cấp chức năng dịch vụ gửi SMS qua
Một số hàm xử lý
Hàm xử lý mây cho ảnh Sentinel 2 def maskSE2clouds(image): qa = image.select('QA60')
# Bits 10 and 11 are clouds and cirrus, respectively cloudBitMask = 1