Python --处理nc数据

系统 2803 0

首先你得安装 netCDF4 这个库 (pip install)
简单读取 如下
Python --处理nc数据_第1张图片
可以看到
dimensions (sizes) : longitude (480), latitude (241), time (480)
variables (dimensions) : float32 longitude (longitude), float32 latitude (latitude), int32 time (time), int16 z (time,latitude,longitude)
这是一个三维数据集,空间两维( z 高度层为1, 500hPa )、时间一维

数据提取

Python --处理nc数据_第2张图片
注意 :变量是 z , shape= (480,241,480)
时间40年x12月,空间0.75°x0.75°

np.array 把数据转化成数组(矩阵)类型

            
              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               netCDF4 
              
                as
              
               nc

d
              
                =
              
              nc
              
                .
              
              
                Dataset
              
              
                (
              
              
                'weishi79_18.nc'
              
              
                )
              
              
time
              
                =
              
              np
              
                .
              
              
                array
              
              
                (
              
              d
              
                .
              
              variables
              
                [
              
              
                'time'
              
              
                ]
              
              
                )
              
              
d_lon
              
                =
              
              np
              
                .
              
              
                array
              
              
                (
              
              d
              
                .
              
              variables
              
                [
              
              
                'longitude'
              
              
                ]
              
              
                )
              
              
d_lat
              
                =
              
              np
              
                .
              
              
                array
              
              
                (
              
              d
              
                .
              
              variables
              
                [
              
              
                'latitude'
              
              
                ]
              
              
                )
              
              
ws
              
                =
              
              np
              
                .
              
              
                array
              
              
                (
              
              d
              
                .
              
              variables
              
                [
              
              
                'z'
              
              
                ]
              
              
                )
              
            
          

只做冬季,挑选所有12,1,2月
现有时间序列:197901-201812

            
              a
              
                =
              
              
                [
              
              
                ]
              
              
                for
              
               t in 
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                481
              
              
                )
              
              
                :
              
              
                if
              
               t
              
                %
              
              
                12
              
              
                ==
              
              
                1
              
               or t
              
                %
              
              
                12
              
              
                ==
              
              
                2
              
               or t
              
                %
              
              
                12
              
              
                ==
              
              
                0
              
              
                :
              
              
        a
              
                .
              
              
                extend
              
              
                (
              
              
                [
              
              t
              
                -
              
              
                1
              
              
                ]
              
              
                )
              
              
ws_t
              
                =
              
              ws
              
                [
              
              a
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
                  
ws_winter
              
                =
              
              np
              
                .
              
              
                zeros
              
              
                (
              
              
                (
              
              
                39
              
              
                ,
              
              
                241
              
              
                ,
              
              
                480
              
              
                )
              
              
                )
              
              
                for
              
               m in 
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                39
              
              
                )
              
              
                :
              
              
    ws_winter
              
                [
              
              m
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                =
              
              
                (
              
              ws_t
              
                [
              
              m
              
                *
              
              
                3
              
              
                +
              
              
                2
              
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                +
              
              ws_t
              
                [
              
              m
              
                *
              
              
                3
              
              
                +
              
              
                3
              
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                +
              
              ws_t
              
                [
              
              m
              
                *
              
              
                3
              
              
                +
              
              
                4
              
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                )
              
              
                /
              
              
                3
              
            
          

80年-18年冬季平均就得到了
求距平值

            
              ws_mean
              
                =
              
              np
              
                .
              
              
                zeros
              
              
                (
              
              
                (
              
              
                241
              
              
                ,
              
              
                480
              
              
                )
              
              
                )
              
              
ws_mean
              
                =
              
              np
              
                .
              
              
                mean
              
              
                (
              
              ws_winter
              
                ,
              
              axis
              
                =
              
              
                0
              
              
                )
              
              
ws_st
              
                =
              
              np
              
                .
              
              
                zeros
              
              
                (
              
              
                (
              
              
                39
              
              
                ,
              
              
                241
              
              
                ,
              
              
                480
              
              
                )
              
              
                )
              
              
                for
              
               m in 
              
                range
              
              
                (
              
              
                0
              
              
                ,
              
              
                39
              
              
                )
              
              
                :
              
              
    ws_st
              
                [
              
              m
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                =
              
              ws_winter
              
                [
              
              m
              
                ,
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
              
                -
              
              ws_mean
              
                [
              
              
                :
              
              
                ,
              
              
                :
              
              
                ]
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论