Dữ liệu thời tiết MongoDB

Thời tiết của thế kỷ từ MongoDB

Thông tin về thời tiết đặc biệt quan trọng nếu bạn muốn dự đoán những thay đổi thời tiết có thể ảnh hưởng đến các doanh nghiệp như người bán hàng rong, nông nghiệp, hàng không, giải trí, v.v. Có thông tin về thời tiết trước có thể giúp mọi người chuẩn bị cho nó để tránh thiệt hại

Với mục đích này, điều quan trọng là phải có một ứng dụng có thể cho chúng tôi biết về cảnh báo thời tiết và có thể lưu trữ dữ liệu thời tiết trong cơ sở dữ liệu để phân tích

Trong bài viết này, tôi trình bày công việc tạo ứng dụng dự báo thời tiết bằng ngôn ngữ lập trình Python sử dụng Openweathermaps API và MongoDB. Ứng dụng này tải xuống dữ liệu dự báo thời tiết cách nhau 5 ngày-3 giờ cho các thành phố được xác định, trong trường hợp này là Karachi, London, Mumbai và Utah. Nó lưu trữ dữ liệu dự báo trong MongoDB và hiển thị các cảnh báo thời tiết như tuyết, mưa hoặc nhiệt độ đóng băng nếu có trong dự báo cho các thành phố đó. Nó cũng tạo ra một bản đồ thời tiết cho từng dự báo và hiển thị dự báo thời tiết trên bản đồ

Sau đây là các thành phần quan trọng của ứng dụng này

MởThời tiếtBản đồ

OpenWeatherMap là một dịch vụ trực tuyến cung cấp dữ liệu dự báo thời tiết, lịch sử và hiện tại để phân tích. Để giao tiếp với dữ liệu thời tiết, người dùng phải đăng ký trang web Openweathermap tại https. //bản đồ thời tiết mở. org/ và sau đó người dùng có thể nhận khóa truy cập API. Dữ liệu thời tiết có thể được tải xuống đơn giản bằng cách yêu cầu dữ liệu từ điểm cuối API của máy chủ. Dữ liệu có định dạng JSON

MongoDB

MongoDB là một cơ sở dữ liệu NoSQL lưu trữ dữ liệu trong các tài liệu giống như JSON với các lược đồ linh hoạt. Trong dự án này, tôi đã sử dụng MongoDB để lưu trữ dữ liệu. Pymongo là thư viện được sử dụng để kết nối Mongodb với mã Python

tán lá

Folium xây dựng dựa trên sức mạnh sắp xếp dữ liệu của hệ sinh thái Python và sức mạnh ánh xạ của tờ rơi. thư viện js. Nó có thể được sử dụng để thao tác dữ liệu của bạn bằng Python, sau đó trực quan hóa dữ liệu đó trên bản đồ Tờ rơi qua Folium. Tôi đã sử dụng nó để hiển thị các điểm đánh dấu thời tiết trên Bản đồ

Thủ tục

Trong đồ án này em đã thực hiện được các nhiệm vụ sau

  1. Tạo tài khoản trong https. //bản đồ thời tiết mở. tổ chức/api
  2. Nhận khóa truy cập API bằng cách đăng ký trang web OpenWeatherMap
  3. Tạo một chương trình đa luồng để kết nối với API. Các vị trí cần giám sát nên được đặt trong tệp cấu hình
  4. Một luồng để tải xuống dự báo 5 ngày/3 giờ
  5. Một chủ đề để tải xuống bản đồ thời tiết
  6. Tất cả dữ liệu phải được lưu trữ trong cơ sở dữ liệu (mongodb) dưới dạng các bộ sưu tập/bảng riêng biệt
  7. Một luồng để mở bản đồ thời tiết mới nhất và hiển thị bản đồ trong cửa sổ (sẽ hiển thị hình ảnh cuối cùng theo dấu thời gian trước)
  8. Chuỗi dự báo sẽ in ra các cảnh báo nếu có mưa/tuyết hoặc nhiệt độ đóng băng (<2 độ F) trong bất kỳ khoảng thời gian dự báo nào
  9. Hiển thị dự báo/dữ liệu trước đó từ cơ sở dữ liệu dưới dạng biểu đồ

Đoạn mã sau cho biết cách tải xuống dữ liệu Openweathermap API và lưu trữ nó trong cơ sở dữ liệu MongoDB và hiển thị cảnh báo thời tiết

Đoạn mã sau cho biết cách tạo bản đồ thời tiết với biểu tượng thời tiết phù hợp ở đầu vị trí thành phố trên bản đồ

Kết quả

Đầu tiên, chúng tôi được cung cấp các cảnh báo thời tiết trong dự báo 5 ngày. Nếu dự báo thời tiết cho các thành phố được chỉ định có mưa, tuyết hoặc nhiệt độ đóng băng (<2 độ F) thì chúng tôi sẽ nhận được cảnh báo thời tiết. Nó được hiển thị trong hình bên dưới

Cảnh báo dự báo thời tiết cho các thành phố có mưa/tuyết hoặc nhiệt độ đóng băng

Hình ảnh sau đây hiển thị dự báo thời tiết London (ngày thứ 5) mới nhất cho ngày 19 tháng 3 lúc 5 giờ chiều. Nếu chúng ta nhấp vào biểu tượng thời tiết, trong trường hợp này là tuyết rơi nhẹ, thì một Cửa sổ bật lên hiển thị nhiệt độ. Click vào hình để xem rõ hơn

Bản đồ thời tiết cho Utah vào ngày 19 tháng 3, 5 giờ chiều

Hình ảnh sau đây cho thấy biểu đồ của tất cả các loại thời tiết ở Utah có trong cơ sở dữ liệu với nhiệt độ tính bằng độ F w. r. t ngày giờ

Biểu đồ dự báo nhiệt độ với Nhiệt độ (F) trên trục y và Ngày giờ trên trục x

Đây là cách dữ liệu trong MongoDB trông như thế nào. Chúng tôi nhận được thông tin về nhiệt độ, mô tả thời tiết, gió và dấu thời gian cách nhau 3 giờ vì đây là dữ liệu dự báo thời tiết cách nhau 5 ngày/3 giờ. Đối với cơ sở dữ liệu, dấu thời gian được làm khóa chính để tránh các bản ghi trùng lặp

Phần kết luận

Trong dự án này, tôi đã học cách giao tiếp Mongo DB với API Openweathermap để trực quan hóa dự báo thời tiết trong quá khứ, hiện tại và tương lai cho các phân tích. Tôi hy vọng nó sẽ hữu ích cho những người đang tìm hiểu về cách giao tiếp Python với Openweathermaps API và MongoDB

Video giải thích chi tiết về dự án này có thể được xem trên YouTube tại https. //www. youtube. com/watch?v=8rV9k2tVWWI&t=36s

Toàn bộ mã có sẵn trên GitHub tại https. //github. com/shayanalibhatti/Weather_forecast_using_Python_Openweathermap_and_MongoDB

MongoDB có tốt cho dữ liệu chuỗi thời gian không?

MongoDB là cơ sở dữ liệu có mục đích chung dựa trên tài liệu với thiết kế lược đồ linh hoạt và ngôn ngữ truy vấn phong phú. Kể từ MongoDB 5. 0, MongoDB vốn hỗ trợ dữ liệu chuỗi thời gian .

Kiểu dữ liệu nào là thời tiết?

Dữ liệu thời tiết là một loại dữ liệu rộng . Nó có thể được chia thành các danh mục con dựa trên phạm vi bảo hiểm theo thời gian và địa lý. Một số khách hàng cần dữ liệu lịch sử, trong khi một số khác cần dữ liệu thời gian thực.

Tôi có thể tìm bộ dữ liệu thời tiết ở đâu?

Khí quyển & Thời tiết .
NOAA OneStop. .
DỮ LIỆU TRÁI ĐẤT. .
UNIDATA. .
Bộ dữ liệu Quan sát của Trung tâm Met Office Hadley. .
Viện nghiên cứu vũ trụ Goddard Phân tích nhiệt độ bề mặt. .
Trung tâm Quốc gia về Truy cập Dữ liệu Thông tin Môi trường (NOAA).
Dữ liệu khí hậu trực tuyến. Tìm kiếm văn bản & bản đồ (Trung tâm dữ liệu khí hậu quốc gia của NOAA)