日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python绘制地图地图cartopy_python Cartopy的基础使用详解

發布時間:2024/1/8 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python绘制地图地图cartopy_python Cartopy的基础使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

常用地圖底圖的繪制一般由Basemap或者cartopy模塊完成,由于Basemap庫是基于python2開發的一個模塊,目前已經不開發維護。故簡單介紹cartopy模塊的一些基礎操作。 一、基礎介紹

首先導入相關模塊。

import numpy as np

import matplotlib.pyplot as plt

import cartopy.crs as ccrs

import cartopy.feature as cfeature

from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter

首先介紹參數projection,該命令可以配合ccrs設置投影類型,此處以方形投影命令為示例。其中central_longitude參數為投影中心位置。其中心設置與Basemap設置規則一樣,詳情可以看上一篇文章。

ax=plt.axes(projection=ccrs.PlateCarree(central_longitude=0))

在設置好繪制類型后,繪制地圖各特征量。其代碼如下:

#ax.add_feature(cfeature.LAKES.with_scale(scale))

ax.add_feature(cfeature.OCEAN.with_scale(scale))

#ax.add_feature(cfeature.RIVERS.with_scale(scale))

#ax.add_feature(cfeature.LAND.with_scale(scale),lw=0.5)

ax.add_feature(cfeature.COASTLINE.with_scale(scale),lw=2)

參數scale為地圖分辨率,目前支持10m,50m,110m,參數lw為線條粗細。此處繪制海岸線和海洋,效果圖如下:

在繪制結束后,作為地圖。經緯度自然是必不可少的,在該模塊中,引進同時設置坐標軸標簽改變該標簽刻度的表示,具體形式如下:

ax.set_xticks(np.arange(0,361,40), crs=ccrs.PlateCarree())

ax.set_yticks(np.arange(-90,90+30,30), crs=ccrs.PlateCarree())

#zero_direction_label用來設置經度的0度加不加E和W

lon_formatter = LongitudeFormatter(zero_direction_label=False)

lat_formatter = LatitudeFormatter()

ax.xaxis.set_major_formatter(lon_formatter)

ax.yaxis.set_major_formatter(lat_formatter)

可以看到效果圖如下:

當然如果想對坐標軸粗細變化可以引入一下命令。

ax.outline_patch.set_visible(False)

ax.spines["bottom"].set_visible(True)

ax.spines["left"].set_visible(True)

ax.spines["right"].set_visible(True)

ax.spines["top"].set_visible(True)

ax.spines["bottom"].set_linewidth(2.5);###設置底部坐標軸的粗細

ax.spines["left"].set_linewidth(2.5);####設置左邊坐標軸的粗細

ax.spines["right"].set_linewidth(2.5);###設置右邊坐標軸的粗細

ax.spines["top"].set_linewidth(2.5);####設置上部坐標軸的粗細

應該在該模塊下,控制坐標軸的命令已經和常規不一樣。因此先關閉該控制,然后開啟常規坐標軸設置。

二、區域地圖的繪制

當我們在某一小塊區域研究時,需要繪制區域地圖。此時我們可以引入命令:

ax.set_extent(box,crs=ccrs.PlateCarree())

其中box為繪制區域,crs為投影類型。其他命令基本不變。設置box為[40,180,0,90],可得到效果圖如下:

總結

為方便各位讀者,我書寫了繪制地圖的函數,大家在使用時可直接調用。此處示例為方形投影,若希望繪制其他投影。只需要修改函數部分參數即可。代碼如下:

def map_make(scale,box,xstep,ystep):

ax=plt.axes(projection=ccrs.PlateCarree(central_longitude=180))

a = (box[1]-box[0])//xstep

x_start = box[1] - a*xstep

a = (box[3]-box[2])//ystep

y_start = box[3] - a*ystep

ax.set_extent(box,crs=ccrs.PlateCarree())

#ax.add_feature(cfeature.LAKES.with_scale(scale))

#ax.add_feature(cfeature.OCEAN.with_scale(scale))

#ax.add_feature(cfeature.RIVERS.with_scale(scale))

#ax.add_feature(cfeature.LAND.with_scale(scale),lw=0.5)

ax.add_feature(cfeature.COASTLINE.with_scale(scale),lw=2)

ax.set_xticks(np.arange(x_start,box[1]+xstep,xstep), crs=ccrs.PlateCarree())

ax.set_yticks(np.arange(y_start,box[3]+ystep,ystep), crs=ccrs.PlateCarree())

#zero_direction_label用來設置經度的0度加不加E和W

lon_formatter = LongitudeFormatter(zero_direction_label=False)

lat_formatter = LatitudeFormatter()

ax.xaxis.set_major_formatter(lon_formatter)

ax.yaxis.set_major_formatter(lat_formatter)

#添加網格線

ax.grid()

ax.outline_patch.set_visible(False)

ax.spines["bottom"].set_visible(True)

ax.spines["left"].set_visible(True)

ax.spines["right"].set_visible(True)

ax.spines["top"].set_visible(True)

ax.spines["bottom"].set_linewidth(2.5);###設置底部坐標軸的粗細

ax.spines["left"].set_linewidth(2.5);####設置左邊坐標軸的粗細

ax.spines["right"].set_linewidth(2.5);###設置右邊坐標軸的粗細

ax.spines["top"].set_linewidth(2.5);####設置上部坐標軸的粗細

return ax

到此這篇關于python Cartopy的基礎使用詳解的文章就介紹到這了,更多相關python Cartopy內容請搜索云海天教程以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持云海天教程!

原文鏈接:https://blog.csdn.net/weixin_49284189/article/details/109376547

總結

以上是生活随笔為你收集整理的python绘制地图地图cartopy_python Cartopy的基础使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一卡二卡三卡在线 | 毛片网站在线免费观看 | 日韩精品123 | 一区二区三区在线播放视频 | 欧美.com| 视频一区二区三区在线观看 | 亚洲人成在线免费观看 | 欧美视频亚洲 | 谁有av网址 | 亚洲综合p| 欧美成人不卡视频 | 97在线超碰 | 黄色小视频免费观看 | 午夜视频色 | 好吊视频一二三区 | 天天做天天爱天天爽 | 性视频免费 | 日本成人动漫在线观看 | 亚洲精品一区 | 欧美激情18p | 亚洲20p| 午夜在线观看视频 | 在线看黄网站 | 色婷婷av一区二区三区四区 | 天天操夜夜拍 | 国产欧美日韩综合精品一区二区 | 亚洲高清无码久久久 | 青青操视频在线 | 久色资源 | 92久久| 日韩三区在线 | 男ji大巴进入女人视频 | 俺也来俺也去俺也射 | 少妇又紧又深又湿又爽视频 | 久久人人爽人人爽 | 黄色av网站在线观看 | 午夜日韩av | 亚洲 日本 欧美 中文幕 | 四虎在线网址 | 国产18禁黄网站免费观看 | 波多野结衣绝顶大高潮 | 男人的天堂视频在线观看 | 女同性恋一区二区三区 | 777米奇影视第四色 五月丁香久久婷婷 | 国产九色在线 | 国产乱淫精品一区二区三区毛片 | 调教撅屁股啪调教打臀缝av | 亚洲图片88| 一级国产特黄bbbbb | 日韩人妻一区二区三区蜜桃 | 男人操女人网站 | 色吊丝中文字幕 | 鲁一鲁啪一啪 | 国产人妻精品一区二区三 | 国产又爽又黄的视频 | 亚洲国产午夜 | 久久尹人 | 波多野结衣在线免费观看视频 | 91看视频 | 一道本视频在线 | 国产九九九九 | 久久这里有精品视频 | 欧美放荡办公室videos4k | 少妇高潮视频 | av毛片网| 少妇导航av| 丰满岳妇乱一区二区三区 | xx性欧美肥妇精品久久久久久 | 日韩欧美视频 | 久久国内免费视频 | 久久久成人精品一区二区三区 | 黄色免费视频观看 | 国产精品伦子伦免费视频 | 91蝌蚪91九色白浆 | 少妇被又大又粗又爽毛片久久黑人 | 成人免费xxxxxx视频 | 本道综合精品 | 成人免费在线观看网站 | 日本在线中文字幕专区 | 乳色吐息在线看 | www天天干| 欧美一级黄色片 | 国产欧美日韩综合精品一区二区三区 | 亚洲综合色小说 | 伊人精品在线观看 | 日韩一级完整毛片 | 中文字幕在线播 | 中文字幕av第一页 | 欧美精品观看 | 国产日韩欧美在线播放 | 老司机免费精品视频 | 天天干天天要 | 日韩黄色影院 | a级片中文字幕 | 精品福利一区二区三区 | 91视频啊啊啊 | 久久午夜福利电影 | 午夜8888 | 这里只有久久精品 |