今天要來介紹owslib
,這個套件是python中拿來處理wms/wmts等服務的套件,
在matplotlib basemap也是使用這個套件,另外QGIS軟體中也有使用。
大綱:
- 安裝
- owslib初探
- 取得Layer資訊
- GetMap
安裝
首先,安裝owslib的部分我們使用使用conda,打開cmd輸入1
conda install -c conda-forge owslib
owslib初探
我們用owslib來呼叫一個wms
1 | from owslib.wms import WebMapService |
WMS介紹與說明: [Day 3] 談互操作性及Web Map Service 標準 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
常用WMS清單: [Day 15] wms,wmts資源彙整與OSM - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
wms服務中的圖層清單取得可以透過下列方法:1
2for item in list(wms.contents):
print(layer+":"+wms[item].title)
取得Layer資訊
根據上面的圖層清單,我們先呼叫其中一個1353_1
1 | layer=wms['1353_1'] |
從layer物件可以看看圖層的基本內容
例如:bbox範圍1
layer.boundingBoxWGS84
回應:(-181.117, 57.0998, -138.538, 71.6062)
title1
layer.title
回應:'Alaska Arctic AVHRR False-color Infrared Base Map'
坐標系統1
layer.crsOptions
回應:['epsg:900913','epsg:4326','epsg:54004', 'epsg:3338', 'epsg:54008','epsg:3785','epsg:54009']
GetMap
GetMap是WMS規範中取得影像/網格資料的方法
在這邊的操作也是使用GetMap取得網格資料,
例如:1
2
3
4
5
6
7
8img = wms.getmap(
layers=['1353_1'],
styles=['default'],
srs='EPSG:4326',
bbox=(-181.117, 57.0998, -138.538, 71.6062),
size=(600, 300),
format='image/png',
transparent=True)
取得影像後,可以把圖片存起來1
2
3out = open('image.png', 'wb')
out.write(img.read())
out.close()
可以看到,影像被儲存了。
後記
今天使用owslib
取得WMS資料,預計接下來幾天會進入網格資料的GIS操作喔!