Rate this post

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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now