簡體   English   中英

使用Python將netcdf“ land”變量轉換為緯度和經度

[英]Convert netcdf “land” variable to latitude and longitude with Python

我有一個全球氣象數據集,我想訪問某個網格(緯度,經度)的數據。 但是,數據被壓縮,即感興趣的參數不具有尺寸(緯度,經度),而是“陸地”。 “ land”是一維整數數組。

我使用python將文件導入

import scipy.io.netcdf as netcdf

path = '/path/.../ncfile.nc'

ncfile = netcdf.netcdf_file(path,'r')

然后,我檢查了那里的變量,發現例如“ Rainf”變量具有維度(tstep,land)。 我在互聯網上對此進行了研究,找到了文件landmask_gswp.nc( http://dods.ipsl.jussieu.fr/gswp/Fixed/landmask_gswp.nc ),該文件應該包含我需要的信息,即如何從“土地”中提取信息(緯度,經度)。 該文件包含變量nav_lat,nav_lon和landmask。 根據我的理解,nav_lat和nav_lon將坐標變量x和y與緯度和經度相關。 “ landmask”是一個2D數組,包含信息ocean = 0或land =1。確實,陸點的數量與我的“ land” 1D數組的長度一致。 但是,我無法弄清楚如何從中提取(緯度,經度)信息。 任何幫助將非常感激。

我希望我的問題可以理解。 我沒有編程和/或使用netcdf的經驗,所以希望您能為您提供幫助! 提前致謝!

其他人可能會發現這很有幫助,因此這是問題的答案。 一位朋友為我找到了答案。 “ land”是展平數組nav_lat,nav_lon的索引,即“ land”的第一個條目對應於緯度:lat.flat [land [0]]和lon.flat [land [0]]。

您可以使用以下方式從ncfile提取變量:

lat = ncfile.variables['nav_lat'][:,:]
lon = ncfile.variables['nav_lon'][:,:] 

這將創建二維numpy數組latlon

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM