Python是一種極為流行的編程語言,它在很多領域都有廣泛的應用,其中就包括繪制高程圖。高程圖是地理信息系統(GIS)中的一種常見形式。本文將介紹如何使用Python繪制高程圖。
要繪制高程圖,我們需要一些數據。在本例中,我們將使用NASA提供的SRTM高程數據,這是一種全球高程數據集。我們使用Python中的GDAL庫來讀取和處理數據集。
import gdal dataset = gdal.Open("SRTM_data.tif", gdal.GA_ReadOnly) band = dataset.GetRasterBand(1) elevation = band.ReadAsArray()
一旦我們獲得了高程數據,我們就可以使用matplotlib庫來繪制高程圖。我們首先需要定義一些顏色,以便為不同的高程區域設置不同的顏色。
import matplotlib.pyplot as plt import numpy as np colors = [(1,0,0), (1,1,0), (0,1,0), (0,1,1), (0,0,1)] # 定義不同高程區域的顏色 cmap = plt.LinearSegmentedColormap.from_list('my_colormap', colors, N=2048) # 創建一個線性顏色映射
接下來,我們可以使用imshow函數來顯示高程圖。我們可以將顏色映射設置為我們定義的顏色映射,并使用vmin和vmax參數來設置顏色映射的最小值和最大值。
plt.imshow(elevation, cmap=cmap, vmin=0, vmax=5000) plt.axis('off') plt.show()
在顯示高程圖之前,我們還可以進行其他一些操作,例如使用高斯模糊函數來平滑圖像,或使用sobel函數來提取邊緣。在本例中,我們將對圖像進行高斯模糊處理。
from scipy.ndimage.filters import gaussian_filter blurred = gaussian_filter(elevation, sigma=3) plt.imshow(blurred, cmap=cmap, vmin=0, vmax=5000) plt.axis('off') plt.show()
這是一個簡單的繪制高程圖的例子。當然,你可以根據你的需要進行修改和擴展,以實現更多的高級功能。