Bản đồ cốt truyện trong python
Có hai gói Python tuyệt vời để tạo bản đồ tương tác. tán lá và mapboxgl. Cả hai gói này đều được xây dựng dựa trên thư viện JavaScript có tên là tờ rơi. js Show Bài học này sẽ tập trung vào folium, đã tồn tại lâu hơn mapboxgl và do đó, được cộng đồng Python ghi lại đầy đủ Một điểm khác biệt chính giữa hai gói là mapboxgl yêu cầu Mã thông báo truy cập MapBox. Nếu bạn muốn tự mình khám phá mapboxgl, hãy lưu ý rằng mã thông báo Truy cập MapBox được sử dụng miễn phí nhưng yêu cầu tạo tài khoản với MapBox Bạn có thể tìm thêm thông tin trên trang Github cho gói này API là gì?API (hoặc giao diện lập trình ứng dụng) là giao diện mở hệ thống dựa trên máy tính cho các yêu cầu bên ngoài và đơn giản hóa các tác vụ nhất định, chẳng hạn như trích xuất các tập hợp con dữ liệu từ kho lưu trữ hoặc cơ sở dữ liệu lớn Ví dụ: API dựa trên web cho phép bạn truy cập dữ liệu có sẵn bằng giao diện dựa trên web tách biệt với API mà bạn đang truy cập. Do đó, API web là một cách để tránh các giao diện trực quan không liên quan mà bạn không cần và đưa dữ liệu mong muốn vào công cụ mà bạn muốn sử dụng Thông thường, bạn truy cập dữ liệu từ các API dựa trên web bằng cách sử dụng URL chứa các bộ tham số chỉ định loại và tập hợp con cụ thể của dữ liệu mà bạn quan tâm. Bạn sẽ tìm hiểu thêm về cách sử dụng API sau trong khóa học này Đối với bài học này, bạn chỉ cần biết rằng các bản đồ cơ sở mà bạn sẽ truy cập để tạo bản đồ tương tác của mình đến từ các API được cung cấp bởi các tổ chức khác nhau như OpenStreetMap, MapBox, Stamen, Google, v.v.
Bản đồ cơ sở đơn giảnBạn có thể tạo bản đồ tương tác với folium chỉ bằng một dòng mã Bạn có thể sử dụng hàm 3 từ folium và cung cấp vĩ độ và kinh độ để căn giữa bản đồ. Bản đồ được tạo bằng bản đồ cơ sở mặc định từ OpenStreetMap
Thay đổi bản đồ cơ sởBạn có thể thay đổi bản đồ nền cho bản đồ bằng cách cung cấp giá trị cho tham số 4 của hàm 3Có nhiều tùy chọn khác nhau bao gồm 6, 0 và 1. Thêm chi tiết và tên bản đồ cơ sở có sẵn trên Tài liệu Folium cho chức năng 3
Thêm điểm đánh dấuBạn cũng có thể thêm các điểm đánh dấu để gắn nhãn các điểm cụ thể trên bản đồ nền folium, chẳng hạn như các tọa độ đang được sử dụng để căn giữa bản đồ. Bạn thậm chí có thể thêm nhãn bật lên cho điểm đánh dấu được kích hoạt khi bạn nhấp vào nó
Lớp phủ raster trên bản đồ tương tácBạn cũng có thể phủ các trình quét trên bản đồ nền folium Hệ tọa độ và phép chiếu mặc định cho các bản đồ nền dựa trên web là WGS84 Web Mercator. Để tạo lớp phủ dữ liệu trên bản đồ nền dựa trên web, dữ liệu lớp phủ cần phải ở trong hệ tọa độ WGS84 (xem liên kết này để biết thêm thông tin về hệ tọa độ này) Do đó, để phủ một raster lên sơ đồ cơ sở, trước tiên bạn cần chiếu raster lên WGS84 (EPSG 4326) Raster dự ánBạn có thể sử dụng gói rioxarray mà bạn đã nhập dưới dạng rxr để chiếu raster. Trong ví dụ này, bạn sẽ sử dụng raster cho mô hình địa hình kỹ thuật số sau lũ lụt (DTM) ở khu vực Tây Bắc Boulder. 3Chuẩn bị Raster để vẽ sơ đồFolium rất mạnh, nhưng bạn vẫn cần chuẩn bị raster trước khi vẽ đồ thị Điều đầu tiên bạn phải làm là thay thế tất cả các giá trị 4 mà rioxarray đã sử dụng để che đi những vùng không có dữ liệu. Những giá trị này không hoạt động với folium. Trong trường hợp này, bạn có thể thay thế các giá trị đó bằng giá trị tối thiểu trong hình ảnh, nhưng bạn có thể thay thế chúng bằng bất kỳ giá trị nào bạn thấy phù hợp để trực quan hóa tốt nhất dữ liệu của mìnhĐiều tiếp theo chúng ta phải làm là chia tỷ lệ dữ liệu chỉ chứa các giá trị từ 0 đến 255. Điều này làm cho dữ liệu thuộc loại 5, cần thiết để vẽ biểu đồ chính xác trong tờ giấy. May mắn thay, earthpy có một chức năng để làm điều này. Bạn có thể đặt mảng trong 6 và nó sẽ lấy các giá trị và chia tỷ lệ từ 0 đến 255 cho bạn 0Raster lớp phủGiờ đây, raster nằm trong hệ tọa độ chính xác (WGS84), bạn có thể phủ nó lên basemp bằng hàm 7 và chỉ định hình ảnh (e. g. 8) và đặt độ mờ và hộp giới hạn, nếu muốn |