python 读取grb2文件 相关配置文件及代码

1.下载wgirb2工具(用于读取grib2文件)网址:  ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2【若无法下载或下载不了推荐已整理好直接使用整理好解压后直接使用

2.环境 python3

3.简单易行的代码:

import os
os.chdir('C:\\Users\\lvdian\\Desktop\\wgirb2' )#下载解压后wgirb2的路径
os.system(r"wgrib2 C:\\Users\\lvdian\\Desktop\\r500z\\z500.l.gdas.198101.grb2 -v")#查看文件
os.system("wgrib2 C:\\Users\\lvdian\\Desktop\\r500z\\z500.l.gdas.198101.grb2 -csv data2.csv")#将文件写入csv文件

C:\\Users\\lvdian\\Desktop\\r500z\\z500.l.gdas.198101.grb2 为所要读取的rgb2文件

最终写入的data2.csv 文件在C:\\Users\\lvdian\\Desktop\\wgirb2 路径里。

 

 

######

R版本的详见 R版本rgb2格式数据处理

常见的命令参考:

  wgrib2 v0.2.0.6c 2/2017  Wesley Ebisuzaki, Reinoud Bokhorst, John Howard, Jaakko Hyvätti, Dusan Jovic, Daniel Lee, Kristian Nilssen, Karl Pfeiffer, Pablo Romero, Manfred Schwarb, Gregor Schee, Arlindo da Silva, Niklas Sondell, Sam Trahan, Sergey Varlamov                                                                                                             stock build                                                                                                           -0xSec           inv  X      Hex dump of section X (0..8)                                                               -aerosol_size    inv         optical properties of an aerosol                                                           -aerosol_wavelength inv         optical properties of an aerosol                                                        -bitmap          inv         bitmap mode                                                                                -center          inv         center                                                                                     -checksum        inv  X      CRC checksum of section X (0..8), whole message (X = -1/message) or (X=data)               -disc            inv         discipline (code table 0.0)                                                                -domain          inv         find rectangular domain for g2ctl/GrADS plots                                              -end_ft          inv         verf time = reference_time + forecast_time + stat. proc time (YYYYMMDDHH) (same as -vt)    -end_FT          inv         verf time = reference_time + forecast_time + stat. proc time (YYYYMMDDHHMMSS) (same as -VT)                                                                                                                        -ens             inv         ensemble information                                                                       -ext_name        inv         extended name, var+qualifiers                                                              -ftime           inv         forecast time                                                                              -ftime2          inv         timestamp -- will replace -ftime in the future TESTING                                     -ftn_api_fn0     inv         n npnts nx ny msg_no submsg i8,5(1x,i8)                                                    -full_name       inv         extended name, var+qualifiers                                                              -gdt             inv         contents of Grid Definition Template (g2c)                                                 -get_byte        inv  X Y Z  get bytes in Section X, Octet Y, number of bytes Z (decimal format)                        -get_hex         inv  X Y Z  get bytes in Section X, Octet Y, number of bytes Z (bytes in hexadecimal format)           -get_ieee        inv  X Y Z  get ieee float in Section X, Octet Y, number of floats Z                                   -get_int         inv  X Y Z  get 4-byte ints in Section X, Octet Y, number of ints Z                                    -get_int2        inv  X Y Z  get 2-byte ints in Section X, Octet Y, number of ints Z                                    -grib_max_bits   inv         maximum bits used in grib encoding                                                         -grid            inv         grid definition                                                                            -grid_id         inv         show values from grid_id                                                                   -hybrid          inv         shows vertical coordinate parameters from Sec4                                             -ij              inv  X Y    value of field at grid(X,Y) X=1,..,nx Y=1,..,ny (WxText enabled)                           -ijlat           inv  X Y    lat,lon and grid value at grid(X,Y) X=1,..,nx Y=1,..,ny (WxText enabled)                   -ilat            inv  X      lat,lon and grid value at Xth grid point, X=1,..,npnts (WxText enabled)                    -JMA             inv         inventory for JMA locally defined PDT                                                      -lev             inv         level (code table 4.5)                                                                     -ll2i            inv  X Y    x=lon y=lat, converts to (i), 1..ndata                                                     -ll2ij           inv  X Y    x=lon y=lat, converts lon-lat to (i,j) using gctpc                                         -lon             inv  X Y    value at grid point nearest lon=X lat=Y (WxText enabled)                                   -match_inv       inv         inventory used by -match, -not, -if and -not_if                                            -Match_inv       inv         same as -match_inv except d=YYYYMMDDHH <-> D=YYYYMMDDHHmmss                                -max             inv         print maximum value                                                                        -min             inv         print minimum value                                                                        -misc            inv         variable name qualifiers like chemical, ensemble, probability, etc                         -MM              inv         reference time MM                                                                          -model_version_date inv         prints model date code                                                                  -n               inv         prints out inventory number                                                                -N_ens           inv         number of ensemble members                                                                 -nl              inv         inserts new line into inventory                                                            -nlons           inv         number of longitudes for each latitude                                                     -npts            inv         number of grid points                                                                      -nxny            inv         nx and ny of grid                                                                          -packing         inv         shows the packing mode (use -v for more details)                                           -pdt             inv         Product Definition Table (Code Table 4.0)                                                  -precision       inv         precision of packing                                                                       -print           inv  X      inserts string (X) into inventory                                                          -prob            inv         probability information                                                                    -process         inv         Process (code table 4.3)                                                                   -processid       inv         process id (locally defined)                                                               -proj4_ij2ll     inv  X Y    X=x Y=y, converts to (i,j) to lon-lat using proj.4 (experimental) we:sn                    -proj4_ll2i      inv  X Y    x=lon y=lat, converts to (i) using proj.4 (experimental) 1..ndata                          -proj4_ll2ij     inv  X Y    x=lon y=lat, converts lon-lat (i,j) using proj.4 (experimental)                            -radius          inv         radius of Earth                                                                            -range           inv         print out location of record in bytes, 0 = first byte                                      -RT              inv         type of reference Time                                                                     -s               inv         simple inventory                                                                           -S               inv         simple inventory with minutes and seconds (subject to change)                              -s2              inv         simple inventory .. for testing ftime2                                                     -scale           inv         scale for packing                                                                          -scaling         inv         scaling for packing (old format)                                                           -scan            inv         scan order of grid                                                                         -Sec0            inv         contents of section0                                                                       -Sec3            inv         contents of section 3 (Grid Definition Section)                                            -Sec4            inv         Sec 4 values (Product definition section)                                                  -Sec5            inv         Sec 5 values (Data representation section)                                                 -Sec6            inv         show bit-map section                                                                       -Sec_len         inv         length of various grib sections                                                            -spatial_proc    inv         show spacial processing, pdt=4.15                                                          -spectral_bands  inv         spectral bands for satellite, pdt=4.31 or 4.32                                             -start_ft        inv         verf time = reference_time + forecast_time (YYYYMMDDHH) : no stat. proc time               -start_FT        inv         verf time = reference_time + forecast_time (YYYYMMDDHHMMSS) - no stat. proc time           -stats           inv         statistical summary of data values                                                         -subcenter       inv         subcenter                                                                                  -t               inv         reference time YYYYMMDDHH, -v2 for alt format                                              -T               inv         reference time YYYYMMDDHHMMSS                                                              -table           inv         parameter table                                                                            -unix_time       inv         print unix timestamp for rt & vt                                                           -V               inv         diagnostic output                                                                          -var             inv         short variable name                                                                        -varX            inv         raw variable name - discipline mastertab localtab center parmcat parmnum                   -vector_dir      inv         grid or earth relative winds                                                               -verf            inv         simple inventory using verification time                                                   -vt              inv         verf time = reference_time + forecast_time, -v2 for alt format                             -VT              inv         verf time = reference_time + forecast_time (YYYYMMDDHHMMSS)                                -wave_partition  inv         ocean surface wave partition (pdt=4.52)                                                    -YY              inv         reference time YYYY                                                                        -inv_f77         inv> X Y Z  match inventory written to Z with character*(Y) and X=(bin,ieee)                           -last            inv> X      write last inv item to file X                                                              -last0           inv> X      write last inv item to beginning of file X                                                 -nl_out          inv> X      write new line in file X                                                                   -print_out       inv> X Y    prints string (X) in file (Y)                                                              -s_out           inv> X      simple inventory written to X                                                              -big_endian      misc        sets ieee output to big endian (default is big endian)                                     -colon           misc X      replace item deliminator (:) with X                                                        -config          misc        shows the configuration                                                                    -count           misc        prints count, number times this -count was processed                                       -end             misc        stop after first (sub)message (save time)                                                  -error_final     misc X Y Z  error if at end X=count Y=ne,eq,le,lt,gt,ge Z=integer                                      -fix_CFSv2_fcst  misc X Y Z  fixes CFSv2 monthly fcst X=daily or 00/06/12/18 Y=pert no. Z=number ens fcsts v1.0         -fix_ncep        misc        fix ncep PDT=8 headers produced by cnvgrib                                                 -gctpc           misc X       X=0,1 use gctpc library (default=1)                                                       -grid_changes    misc        prints number of grid changes                                                              -grid_def        misc        read lon and lat data from grib file -- experimental                                       -h               misc        help, shows common options                                                                 -header          misc        f77 header or nx-ny header in text output (default)                                        -help            misc X      help [search string|all], -help all, shows all options                                     -if              misc X      if X (POSIX regular expression) matches, conditional execution up to next output/fi        -if_fs           misc X      if X (fixed string) matches, conditional execution up to next output/fi                    -if_n            misc X      if (inv numbers in range), X=(start:end:step)                                              -if_rec          misc X      if (record numbers in range), X=(start:end:step)                                           -if_reg          misc X      if rpn registers defined, X = A, A:B, A:B:C, etc A = register number                       -ijundefine      misc X Y Z  sets grid point values to undefined X=(in-box|out-box) Y=ix0:ix1 Z=iy0:iy1 ix=(1..nx) iy=(1..ny)                                                                                                                   -import_bin      misc X      read binary file (X) for data                                                              -import_grib     misc X      read grib2 file (X) for data                                                               -import_ieee     misc X      read ieee file (X) for data                                                                -import_text     misc X      read text file (X) for data                                                                -limit           misc X      stops after X fields decoded                                                               -little_endian   misc        sets ieee output to little endian (default is big endian)                                  -mem_del         misc X      delete mem file X                                                                          -mem_final       misc X Y    write mem file X to file Y at cleanup step                                                 -mem_init        misc X Y    read mem file X from file Y (on initialization)                                            -new_grid_interpolation misc X      new_grid interpolation X=bilinear,bicubic,neighbor,budget                           -new_grid_ipopt  misc X      new_grid ipopt values X=i1:i2..:iN N <= 20                                                 -new_grid_vectors misc X      change fields to vector interpolate: X=none,default,UGRD:VGRD,(U:V list)                  -new_grid_winds  misc X      new_grid wind orientation: X = grid, earth (no default)                                    -no_header       misc        no f77 header or nx-ny header in text output                                               -not_if          misc X      if X (regular expression) does not match, conditional execution until next output/fi       -not_if_fs       misc X      if X (fixed string) does not match, conditional execution up to next output/fi             -proj4           misc X      X=0,1 use proj4 library for geolocation (testing)                                          -rewind_final    misc X      rewinds file X on cleanup step if already opened, CW2                                      -rewind_proc     misc X      rewinds file X on processing step if already opened, CW2                                   -rpn             misc X      reverse polish notation calculator                                                         -rpn_rcl         misc X      data = register X .. same as -rpn rcl_X .. no geolocation calc needed                      -rpn_sto         misc X      register X = data.. same as -rpn sto_X .. no geolocation calc needed                       -set             misc X Y    set X = Y, X=local_table,etc (help: -set help help)                                        -set_ave         misc X      set ave/acc .. only on pdt=4.0 only anl/fcst                                               -set_bin_prec    misc X      X use X bits and ECMWF-style grib encoding                                                 -set_bitmap      misc X      use bitmap when creating complex packed files X=1/0                                        -set_byte        misc X Y Z  set bytes in Section X, Octet Y, bytes Z (a|a:b:c)                                         -set_date        misc X      changes date code, X=(+|-)N(hr|dy|mo|yr), YYYYMMDDHHmmSS                                   -set_ensm_derived_fcst misc X Y    convert PDT 0,1,2 -> 2, 8,11,12 -> 12, X=code table 4.7 Y=num ens members            -set_ens_num     misc X Y Z  convert PDT 0,1 -> 1, 8,11 -> 11, X=code table 4.6 Y=pert num Z=num ens members -1=No Change                                                                                                                       -set_ftime       misc X      set ftime                                                                                  -set_ftime2      misc X      set ftime2 .. will be replace -set_ftime/ave in the future -- TESTING ---                  -set_grib_max_bits misc X      sets scaling so number of bits does not exceed N in (new) grib output                    -set_grib_type   misc X      set grib type = jpeg, simple, ieee, complex(1|2|3), aec, same                              -set_hex         misc X Y Z  set bytes in Section X, Octet Y, bytes Z (a|a:b:c) in hexadecimal                          -set_ieee        misc X Y Z  set ieee float in Section X, Octet Y, floats Z (a|a:b:c)                                   -set_ijval       misc X Y Z  sets grid point value X=ix Y=iy Z=val                                                      -set_int         misc X Y Z  set 4-byte ints in Section X, Octet Y, signed integers Z (a|a:b:c)                         -set_int2        misc X Y Z  set 2-byte ints in Section X, Octet Y, signed integers Z (a|a:b:c)                         -set_ival        misc X Y    sets grid point value X=i1:i2:.. Y=va1:val2:.. grid[i1] = val1,etc                         -set_lev         misc X      changes level code .. not complete                                                         -set_metadata    misc X      read meta-data for grib writing from file X                                                -set_metadata_str misc X      X = metadata string                                                                       -set_pdt         misc X      makes new pdt, X=(+)PDT_number or X=(+)PDT_number:size of PDT in octets, +=copy metadata   -set_percentile  misc X      convert PDT 0..6 -> 6, 8..15 -> 10, X=percentile (0..100)                                  -set_prob        misc 5 args X/Y forecasts Z=Code Table 4.9 A=lower limit B=upper limit                                 -set_radius      misc X      set radius of Earth X= 0,2,4,5,6,8,9 (Code Table 3.2), 1:radius , 7:major:minor            -set_scaling     misc X Y    set decimal scaling=X/same binary scaling=Y/same new grib messages                         -set_sec_size    misc X Y    resizes section , X=section number, Y=size in octets, DANGEROUS                            -set_ts_dates    misc X Y Z  changes date code for time series X=YYYYMMDDHH(mmss) Y=dtime Z=#msgs/date                  -set_var         misc X      changes variable name                                                                      -status          misc X      X X=file                                                                                   -submsg          misc X      process submessage X (0=process all messages)                                              -sys             misc X      run system/shell command, X=shell command                                                  -text_col        misc X      number of columns on text output                                                           -text_fmt        misc X      format for text output (C)                                                                 -udf             misc X Y    run UDF, X=program+optional_args, Y=return file                                            -udf_arg         misc X Y    add grib-data to UDF argument file, X=file Y=name                                          -undefine        misc X Y Z  sets grid point values to undefined X=(in-box|out-box) Y=lon0:lon1 Z=lat0:lat1             -undefine_val    misc X      grid point set to undefined if X=val or X=low:high                                         -v               misc        verbose (v=1)                                                                              -v0              misc        not verbose (v=0)                                                                          -v2              misc        really verbose (v=2)                                                                       -version         misc        print version                                                                              --version        misc        print version                                                                              -AAIG            out         writes Ascii ArcInfo Grid file, lat-lon grid only (alpha)                                  -AAIGlong        out         writes Ascii ArcInfo Grid file, lat-lon grid only long-name *.asc (alpha)                  -ave             out  X Y    average X=time step, Y=output grib file needs file is special order                        -ave_var         out  X Y    average/std dev/min/max X=time step, Y=output                                              -bin             out  X      write binary data to X                                                                     -cress_lola      out  X..Z,A lon-lat grid values X=lon0:nlon:dlon Y=lat0:nlat:dlat Z=file A=radius1:radius2:..:radiusN  -csv             out  X      make comma separated file, X=file (WxText enabled)                                         -csv_long        out  X      make comma separated file, X=file (WxText enabled)                                         -fcst_ave        out  X Y    average X=time step, Y=output grib file needs file is special order                        -fi              out         null output operation                                                                      -grib            out  X      writes GRIB record (one submessage) to X                                                   -GRIB            out  X      writes entire GRIB record (all submessages)                                                -grib_ieee       out  X      writes data[] to X.grb, X.head, X.tail, and X.h                                            -grib_out        out  X      writes decoded/modified data in grib-2 format to file X                                    -grib_out_irr    out  X Y    writes irregular grid grib X=(all|defined) Y=(output file)                                 -gridout         out  X      text file with grid: i j lat lon (1st record)                                              -ieee            out  X      write (default:big-endian) IEEE data to X                                                  -ijbox           out  X..Z,A grid values in bounding box X=i1:i2[:di] Y=j1:j2[:dj] Z=file A=[bin|text|spread]           -ijsmall_grib    out  X Y Z  make small domain grib file X=ix0:ix1 Y=iy0:iy1 Z=file                                     -irr_grid        out  X Y Z  make irregular grid, nearest neighbor, X=lon-lat list Y=radius (km) Z=output grib file     -lola            out  X..Z,A lon-lat grid values X=lon0:nlon:dlon Y=lat0:nlat:dlat Z=file A=[bin|text|spread|grib]      -merge_fcst      out  X Y    merge forecast ave/acc/min/max X=number to intervals to merge (0=every) Y=output grib file                                                                                                                         -mysql           out  5 args H=[host] U=[user] P=[password] D=[db] T=[table]                                            -mysql_dump      out  7 args H=[host] U=[user] P=[password] D=[db] T=[table] W=[western_lons:0|1] PV=[remove unlikely:0|1]                                                                                                                      -mysql_speed     out  7 args H=[host] U=[user] P=[password] D=[db] T=[table] W=[western_lons:0|1] PV=[remove unlikely:0|1]                                                                                                                      -ncep_norm       out  X      normalize NCEP-type ave/acc X=output grib file                                             -ncep_uv         out  X      combine U and V fields into one message like NCEP operations                               -netcdf          out  X      write netcdf data to X                                                                     -new_grid        out  X..Z,A bilinear interpolate: X=projection Y=x0:nx:dx Z=y0:ny:dy A=grib_file alpha                 -small_grib      out  X Y Z  make small domain grib file X=lonW:lonE Y=latS:latN Z=file                                 -spread          out  X      write text - spread sheet format into X (WxText enabled)                                   -submsg_uv       out  X      combine vector fields into one message                                                     -text            out  X      write text data into X                                                                     -tosubmsg        out  X      convert GRIB message to submessage and write to file X                                     -wind_dir        out  X      calculate wind direction, X = output gribfile (direction in degrees, 0=wind from north, 90=wind from east)                                                                                                         -wind_speed      out  X      calculate wind speed, X = output gribfile (U then V in datafile)                           -append          init        append mode, write to existing output files                                                -crlf            init        make the end of the inventory a crlf (windows) instead of newline (unix)                   -d               init X      dump message X (n or n.m), only 1 -d allowed                                               -egrep           init X      egrep X | wgrib2 (X is POSIX regular expression)                                           -egrep_v         init X      egrep -v X | wgrib2 (X is POSIX regular expression)                                        -eof_bin         init X Y    send (binary) integer to file upon EOF: X=file Y=integer                                   -eof_string      init X Y    send string to file upon EOF: X=file Y=string                                              -err_bin         init X Y    send (binary) integer to file upon err exit: X=file Y=integer                              -err_string      init X Y    send string to file upon err exit: X=file Y=string                                         -fgrep           init X      fgrep X | wgrib2                                                                           -fgrep_v         init X      fgrep -v X | wgrib2                                                                        -fix_ncep_2      init        ncep bug fix 2, probability observation < -ve number                                       -fix_ncep_3      init        sets flag to fix ncep bug 3 (constant fields)                                              -fix_ncep_4      init        fixes NCEP grib2 files where DX and DY are undefined                                       -for             init X      process record numbers in range, X=(start:end:step), only one -for allowed                 -for_n           init X      process inv numbers in range, X=(start:end:step), only one -for allowed                    -g2clib          init X      X=0/1/2 0=WMO std 1=emulate g2clib 2=use g2clib                                            -i               init        read Inventory from stdin                                                                  -i_file          init X      read Inventory from file                                                                   -inv             init X      write inventory to X                                                                       -match           init X      process data that matches X (POSIX regular expression)                                     -match_fs        init X      process data that matches X (fixed string)                                                 -nc3             init        use netcdf3 (classic)                                                                      -nc4             init        use netcdf4 (compressed, controlled endianness etc)                                        -nc_grads        init        require netcdf file to be grads v1.9b4 compatible (fixed time step only)                   -nc_nlev         init X      netcdf, X = max LEV dimension for {TIME,LEV,LAT,LON} data                                  -nc_pack         init X      pack/check limits of all NEW input variables, X=min:max[:byte|short|float]                 -ncpu            init X      number of threads, default is environment variable OMP_NUM_THREADS/number of cpus          -nc_table        init X      X is conversion_to_netcdf_table file name                                                  -nc_time         init X      netcdf, [[-]yyyymmddhhnnss]:[dt{s[ec]|m[in]|h[our]|d[ay]}], [-] is for time alignment only                                                                                                                         -no_append       init        not append mode, write to new output files (default)                                       -no_nc_grads     init        netcdf file may be not grads v1.9b4 compatible, variable time step                         -no_nc_pack      init        no packing in netcdf for NEW variables                                                     -no_nc_table     init        disable previously defined conversion_to_netcdf_table                                      -no_nc_time      init        netcdf, disable previously defined initial or relative date and time step                  -not             init X      process data that does not match X (POSIX regular expression)                              -not_fs          init X      process data that does not match X (fixed string)                                          -one_line        init        puts all on one line (makes into inventory format)                                         -order           init X      decoded data in X (raw|we:sn|we:ns) order, we:sn is default                                -persistent      init X      makes file X persistent if already opened (default on open), CW2                           -rewind_init     init X      rewinds file X on initialization if already opened, CW2                                    -set_ext_name    init X      X=0/1 extended name on/off                                                                 -set_regex       init X      set regex mode X = 0:extended regex (default) 1:pattern 2:extended regex & quote metacharacters                                                                                                                    -tigge           init        use modified-TIGGE grib table                                                              -transient       init X      make file X transient, CW2                                                                                                                                             

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值