Hôm nay, trong hướng dẫn Python này , chúng ta sẽ thảo luận về Bản đồ địa lý và Dữ liệu đồ thị Python. Hơn nữa, chúng ta sẽ thấy cách xử lý dữ liệu địa lý và đồ thị bằng Python và các thư viện của nó . Chúng tôi sẽ sử dụng Matplotlib và Cartopy trong số các thư viện khác để vẽ Bản đồ Địa lý và Dữ liệu Đồ thị.
Vì vậy, hãy bắt đầu Khám phá Bản đồ Địa lý Python.
Bản đồ địa lý Python và Dữ liệu Đồ thị
Chúng tôi cần các thư viện sau cho Bản đồ địa lý và Dữ liệu đồ thị Python này- Cartopy
Cartopy là một gói Python dành cho bản đồ học. Nó sẽ cho phép bạn xử lý dữ liệu không gian địa lý, phân tích nó và tạo bản đồ. Là một gói Python, nó sử dụng NumPy , PROJ.4 và Shapely, và đứng trên Matplotlib. Một số tính năng chính của nó-
- Các định nghĩa về phép chiếu hướng đối tượng.
- Bản đồ chất lượng xuất bản.
- Khả năng biến đổi điểm, đường thẳng, đa giác, vectơ và hình ảnh.
Bạn có thể cài đặt nó bằng pip-
pip install Cartopy
Lưu ý rằng bạn có thể cần cài đặt Microsoft Visual C ++ Build Tools 14.0 trở lên cho việc này.
Các mô-đun khác
Có một số mô-đun khác mà chúng tôi sẽ sử dụng ở đây-
pip install Matplotlib
Bản đồ địa lý Python
Python sẽ cho phép chúng ta vẽ bản đồ địa lý. Hãy xem làm thế nào.
Bản đồ đơn giản
Đầu tiên chúng ta hãy vẽ một bản đồ và điền nó vào sau.
import cartopy.crs as ccrs ax=plt.axes(projection=ccrs.PlateCarree()) #Using the PlateCarree projection ax.coastlines() #Display the coastlines
Các hình chiếu khác
ax=plt.axes(projection=ccrs.Orthographic()) ax.stock_img() #thêm image world map
Chúng tôi có một số phép chiếu khác như Mollweide, Robinson, Sinusoidal, và Gnomonic trong số nhiều phép chiếu khác.
Xem thêm Python cho Data science
Thêm dữ liệu
Hãy thử vẽ bản đồ từ Romania đến Indore, Ấn Độ.
ax=plt.axes(projection=ccrs.AlbersEqualArea()) ax.stock_img()
ro_lon,ro_lat=25,46 #Coordinates/ longitude and latitude ind_lon,ind_lat=75.8,22.7 plt.plot([ro_lon,ind_lon],[ro_lat,ind_lat], color='green',linewidth=2,marker='*',transform=ccrs.Geodetic(),) #Green line
plt.plot([ro_lon,ind_lon],[ro_lat,ind_lat], color='gray',linestyle='--',transform=ccrs.PlateCarree(),) #Gray, dashed line
plt.text(ro_lon-3,ro_lat-12,'Romania', horizontalalignment='right', transform=ccrs.Geodetic()) #Text- Romania
plt.text(ind_lon+3,ind_lat-12,'Indore', horizontalalignment='right', transform=ccrs.Geodetic()) #Text- Indore
Hệ tọa độ Trắc địa là hình cầu, nhưng vì chúng tôi sử dụng AlbersEqualArea, nên đường màu xanh lục xuất hiện thẳng trên biểu đồ. Tương tự, đường màu xám là một PlateCarree nhưng xuất hiện hình cầu.
Bây giờ, hãy thử thêm ghim màu xanh da trời vào bản đồ.
fig=plt.figure(figsize=(16,12)) ax=fig.add_subplot(1,1,1,projection=ccrs.PlateCarree()) ax.set_extent((10,144,70,-30)) ax.stock_img() ax.coastlines() ax.tissot(facecolor='skyblue',alpha=0.6)
Đường viền
Biểu đồ đường bao thể hiện bề mặt 3D trên định dạng 2D bằng cách vẽ đường bao (lát cắt z không đổi).
from netCDF4 import Dataset as netcdf_dataset import numpy as np from cartopy import config import os fname=os.path.join(config["repo_data_dir"], 'netcdf', 'HadISST1_SST_update.nc' ) dataset=netcdf_dataset(fname) sst=dataset.variables['sst'][0,:,:] lats=dataset.variables['lat'][:] lons=dataset.variables['lon'][:] ax=plt.axes(projection=ccrs.PlateCarree()) plt.contourf(lons,lats,sst,60, transform=ccrs.PlateCarree())
ax.coastlines() plt.show()
Dữ liệu đồ thị Python
Chuyển sang dữ liệu đồ thị, hãy xem Python sẽ cho phép chúng ta biểu diễn một đồ thị thưa thớt được nén như thế nào. Điều này được viết tắt là CSGraph. Hãy nói về một vài khái niệm mà nó bao hàm.
Hãy thảo luận về cách làm việc với cơ sở dữ liệu NoSQL
Đồ thị thưa thớt
Đồ thị thưa thớt là một tập hợp các nút được liên kết với nhau. Một biểu đồ như vậy có thể đại diện cho bất kỳ kết nối mạng xã hội nào đến các điểm trong phân phối chiều cao.
Để biểu diễn dữ liệu như vậy, chúng ta có thể sử dụng ma trận thưa thớt G. Hãy giữ cho nó có kích thước NxN. Giá trị của kết nối giữa hai nốt nhạc i và j bất kỳ sẽ là G [i, j]. Bây giờ một biểu đồ thưa thớt sẽ chứa các số không cho hầu hết các thành viên của nó. Điều này có nghĩa là đối với hầu hết các nút của nó, chỉ tồn tại một vài kết nối.
Một số thuật toán chúng tôi sử dụng cho việc này là:
- Isomap- Đây là một thuật toán học tập đa dạng cần tìm các đường đi ngắn nhất trong một biểu đồ
- Phân cụm theo thứ bậc- Đây là một thuật toán phân cụm và dựa trên cây khung tối thiểu
- Phân rã quang phổ- Đây là một thuật toán chiếu và dựa trên các laplacian đồ thị thưa thớt
Ví dụ – Thang từ
Đây là một trò chơi chữ của Lewis Carroll. Trong trò chơi này, người chơi chuyển đổi các chữ cái trong từ để chuyển từ từ này sang từ khác; họ làm điều này một chữ cái cùng một lúc. Hãy lấy một ví dụ.
wade-> fade-> faze-> gaze-> gate-> date-> hate
Trong những trường hợp như vậy, khi chúng ta muốn tìm đường đi ngắn nhất có thể từ từ này sang từ khác, chúng ta có thể sử dụng mô-đun con của đồ thị thưa thớt.
wordlist="hello how are you can you read this without punctuation do you think this is something what is the meaning of life".split() wordlist=[word for word in wordlist if len(word) == 3] wordlist=[word for word in wordlist if word[0].islower()] wordlist=[word for word in wordlist if word.isalpha()] wordlist = list(map(str.lower, wordlist)) len(wordlist)
import numpy as np wordlist=np.asarray(wordlist) wordlist.dtype
wordlist.sort() i1=wordlist.searchsorted('wade') i2=wordlist.searchsorted('hate') wordlist[i1]
wordlist[i2]
wordlist
Vì vậy, tất cả điều này đều có trong Bản đồ địa lý python. hy vọng bạn thích giải thích của chúng tôi về Dữ liệu đồ thị Python.
Kết luận
Do đó, trong hướng dẫn Bản đồ địa lý python này, chúng tôi đã thảo luận về việc vẽ biểu đồ bằng Python. Hơn nữa, chúng ta đã thảo luận về Dữ liệu đồ thị Python. Một số thư viện chúng tôi đã sử dụng là Cartopy và Matplotlib.