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

python中的netCDF4批量處理NC文件的操作方法

 更新時(shí)間:2022年03月21日 15:01:38   作者:skypanxh  
這篇文章主要介紹了python的netCDF4批量處理NC格式文件的操作方法,使用python批量提取所有數(shù)據(jù),查看數(shù)據(jù)屬性,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、使用ArcMap提取出第一期數(shù)據(jù)

1.使用工具箱中的“Make NetCDF Raster Layer”工具,提取出一個(gè)數(shù)據(jù)

可以發(fā)現(xiàn)該數(shù)據(jù)有正確的像元大小、坐標(biāo)系等

2.導(dǎo)出該數(shù)據(jù)作為標(biāo)準(zhǔn)數(shù)據(jù)

二、使用python批量提取所有數(shù)據(jù)

1. 查看數(shù)據(jù)屬性

from netCDF4 import Dataset,num2date
infile = "../01Data/Runoff1992-2014/GRUN_v1_GSWP3_WGS84_05_1902_2014.nc"
data_set = Dataset(infile) # 讀取nc文件信息
print(data_set)

輸出為

<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF3_CLASSIC data model, file format NETCDF3):
    title: GRUN
    version: GRUN 1.0
    meteorological_forcing: GSWP3
    temporal_resolution: monthly
    spatial_resolution: 0.5x0.5
    crs: WGS84
    proj4: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
    EPSG: 4326
    references: Ghiggi et al.,2019. GRUN: An observation-based global gridded runoff dataset from 1902 to 2014. ESSD, doi: https://doi.org/10.5194/essd-2019-32
    authors: Gionata Ghiggi; Lukas Gudmundsson
    contacts: gionata.ghiggi@gmail.com; lukas.gudmundsson@env.ethz.ch
    institution: Land-Climate Dynamics, Institute for Atmospheric and Climate Science, ETH Zürich
    institution_id: IAC ETHZ
    dimensions(sizes): X(720), Y(360), time(1356)
    variables(dimensions): float64 X(X), float64 Y(Y), float64 time(time), float32 Runoff(time, Y, X)
    groups: 

可以看到variables變量X、Y為經(jīng)緯度,time為時(shí)間,Runoff為需要的結(jié)果

2.批量導(dǎo)出結(jié)果

from osgeo import gdal
from netCDF4 import Dataset,num2date
import numpy as np

def WriteTiff(im_data,inputdir, path):
    raster = gdal.Open(inputdir)
    im_width = raster.RasterXSize #柵格矩陣的列數(shù)
    im_height = raster.RasterYSize #柵格矩陣的行數(shù)
    im_bands = raster.RasterCount #波段數(shù)
    im_geotrans = raster.GetGeoTransform()#獲取仿射矩陣信息
    im_proj = raster.GetProjection()#獲取投影信息
    
    if 'int8' in im_data.dtype.name:
        datatype = gdal.GDT_Byte
    elif 'int16' in im_data.dtype.name:
        datatype = gdal.GDT_UInt16
    else:
        datatype = gdal.GDT_Float32
    if len(im_data.shape) == 3:
        im_bands, im_height, im_width = im_data.shape
    elif len(im_data.shape) == 2:
        im_data = np.array([im_data])
        im_bands, (im_height, im_width) = 1, im_data.shape
        # 創(chuàng)建文件
    driver = gdal.GetDriverByName("GTiff")
    dataset = driver.Create(path, im_width, im_height, im_bands, datatype)
    if (dataset != None):
        dataset.SetGeoTransform(im_geotrans)  # 寫(xiě)入仿射變換參數(shù)
        dataset.SetProjection(im_proj)  # 寫(xiě)入投影
    for i in range(im_bands):
        dataset.GetRasterBand(i + 1).WriteArray(im_data[i])
    del dataset
infile = "../01Data/Runoff1992-2014/GRUN_v1_GSWP3_WGS84_05_1902_2014.nc"
data_set = Dataset(infile) # 讀取nc文件信息
time = data_set.variables["time"][:]  # 獲取時(shí)間一列
units = data_set.variables["time"].units # 獲取第一期時(shí)間
#讀取樣本tif文件的地理信息
intif = "../03ProcessData/runoff_example.tif"
for i in range(0,len(time)):
    yr = num2date(time[i],units).year # 提取年份
    mon = num2date(time[i],units).month    # 提取月份
    value_data = data_set.variables['Runoff'][i]
    # 將缺失值改為0
    data = value_data.data
    mask = value_data.mask
    data[np.where(mask == True)] = 0
    outputname = "../01Data/Runoff1992-2014/tif/" + str(yr) + str(mon).zfill(2) + ".tif"
    WriteTiff(data,intif , outputname)
    print(outputname)

!注意事項(xiàng)

1.使用時(shí)候請(qǐng)自行修改修改輸入輸出文件路徑與變量名稱

2.根據(jù)需要處理缺失值

到此這篇關(guān)于python的netCDF4批量處理NC格式文件的操作方法的文章就介紹到這了,更多相關(guān)python netCDF4處理NC格式文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案(提示Error: Command failed,usage)

    VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案(提示Error: Command failed,usage)

    這篇文章主要介紹了VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python中reduce()函數(shù)的用法詳細(xì)解讀

    Python中reduce()函數(shù)的用法詳細(xì)解讀

    這篇文章主要介紹了Python中reduce()函數(shù)的用法詳細(xì)解讀,reduce函數(shù)是通過(guò)函數(shù)對(duì)迭代器對(duì)象中的元素進(jìn)行遍歷操作,但需要注意的是?reduce?函數(shù)返回的是計(jì)算的結(jié)果,而?map/filter?返回的是作用后的迭代器對(duì)象,需要的朋友可以參考下
    2023-08-08
  • Python中三個(gè)不可思議的返回功能分享

    Python中三個(gè)不可思議的返回功能分享

    這篇文章主要給大家介紹了Python中三個(gè)不可思議的返回功能,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • python實(shí)現(xiàn)簡(jiǎn)單的文字識(shí)別

    python實(shí)現(xiàn)簡(jiǎn)單的文字識(shí)別

    這篇文章主要為大家詳細(xì)介紹了基于百度云文字識(shí)別API,python實(shí)現(xiàn)的簡(jiǎn)單文字識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python如何使用paramiko模塊連接linux

    Python如何使用paramiko模塊連接linux

    這篇文章主要介紹了Python如何使用paramiko模塊連接linux,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • pygame實(shí)現(xiàn)煙雨蒙蒙下彩虹雨

    pygame實(shí)現(xiàn)煙雨蒙蒙下彩虹雨

    這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)煙雨蒙蒙下彩虹雨,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python中不同類之間調(diào)用方法的四種方式小結(jié)

    Python中不同類之間調(diào)用方法的四種方式小結(jié)

    類是一種面向?qū)ο蟮木幊谭妒?它允許我們將數(shù)據(jù)和功能封裝在一個(gè)實(shí)體中,本文主要介紹了Python中不同類之間調(diào)用方法的四種方式小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Python實(shí)現(xiàn)的RSS閱讀器實(shí)例

    Python實(shí)現(xiàn)的RSS閱讀器實(shí)例

    這篇文章主要介紹了Python實(shí)現(xiàn)的RSS閱讀器,實(shí)例分析了XML解析實(shí)現(xiàn)RSS閱讀的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • python裝飾器常見(jiàn)使用方法分析

    python裝飾器常見(jiàn)使用方法分析

    這篇文章主要介紹了python裝飾器常見(jiàn)使用方法,結(jié)合實(shí)例形式分析了Python裝飾器的功能及三種常見(jiàn)的裝飾模式使用技巧,需要的朋友可以參考下
    2019-06-06
  • Pycharm學(xué)習(xí)教程(1) 定制外觀

    Pycharm學(xué)習(xí)教程(1) 定制外觀

    這篇文章主要介紹了最全的Pycharm學(xué)習(xí)教程第一篇如何定制外觀,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評(píng)論

山东省| 怀柔区| 云安县| 通海县| 清流县| 同心县| 临朐县| 泰州市| 昭通市| 汉阴县| 石柱| 高碑店市| 汕头市| 搜索| 禹城市| 方正县| 乐陵市| 成都市| 福贡县| 河池市| 长沙县| 健康| 嘉禾县| 安新县| 阿鲁科尔沁旗| 玉树县| 宜丰县| 安福县| 旬邑县| 洪湖市| 铁岭市| 安图县| 景东| 银川市| 饶河县| 屏山县| 汉寿县| 常宁市| 鹤壁市| 沅陵县| 新化县|