最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python的地形三維可視化Matplotlib和gdal使用實例

 更新時間:2017年12月09日 14:42:36   作者:大蝦盧  
這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實例,具有一定借鑒價值,需要的朋友可以了解下。

我是以Python開門的,我還是覺得Python也可以進行地形三維可視化,當然這里需要借助第三方庫,so,我就來介紹:Python一個很重要可視化插件,Matplotlib。

Matplotlib是Python最著名的繪圖庫,它提供了一整套友好的命令,十分適合交互式地進行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應用程序中。你會發(fā)現Matplotlib和matlab相似,但是你知道m(xù)atlab強大是很強大,但是安裝包就有7G,一下就讓我失去玩弄他的興趣。

Matplotlib的二維圖形非常成熟,可以做各種各樣的報表,比如:

好吧,額,....... Matplotlib當然也可以做3維數據。首先準備了一份樣例,珠穆朗姆峰周圍地勢的dem數據,我在arcsense進行拉伸顯示,初步看看效果:

講這份數據,輸入編寫好的相關路徑,然后經過簡單的三維渲染:

Matplotlib只是一個可視化包,不能直接識別柵格數據,所以這邊還用到另外一個包---gdal,開源柵格空間數據轉換庫,他的本體竟然還是c++,也開放了一個Python框架,這算是向Python投誠嘛?

好吧,開源一下用Matplotlib和gdal包進行地形三維可視化的小腳本:

# -*- coding: gbk -*-
from mpl_toolkits.mplot3d import Axes3D
from Matplotlib import cbook
from Matplotlib import cm
from Matplotlib.colors import LightSource
import Matplotlib.pyplot as plt
import numpy as np
from osgeo import gdal
gdal.AllRegister()

filePath = u"E:\桌面\dem實驗/Himalaya.tif" #輸入你的dem數據
dataset = gdal.Open(filePath)
adfGeoTransform = dataset.GetGeoTransform()
band = dataset.GetRasterBand(1)  #用gdal去讀寫你的數據,當然dem只有一個波段
nrows = dataset.RasterXSize 
ncols  = dataset.RasterYSize  #這兩個行就是讀取數據的行列數
Xmin = adfGeoTransform[0] #你的數據的平面四至
Ymin = adfGeoTransform[3]
Xmax = adfGeoTransform[0] + nrows * adfGeoTransform[1] + ncols * adfGeoTransform[2]
Ymax = adfGeoTransform[3] + nrows * adfGeoTransform[4] + ncols * adfGeoTransform[5]
x = np.linspace(Xmin,Xmax, ncols)
y = np.linspace(Ymin,Ymax, nrows)
X,Y = np.meshgrid(x, y)
Z = band.ReadAsArray(0, 0,nrows, ncols) #這一段就是講數據的x,y,z化作numpy矩陣
region = np.s_[10:400,10:400]
X, Y, Z = X[region], Y[region],Z[region]
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'), figsize=(12,10))
ls = LightSource(270, 20)  #設置你可視化數據的色帶
rgb = ls.shade(Z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, facecolors=rgb,
            linewidth=0, antialiased=False, shade=False)
plt.show() #最后渲染出你好看的三維圖吧

最后是蝦神的話:GDAL在python里面的安裝,屬于灰常糾結的事情,運氣好(人品好)可能一下就成功,運氣不好,可能死活就裝不上……如果遇上死活裝不上的,可以考慮用MinGW自己進行編譯。

如果不想用gdal來實現以上效果,可以考慮用arcpy的RasterToNumpy來把tif文件讀成矩陣,也可以實現。

總結

以上就是本文關于Python的地形三維可視化Matplotlib和gdal使用實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Python中獲取文件大小的四種辦法

    Python中獲取文件大小的四種辦法

    這篇文章主要給大家介紹了關于Python中獲取文件大小的四種辦法,我們可以使用Python中的os模塊來獲取視頻文件大小,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • 一起來了解python的基本輸入和輸出

    一起來了解python的基本輸入和輸出

    這篇文章主要為大家詳細介紹了python的基本輸入和輸出,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python爬蟲實例——爬取美團美食數據

    Python爬蟲實例——爬取美團美食數據

    這篇文章主要介紹了Python爬蟲如何爬取美團美食數據,文中講解非常詳細,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Django?使用VScode?創(chuàng)建工程的詳細步驟

    Django?使用VScode?創(chuàng)建工程的詳細步驟

    這篇文章主要介紹了Django?使用VScode?創(chuàng)建工程,創(chuàng)建Django 項目,可以和虛擬環(huán)境放在同一目錄,也可以放在虛擬環(huán)境的文件夾里,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Python實現連接MySQL數據庫的常見方法總結

    Python實現連接MySQL數據庫的常見方法總結

    這篇文章主要為大家介紹了兩種Python中用來連接 MySQL 數據庫的方法,并且針對這兩種方法,我們還將對代碼進行封裝和優(yōu)化,提高程序的可讀性和健壯性,需要的可以收藏一下
    2023-05-05
  • Django與數據庫交互的實現

    Django與數據庫交互的實現

    最近在學習Django,本文主要介紹了Django與數據庫交互的實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 解決Pandas生成Excel時的sheet問題的方法總結

    解決Pandas生成Excel時的sheet問題的方法總結

    估計有不少小伙伴在將 DataFrame導入到Excel的時候,遇到過下面這種尷尬的情況:想給一個現有的Excel文件追加一個sheet,結果發(fā)現其它的sheet都沒了等,本文就來告訴你如何解決這些問題
    2022-08-08
  • Python3內置模塊之json編解碼方法小結【推薦】

    Python3內置模塊之json編解碼方法小結【推薦】

    這篇文章主要介紹了Python3內置模塊之json編解碼方法小結,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Python MySQLdb Linux下安裝筆記

    Python MySQLdb Linux下安裝筆記

    這篇文章主要介紹了Python MySQLdb Linux下安裝筆記,本文分別講解了快速安裝和手動編譯安裝兩種方法,并分別講解了操作步驟,需要的朋友可以參考下
    2015-05-05
  • Python3對稱加密算法AES、DES3實例詳解

    Python3對稱加密算法AES、DES3實例詳解

    這篇文章主要介紹了Python3對稱加密算法AES、DES3,結合實例形式詳細分析了對稱加密算法AES、DES3相關模塊安裝、使用技巧與操作注意事項,需要的朋友可以參考下
    2018-12-12

最新評論

宁明县| 宁明县| 富阳市| 西华县| 武穴市| 芜湖县| 准格尔旗| 元氏县| 汕头市| 雅安市| 盖州市| 南江县| 文化| 新郑市| 贵阳市| 盐池县| 迁西县| 灌南县| 长垣县| 德兴市| 齐河县| 东宁县| 顺平县| 平定县| 台湾省| 革吉县| 沾益县| 江都市| 保德县| 富宁县| 吉林市| 华蓥市| 盖州市| 合山市| 黑河市| 田阳县| 宝坻区| 永安市| 江安县| 五家渠市| 安溪县|